diff --git a/app/javascript/dashboard/i18n/index.js b/app/javascript/dashboard/i18n/index.js index 17bfab34d..ace78673d 100644 --- a/app/javascript/dashboard/i18n/index.js +++ b/app/javascript/dashboard/i18n/index.js @@ -7,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'; @@ -49,6 +50,7 @@ export default { el, en, es, + et, fa, fi, fr, diff --git a/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json index e83950b14..4e2be9be4 100644 --- a/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "ኩባንያ" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "ኩባንያ" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/am/automation.json b/app/javascript/dashboard/i18n/locale/am/automation.json index a9d62b236..6558e9386 100644 --- a/app/javascript/dashboard/i18n/locale/am/automation.json +++ b/app/javascript/dashboard/i18n/locale/am/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "ኩባንያ", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/am/bulkActions.json b/app/javascript/dashboard/i18n/locale/am/bulkActions.json index d736201de..2472a9288 100644 --- a/app/javascript/dashboard/i18n/locale/am/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/am/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/am/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/am/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/am/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0d64a4abd..1eb18f365 100644 --- a/app/javascript/dashboard/i18n/locale/am/companies.json +++ b/app/javascript/dashboard/i18n/locale/am/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/am/contact.json b/app/javascript/dashboard/i18n/locale/am/contact.json index 1cfdaf020..329a29569 100644 --- a/app/javascript/dashboard/i18n/locale/am/contact.json +++ b/app/javascript/dashboard/i18n/locale/am/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "መለያ", "COUNTRY": "አገር", "CITY": "ከተማ", + "COMPANY": "ኩባንያ", "CREATED_AT": "ተፈጥሯል በ", "LAST_ACTIVITY": "መጨረሻ እንቅስቃሴ", "REFERER_LINK": "የመግቢያ አገናኝ አገናኝ", diff --git a/app/javascript/dashboard/i18n/locale/am/conversation.json b/app/javascript/dashboard/i18n/locale/am/conversation.json index c059090d1..3cfaeb3a7 100644 --- a/app/javascript/dashboard/i18n/locale/am/conversation.json +++ b/app/javascript/dashboard/i18n/locale/am/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "ተፈትኗል", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", "LINEAR_ISSUES": "የተገናኙ የLinear ጉዳዮች", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/am/helpCenter.json b/app/javascript/dashboard/i18n/locale/am/helpCenter.json index 0d98c6316..f40b2b7f0 100644 --- a/app/javascript/dashboard/i18n/locale/am/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/am/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "ለህትመት አድርግ", "DRAFT": "እቅድ", "ARCHIVE": "አርክቭ", + "TRANSLATE": "Translate", "DELETE": "ሰርዝ" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json index f8fa3e8d6..dbc8ba1f1 100644 --- a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "የዊጅት አሰራር መሣሪያ", "BOT_CONFIGURATION": "የቦት ቅንብሮች", "ACCOUNT_HEALTH": "የመለያ ጤና", - "CSAT": "የደንበኞች ደህንነት ግምገማ (CSAT)" + "CSAT": "የደንበኞች ደህንነት ግምገማ (CSAT)", + "VOICE": "ድምጽ" + }, + "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." + } }, "CHANNEL_PREFERENCES": "የቻናል ቅድሚያዎች", "WIDGET_FEATURES": "የዊጅት ባህሪያት", @@ -745,6 +755,7 @@ "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": "የኢንቦክስ ቅንብሮች", @@ -1000,7 +1011,8 @@ "LABEL": "የይለፍ ቃል", "PLACE_HOLDER": "የይለፍ ቃል" }, - "ENABLE_SSL": "SSL አንቀሳቅስ" + "ENABLE_SSL": "SSL አንቀሳቅስ", + "AUTH_MECHANISM": "ማረጋገጫ" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/am/index.js b/app/javascript/dashboard/i18n/locale/am/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/am/index.js +++ b/app/javascript/dashboard/i18n/locale/am/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/am/integrationApps.json b/app/javascript/dashboard/i18n/locale/am/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/am/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/am/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/am/integrations.json b/app/javascript/dashboard/i18n/locale/am/integrations.json index 22ee57eff..e26adaa52 100644 --- a/app/javascript/dashboard/i18n/locale/am/integrations.json +++ b/app/javascript/dashboard/i18n/locale/am/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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 ጥያቄዎች ቀጥተኛ ከሰነዱ ተፈጥረዋል።" @@ -792,11 +838,15 @@ }, "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 ይዘቱን ማብራሪያ ማድረግ እና ለደንበኞች ጥያቄዎች ትክክለኛ ምላሾችን ማቅረብ ይችላል።" diff --git a/app/javascript/dashboard/i18n/locale/am/macros.json b/app/javascript/dashboard/i18n/locale/am/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/am/macros.json +++ b/app/javascript/dashboard/i18n/locale/am/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/am/mfa.json b/app/javascript/dashboard/i18n/locale/am/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/am/mfa.json +++ b/app/javascript/dashboard/i18n/locale/am/mfa.json @@ -55,6 +55,10 @@ "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", 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/ar/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json index 0b28c1a80..eee042683 100644 --- a/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "المحادثات", - "CONTACT": "جهات الاتصال" + "CONTACT": "جهات الاتصال", + "COMPANY": "المنشأة" }, "ATTRIBUTE_TYPES": { "TEXT": "النص", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "صفات مخصصة", "CONVERSATION": "المحادثات", - "CONTACT": "جهات الاتصال" + "CONTACT": "جهات الاتصال", + "COMPANY": "المنشأة" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ar/automation.json b/app/javascript/dashboard/i18n/locale/ar/automation.json index 878cb5d75..f10a8b78a 100644 --- a/app/javascript/dashboard/i18n/locale/ar/automation.json +++ b/app/javascript/dashboard/i18n/locale/ar/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "إجراء واحد على الأقل مطلوب" }, "NONE_OPTION": "لا شيء", + "LAST_RESPONDING_AGENT": "آخر وكيل قام بالرد", "EVENTS": { "CONVERSATION_CREATED": "تم إنشاء المحادثة", "CONVERSATION_UPDATED": "تم تحديث المحادثة", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "لغة المتصفح", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "الدولة", + "COMPANY_NAME": "المنشأة", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "المكلَّف", "TEAM_NAME": "الفريق", diff --git a/app/javascript/dashboard/i18n/locale/ar/bulkActions.json b/app/javascript/dashboard/i18n/locale/ar/bulkActions.json index a5f566a44..d894fb3ce 100644 --- a/app/javascript/dashboard/i18n/locale/ar/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ar/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "هل أنت متأكد من إلغاء تعيين {conversationCount} {conversationLabel}؟", "GO_BACK_LABEL": "العودة للخلف", "ASSIGN_LABEL": "تكليف", + "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": "تعيين فريق", @@ -38,6 +43,8 @@ "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": "فشل تعيين الفريق، الرجاء المحاولة مرة أخرى." } diff --git a/app/javascript/dashboard/i18n/locale/ar/chatlist.json b/app/javascript/dashboard/i18n/locale/ar/chatlist.json index ef2f62bd9..df78ee993 100644 --- a/app/javascript/dashboard/i18n/locale/ar/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ar/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "إخفاء النص المقتبس", "SHOW_QUOTED_TEXT": "إظهار النص المقتبس", "MESSAGE_READ": "قراءة", - "SENDING": "Sending" + "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 index e76f8a8fa..7477c4df0 100644 --- a/app/javascript/dashboard/i18n/locale/ar/companies.json +++ b/app/javascript/dashboard/i18n/locale/ar/companies.json @@ -7,6 +7,7 @@ "NAME": "الاسم", "DOMAIN": "النطاق", "CREATED_AT": "تم إنشاؤها في", + "LAST_ACTIVITY_AT": "آخر نشاط", "CONTACTS_COUNT": "عدد جهات الاتصال" } }, @@ -21,6 +22,121 @@ "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": "لم يتم العثور على شركات" } diff --git a/app/javascript/dashboard/i18n/locale/ar/contact.json b/app/javascript/dashboard/i18n/locale/ar/contact.json index 8dc0cebdc..14b2e4f0d 100644 --- a/app/javascript/dashboard/i18n/locale/ar/contact.json +++ b/app/javascript/dashboard/i18n/locale/ar/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "المعرف", "COUNTRY": "الدولة", "CITY": "المدينة", + "COMPANY": "المنشأة", "CREATED_AT": "تم إنشاؤها في", "LAST_ACTIVITY": "آخر نشاط", "REFERER_LINK": "رابط المرجع", diff --git a/app/javascript/dashboard/i18n/locale/ar/conversation.json b/app/javascript/dashboard/i18n/locale/ar/conversation.json index 57722ef01..1bb427f7d 100644 --- a/app/javascript/dashboard/i18n/locale/ar/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ar/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "الرسالة غير متوفرة", "CARD": { "SHOW_LABELS": "إظهار السمات", - "HIDE_LABELS": "إخفاء السمات" + "HIDE_LABELS": "إخفاء السمات", + "LABELS_COUNT": "{count} علامة" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "انضم إلى المكالمة" }, "HEADER": { "RESOLVE_ACTION": "حل المحادثة", @@ -92,6 +95,7 @@ "OPEN": "المزيد", "CLOSE": "أغلق", "DETAILS": "التفاصيل", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "غفوة حتى", "SNOOZED_UNTIL_TOMORROW": "تأجيل حتى الغد", "SNOOZED_UNTIL_NEXT_WEEK": "تأجيل حتى الأسبوع القادم", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "المحادثات السابقة", "MACROS": "ماكروس", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ar/helpCenter.json b/app/javascript/dashboard/i18n/locale/ar/helpCenter.json index b19a3970a..66dbd8e12 100644 --- a/app/javascript/dashboard/i18n/locale/ar/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ar/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "نشر", "DRAFT": "مسودة", "ARCHIVE": "Archive", + "TRANSLATE": "ترجم", "DELETE": "حذف" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "ترجم", + "DELETE": "حذف", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json index 457bbf20d..2f314baa6 100644 --- a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "منشئ اللايف شات", "BOT_CONFIGURATION": "اعدادات البوت", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "تقييم رضاء العملاء" + "CSAT": "تقييم رضاء العملاء", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "تمكين/تعطيل إظهار اسم الوكيل في البريد الإلكتروني، إذا تم تعطيله فسيظهر اسم المنشأة", "ENABLE_CONTINUITY_VIA_EMAIL": "تمكين استمرارية المحادثة عبر البريد الإلكتروني", "ENABLE_CONTINUITY_VIA_EMAIL_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": "إعدادات قناة التواصل", @@ -1000,7 +1011,8 @@ "LABEL": "كلمة المرور", "PLACE_HOLDER": "كلمة المرور" }, - "ENABLE_SSL": "تمكين SSL" + "ENABLE_SSL": "تمكين SSL", + "AUTH_MECHANISM": "المصادقة" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ar/index.js b/app/javascript/dashboard/i18n/locale/ar/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ar/index.js +++ b/app/javascript/dashboard/i18n/locale/ar/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ar/integrationApps.json b/app/javascript/dashboard/i18n/locale/ar/integrationApps.json index bf102d23b..925ead306 100644 --- a/app/javascript/dashboard/i18n/locale/ar/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ar/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "اختر صندوق الوارد" }, "SUBMIT": "إنشاء", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "إلغاء" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ar/integrations.json b/app/javascript/dashboard/i18n/locale/ar/integrations.json index 1f3c59a0a..6d875fbcf 100644 --- a/app/javascript/dashboard/i18n/locale/ar/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ar/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/ar/macros.json b/app/javascript/dashboard/i18n/locale/ar/macros.json index 261fad1c0..92e066bc9 100644 --- a/app/javascript/dashboard/i18n/locale/ar/macros.json +++ b/app/javascript/dashboard/i18n/locale/ar/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "حدث خطأ أثناء حذف الماكرو. الرجاء المحاولة مرة أخرى في وقت لاحق" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "تعديل الماكرو", "API": { @@ -66,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": "خاص", diff --git a/app/javascript/dashboard/i18n/locale/ar/mfa.json b/app/javascript/dashboard/i18n/locale/ar/mfa.json index d4348e323..364e78d92 100644 --- a/app/javascript/dashboard/i18n/locale/ar/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ar/mfa.json @@ -55,6 +55,10 @@ "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", 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/az/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json index e83950b14..6af96c1aa 100644 --- a/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Şirkət" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Şirkət" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/az/automation.json b/app/javascript/dashboard/i18n/locale/az/automation.json index c654508ef..0a2aff366 100644 --- a/app/javascript/dashboard/i18n/locale/az/automation.json +++ b/app/javascript/dashboard/i18n/locale/az/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/az/bulkActions.json b/app/javascript/dashboard/i18n/locale/az/bulkActions.json index d736201de..1f56b6ab3 100644 --- a/app/javascript/dashboard/i18n/locale/az/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/az/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/az/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/az/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/az/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0d64a4abd..faf0fc573 100644 --- a/app/javascript/dashboard/i18n/locale/az/companies.json +++ b/app/javascript/dashboard/i18n/locale/az/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/az/contact.json b/app/javascript/dashboard/i18n/locale/az/contact.json index 90776f5ef..aa19205cb 100644 --- a/app/javascript/dashboard/i18n/locale/az/contact.json +++ b/app/javascript/dashboard/i18n/locale/az/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Ölkə", "CITY": "Şəhər", + "COMPANY": "Şirkət", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Son fəaliyyət", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/az/conversation.json b/app/javascript/dashboard/i18n/locale/az/conversation.json index cd59157ee..0fc8203c5 100644 --- a/app/javascript/dashboard/i18n/locale/az/conversation.json +++ b/app/javascript/dashboard/i18n/locale/az/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Mesaj mövcud deyil", "CARD": { "SHOW_LABELS": "Etiketləri göstər", - "HIDE_LABELS": "Etiketləri gizlədin" + "HIDE_LABELS": "Etiketləri gizlədin", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Gələn zəng", @@ -82,7 +83,9 @@ "CALL_ENDED": "Zəng bitdi", "NOT_ANSWERED_YET": "Hələ cavab verilməyib", "THEY_ANSWERED": "Onlar cavab verdi", - "YOU_ANSWERED": "Siz cavab verdiniz" + "YOU_ANSWERED": "Siz cavab verdiniz", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Zəngə qoşul" }, "HEADER": { "RESOLVE_ACTION": "Həll et", @@ -92,6 +95,7 @@ "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ı", @@ -362,7 +366,19 @@ "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" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/az/helpCenter.json b/app/javascript/dashboard/i18n/locale/az/helpCenter.json index 70d89727d..bbd8d72a6 100644 --- a/app/javascript/dashboard/i18n/locale/az/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/az/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Tərcümə et", "DELETE": "Delete" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json index 0bfdc8f7e..e96e12942 100644 --- a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Qurucusu", "BOT_CONFIGURATION": "Bot Konfiqurasiyası", "ACCOUNT_HEALTH": "Hesabın sağlamlığı", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Səs" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Kanal üstünlükləri", "WIDGET_FEATURES": "Widget xüsusiyyətləri", @@ -745,6 +755,7 @@ "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", @@ -1000,7 +1011,8 @@ "LABEL": "Şifrə", "PLACE_HOLDER": "Şifrə" }, - "ENABLE_SSL": "SSL-i aktiv et" + "ENABLE_SSL": "SSL-i aktiv et", + "AUTH_MECHANISM": "Avtorizasiya" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/az/index.js b/app/javascript/dashboard/i18n/locale/az/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/az/index.js +++ b/app/javascript/dashboard/i18n/locale/az/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/az/integrationApps.json b/app/javascript/dashboard/i18n/locale/az/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/az/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/az/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/az/integrations.json b/app/javascript/dashboard/i18n/locale/az/integrations.json index 00e0c0ec9..71b974565 100644 --- a/app/javascript/dashboard/i18n/locale/az/integrations.json +++ b/app/javascript/dashboard/i18n/locale/az/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/az/macros.json b/app/javascript/dashboard/i18n/locale/az/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/az/macros.json +++ b/app/javascript/dashboard/i18n/locale/az/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/az/mfa.json b/app/javascript/dashboard/i18n/locale/az/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/az/mfa.json +++ b/app/javascript/dashboard/i18n/locale/az/mfa.json @@ -55,6 +55,10 @@ "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", 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/bg/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json index c8f0dfe9b..e312455bf 100644 --- a/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Разговор", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Фирма" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Персонализирани атрибути", "CONVERSATION": "Разговор", - "CONTACT": "Контакт" + "CONTACT": "Контакт", + "COMPANY": "Фирма" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/bg/automation.json b/app/javascript/dashboard/i18n/locale/bg/automation.json index 57524ccef..2d87adabe 100644 --- a/app/javascript/dashboard/i18n/locale/bg/automation.json +++ b/app/javascript/dashboard/i18n/locale/bg/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Език на браузъра", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Държава", + "COMPANY_NAME": "Фирма", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/bg/bulkActions.json b/app/javascript/dashboard/i18n/locale/bg/bulkActions.json index 69862e409..9d6ce07b6 100644 --- a/app/javascript/dashboard/i18n/locale/bg/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/bg/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "Нито един", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/bg/chatlist.json index 9e18ecda8..35e10da82 100644 --- a/app/javascript/dashboard/i18n/locale/bg/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/bg/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Скриване на цитирания текст", "SHOW_QUOTED_TEXT": "Показване на цитирания текст", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 474441c86..59604e5f6 100644 --- a/app/javascript/dashboard/i18n/locale/bg/companies.json +++ b/app/javascript/dashboard/i18n/locale/bg/companies.json @@ -7,6 +7,7 @@ "NAME": "Име", "DOMAIN": "Domain", "CREATED_AT": "Създаден в", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/bg/contact.json b/app/javascript/dashboard/i18n/locale/bg/contact.json index 4b51d7e43..ed7277b9c 100644 --- a/app/javascript/dashboard/i18n/locale/bg/contact.json +++ b/app/javascript/dashboard/i18n/locale/bg/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Идентификатор", "COUNTRY": "Държава", "CITY": "Град", + "COMPANY": "Фирма", "CREATED_AT": "Създаден в", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Референтна връзка", diff --git a/app/javascript/dashboard/i18n/locale/bg/conversation.json b/app/javascript/dashboard/i18n/locale/bg/conversation.json index 4661db64e..b2e3ff3ad 100644 --- a/app/javascript/dashboard/i18n/locale/bg/conversation.json +++ b/app/javascript/dashboard/i18n/locale/bg/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resolve", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Предишни разговори", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/bg/helpCenter.json b/app/javascript/dashboard/i18n/locale/bg/helpCenter.json index 796d72853..7f3117eb0 100644 --- a/app/javascript/dashboard/i18n/locale/bg/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/bg/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Изтрий" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Изтрий", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json index 4f6213c1b..f39d20f7f 100644 --- a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Password", "PLACE_HOLDER": "Password" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/bg/index.js b/app/javascript/dashboard/i18n/locale/bg/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/bg/index.js +++ b/app/javascript/dashboard/i18n/locale/bg/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/bg/integrationApps.json b/app/javascript/dashboard/i18n/locale/bg/integrationApps.json index 70717f9df..d9fffc512 100644 --- a/app/javascript/dashboard/i18n/locale/bg/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/bg/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Създаване", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Отмени" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/bg/integrations.json b/app/javascript/dashboard/i18n/locale/bg/integrations.json index 068fba92b..40295bf85 100644 --- a/app/javascript/dashboard/i18n/locale/bg/integrations.json +++ b/app/javascript/dashboard/i18n/locale/bg/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/bg/macros.json b/app/javascript/dashboard/i18n/locale/bg/macros.json index d1a00eb4c..dc8dca5bf 100644 --- a/app/javascript/dashboard/i18n/locale/bg/macros.json +++ b/app/javascript/dashboard/i18n/locale/bg/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/bg/mfa.json b/app/javascript/dashboard/i18n/locale/bg/mfa.json index 660983c58..b503239fb 100644 --- a/app/javascript/dashboard/i18n/locale/bg/mfa.json +++ b/app/javascript/dashboard/i18n/locale/bg/mfa.json @@ -55,6 +55,10 @@ "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", 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/bn/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json index e83950b14..6c4a92d40 100644 --- a/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "কোম্পানি" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "কোম্পানি" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/bn/automation.json b/app/javascript/dashboard/i18n/locale/bn/automation.json index 37f1b7e66..2185161e8 100644 --- a/app/javascript/dashboard/i18n/locale/bn/automation.json +++ b/app/javascript/dashboard/i18n/locale/bn/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "কোম্পানি", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/bn/bulkActions.json b/app/javascript/dashboard/i18n/locale/bn/bulkActions.json index d736201de..3476a0a4d 100644 --- a/app/javascript/dashboard/i18n/locale/bn/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/bn/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/bn/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/bn/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/bn/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0d64a4abd..ae450a3c8 100644 --- a/app/javascript/dashboard/i18n/locale/bn/companies.json +++ b/app/javascript/dashboard/i18n/locale/bn/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/bn/contact.json b/app/javascript/dashboard/i18n/locale/bn/contact.json index cfc52fff5..385530464 100644 --- a/app/javascript/dashboard/i18n/locale/bn/contact.json +++ b/app/javascript/dashboard/i18n/locale/bn/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "আইডেন্টিফায়ার", "COUNTRY": "দেশ", "CITY": "শহর", + "COMPANY": "কোম্পানি", "CREATED_AT": "তৈরি হয়েছে", "LAST_ACTIVITY": "সর্বশেষ কার্যকলাপ", "REFERER_LINK": "রেফারার লিঙ্ক", diff --git a/app/javascript/dashboard/i18n/locale/bn/conversation.json b/app/javascript/dashboard/i18n/locale/bn/conversation.json index 123f245c1..26658903b 100644 --- a/app/javascript/dashboard/i18n/locale/bn/conversation.json +++ b/app/javascript/dashboard/i18n/locale/bn/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "বার্তাটি পাওয়া যায়নি", "CARD": { "SHOW_LABELS": "লেবেল দেখান", - "HIDE_LABELS": "লেবেল লুকান" + "HIDE_LABELS": "লেবেল লুকান", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "ইনকামিং কল", @@ -82,7 +83,9 @@ "CALL_ENDED": "কল শেষ হয়েছে", "NOT_ANSWERED_YET": "এখনও উত্তর পাওয়া যায়নি", "THEY_ANSWERED": "তারা উত্তর দিয়েছে", - "YOU_ANSWERED": "আপনি উত্তর দিয়েছেন" + "YOU_ANSWERED": "আপনি উত্তর দিয়েছেন", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "কলে যোগ দিন" }, "HEADER": { "RESOLVE_ACTION": "সমাধান করুন", @@ -92,6 +95,7 @@ "OPEN": "আরও", "CLOSE": "বন্ধ করুন", "DETAILS": "বিস্তারিত", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "স্নুজ করা হয়েছে পর্যন্ত", "SNOOZED_UNTIL_TOMORROW": "আগামীকাল পর্যন্ত স্থগিত", "SNOOZED_UNTIL_NEXT_WEEK": "পরবর্তী সপ্তাহ পর্যন্ত স্থগিত", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "পূর্বের আলোচনা", "MACROS": "ম্যাক্রো", "LINEAR_ISSUES": "সংযুক্ত Linear সমস্যা", - "SHOPIFY_ORDERS": "Shopify অর্ডার" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/bn/helpCenter.json b/app/javascript/dashboard/i18n/locale/bn/helpCenter.json index 761ddd536..797386cc1 100644 --- a/app/javascript/dashboard/i18n/locale/bn/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/bn/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "প্রকাশ করুন", "DRAFT": "খসড়া", "ARCHIVE": "আর্কাইভ", + "TRANSLATE": "অনুবাদ করুন", "DELETE": "মুছে ফেলুন" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "অনুবাদ করুন", + "DELETE": "মুছে ফেলুন", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json index ecfcfce2c..049273ab6 100644 --- a/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "উইজেট নির্মাতা", "BOT_CONFIGURATION": "বট কনফিগারেশন", "ACCOUNT_HEALTH": "অ্যাকাউন্টের স্বাস্থ্য", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "ভয়েস" + }, + "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." + } }, "CHANNEL_PREFERENCES": "চ্যানেল পছন্দসমূহ", "WIDGET_FEATURES": "উইজেট ফিচারসমূহ", @@ -745,6 +755,7 @@ "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": "ইনবক্স সেটিংস", @@ -1000,7 +1011,8 @@ "LABEL": "পাসওয়ার্ড", "PLACE_HOLDER": "পাসওয়ার্ড" }, - "ENABLE_SSL": "SSL সক্রিয় করুন" + "ENABLE_SSL": "SSL সক্রিয় করুন", + "AUTH_MECHANISM": "প্রমাণীকরণ" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/bn/integrationApps.json b/app/javascript/dashboard/i18n/locale/bn/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/bn/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/bn/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/bn/integrations.json b/app/javascript/dashboard/i18n/locale/bn/integrations.json index 3b3ee5833..d3cac1501 100644 --- a/app/javascript/dashboard/i18n/locale/bn/integrations.json +++ b/app/javascript/dashboard/i18n/locale/bn/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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 গুলো সরাসরি ডকুমেন্ট থেকে তৈরি হয়েছে।" @@ -792,11 +838,15 @@ }, "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": "ক্যাপ্টেনে একটি ডকুমেন্ট সহকারী জন্য জ্ঞান সম্পদ হিসেবে কাজ করে। আপনার হেল্প সেন্টার বা গাইড সংযুক্ত করে, ক্যাপ্টেন বিষয়বস্তু বিশ্লেষণ করতে পারে এবং গ্রাহকের প্রশ্নের জন্য সঠিক উত্তর প্রদান করে।" diff --git a/app/javascript/dashboard/i18n/locale/bn/macros.json b/app/javascript/dashboard/i18n/locale/bn/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/bn/macros.json +++ b/app/javascript/dashboard/i18n/locale/bn/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/bn/mfa.json b/app/javascript/dashboard/i18n/locale/bn/mfa.json index 5afd93451..e87177daf 100644 --- a/app/javascript/dashboard/i18n/locale/bn/mfa.json +++ b/app/javascript/dashboard/i18n/locale/bn/mfa.json @@ -55,6 +55,10 @@ "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": "টু-ফ্যাক্টর অথেন্টিকেশন নিষ্ক্রিয় করা হয়েছে", 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/ca/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json index a1abb9d2c..93313e7e9 100644 --- a/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversa", - "CONTACT": "Contacte" + "CONTACT": "Contacte", + "COMPANY": "Companyia" }, "ATTRIBUTE_TYPES": { "TEXT": "Llista", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Atributs personalitzats", "CONVERSATION": "Conversa", - "CONTACT": "Contacte" + "CONTACT": "Contacte", + "COMPANY": "Companyia" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ca/automation.json b/app/javascript/dashboard/i18n/locale/ca/automation.json index 32863a0f5..170d703b8 100644 --- a/app/javascript/dashboard/i18n/locale/ca/automation.json +++ b/app/javascript/dashboard/i18n/locale/ca/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/ca/bulkActions.json b/app/javascript/dashboard/i18n/locale/ca/bulkActions.json index 5d4683fde..dae8ef3c2 100644 --- a/app/javascript/dashboard/i18n/locale/ca/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ca/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Estàs segur de desassignar {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Torna", "ASSIGN_LABEL": "Assignar", + "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", + "CANCEL": "Cancel·la", "SEARCH_INPUT_PLACEHOLDER": "Cercar", "ASSIGN_AGENT_TOOLTIP": "Assigna un agent", "ASSIGN_TEAM_TOOLTIP": "Assigna un equip", @@ -38,6 +43,8 @@ "NONE": "Ningú", "NO_TEAMS_AVAILABLE": "Encara no hi ha cap equip afegit a aquest compte.", "ASSIGN_SELECTED_TEAMS": "Assigna l'equip seleccionat.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/ca/chatlist.json index 665f794f1..0c1c4bd4e 100644 --- a/app/javascript/dashboard/i18n/locale/ca/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ca/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Amaga text entre cometes", "SHOW_QUOTED_TEXT": "Mostra text entre cometes", "MESSAGE_READ": "Llegir", - "SENDING": "Sending" + "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 index 322eeb973..797229f4b 100644 --- a/app/javascript/dashboard/i18n/locale/ca/companies.json +++ b/app/javascript/dashboard/i18n/locale/ca/companies.json @@ -7,6 +7,7 @@ "NAME": "Nom", "DOMAIN": "Domini", "CREATED_AT": "Creat per", + "LAST_ACTIVITY_AT": "Darrera activitat", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/ca/contact.json b/app/javascript/dashboard/i18n/locale/ca/contact.json index 883057244..c27684817 100644 --- a/app/javascript/dashboard/i18n/locale/ca/contact.json +++ b/app/javascript/dashboard/i18n/locale/ca/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identificador", "COUNTRY": "País", "CITY": "Ciutat", + "COMPANY": "Companyia", "CREATED_AT": "Creat per", "LAST_ACTIVITY": "Darrera activitat", "REFERER_LINK": "Enllaç de referència", diff --git a/app/javascript/dashboard/i18n/locale/ca/conversation.json b/app/javascript/dashboard/i18n/locale/ca/conversation.json index 29a529a5d..abe1bbc0e 100644 --- a/app/javascript/dashboard/i18n/locale/ca/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ca/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Missatge no disponible", "CARD": { "SHOW_LABELS": "Mostra etiquetes", - "HIDE_LABELS": "Amaga etiquetes" + "HIDE_LABELS": "Amaga etiquetes", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resoldre", @@ -92,6 +95,7 @@ "OPEN": "Més", "CLOSE": "Tanca", "DETAILS": "detalls", + "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Converses prèvies", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ca/helpCenter.json b/app/javascript/dashboard/i18n/locale/ca/helpCenter.json index 570d56faa..7e9f32942 100644 --- a/app/javascript/dashboard/i18n/locale/ca/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ca/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publica", "DRAFT": "Esborrany", "ARCHIVE": "Archive", + "TRANSLATE": "Tradueix", "DELETE": "Esborrar" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Esborrar", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json index ce289770d..43209268a 100644 --- a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Creador del widget", "BOT_CONFIGURATION": "Configuracions del bot", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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", @@ -1000,7 +1011,8 @@ "LABEL": "Contrasenya", "PLACE_HOLDER": "Contrasenya" }, - "ENABLE_SSL": "Habilita SSL" + "ENABLE_SSL": "Habilita SSL", + "AUTH_MECHANISM": "Autenticació" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ca/index.js b/app/javascript/dashboard/i18n/locale/ca/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ca/index.js +++ b/app/javascript/dashboard/i18n/locale/ca/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ca/integrationApps.json b/app/javascript/dashboard/i18n/locale/ca/integrationApps.json index a2a60a59c..06c1c1912 100644 --- a/app/javascript/dashboard/i18n/locale/ca/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ca/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Selecciona Safata d'entrada" }, "SUBMIT": "Crear", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel·la" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ca/integrations.json b/app/javascript/dashboard/i18n/locale/ca/integrations.json index 747663b65..c83ca86e8 100644 --- a/app/javascript/dashboard/i18n/locale/ca/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ca/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/ca/macros.json b/app/javascript/dashboard/i18n/locale/ca/macros.json index 3bb2bd9ef..c33688917 100644 --- a/app/javascript/dashboard/i18n/locale/ca/macros.json +++ b/app/javascript/dashboard/i18n/locale/ca/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "S'ha produït un error suprimint la macro. Torna-ho a provar" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Edita la macro", "API": { @@ -66,7 +69,9 @@ "LABEL": "Visibilitat de la macro", "GLOBAL": { "LABEL": "Públic", - "DESCRIPTION": "Aquesta macro està disponible públicament per a tots els agents d'aquest compte." + "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": "Privat", diff --git a/app/javascript/dashboard/i18n/locale/ca/mfa.json b/app/javascript/dashboard/i18n/locale/ca/mfa.json index 2724f73ab..38b9bdad4 100644 --- a/app/javascript/dashboard/i18n/locale/ca/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ca/mfa.json @@ -55,6 +55,10 @@ "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", 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/cs/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json index 69bcfc9d1..22939a044 100644 --- a/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Společnost" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Vlastní atributy", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Společnost" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/cs/automation.json b/app/javascript/dashboard/i18n/locale/cs/automation.json index 537e8952b..476a1874c 100644 --- a/app/javascript/dashboard/i18n/locale/cs/automation.json +++ b/app/javascript/dashboard/i18n/locale/cs/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/cs/bulkActions.json b/app/javascript/dashboard/i18n/locale/cs/bulkActions.json index fc2e3fdff..0d5b98d1d 100644 --- a/app/javascript/dashboard/i18n/locale/cs/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/cs/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Přiřadit", + "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", @@ -38,6 +43,8 @@ "NONE": "Nic", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/cs/chatlist.json index 561982ec3..a5ec68c33 100644 --- a/app/javascript/dashboard/i18n/locale/cs/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/cs/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Skrýt citovaný text", "SHOW_QUOTED_TEXT": "Zobrazit citovaný text", "MESSAGE_READ": "Přečtené", - "SENDING": "Sending" + "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 index cec3c80cc..221918e9f 100644 --- a/app/javascript/dashboard/i18n/locale/cs/companies.json +++ b/app/javascript/dashboard/i18n/locale/cs/companies.json @@ -7,6 +7,7 @@ "NAME": "Název", "DOMAIN": "Domain", "CREATED_AT": "Vytvořeno", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/cs/contact.json b/app/javascript/dashboard/i18n/locale/cs/contact.json index 80474b427..86ce1668f 100644 --- a/app/javascript/dashboard/i18n/locale/cs/contact.json +++ b/app/javascript/dashboard/i18n/locale/cs/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifikátor", "COUNTRY": "Země", "CITY": "Město", + "COMPANY": "Společnost", "CREATED_AT": "Vytvořeno", "LAST_ACTIVITY": "Poslední aktivita", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/cs/conversation.json b/app/javascript/dashboard/i18n/locale/cs/conversation.json index eb1d80278..0fd81f5d5 100644 --- a/app/javascript/dashboard/i18n/locale/cs/conversation.json +++ b/app/javascript/dashboard/i18n/locale/cs/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Vyřešit", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Předchozí konverzace", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/cs/helpCenter.json b/app/javascript/dashboard/i18n/locale/cs/helpCenter.json index d30125cda..e620ce5d8 100644 --- a/app/javascript/dashboard/i18n/locale/cs/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/cs/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publikovat", "DRAFT": "Koncept", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Vymazat" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Vymazat", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json index 3dfe132b0..6b36d0eff 100644 --- a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Heslo", "PLACE_HOLDER": "Heslo" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/cs/index.js b/app/javascript/dashboard/i18n/locale/cs/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/cs/index.js +++ b/app/javascript/dashboard/i18n/locale/cs/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/cs/integrationApps.json b/app/javascript/dashboard/i18n/locale/cs/integrationApps.json index a5b65294d..50099d606 100644 --- a/app/javascript/dashboard/i18n/locale/cs/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/cs/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Zrušit" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/cs/integrations.json b/app/javascript/dashboard/i18n/locale/cs/integrations.json index 3fcd3b361..163c58052 100644 --- a/app/javascript/dashboard/i18n/locale/cs/integrations.json +++ b/app/javascript/dashboard/i18n/locale/cs/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/cs/macros.json b/app/javascript/dashboard/i18n/locale/cs/macros.json index bf550aeea..93ab46439 100644 --- a/app/javascript/dashboard/i18n/locale/cs/macros.json +++ b/app/javascript/dashboard/i18n/locale/cs/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/cs/mfa.json b/app/javascript/dashboard/i18n/locale/cs/mfa.json index 55ea26066..654664e43 100644 --- a/app/javascript/dashboard/i18n/locale/cs/mfa.json +++ b/app/javascript/dashboard/i18n/locale/cs/mfa.json @@ -55,6 +55,10 @@ "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", 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/da/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json index b1d0fd6ad..80ba75957 100644 --- a/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Samtale", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Virksomhed" }, "ATTRIBUTE_TYPES": { "TEXT": "Tekst", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Brugerdefinerede Egenskaber", "CONVERSATION": "Samtale", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Virksomhed" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/da/automation.json b/app/javascript/dashboard/i18n/locale/da/automation.json index 91e8a241d..68834d1ed 100644 --- a/app/javascript/dashboard/i18n/locale/da/automation.json +++ b/app/javascript/dashboard/i18n/locale/da/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Sprog", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Land", + "COMPANY_NAME": "Virksomhed", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/da/bulkActions.json b/app/javascript/dashboard/i18n/locale/da/bulkActions.json index aeb9f341d..a0947c74f 100644 --- a/app/javascript/dashboard/i18n/locale/da/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/da/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Gå tilbage", "ASSIGN_LABEL": "Tildel", + "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", @@ -38,6 +43,8 @@ "NONE": "Ingen", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Tildel det valgte team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/da/chatlist.json index cc48a872b..019b28f14 100644 --- a/app/javascript/dashboard/i18n/locale/da/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/da/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Skjul Citeret Tekst", "SHOW_QUOTED_TEXT": "Vis Citeret Tekst", "MESSAGE_READ": "Læst", - "SENDING": "Sending" + "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 index 31a8157b9..1c0430b6d 100644 --- a/app/javascript/dashboard/i18n/locale/da/companies.json +++ b/app/javascript/dashboard/i18n/locale/da/companies.json @@ -7,6 +7,7 @@ "NAME": "Navn", "DOMAIN": "Domæne", "CREATED_AT": "Oprettet den", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/da/contact.json b/app/javascript/dashboard/i18n/locale/da/contact.json index 3c36d166b..d900a6f59 100644 --- a/app/javascript/dashboard/i18n/locale/da/contact.json +++ b/app/javascript/dashboard/i18n/locale/da/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Land", "CITY": "By", + "COMPANY": "Virksomhed", "CREATED_AT": "Oprettet den", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Refererer link", diff --git a/app/javascript/dashboard/i18n/locale/da/conversation.json b/app/javascript/dashboard/i18n/locale/da/conversation.json index 13fdc950e..26253212f 100644 --- a/app/javascript/dashboard/i18n/locale/da/conversation.json +++ b/app/javascript/dashboard/i18n/locale/da/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Løs", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Tidligere Samtaler", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/da/helpCenter.json b/app/javascript/dashboard/i18n/locale/da/helpCenter.json index 510e84218..360d3f081 100644 --- a/app/javascript/dashboard/i18n/locale/da/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/da/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Udgiv", "DRAFT": "Kladde", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Slet" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Slet", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json index 3007f2022..c77da592f 100644 --- a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot konfiguration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Adgangskode", "PLACE_HOLDER": "Adgangskode" }, - "ENABLE_SSL": "Aktiver SSL" + "ENABLE_SSL": "Aktiver SSL", + "AUTH_MECHANISM": "Godkendelse" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/da/index.js b/app/javascript/dashboard/i18n/locale/da/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/da/index.js +++ b/app/javascript/dashboard/i18n/locale/da/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/da/integrationApps.json b/app/javascript/dashboard/i18n/locale/da/integrationApps.json index 45e0ff27a..f92e12f13 100644 --- a/app/javascript/dashboard/i18n/locale/da/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/da/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Vælg Indbakke" }, "SUBMIT": "Opret", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Annuller" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/da/integrations.json b/app/javascript/dashboard/i18n/locale/da/integrations.json index 3a72c92ba..04d430620 100644 --- a/app/javascript/dashboard/i18n/locale/da/integrations.json +++ b/app/javascript/dashboard/i18n/locale/da/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/da/macros.json b/app/javascript/dashboard/i18n/locale/da/macros.json index c095c17ec..f237e215a 100644 --- a/app/javascript/dashboard/i18n/locale/da/macros.json +++ b/app/javascript/dashboard/i18n/locale/da/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/da/mfa.json b/app/javascript/dashboard/i18n/locale/da/mfa.json index 99940ab7d..473c18302 100644 --- a/app/javascript/dashboard/i18n/locale/da/mfa.json +++ b/app/javascript/dashboard/i18n/locale/da/mfa.json @@ -55,6 +55,10 @@ "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", 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/de/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json index c69c141fd..7c63b9747 100644 --- a/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Konversation", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Firma" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Benutzerdefinierte Attribute", "CONVERSATION": "Konversation", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Firma" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/de/automation.json b/app/javascript/dashboard/i18n/locale/de/automation.json index 0d8dd35a3..6a908b5a1 100644 --- a/app/javascript/dashboard/i18n/locale/de/automation.json +++ b/app/javascript/dashboard/i18n/locale/de/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browsersprache", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Land", + "COMPANY_NAME": "Firma", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Zugewiesener", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/de/bulkActions.json b/app/javascript/dashboard/i18n/locale/de/bulkActions.json index ed6a77908..ccfe8f0d3 100644 --- a/app/javascript/dashboard/i18n/locale/de/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/de/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Möchten Sie die Zuweisung von {conversationCount} {conversationLabel} wirklich aufheben?", "GO_BACK_LABEL": "Zurück", "ASSIGN_LABEL": "Zuordnen", + "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", @@ -38,6 +43,8 @@ "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": "Team konnte nicht zugewiesen werden. Bitte versuche es erneut." } diff --git a/app/javascript/dashboard/i18n/locale/de/chatlist.json b/app/javascript/dashboard/i18n/locale/de/chatlist.json index ce4456067..166730e96 100644 --- a/app/javascript/dashboard/i18n/locale/de/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/de/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Zitierten Text ausblenden", "SHOW_QUOTED_TEXT": "Zitierten Text anzeigen", "MESSAGE_READ": "Lesen", - "SENDING": "Sende" + "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 index 3dcd8ee07..e83924080 100644 --- a/app/javascript/dashboard/i18n/locale/de/companies.json +++ b/app/javascript/dashboard/i18n/locale/de/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Erstellt am", + "LAST_ACTIVITY_AT": "Letzte Aktivität", "CONTACTS_COUNT": "Anzahl Kontakte" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/de/contact.json b/app/javascript/dashboard/i18n/locale/de/contact.json index 19b6b4aa2..893bb273a 100644 --- a/app/javascript/dashboard/i18n/locale/de/contact.json +++ b/app/javascript/dashboard/i18n/locale/de/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifizierer", "COUNTRY": "Land", "CITY": "Stadt", + "COMPANY": "Firma", "CREATED_AT": "Erstellt am", "LAST_ACTIVITY": "Letzte Aktivität", "REFERER_LINK": "Referer-Link", diff --git a/app/javascript/dashboard/i18n/locale/de/conversation.json b/app/javascript/dashboard/i18n/locale/de/conversation.json index 6126e561d..48cdb6bb0 100644 --- a/app/javascript/dashboard/i18n/locale/de/conversation.json +++ b/app/javascript/dashboard/i18n/locale/de/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Anruf beendet", "NOT_ANSWERED_YET": "Noch nicht beantwortet", "THEY_ANSWERED": "Sie antworteten", - "YOU_ANSWERED": "Sie haben beantwortet" + "YOU_ANSWERED": "Sie haben beantwortet", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Fall schließen", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Vorherige Konversationen", "MACROS": "Makros", "LINEAR_ISSUES": "Verknüpfte lineare Probleme", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/de/helpCenter.json b/app/javascript/dashboard/i18n/locale/de/helpCenter.json index 39363ba8f..f34c83337 100644 --- a/app/javascript/dashboard/i18n/locale/de/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/de/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Veröffentlichen", "DRAFT": "Entwürfe", "ARCHIVE": "Archive", + "TRANSLATE": "Übersetzen", "DELETE": "Löschen" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Löschen", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json index 3d2a6cfbd..2f7b503ba 100644 --- a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget-Generator", "BOT_CONFIGURATION": "Bot-Konfiguration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Passwort", "PLACE_HOLDER": "Passwort" }, - "ENABLE_SSL": "SSL aktivieren" + "ENABLE_SSL": "SSL aktivieren", + "AUTH_MECHANISM": "Authentifizierung" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/de/index.js b/app/javascript/dashboard/i18n/locale/de/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/de/index.js +++ b/app/javascript/dashboard/i18n/locale/de/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/de/integrationApps.json b/app/javascript/dashboard/i18n/locale/de/integrationApps.json index 65566b625..cd030e97a 100644 --- a/app/javascript/dashboard/i18n/locale/de/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/de/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Posteingang auswählen" }, "SUBMIT": "Erstellen", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Abbrechen" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/de/integrations.json b/app/javascript/dashboard/i18n/locale/de/integrations.json index fefa6bd84..be2430820 100644 --- a/app/javascript/dashboard/i18n/locale/de/integrations.json +++ b/app/javascript/dashboard/i18n/locale/de/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/de/macros.json b/app/javascript/dashboard/i18n/locale/de/macros.json index a6a0d884e..fb9ccc08b 100644 --- a/app/javascript/dashboard/i18n/locale/de/macros.json +++ b/app/javascript/dashboard/i18n/locale/de/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/de/mfa.json b/app/javascript/dashboard/i18n/locale/de/mfa.json index c0e97be83..a4b3f6146 100644 --- a/app/javascript/dashboard/i18n/locale/de/mfa.json +++ b/app/javascript/dashboard/i18n/locale/de/mfa.json @@ -55,6 +55,10 @@ "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", 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/el/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json index 7f8029977..74fb9976a 100644 --- a/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Συνομιλία", - "CONTACT": "Επαφές" + "CONTACT": "Επαφές", + "COMPANY": "Εταιρία" }, "ATTRIBUTE_TYPES": { "TEXT": "Κείμενο", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Προσαρμοζόμενες Ιδιότητες", "CONVERSATION": "Συνομιλία", - "CONTACT": "Επαφές" + "CONTACT": "Επαφές", + "COMPANY": "Εταιρία" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/el/automation.json b/app/javascript/dashboard/i18n/locale/el/automation.json index dc6eb2e31..858435786 100644 --- a/app/javascript/dashboard/i18n/locale/el/automation.json +++ b/app/javascript/dashboard/i18n/locale/el/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Κανένα", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "Δημιουργήθηκε Συνομιλία", "CONVERSATION_UPDATED": "Η Συνομιλία Ενημερώθηκε", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Γλώσσα Περιήγησης", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Χώρα", + "COMPANY_NAME": "Εταιρία", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Ομάδα", diff --git a/app/javascript/dashboard/i18n/locale/el/bulkActions.json b/app/javascript/dashboard/i18n/locale/el/bulkActions.json index 3012f6582..309b88c9e 100644 --- a/app/javascript/dashboard/i18n/locale/el/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/el/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Είσαστε σίγουροι ότι θέλετε να αφαιρέσετε την αντιστοίχιση {conversationCount} {conversationLabel} στον;", "GO_BACK_LABEL": "Πίσω", "ASSIGN_LABEL": "Αντιστοίχιση", + "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": "Ανάθεση ομάδας", @@ -38,6 +43,8 @@ "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": "Teams assigned successfully.", "ASSIGN_FAILED": "Failed to assign team. Please try again." } diff --git a/app/javascript/dashboard/i18n/locale/el/chatlist.json b/app/javascript/dashboard/i18n/locale/el/chatlist.json index a8da62090..2831cf6b3 100644 --- a/app/javascript/dashboard/i18n/locale/el/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/el/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Απόκρυψη Κειμένου Παράθεσης", "SHOW_QUOTED_TEXT": "Απόκρυψη Κειμένου Παράθεσης", "MESSAGE_READ": "Ανάγνωση", - "SENDING": "Sending" + "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 index 1d5b43e4a..6b664cad8 100644 --- a/app/javascript/dashboard/i18n/locale/el/companies.json +++ b/app/javascript/dashboard/i18n/locale/el/companies.json @@ -7,6 +7,7 @@ "NAME": "Όνομα", "DOMAIN": "Domain", "CREATED_AT": "Δημιουργήθηκε στις", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/el/contact.json b/app/javascript/dashboard/i18n/locale/el/contact.json index c8fa545d1..5508e2d64 100644 --- a/app/javascript/dashboard/i18n/locale/el/contact.json +++ b/app/javascript/dashboard/i18n/locale/el/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Κωδικός", "COUNTRY": "Χώρα", "CITY": "Πόλη", + "COMPANY": "Εταιρία", "CREATED_AT": "Δημιουργήθηκε στις", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Σύνδεσμος αναφοράς", diff --git a/app/javascript/dashboard/i18n/locale/el/conversation.json b/app/javascript/dashboard/i18n/locale/el/conversation.json index 4fa001c0d..51efa7bc4 100644 --- a/app/javascript/dashboard/i18n/locale/el/conversation.json +++ b/app/javascript/dashboard/i18n/locale/el/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Message not available", "CARD": { "SHOW_LABELS": "Προβολή ετικετών", - "HIDE_LABELS": "Απόκρυψη ετικετών" + "HIDE_LABELS": "Απόκρυψη ετικετών", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Επίλυση", @@ -92,6 +95,7 @@ "OPEN": "Περισσότερα", "CLOSE": "Κλείσιμο", "DETAILS": "Λεπτομέρειες", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Snoozed until", "SNOOZED_UNTIL_TOMORROW": "Αναβλήθηκε μέχρι αύριο", "SNOOZED_UNTIL_NEXT_WEEK": "Αναβολή έως την επόμενη εβδομάδα", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Προηγούμενες συνομιλίες", "MACROS": "Μακροεντολές", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/el/helpCenter.json b/app/javascript/dashboard/i18n/locale/el/helpCenter.json index 27664f085..bdf939212 100644 --- a/app/javascript/dashboard/i18n/locale/el/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/el/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Δημοσιευμένο", "DRAFT": "Πρόχειρο", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Διαγραφή" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Διαγραφή", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json index 00100b7c4..3381c1eee 100644 --- a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Δημιουργός Widget", "BOT_CONFIGURATION": "Ρυθμίσεις Bot", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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 αν η διεύθυνση ηλεκτρονικού ταχυδρομείου επαφής είναι διαθέσιμη.", + "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": "Ρυθμίσεις Κιβωτίου", @@ -1000,7 +1011,8 @@ "LABEL": "Κωδικός", "PLACE_HOLDER": "Κωδικός" }, - "ENABLE_SSL": "Ενεργοποίηση SSL" + "ENABLE_SSL": "Ενεργοποίηση SSL", + "AUTH_MECHANISM": "Πιστοποίηση" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/el/index.js b/app/javascript/dashboard/i18n/locale/el/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/el/index.js +++ b/app/javascript/dashboard/i18n/locale/el/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/el/integrationApps.json b/app/javascript/dashboard/i18n/locale/el/integrationApps.json index d0b7e83db..7eb7aaae1 100644 --- a/app/javascript/dashboard/i18n/locale/el/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/el/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Επιλογή Εισερχομένων" }, "SUBMIT": "Δημιουργία", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Άκυρο" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/el/integrations.json b/app/javascript/dashboard/i18n/locale/el/integrations.json index 3111e71c1..296f40520 100644 --- a/app/javascript/dashboard/i18n/locale/el/integrations.json +++ b/app/javascript/dashboard/i18n/locale/el/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/el/macros.json b/app/javascript/dashboard/i18n/locale/el/macros.json index 2c200cfda..c3fcd50ad 100644 --- a/app/javascript/dashboard/i18n/locale/el/macros.json +++ b/app/javascript/dashboard/i18n/locale/el/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Παρουσιάστηκε σφάλμα κατά τη διαγραφή της μακροεντολής. Παρακαλώ δοκιμάστε ξανά αργότερα" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Επεξεργασία μακροεντολής", "API": { @@ -66,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": "Ιδιωτική", diff --git a/app/javascript/dashboard/i18n/locale/el/mfa.json b/app/javascript/dashboard/i18n/locale/el/mfa.json index bbe8a0302..c9af17f90 100644 --- a/app/javascript/dashboard/i18n/locale/el/mfa.json +++ b/app/javascript/dashboard/i18n/locale/el/mfa.json @@ -55,6 +55,10 @@ "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", 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/es/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json index afa710c58..6a14ffdfb 100644 --- a/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversación", - "CONTACT": "Contacto" + "CONTACT": "Contacto", + "COMPANY": "Empresa" }, "ATTRIBUTE_TYPES": { "TEXT": "Texto", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Atributos personalizados", "CONVERSATION": "Conversación", - "CONTACT": "Contacto" + "CONTACT": "Contacto", + "COMPANY": "Empresa" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/es/automation.json b/app/javascript/dashboard/i18n/locale/es/automation.json index f48528d7d..c428f489a 100644 --- a/app/javascript/dashboard/i18n/locale/es/automation.json +++ b/app/javascript/dashboard/i18n/locale/es/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/es/bulkActions.json b/app/javascript/dashboard/i18n/locale/es/bulkActions.json index 3c8913800..d27708e72 100644 --- a/app/javascript/dashboard/i18n/locale/es/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/es/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "¿Está seguro de desasignar {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Volver", "ASSIGN_LABEL": "Asignar", + "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", @@ -38,6 +43,8 @@ "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/chatlist.json b/app/javascript/dashboard/i18n/locale/es/chatlist.json index 1a5569fac..9112b89d2 100644 --- a/app/javascript/dashboard/i18n/locale/es/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/es/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Ocultar texto citado", "SHOW_QUOTED_TEXT": "Mostrar texto citado", "MESSAGE_READ": "Leído", - "SENDING": "Enviando" + "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 index a77cf2eac..0767b6cae 100644 --- a/app/javascript/dashboard/i18n/locale/es/companies.json +++ b/app/javascript/dashboard/i18n/locale/es/companies.json @@ -7,6 +7,7 @@ "NAME": "Nombre", "DOMAIN": "Dominio", "CREATED_AT": "Creado el", + "LAST_ACTIVITY_AT": "Última actividad", "CONTACTS_COUNT": "Número de contactos" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/es/contact.json b/app/javascript/dashboard/i18n/locale/es/contact.json index e47cdd4cf..8142671dd 100644 --- a/app/javascript/dashboard/i18n/locale/es/contact.json +++ b/app/javascript/dashboard/i18n/locale/es/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Idenrificador", "COUNTRY": "País", "CITY": "Ciudad", + "COMPANY": "Empresa", "CREATED_AT": "Creado el", "LAST_ACTIVITY": "Última actividad", "REFERER_LINK": "Enlace de referencia", diff --git a/app/javascript/dashboard/i18n/locale/es/conversation.json b/app/javascript/dashboard/i18n/locale/es/conversation.json index 8e6757f2e..2418a1392 100644 --- a/app/javascript/dashboard/i18n/locale/es/conversation.json +++ b/app/javascript/dashboard/i18n/locale/es/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Unirse a la llamada" }, "HEADER": { "RESOLVE_ACTION": "Resolver", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Conversaciones anteriores", "MACROS": "Macros", "LINEAR_ISSUES": "Problemas lineales vinculados", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/es/helpCenter.json b/app/javascript/dashboard/i18n/locale/es/helpCenter.json index c9565ecf1..9dbf7d92c 100644 --- a/app/javascript/dashboard/i18n/locale/es/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/es/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publicar", "DRAFT": "Borrador", "ARCHIVE": "Archive", + "TRANSLATE": "Traducir", "DELETE": "Eliminar" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Eliminar", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json index 8f8dc9454..980aa606e 100644 --- a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Constructor de Widget", "BOT_CONFIGURATION": "Configuración del bot", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "Encuestas de Satisfacción" + "CSAT": "Encuestas de Satisfacción", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Contraseña", "PLACE_HOLDER": "Contraseña" }, - "ENABLE_SSL": "Activar SSL" + "ENABLE_SSL": "Activar SSL", + "AUTH_MECHANISM": "Autenticación" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/es/index.js b/app/javascript/dashboard/i18n/locale/es/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/es/index.js +++ b/app/javascript/dashboard/i18n/locale/es/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/es/integrationApps.json b/app/javascript/dashboard/i18n/locale/es/integrationApps.json index 631a356b1..6c2269aff 100644 --- a/app/javascript/dashboard/i18n/locale/es/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/es/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Seleccione una bandeja de entrada" }, "SUBMIT": "Crear", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancelar" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/es/integrations.json b/app/javascript/dashboard/i18n/locale/es/integrations.json index ff34d1251..f6c9ed63c 100644 --- a/app/javascript/dashboard/i18n/locale/es/integrations.json +++ b/app/javascript/dashboard/i18n/locale/es/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/es/macros.json b/app/javascript/dashboard/i18n/locale/es/macros.json index 956d37e48..42c628897 100644 --- a/app/javascript/dashboard/i18n/locale/es/macros.json +++ b/app/javascript/dashboard/i18n/locale/es/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/es/mfa.json b/app/javascript/dashboard/i18n/locale/es/mfa.json index 3f18d0413..0a395e2bc 100644 --- a/app/javascript/dashboard/i18n/locale/es/mfa.json +++ b/app/javascript/dashboard/i18n/locale/es/mfa.json @@ -55,6 +55,10 @@ "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", 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/et/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json index e83950b14..b050de25f 100644 --- a/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Ettevõte" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Ettevõte" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/et/automation.json b/app/javascript/dashboard/i18n/locale/et/automation.json index 7cea69c5e..60573dce0 100644 --- a/app/javascript/dashboard/i18n/locale/et/automation.json +++ b/app/javascript/dashboard/i18n/locale/et/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/et/bulkActions.json b/app/javascript/dashboard/i18n/locale/et/bulkActions.json index d736201de..2170173f2 100644 --- a/app/javascript/dashboard/i18n/locale/et/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/et/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/et/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/et/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/et/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0d64a4abd..598dfd5d6 100644 --- a/app/javascript/dashboard/i18n/locale/et/companies.json +++ b/app/javascript/dashboard/i18n/locale/et/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/et/contact.json b/app/javascript/dashboard/i18n/locale/et/contact.json index a83a0af4c..db03757ef 100644 --- a/app/javascript/dashboard/i18n/locale/et/contact.json +++ b/app/javascript/dashboard/i18n/locale/et/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifikaator", "COUNTRY": "Riik", "CITY": "Linn", + "COMPANY": "Ettevõte", "CREATED_AT": "Loodud", "LAST_ACTIVITY": "Viimane tegevus", "REFERER_LINK": "Viitaja link", diff --git a/app/javascript/dashboard/i18n/locale/et/conversation.json b/app/javascript/dashboard/i18n/locale/et/conversation.json index d220e4801..e8f04d96d 100644 --- a/app/javascript/dashboard/i18n/locale/et/conversation.json +++ b/app/javascript/dashboard/i18n/locale/et/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Sõnum pole saadaval", "CARD": { "SHOW_LABELS": "Näita silte", - "HIDE_LABELS": "Peida sildid" + "HIDE_LABELS": "Peida sildid", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Sissetulev kõne", @@ -82,7 +83,9 @@ "CALL_ENDED": "Kõne lõppenud", "NOT_ANSWERED_YET": "Veel vastamata", "THEY_ANSWERED": "Nad vastasid", - "YOU_ANSWERED": "Sa vastasid" + "YOU_ANSWERED": "Sa vastasid", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Liitu kõnega" }, "HEADER": { "RESOLVE_ACTION": "Lahenda", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Eelnevad vestlused", "MACROS": "Makrod", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/et/helpCenter.json b/app/javascript/dashboard/i18n/locale/et/helpCenter.json index 4bb4bbb3b..fbe78738a 100644 --- a/app/javascript/dashboard/i18n/locale/et/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/et/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Avalda", "DRAFT": "Mustand", "ARCHIVE": "Arhiveeri", + "TRANSLATE": "Tõlgi", "DELETE": "Kustuta" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json index 51c7087a5..b3a509860 100644 --- a/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Vidina koostaja", "BOT_CONFIGURATION": "Boti seadistamine", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Hääl" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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", @@ -1000,7 +1011,8 @@ "LABEL": "Parool", "PLACE_HOLDER": "Parool" }, - "ENABLE_SSL": "Luba SSL" + "ENABLE_SSL": "Luba SSL", + "AUTH_MECHANISM": "Autentimine" }, "MICROSOFT": { "TITLE": "Microsoft", 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 index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/et/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/et/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/et/integrations.json b/app/javascript/dashboard/i18n/locale/et/integrations.json index 0ac64ef6a..54b71051a 100644 --- a/app/javascript/dashboard/i18n/locale/et/integrations.json +++ b/app/javascript/dashboard/i18n/locale/et/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/et/macros.json b/app/javascript/dashboard/i18n/locale/et/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/et/macros.json +++ b/app/javascript/dashboard/i18n/locale/et/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/et/mfa.json b/app/javascript/dashboard/i18n/locale/et/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/et/mfa.json +++ b/app/javascript/dashboard/i18n/locale/et/mfa.json @@ -55,6 +55,10 @@ "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", 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/fa/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json index e368d472e..151016a24 100644 --- a/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "گفتگو", - "CONTACT": "مخاطب" + "CONTACT": "مخاطب", + "COMPANY": "شرکت" }, "ATTRIBUTE_TYPES": { "TEXT": "متن", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "ویژگی‌های سفارشی", "CONVERSATION": "گفتگو", - "CONTACT": "مخاطب" + "CONTACT": "مخاطب", + "COMPANY": "شرکت" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/fa/automation.json b/app/javascript/dashboard/i18n/locale/fa/automation.json index 619911264..7d4f2b663 100644 --- a/app/javascript/dashboard/i18n/locale/fa/automation.json +++ b/app/javascript/dashboard/i18n/locale/fa/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "هیچکدام", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "گفتگو ایجاد شد", "CONVERSATION_UPDATED": "گفتگو به روز شد", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "مرور زبان", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "کشور", + "COMPANY_NAME": "شرکت", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "مسئول", "TEAM_NAME": "تیم‌", diff --git a/app/javascript/dashboard/i18n/locale/fa/bulkActions.json b/app/javascript/dashboard/i18n/locale/fa/bulkActions.json index 90def79a3..876d88f0f 100644 --- a/app/javascript/dashboard/i18n/locale/fa/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/fa/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "آیا مطمئنید که {conversationCount} {conversationLabel} را می‌خواهید اختصاص را لغو کنید؟", "GO_BACK_LABEL": "بازگشت", "ASSIGN_LABEL": "اختصاص دادن", + "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": "تیم را تعیین کنید", @@ -38,6 +43,8 @@ "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": "Teams assigned successfully.", "ASSIGN_FAILED": "اختصاص تیم با موفقیت انجام نشد، لطفا دوباره امتحان کنید." } diff --git a/app/javascript/dashboard/i18n/locale/fa/chatlist.json b/app/javascript/dashboard/i18n/locale/fa/chatlist.json index e70a1744e..b590b604c 100644 --- a/app/javascript/dashboard/i18n/locale/fa/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/fa/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "مخفی کردن متن نقل قول شده", "SHOW_QUOTED_TEXT": "نمایش متن نقل قول", "MESSAGE_READ": "خوانده شده", - "SENDING": "در حال ارسال" + "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 index 4a488cb4c..654b9fc39 100644 --- a/app/javascript/dashboard/i18n/locale/fa/companies.json +++ b/app/javascript/dashboard/i18n/locale/fa/companies.json @@ -7,6 +7,7 @@ "NAME": "نام", "DOMAIN": "دامنه", "CREATED_AT": "ایجاد شده در", + "LAST_ACTIVITY_AT": "آخرین فعالیت", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "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" } diff --git a/app/javascript/dashboard/i18n/locale/fa/contact.json b/app/javascript/dashboard/i18n/locale/fa/contact.json index c6428b5ca..2a42fb278 100644 --- a/app/javascript/dashboard/i18n/locale/fa/contact.json +++ b/app/javascript/dashboard/i18n/locale/fa/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "شناسه", "COUNTRY": "کشور", "CITY": "شهر", + "COMPANY": "شرکت", "CREATED_AT": "ایجاد شده در", "LAST_ACTIVITY": "آخرین فعالیت", "REFERER_LINK": "پیوند ارجاع‌دهنده", diff --git a/app/javascript/dashboard/i18n/locale/fa/conversation.json b/app/javascript/dashboard/i18n/locale/fa/conversation.json index 5ce6b8a43..cdd3733be 100644 --- a/app/javascript/dashboard/i18n/locale/fa/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fa/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "پیام در دسترس نیست", "CARD": { "SHOW_LABELS": "مشاهده کردن برچسب‌ها", - "HIDE_LABELS": "پنهان کردن برچسب‌ها" + "HIDE_LABELS": "پنهان کردن برچسب‌ها", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "حل شد", @@ -92,6 +95,7 @@ "OPEN": "بیشتر", "CLOSE": "بستن", "DETAILS": "جزئیات", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "به تعویق افتاده تا", "SNOOZED_UNTIL_TOMORROW": "تا فردا به تعویق افتاد", "SNOOZED_UNTIL_NEXT_WEEK": "تا هفته آینده به تعویق افتاد", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "گفتگوهای قبلی", "MACROS": "ماکروها", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/fa/helpCenter.json b/app/javascript/dashboard/i18n/locale/fa/helpCenter.json index d020f4a7c..7d4966529 100644 --- a/app/javascript/dashboard/i18n/locale/fa/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/fa/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "انتشار", "DRAFT": "پیش‌نویس", "ARCHIVE": "Archive", + "TRANSLATE": "ترجمه", "DELETE": "حذف" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "ترجمه", + "DELETE": "حذف", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json index a45d23790..d3447414f 100644 --- a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "سازنده ابزارک", "BOT_CONFIGURATION": "پیکربندی ربات", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "رضایت مشتری" + "CSAT": "رضایت مشتری", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "تنظیمات صندوق ورودی", @@ -1000,7 +1011,8 @@ "LABEL": "رمز عبور", "PLACE_HOLDER": "رمز عبور" }, - "ENABLE_SSL": "فعال کردن SSL" + "ENABLE_SSL": "فعال کردن SSL", + "AUTH_MECHANISM": "احراز هویت" }, "MICROSOFT": { "TITLE": "مایکروسافت", diff --git a/app/javascript/dashboard/i18n/locale/fa/index.js b/app/javascript/dashboard/i18n/locale/fa/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/fa/index.js +++ b/app/javascript/dashboard/i18n/locale/fa/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/fa/integrationApps.json b/app/javascript/dashboard/i18n/locale/fa/integrationApps.json index 24f8be18c..a0243b4d3 100644 --- a/app/javascript/dashboard/i18n/locale/fa/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/fa/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "انتخاب صندوق ورودی" }, "SUBMIT": "ايجاد كردن", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "انصراف" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/fa/integrations.json b/app/javascript/dashboard/i18n/locale/fa/integrations.json index 472b33d73..796985aaf 100644 --- a/app/javascript/dashboard/i18n/locale/fa/integrations.json +++ b/app/javascript/dashboard/i18n/locale/fa/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/fa/macros.json b/app/javascript/dashboard/i18n/locale/fa/macros.json index e61541f2c..8611bac30 100644 --- a/app/javascript/dashboard/i18n/locale/fa/macros.json +++ b/app/javascript/dashboard/i18n/locale/fa/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "هنگام حذف ماکرو خطایی رخ داد. لطفا بعدا دوباره امتحان کنید" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "ویرایش ماکرو", "API": { @@ -66,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": "خصوصی", diff --git a/app/javascript/dashboard/i18n/locale/fa/mfa.json b/app/javascript/dashboard/i18n/locale/fa/mfa.json index b04eedd37..cdb33555b 100644 --- a/app/javascript/dashboard/i18n/locale/fa/mfa.json +++ b/app/javascript/dashboard/i18n/locale/fa/mfa.json @@ -55,6 +55,10 @@ "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", 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/fi/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json index 8087fda09..ffe1d6246 100644 --- a/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Yritys" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Mukautetut attribuutit", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Yritys" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/fi/automation.json b/app/javascript/dashboard/i18n/locale/fi/automation.json index 43c1a6a31..308ce35c8 100644 --- a/app/javascript/dashboard/i18n/locale/fi/automation.json +++ b/app/javascript/dashboard/i18n/locale/fi/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Yritys", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/fi/bulkActions.json b/app/javascript/dashboard/i18n/locale/fi/bulkActions.json index bc5019095..d7a05e6f6 100644 --- a/app/javascript/dashboard/i18n/locale/fi/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/fi/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Mene takaisin", "ASSIGN_LABEL": "Delegoi", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/fi/chatlist.json index 4056a01f2..3ba1e9bf0 100644 --- a/app/javascript/dashboard/i18n/locale/fi/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/fi/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index af5665d06..dbdf39f8b 100644 --- a/app/javascript/dashboard/i18n/locale/fi/companies.json +++ b/app/javascript/dashboard/i18n/locale/fi/companies.json @@ -7,6 +7,7 @@ "NAME": "Nimi", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/fi/contact.json b/app/javascript/dashboard/i18n/locale/fi/contact.json index c3db43d17..dcbf58344 100644 --- a/app/javascript/dashboard/i18n/locale/fi/contact.json +++ b/app/javascript/dashboard/i18n/locale/fi/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Yritys", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/fi/conversation.json b/app/javascript/dashboard/i18n/locale/fi/conversation.json index 7aa774aec..f5017d16e 100644 --- a/app/javascript/dashboard/i18n/locale/fi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fi/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Ratkaise", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Edelliset keskustelut", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/fi/helpCenter.json b/app/javascript/dashboard/i18n/locale/fi/helpCenter.json index 26dbb291c..02ba84edd 100644 --- a/app/javascript/dashboard/i18n/locale/fi/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/fi/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Poista" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Poista", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json index 86adbffc6..c2ddfdb71 100644 --- a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Salasana", "PLACE_HOLDER": "Salasana" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/fi/index.js b/app/javascript/dashboard/i18n/locale/fi/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/fi/index.js +++ b/app/javascript/dashboard/i18n/locale/fi/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/fi/integrationApps.json b/app/javascript/dashboard/i18n/locale/fi/integrationApps.json index e9908629a..4b6d6d2b0 100644 --- a/app/javascript/dashboard/i18n/locale/fi/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/fi/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Luo", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Peruuta" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/fi/integrations.json b/app/javascript/dashboard/i18n/locale/fi/integrations.json index cc0c0a0e8..ff721724a 100644 --- a/app/javascript/dashboard/i18n/locale/fi/integrations.json +++ b/app/javascript/dashboard/i18n/locale/fi/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/fi/macros.json b/app/javascript/dashboard/i18n/locale/fi/macros.json index b053ae8c8..2b9c81366 100644 --- a/app/javascript/dashboard/i18n/locale/fi/macros.json +++ b/app/javascript/dashboard/i18n/locale/fi/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/fi/mfa.json b/app/javascript/dashboard/i18n/locale/fi/mfa.json index 1af0654f5..49dede653 100644 --- a/app/javascript/dashboard/i18n/locale/fi/mfa.json +++ b/app/javascript/dashboard/i18n/locale/fi/mfa.json @@ -55,6 +55,10 @@ "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", 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/fr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json index f5a68599b..9777005aa 100644 --- a/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Société" }, "ATTRIBUTE_TYPES": { "TEXT": "Texte", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Attributs personnalisés", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Société" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/fr/automation.json b/app/javascript/dashboard/i18n/locale/fr/automation.json index 8455de077..fe3cdb99f 100644 --- a/app/javascript/dashboard/i18n/locale/fr/automation.json +++ b/app/javascript/dashboard/i18n/locale/fr/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/fr/bulkActions.json b/app/javascript/dashboard/i18n/locale/fr/bulkActions.json index b9a8f645b..59d3e3c91 100644 --- a/app/javascript/dashboard/i18n/locale/fr/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/fr/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Êtes-vous sûr de vouloir retirer l'affectation de {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Retour", "ASSIGN_LABEL": "Assigner", + "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", @@ -38,6 +43,8 @@ "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_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/chatlist.json b/app/javascript/dashboard/i18n/locale/fr/chatlist.json index 5126c29f7..54c508fcf 100644 --- a/app/javascript/dashboard/i18n/locale/fr/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/fr/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Masquer le texte cité", "SHOW_QUOTED_TEXT": "Afficher le texte cité", "MESSAGE_READ": "Lu", - "SENDING": "Sending" + "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 index 3f9c1fc57..e5a8472b4 100644 --- a/app/javascript/dashboard/i18n/locale/fr/companies.json +++ b/app/javascript/dashboard/i18n/locale/fr/companies.json @@ -7,6 +7,7 @@ "NAME": "Nom", "DOMAIN": "Domaine", "CREATED_AT": "Créé le", + "LAST_ACTIVITY_AT": "Dernière activité", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/fr/contact.json b/app/javascript/dashboard/i18n/locale/fr/contact.json index 36e12a1b2..b0fbf700b 100644 --- a/app/javascript/dashboard/i18n/locale/fr/contact.json +++ b/app/javascript/dashboard/i18n/locale/fr/contact.json @@ -386,6 +386,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/fr/conversation.json b/app/javascript/dashboard/i18n/locale/fr/conversation.json index 38d95de5a..2451b4a49 100644 --- a/app/javascript/dashboard/i18n/locale/fr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/fr/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Appel terminé", "NOT_ANSWERED_YET": "Pas encore répondu", "THEY_ANSWERED": "Il a répondu", - "YOU_ANSWERED": "Vous avez répondu" + "YOU_ANSWERED": "Vous avez répondu", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Résoudre", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Conversations précédentes", "MACROS": "Macros", "LINEAR_ISSUES": "Problèmes Linear liés", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/fr/helpCenter.json b/app/javascript/dashboard/i18n/locale/fr/helpCenter.json index e20668ef2..57f2d6245 100644 --- a/app/javascript/dashboard/i18n/locale/fr/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/fr/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publier", "DRAFT": "Brouillon", "ARCHIVE": "Archive", + "TRANSLATE": "Traduire", "DELETE": "Supprimer" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Supprimer", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json index a96e4de0b..1fd73270c 100644 --- a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Constructeur de Widget", "BOT_CONFIGURATION": "Configuration du bot", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Mot de passe", "PLACE_HOLDER": "Mot de passe" }, - "ENABLE_SSL": "Activer SSL" + "ENABLE_SSL": "Activer SSL", + "AUTH_MECHANISM": "Identification" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/fr/index.js b/app/javascript/dashboard/i18n/locale/fr/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/fr/index.js +++ b/app/javascript/dashboard/i18n/locale/fr/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/fr/integrationApps.json b/app/javascript/dashboard/i18n/locale/fr/integrationApps.json index 7fd0223f4..ed8a4eb36 100644 --- a/app/javascript/dashboard/i18n/locale/fr/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/fr/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Sélectionner la boîte de réception" }, "SUBMIT": "Créer", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Annuler" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/fr/integrations.json b/app/javascript/dashboard/i18n/locale/fr/integrations.json index 31484f430..6fcf86fc0 100644 --- a/app/javascript/dashboard/i18n/locale/fr/integrations.json +++ b/app/javascript/dashboard/i18n/locale/fr/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/fr/macros.json b/app/javascript/dashboard/i18n/locale/fr/macros.json index 19b4649e0..d82036803 100644 --- a/app/javascript/dashboard/i18n/locale/fr/macros.json +++ b/app/javascript/dashboard/i18n/locale/fr/macros.json @@ -49,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": { @@ -66,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é", diff --git a/app/javascript/dashboard/i18n/locale/fr/mfa.json b/app/javascript/dashboard/i18n/locale/fr/mfa.json index f9a59d131..92a30043d 100644 --- a/app/javascript/dashboard/i18n/locale/fr/mfa.json +++ b/app/javascript/dashboard/i18n/locale/fr/mfa.json @@ -55,6 +55,10 @@ "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", 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..b3ab630eb --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/fr/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": "Courriel", + "YOUR_ROLE": "Your Role", + "WEBSITE": "Site internet", + "LANGUAGE": "Langue", + "TIMEZONE": "Fuseau horaire", + "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": "Sélectionnez le fuseau horaire", + "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": "Enregistrement en cours...", + "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/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json index 8dbf88721..fb9abd8d9 100644 --- a/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "שיחה", - "CONTACT": "איש קשר" + "CONTACT": "איש קשר", + "COMPANY": "חברה" }, "ATTRIBUTE_TYPES": { "TEXT": "טקסט", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "מאפיינים מותאמים אישית", "CONVERSATION": "שיחה", - "CONTACT": "איש קשר" + "CONTACT": "איש קשר", + "COMPANY": "חברה" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/he/automation.json b/app/javascript/dashboard/i18n/locale/he/automation.json index eab82a584..f83f08ed1 100644 --- a/app/javascript/dashboard/i18n/locale/he/automation.json +++ b/app/javascript/dashboard/i18n/locale/he/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "נדרשת לפחות פעולה אחת" }, "NONE_OPTION": "אין", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "שיחה נוצרה", "CONVERSATION_UPDATED": "שיחה עודכנה", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "שפת דפדפן", "MAIL_SUBJECT": "נושא דוא\"ל", "COUNTRY_NAME": "מדינה", + "COMPANY_NAME": "חברה", "REFERER_LINK": "קישור מפנה", "ASSIGNEE_NAME": "מוקצה", "TEAM_NAME": "צוות", diff --git a/app/javascript/dashboard/i18n/locale/he/bulkActions.json b/app/javascript/dashboard/i18n/locale/he/bulkActions.json index f975ff9a2..2678e646f 100644 --- a/app/javascript/dashboard/i18n/locale/he/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/he/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "האם אתה בטוח שברצונך לבטל שיוך {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "חזור", "ASSIGN_LABEL": "שייך", + "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": "שייך צוות", @@ -38,6 +43,8 @@ "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": "ההקצאה של הצוות נכשלה. אנא נסה שוב." } diff --git a/app/javascript/dashboard/i18n/locale/he/chatlist.json b/app/javascript/dashboard/i18n/locale/he/chatlist.json index 13235c5b5..7eb97523e 100644 --- a/app/javascript/dashboard/i18n/locale/he/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/he/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "הסתר טקסט מצוטט", "SHOW_QUOTED_TEXT": "הצג טקסט מצוטט", "MESSAGE_READ": "נקרא", - "SENDING": "שולח" + "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 index 1b721abf0..902286c76 100644 --- a/app/javascript/dashboard/i18n/locale/he/companies.json +++ b/app/javascript/dashboard/i18n/locale/he/companies.json @@ -7,6 +7,7 @@ "NAME": "שם", "DOMAIN": "דומיין", "CREATED_AT": "נוצר בזמן", + "LAST_ACTIVITY_AT": "פעילות אחרונה", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/he/contact.json b/app/javascript/dashboard/i18n/locale/he/contact.json index e32bbf26f..b886ebd44 100644 --- a/app/javascript/dashboard/i18n/locale/he/contact.json +++ b/app/javascript/dashboard/i18n/locale/he/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "מזהה", "COUNTRY": "מדינה", "CITY": "עיר", + "COMPANY": "חברה", "CREATED_AT": "נוצר בזמן", "LAST_ACTIVITY": "פעילות אחרונה", "REFERER_LINK": "קישור מפנה", diff --git a/app/javascript/dashboard/i18n/locale/he/conversation.json b/app/javascript/dashboard/i18n/locale/he/conversation.json index a93f63e8b..8cb92ed12 100644 --- a/app/javascript/dashboard/i18n/locale/he/conversation.json +++ b/app/javascript/dashboard/i18n/locale/he/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "ההודעה אינה זמינה", "CARD": { "SHOW_LABELS": "הצג תויות", - "HIDE_LABELS": "הסתר תוויות" + "HIDE_LABELS": "הסתר תוויות", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "שיחה נכנסת", @@ -82,7 +83,9 @@ "CALL_ENDED": "השיחה הסתיימה", "NOT_ANSWERED_YET": "עדיין לא נענה", "THEY_ANSWERED": "הם ענו", - "YOU_ANSWERED": "אתה ענית" + "YOU_ANSWERED": "אתה ענית", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "פתרון", @@ -92,6 +95,7 @@ "OPEN": "עוד", "CLOSE": "סגור", "DETAILS": "פרטים", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "מושתק עד", "SNOOZED_UNTIL_TOMORROW": "נמנם עד מחר", "SNOOZED_UNTIL_NEXT_WEEK": "נמנם עד שבוע הבא", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "שיחות קודמות", "MACROS": "מאקרו", "LINEAR_ISSUES": "בעיות Linear מקושרות", - "SHOPIFY_ORDERS": "הזמנות Shopify" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/he/helpCenter.json b/app/javascript/dashboard/i18n/locale/he/helpCenter.json index 57448684d..98b3abe97 100644 --- a/app/javascript/dashboard/i18n/locale/he/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/he/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "פרסם", "DRAFT": "טיוטה", "ARCHIVE": "ארכיון", + "TRANSLATE": "תרגום", "DELETE": "מחק" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "תרגום", + "DELETE": "מחק", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json index 64c6f3f06..47182e2a8 100644 --- a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "בונה יישומונים", "BOT_CONFIGURATION": "הגדרות בוט", "ACCOUNT_HEALTH": "תקינות חשבון", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "קול" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "שיחות ימשיכו באמצעות הדוא\"ל אם לאיש הקשר קיימת כתובת דוא\"ל תקנית.", + "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": "הגדרות תיבת דואר נכנס", @@ -1000,7 +1011,8 @@ "LABEL": "סיסמה", "PLACE_HOLDER": "סיסמה" }, - "ENABLE_SSL": "הפעל SSL" + "ENABLE_SSL": "הפעל SSL", + "AUTH_MECHANISM": "אימות" }, "MICROSOFT": { "TITLE": "מיקרוסופט", diff --git a/app/javascript/dashboard/i18n/locale/he/index.js b/app/javascript/dashboard/i18n/locale/he/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/he/index.js +++ b/app/javascript/dashboard/i18n/locale/he/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/he/integrationApps.json b/app/javascript/dashboard/i18n/locale/he/integrationApps.json index 571b85e4a..8972360c7 100644 --- a/app/javascript/dashboard/i18n/locale/he/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/he/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "בחר תיבת דואר" }, "SUBMIT": "צור", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "ביטול" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/he/integrations.json b/app/javascript/dashboard/i18n/locale/he/integrations.json index ebdad2ec4..9c0cb4661 100644 --- a/app/javascript/dashboard/i18n/locale/he/integrations.json +++ b/app/javascript/dashboard/i18n/locale/he/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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": "שאלות נפוצות אלה נוצרו ישירות מהמסמך." @@ -792,11 +838,15 @@ }, "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": "מסמך בקפטן משמש כמקור ידע עבור העוזר. על ידי חיבור מרכז העזרה או המדריכים שלך, קפטן יכול לנתח את התוכן ולספק תגובות מדויקות לשאילתות לקוחות." diff --git a/app/javascript/dashboard/i18n/locale/he/macros.json b/app/javascript/dashboard/i18n/locale/he/macros.json index 663167e51..f985ad512 100644 --- a/app/javascript/dashboard/i18n/locale/he/macros.json +++ b/app/javascript/dashboard/i18n/locale/he/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "אירעה שגיאה במחיקת המאקרו. אנא נסה שוב מאוחר יותר" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "ערוך מאקרו", "API": { @@ -66,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": "פרטי", diff --git a/app/javascript/dashboard/i18n/locale/he/mfa.json b/app/javascript/dashboard/i18n/locale/he/mfa.json index 0533cf425..bf7bc87c4 100644 --- a/app/javascript/dashboard/i18n/locale/he/mfa.json +++ b/app/javascript/dashboard/i18n/locale/he/mfa.json @@ -55,6 +55,10 @@ "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", 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/hi/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json index e83950b14..31b175812 100644 --- a/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/hi/automation.json b/app/javascript/dashboard/i18n/locale/hi/automation.json index 46f4a520e..2c4852dc8 100644 --- a/app/javascript/dashboard/i18n/locale/hi/automation.json +++ b/app/javascript/dashboard/i18n/locale/hi/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Company", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/hi/bulkActions.json b/app/javascript/dashboard/i18n/locale/hi/bulkActions.json index d736201de..2472a9288 100644 --- a/app/javascript/dashboard/i18n/locale/hi/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/hi/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/hi/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/hi/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/hi/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0d64a4abd..534205038 100644 --- a/app/javascript/dashboard/i18n/locale/hi/companies.json +++ b/app/javascript/dashboard/i18n/locale/hi/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/hi/contact.json b/app/javascript/dashboard/i18n/locale/hi/contact.json index e58921a5e..94471638e 100644 --- a/app/javascript/dashboard/i18n/locale/hi/contact.json +++ b/app/javascript/dashboard/i18n/locale/hi/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Company", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/hi/conversation.json b/app/javascript/dashboard/i18n/locale/hi/conversation.json index 695ab1ae4..a06d91b81 100644 --- a/app/javascript/dashboard/i18n/locale/hi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hi/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resolve", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/hi/helpCenter.json b/app/javascript/dashboard/i18n/locale/hi/helpCenter.json index c7989a5bd..28663c015 100644 --- a/app/javascript/dashboard/i18n/locale/hi/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/hi/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Delete" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json index f5dd1270e..a1fcd201b 100644 --- a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Password", "PLACE_HOLDER": "Password" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/hi/index.js b/app/javascript/dashboard/i18n/locale/hi/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/hi/index.js +++ b/app/javascript/dashboard/i18n/locale/hi/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/hi/integrationApps.json b/app/javascript/dashboard/i18n/locale/hi/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/hi/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/hi/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/hi/integrations.json b/app/javascript/dashboard/i18n/locale/hi/integrations.json index 0be5b2278..60c98f202 100644 --- a/app/javascript/dashboard/i18n/locale/hi/integrations.json +++ b/app/javascript/dashboard/i18n/locale/hi/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/hi/macros.json b/app/javascript/dashboard/i18n/locale/hi/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/hi/macros.json +++ b/app/javascript/dashboard/i18n/locale/hi/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/hi/mfa.json b/app/javascript/dashboard/i18n/locale/hi/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/hi/mfa.json +++ b/app/javascript/dashboard/i18n/locale/hi/mfa.json @@ -55,6 +55,10 @@ "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", 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/hr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json index ea593f67f..99fd0ee2b 100644 --- a/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "ATTRIBUTE_TYPES": { "TEXT": "Tekst", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/hr/automation.json b/app/javascript/dashboard/i18n/locale/hr/automation.json index 4de4cfd09..979ecfa91 100644 --- a/app/javascript/dashboard/i18n/locale/hr/automation.json +++ b/app/javascript/dashboard/i18n/locale/hr/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Company", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Tim", diff --git a/app/javascript/dashboard/i18n/locale/hr/bulkActions.json b/app/javascript/dashboard/i18n/locale/hr/bulkActions.json index d736201de..63153e70d 100644 --- a/app/javascript/dashboard/i18n/locale/hr/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/hr/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/hr/chatlist.json index f3db115ad..a7574ef2c 100644 --- a/app/javascript/dashboard/i18n/locale/hr/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/hr/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0d1235c9e..d93ebe563 100644 --- a/app/javascript/dashboard/i18n/locale/hr/companies.json +++ b/app/javascript/dashboard/i18n/locale/hr/companies.json @@ -7,6 +7,7 @@ "NAME": "Ime", "DOMAIN": "Domain", "CREATED_AT": "Kreirano", + "LAST_ACTIVITY_AT": "Zadnja aktivnost", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/hr/contact.json b/app/javascript/dashboard/i18n/locale/hr/contact.json index c388d8978..3c0e33891 100644 --- a/app/javascript/dashboard/i18n/locale/hr/contact.json +++ b/app/javascript/dashboard/i18n/locale/hr/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Company", "CREATED_AT": "Kreirano", "LAST_ACTIVITY": "Zadnja aktivnost", "REFERER_LINK": "Povezica preporuke", diff --git a/app/javascript/dashboard/i18n/locale/hr/conversation.json b/app/javascript/dashboard/i18n/locale/hr/conversation.json index afd068b54..f58308997 100644 --- a/app/javascript/dashboard/i18n/locale/hr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hr/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resolve", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json index ae07eff13..80ad350ee 100644 --- a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Objavi", "DRAFT": "Skica", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Izbriši" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Izbriši", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json index 40052a8b3..4386d2915 100644 --- a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Password", "PLACE_HOLDER": "Password" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/hr/index.js b/app/javascript/dashboard/i18n/locale/hr/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/hr/index.js +++ b/app/javascript/dashboard/i18n/locale/hr/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/hr/integrationApps.json b/app/javascript/dashboard/i18n/locale/hr/integrationApps.json index 32c6c380c..8dc949df1 100644 --- a/app/javascript/dashboard/i18n/locale/hr/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/hr/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Odustani" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/hr/integrations.json b/app/javascript/dashboard/i18n/locale/hr/integrations.json index 269c4faac..e78752c67 100644 --- a/app/javascript/dashboard/i18n/locale/hr/integrations.json +++ b/app/javascript/dashboard/i18n/locale/hr/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/hr/macros.json b/app/javascript/dashboard/i18n/locale/hr/macros.json index 188e2cedf..b28444026 100644 --- a/app/javascript/dashboard/i18n/locale/hr/macros.json +++ b/app/javascript/dashboard/i18n/locale/hr/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/hr/mfa.json b/app/javascript/dashboard/i18n/locale/hr/mfa.json index 8201b7be6..bcb175950 100644 --- a/app/javascript/dashboard/i18n/locale/hr/mfa.json +++ b/app/javascript/dashboard/i18n/locale/hr/mfa.json @@ -55,6 +55,10 @@ "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", 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/hu/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json index 543efe3b2..6a1a6945f 100644 --- a/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Beszélgetés", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Cég" }, "ATTRIBUTE_TYPES": { "TEXT": "Szöveg", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Egyedi atribútumok", "CONVERSATION": "Beszélgetés", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Cég" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/hu/automation.json b/app/javascript/dashboard/i18n/locale/hu/automation.json index 9e7b528ba..679fd6f2e 100644 --- a/app/javascript/dashboard/i18n/locale/hu/automation.json +++ b/app/javascript/dashboard/i18n/locale/hu/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/hu/bulkActions.json b/app/javascript/dashboard/i18n/locale/hu/bulkActions.json index b9fa2ebed..b132a0e56 100644 --- a/app/javascript/dashboard/i18n/locale/hu/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/hu/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Visszaugrás", "ASSIGN_LABEL": "Hozzárendelés", + "NONE": "Nincs", + "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": "Igen", + "CANCEL": "Mégse", "SEARCH_INPUT_PLACEHOLDER": "Keresés", "ASSIGN_AGENT_TOOLTIP": "Ügynök hozzárendelése", "ASSIGN_TEAM_TOOLTIP": "Csapat hozzárendelése", @@ -38,6 +43,8 @@ "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_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": "Nem sikerült csapatot kijelölni. Kérjük, próbálja újra." } diff --git a/app/javascript/dashboard/i18n/locale/hu/chatlist.json b/app/javascript/dashboard/i18n/locale/hu/chatlist.json index 5dffe7d1c..94704a1f5 100644 --- a/app/javascript/dashboard/i18n/locale/hu/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/hu/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Idézett szöveg eltűntetése", "SHOW_QUOTED_TEXT": "Idézett szöveg megjelenítése", "MESSAGE_READ": "Olvasott", - "SENDING": "Sending" + "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 index c26dd0d0a..fa8306fc0 100644 --- a/app/javascript/dashboard/i18n/locale/hu/companies.json +++ b/app/javascript/dashboard/i18n/locale/hu/companies.json @@ -7,6 +7,7 @@ "NAME": "Név", "DOMAIN": "Domain", "CREATED_AT": "Létrehozva", + "LAST_ACTIVITY_AT": "Utolsó aktivitás", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Kontaktok", + "HISTORY": "History", + "NOTES": "Megjegyzések" + } + }, + "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": "Tulajdonságok keresése...", + "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": "Kontaktok betöltése...", + "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": "Cég", + "CONTACT_LABEL": "Kontakt", + "CURRENT_COMPANY": "Currently linked to {companyName}", + "ADD": "Link contact", + "CANCEL": "Mégse" + } + }, + "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év", + "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" } diff --git a/app/javascript/dashboard/i18n/locale/hu/contact.json b/app/javascript/dashboard/i18n/locale/hu/contact.json index c7e10ac65..5f231cfc4 100644 --- a/app/javascript/dashboard/i18n/locale/hu/contact.json +++ b/app/javascript/dashboard/i18n/locale/hu/contact.json @@ -386,6 +386,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/hu/conversation.json b/app/javascript/dashboard/i18n/locale/hu/conversation.json index 0db92db18..ad794fb78 100644 --- a/app/javascript/dashboard/i18n/locale/hu/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hu/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Megoldva", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Korábbi beszélgetések", "MACROS": "Makrók", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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": "Show less", + "MORE_COUNT": "+{count}", + "UNTITLED_FILE": "Untitled file" }, "SHOPIFY": { "ORDER_ID": "Order #{id}", diff --git a/app/javascript/dashboard/i18n/locale/hu/helpCenter.json b/app/javascript/dashboard/i18n/locale/hu/helpCenter.json index 8e0eb885f..8d3690c07 100644 --- a/app/javascript/dashboard/i18n/locale/hu/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/hu/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publikálás", "DRAFT": "Vázlat", "ARCHIVE": "Archive", + "TRANSLATE": "Fordítás", "DELETE": "Törlés" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "Fordítás", + "SELECT_ALL": "Select all ({count})", + "SELECTED_COUNT": "{count} selected", + "CLEAR_SELECTION": "Clear selection", + "TRANSLATE_BUTTON": "Fordítás", + "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": "Publikálás", + "DRAFT": "Vázlat", + "ARCHIVE": "Archive", + "TRANSLATE": "Fordítás", + "DELETE": "Törlés", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": "Törlés", + "DELETE_SUCCESS": "Articles deleted successfully", + "DELETE_ERROR": "Failed to delete articles" } }, "CATEGORY_PAGE": { diff --git a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json index 557694aec..f24f9e40c 100644 --- a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget építő", "BOT_CONFIGURATION": "Bot konfiguráció", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,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", diff --git a/app/javascript/dashboard/i18n/locale/hu/index.js b/app/javascript/dashboard/i18n/locale/hu/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/hu/index.js +++ b/app/javascript/dashboard/i18n/locale/hu/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/hu/integrationApps.json b/app/javascript/dashboard/i18n/locale/hu/integrationApps.json index 4b397270b..da685f756 100644 --- a/app/javascript/dashboard/i18n/locale/hu/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/hu/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Válassz fiókot" }, "SUBMIT": "Létrehozás", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Mégse" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/hu/integrations.json b/app/javascript/dashboard/i18n/locale/hu/integrations.json index f3cab8c72..36b4668fb 100644 --- a/app/javascript/dashboard/i18n/locale/hu/integrations.json +++ b/app/javascript/dashboard/i18n/locale/hu/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/hu/macros.json b/app/javascript/dashboard/i18n/locale/hu/macros.json index d4592f816..04d1a9207 100644 --- a/app/javascript/dashboard/i18n/locale/hu/macros.json +++ b/app/javascript/dashboard/i18n/locale/hu/macros.json @@ -49,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": { @@ -66,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": "Only administrators can edit public macros." }, "PERSONAL": { "LABEL": "Privát", diff --git a/app/javascript/dashboard/i18n/locale/hu/mfa.json b/app/javascript/dashboard/i18n/locale/hu/mfa.json index 1117ec281..755e5cd80 100644 --- a/app/javascript/dashboard/i18n/locale/hu/mfa.json +++ b/app/javascript/dashboard/i18n/locale/hu/mfa.json @@ -55,6 +55,10 @@ "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", 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..bb6f1fe68 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/hu/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": "Honlap", + "LANGUAGE": "Nyelv", + "TIMEZONE": "Időzóna", + "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": "Időzóna kiválasztása", + "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": "Mentés...", + "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/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json index e83950b14..43e5d665b 100644 --- a/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Ընկերություն" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Ընկերություն" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/hy/automation.json b/app/javascript/dashboard/i18n/locale/hy/automation.json index 51bcc4207..ecf7eabef 100644 --- a/app/javascript/dashboard/i18n/locale/hy/automation.json +++ b/app/javascript/dashboard/i18n/locale/hy/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Ընկերություն", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/hy/bulkActions.json b/app/javascript/dashboard/i18n/locale/hy/bulkActions.json index d736201de..bfed485ca 100644 --- a/app/javascript/dashboard/i18n/locale/hy/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/hy/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/hy/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/hy/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/hy/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0d64a4abd..2c53bd252 100644 --- a/app/javascript/dashboard/i18n/locale/hy/companies.json +++ b/app/javascript/dashboard/i18n/locale/hy/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/hy/contact.json b/app/javascript/dashboard/i18n/locale/hy/contact.json index a5879aad6..5770e6ffd 100644 --- a/app/javascript/dashboard/i18n/locale/hy/contact.json +++ b/app/javascript/dashboard/i18n/locale/hy/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Նույնացուցիչ", "COUNTRY": "Երկիր", "CITY": "Քաղաք", + "COMPANY": "Ընկերություն", "CREATED_AT": "Ստեղծվել է", "LAST_ACTIVITY": "Վերջին ակտիվություն", "REFERER_LINK": "Հղման հասցե", diff --git a/app/javascript/dashboard/i18n/locale/hy/conversation.json b/app/javascript/dashboard/i18n/locale/hy/conversation.json index e3f04fed8..ca2494dc6 100644 --- a/app/javascript/dashboard/i18n/locale/hy/conversation.json +++ b/app/javascript/dashboard/i18n/locale/hy/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Փակել", @@ -92,6 +95,7 @@ "OPEN": "Ավելին", "CLOSE": "Փակել", "DETAILS": "մանրամասներ", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Snoozed until", "SNOOZED_UNTIL_TOMORROW": "Հետաձգված է մինչև վաղը", "SNOOZED_UNTIL_NEXT_WEEK": "Հետաձգված է մինչև հաջորդ շաբաթ", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Նախորդ զրույցներ", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/hy/helpCenter.json b/app/javascript/dashboard/i18n/locale/hy/helpCenter.json index 7c7b58f5d..080b0abe7 100644 --- a/app/javascript/dashboard/i18n/locale/hy/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/hy/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Հրապարակել", "DRAFT": "Սևագիր", "ARCHIVE": "Արխիվ", + "TRANSLATE": "Translate", "DELETE": "Ջնջել" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json index 54ddb3821..8acc1b540 100644 --- a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Վիջեթի կառուցող", "BOT_CONFIGURATION": "Բոտի կարգավորումներ", "ACCOUNT_HEALTH": "Հաշվի առողջություն", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Ձայն" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Անվճարների նախապատվություններ", "WIDGET_FEATURES": "Վիջեթի հնարավորություններ", @@ -745,6 +755,7 @@ "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": "Զամբյուղի կարգավորումներ", @@ -1000,7 +1011,8 @@ "LABEL": "Գաղտնաբառ", "PLACE_HOLDER": "Գաղտնաբառ" }, - "ENABLE_SSL": "Միացնել SSL" + "ENABLE_SSL": "Միացնել SSL", + "AUTH_MECHANISM": "Հավաստագրում" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/hy/index.js b/app/javascript/dashboard/i18n/locale/hy/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/hy/index.js +++ b/app/javascript/dashboard/i18n/locale/hy/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/hy/integrationApps.json b/app/javascript/dashboard/i18n/locale/hy/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/hy/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/hy/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/hy/integrations.json b/app/javascript/dashboard/i18n/locale/hy/integrations.json index 852ad54c6..cb5e74f53 100644 --- a/app/javascript/dashboard/i18n/locale/hy/integrations.json +++ b/app/javascript/dashboard/i18n/locale/hy/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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": "Այս ՀՏՀ-ները ստեղծվել են ուղղակիորեն փաստաթղթից։" @@ -792,11 +838,15 @@ }, "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-ը կարող է վերլուծել բովանդակությունը և տրամադրել ճշգրիտ պատասխաններ հաճախորդների հարցումների համար։" diff --git a/app/javascript/dashboard/i18n/locale/hy/macros.json b/app/javascript/dashboard/i18n/locale/hy/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/hy/macros.json +++ b/app/javascript/dashboard/i18n/locale/hy/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/hy/mfa.json b/app/javascript/dashboard/i18n/locale/hy/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/hy/mfa.json +++ b/app/javascript/dashboard/i18n/locale/hy/mfa.json @@ -55,6 +55,10 @@ "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", 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/id/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json index 69e9d6a43..7ad04459d 100644 --- a/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Percakapan", - "CONTACT": "Kontak" + "CONTACT": "Kontak", + "COMPANY": "Perusahaan" }, "ATTRIBUTE_TYPES": { "TEXT": "Teks", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Atribut Kustom", "CONVERSATION": "Percakapan", - "CONTACT": "Kontak" + "CONTACT": "Kontak", + "COMPANY": "Perusahaan" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/id/automation.json b/app/javascript/dashboard/i18n/locale/id/automation.json index ca7bc83fc..a8b125aa6 100644 --- a/app/javascript/dashboard/i18n/locale/id/automation.json +++ b/app/javascript/dashboard/i18n/locale/id/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Bahasa Browser", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Negara", + "COMPANY_NAME": "Perusahaan", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Tim", diff --git a/app/javascript/dashboard/i18n/locale/id/bulkActions.json b/app/javascript/dashboard/i18n/locale/id/bulkActions.json index 9f397da6c..3d3ec9b10 100644 --- a/app/javascript/dashboard/i18n/locale/id/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/id/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Apakah Anda yakin ingin melepaskan penugasan dari {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Kembali", "ASSIGN_LABEL": "Tugaskan", + "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", @@ -38,6 +43,8 @@ "NONE": "Tidak ada", "NO_TEAMS_AVAILABLE": "Belum ada tim yang ditambahkan ke akun ini.", "ASSIGN_SELECTED_TEAMS": "Tugaskan tim terpilih.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/id/chatlist.json index 2d07bd509..3735815e0 100644 --- a/app/javascript/dashboard/i18n/locale/id/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/id/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Sembunyikan Teks yang Dikutip", "SHOW_QUOTED_TEXT": "Tampilkan Teks yang Dikutip", "MESSAGE_READ": "Dibaca", - "SENDING": "Sending" + "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 index 3a69a8332..385e9fe6c 100644 --- a/app/javascript/dashboard/i18n/locale/id/companies.json +++ b/app/javascript/dashboard/i18n/locale/id/companies.json @@ -7,6 +7,7 @@ "NAME": "Nama", "DOMAIN": "Domain", "CREATED_AT": "Dibuat pada", + "LAST_ACTIVITY_AT": "Aktivitas terakhir", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/id/contact.json b/app/javascript/dashboard/i18n/locale/id/contact.json index fce8f036e..9733708b8 100644 --- a/app/javascript/dashboard/i18n/locale/id/contact.json +++ b/app/javascript/dashboard/i18n/locale/id/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Pengenal", "COUNTRY": "Negara", "CITY": "Kota", + "COMPANY": "Perusahaan", "CREATED_AT": "Dibuat pada", "LAST_ACTIVITY": "Aktivitas terakhir", "REFERER_LINK": "Tautan Referer", diff --git a/app/javascript/dashboard/i18n/locale/id/conversation.json b/app/javascript/dashboard/i18n/locale/id/conversation.json index 46e0f3902..8b37405e9 100644 --- a/app/javascript/dashboard/i18n/locale/id/conversation.json +++ b/app/javascript/dashboard/i18n/locale/id/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Menyelesaikan", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Percakapan Sebelumnya", "MACROS": "Makro", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/id/helpCenter.json b/app/javascript/dashboard/i18n/locale/id/helpCenter.json index a121f9ced..212d8ddf2 100644 --- a/app/javascript/dashboard/i18n/locale/id/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/id/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Terbitkan", "DRAFT": "Draf", "ARCHIVE": "Archive", + "TRANSLATE": "Terjemahkan", "DELETE": "Hapus" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Hapus", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json index 0dc21ea27..fd8a173ee 100644 --- a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Pembuat Widget", "BOT_CONFIGURATION": "Konfigurasi Bot", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Kata Sandi", "PLACE_HOLDER": "Kata Sandi" }, - "ENABLE_SSL": "Aktifkan SSL" + "ENABLE_SSL": "Aktifkan SSL", + "AUTH_MECHANISM": "Autentikasi" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/id/index.js b/app/javascript/dashboard/i18n/locale/id/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/id/index.js +++ b/app/javascript/dashboard/i18n/locale/id/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/id/integrationApps.json b/app/javascript/dashboard/i18n/locale/id/integrationApps.json index 007624afb..2773de940 100644 --- a/app/javascript/dashboard/i18n/locale/id/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/id/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Pilih Kotak Masuk" }, "SUBMIT": "Buat", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Batalkan" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/id/integrations.json b/app/javascript/dashboard/i18n/locale/id/integrations.json index f27c1e22b..97b48856f 100644 --- a/app/javascript/dashboard/i18n/locale/id/integrations.json +++ b/app/javascript/dashboard/i18n/locale/id/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/id/macros.json b/app/javascript/dashboard/i18n/locale/id/macros.json index 1466d1d1b..21fb6279b 100644 --- a/app/javascript/dashboard/i18n/locale/id/macros.json +++ b/app/javascript/dashboard/i18n/locale/id/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Terjadi kesalahan saat menghapus makro. Silakan coba lagi nanti" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Edit makro", "API": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/id/mfa.json b/app/javascript/dashboard/i18n/locale/id/mfa.json index 9d89d2e8b..b592f28ec 100644 --- a/app/javascript/dashboard/i18n/locale/id/mfa.json +++ b/app/javascript/dashboard/i18n/locale/id/mfa.json @@ -55,6 +55,10 @@ "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", 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/is/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json index e4b20122e..3e46e5109 100644 --- a/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Fyrirtæki" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Fyrirtæki" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/is/automation.json b/app/javascript/dashboard/i18n/locale/is/automation.json index aabe5a568..6c3ccc39a 100644 --- a/app/javascript/dashboard/i18n/locale/is/automation.json +++ b/app/javascript/dashboard/i18n/locale/is/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/is/bulkActions.json b/app/javascript/dashboard/i18n/locale/is/bulkActions.json index 4a62fcc66..5d63efd82 100644 --- a/app/javascript/dashboard/i18n/locale/is/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/is/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Ertu viss um að hætta við úthlutun {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Úthluta", + "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", @@ -38,6 +43,8 @@ "NONE": "Enginn", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/is/chatlist.json index 0593cad1d..8f4dd73af 100644 --- a/app/javascript/dashboard/i18n/locale/is/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/is/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Fela tilvitnaðan texta", "SHOW_QUOTED_TEXT": "Sýna tilvitnaðan texta", "MESSAGE_READ": "Lesið", - "SENDING": "Sending" + "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 index c38b7d292..b6777173f 100644 --- a/app/javascript/dashboard/i18n/locale/is/companies.json +++ b/app/javascript/dashboard/i18n/locale/is/companies.json @@ -7,6 +7,7 @@ "NAME": "Nafn", "DOMAIN": "Lén", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/is/contact.json b/app/javascript/dashboard/i18n/locale/is/contact.json index 76c79686c..d730278a9 100644 --- a/app/javascript/dashboard/i18n/locale/is/contact.json +++ b/app/javascript/dashboard/i18n/locale/is/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Einkenni", "COUNTRY": "Land", "CITY": "Borg", + "COMPANY": "Fyrirtæki", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/is/conversation.json b/app/javascript/dashboard/i18n/locale/is/conversation.json index 13b87a96f..7d778ad84 100644 --- a/app/javascript/dashboard/i18n/locale/is/conversation.json +++ b/app/javascript/dashboard/i18n/locale/is/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resolve", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Fyrri samtöl", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/is/helpCenter.json b/app/javascript/dashboard/i18n/locale/is/helpCenter.json index e6327269a..5af9550e1 100644 --- a/app/javascript/dashboard/i18n/locale/is/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/is/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Eyða" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Eyða", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json index c717ee88c..be71aea86 100644 --- a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot stillingar", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Lykilorð", "PLACE_HOLDER": "Lykilorð" }, - "ENABLE_SSL": "Virkja SSL" + "ENABLE_SSL": "Virkja SSL", + "AUTH_MECHANISM": "Auðkenning" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/is/index.js b/app/javascript/dashboard/i18n/locale/is/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/is/index.js +++ b/app/javascript/dashboard/i18n/locale/is/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/is/integrationApps.json b/app/javascript/dashboard/i18n/locale/is/integrationApps.json index def80a909..5ea1dcb41 100644 --- a/app/javascript/dashboard/i18n/locale/is/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/is/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Hætta við" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/is/integrations.json b/app/javascript/dashboard/i18n/locale/is/integrations.json index 337f59e3c..2d4b9bf16 100644 --- a/app/javascript/dashboard/i18n/locale/is/integrations.json +++ b/app/javascript/dashboard/i18n/locale/is/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/is/macros.json b/app/javascript/dashboard/i18n/locale/is/macros.json index bd1b9342d..cf7541877 100644 --- a/app/javascript/dashboard/i18n/locale/is/macros.json +++ b/app/javascript/dashboard/i18n/locale/is/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/is/mfa.json b/app/javascript/dashboard/i18n/locale/is/mfa.json index bd7eb5cec..739714e5c 100644 --- a/app/javascript/dashboard/i18n/locale/is/mfa.json +++ b/app/javascript/dashboard/i18n/locale/is/mfa.json @@ -55,6 +55,10 @@ "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", 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/it/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json index 41e661e4d..107c2720b 100644 --- a/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "Nessun attributo trovato corrispondente alla tua ricerca", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversazione", - "CONTACT": "Contatto" + "CONTACT": "Contatto", + "COMPANY": "Azienda" }, "ATTRIBUTE_TYPES": { "TEXT": "Testo", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Attributi Personalizzati", "CONVERSATION": "Conversazione", - "CONTACT": "Contatto" + "CONTACT": "Contatto", + "COMPANY": "Azienda" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/it/automation.json b/app/javascript/dashboard/i18n/locale/it/automation.json index f779061b1..3f4484908 100644 --- a/app/javascript/dashboard/i18n/locale/it/automation.json +++ b/app/javascript/dashboard/i18n/locale/it/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/it/bulkActions.json b/app/javascript/dashboard/i18n/locale/it/bulkActions.json index fe3c2b4d9..ab3f73690 100644 --- a/app/javascript/dashboard/i18n/locale/it/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/it/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Torna indietro", "ASSIGN_LABEL": "Assegna", + "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ì", + "CANCEL": "Annulla", "SEARCH_INPUT_PLACEHOLDER": "Cerca", "ASSIGN_AGENT_TOOLTIP": "Assegna operatore", "ASSIGN_TEAM_TOOLTIP": "Assegna team", @@ -38,6 +43,8 @@ "NONE": "Nessuno", "NO_TEAMS_AVAILABLE": "Non ci sono ancora team aggiunti a questo account.", "ASSIGN_SELECTED_TEAMS": "Assegna team selezionato.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/it/chatlist.json index 5d96f5bec..c6a46be73 100644 --- a/app/javascript/dashboard/i18n/locale/it/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/it/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Nascondi Testo Citato", "SHOW_QUOTED_TEXT": "Mostra Testo Citato", "MESSAGE_READ": "Letto", - "SENDING": "Invio" + "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 index bb80dd9c7..e929dafcd 100644 --- a/app/javascript/dashboard/i18n/locale/it/companies.json +++ b/app/javascript/dashboard/i18n/locale/it/companies.json @@ -7,6 +7,7 @@ "NAME": "Nome", "DOMAIN": "Dominio", "CREATED_AT": "Creata alle", + "LAST_ACTIVITY_AT": "Ultima attività", "CONTACTS_COUNT": "Numero contatti" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/it/contact.json b/app/javascript/dashboard/i18n/locale/it/contact.json index 915d8af28..a5fc3aaa3 100644 --- a/app/javascript/dashboard/i18n/locale/it/contact.json +++ b/app/javascript/dashboard/i18n/locale/it/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identificatore", "COUNTRY": "Paese", "CITY": "Città", + "COMPANY": "Azienda", "CREATED_AT": "Data creazione", "LAST_ACTIVITY": "Ultima attività", "REFERER_LINK": "Link referente", diff --git a/app/javascript/dashboard/i18n/locale/it/conversation.json b/app/javascript/dashboard/i18n/locale/it/conversation.json index 2d881b17d..e725f37b1 100644 --- a/app/javascript/dashboard/i18n/locale/it/conversation.json +++ b/app/javascript/dashboard/i18n/locale/it/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Messaggio non disponibile", "CARD": { "SHOW_LABELS": "Mostra etichette", - "HIDE_LABELS": "Nascondi etichette" + "HIDE_LABELS": "Nascondi etichette", + "LABELS_COUNT": "{count} etichette" }, "VOICE_CALL": { "INCOMING_CALL": "Chiamata in arrivo", @@ -82,7 +83,9 @@ "CALL_ENDED": "Chiamata terminata", "NOT_ANSWERED_YET": "Non ancora risposta", "THEY_ANSWERED": "Hanno risposto", - "YOU_ANSWERED": "Hai risposto" + "YOU_ANSWERED": "Hai risposto", + "AGENT_ANSWERED": "{agentName} ha risposto", + "JOIN_CALL": "Entra nella chiamata" }, "HEADER": { "RESOLVE_ACTION": "Risolvi", @@ -92,6 +95,7 @@ "OPEN": "Altro", "CLOSE": "Chiudi", "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Conversazioni Precedenti", "MACROS": "Macro", "LINEAR_ISSUES": "Issue Linear Connessi", - "SHOPIFY_ORDERS": "Ordini Shopify" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/it/helpCenter.json b/app/javascript/dashboard/i18n/locale/it/helpCenter.json index 3931be677..71fcfe9f8 100644 --- a/app/javascript/dashboard/i18n/locale/it/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/it/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Pubblica", "DRAFT": "Bozza", "ARCHIVE": "Archivia", + "TRANSLATE": "Traduci", "DELETE": "Elimina" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Elimina", + "STATUS_SUCCESS": "Articoli aggiornati correttamente", + "STATUS_ERROR": "Impossibile aggiornare gli articoli", + "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": { diff --git a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json index 91c7d51f0..ea13b8328 100644 --- a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Costruttore Widget", "BOT_CONFIGURATION": "Configurazione Bot", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voce" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Preferenze Canali", "WIDGET_FEATURES": "Funzionalità Widget", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Password", "PLACE_HOLDER": "Password" }, - "ENABLE_SSL": "Abilita SSL" + "ENABLE_SSL": "Abilita SSL", + "AUTH_MECHANISM": "Autenticazione" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/it/index.js b/app/javascript/dashboard/i18n/locale/it/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/it/index.js +++ b/app/javascript/dashboard/i18n/locale/it/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/it/integrationApps.json b/app/javascript/dashboard/i18n/locale/it/integrationApps.json index ad210082c..58eec7080 100644 --- a/app/javascript/dashboard/i18n/locale/it/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/it/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Seleziona Inbox" }, "SUBMIT": "Crea", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Annulla" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/it/integrations.json b/app/javascript/dashboard/i18n/locale/it/integrations.json index 0c41aee3e..6bf686914 100644 --- a/app/javascript/dashboard/i18n/locale/it/integrations.json +++ b/app/javascript/dashboard/i18n/locale/it/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/it/macros.json b/app/javascript/dashboard/i18n/locale/it/macros.json index c91b69cee..3dff9cced 100644 --- a/app/javascript/dashboard/i18n/locale/it/macros.json +++ b/app/javascript/dashboard/i18n/locale/it/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Si è verificato un errore durante l'eliminazione della macro. Riprova più tardi" } }, + "VIEW": { + "TOOLTIP": "Visualizza macro" + }, "EDIT": { "TOOLTIP": "Modifica macro", "API": { @@ -66,7 +69,9 @@ "LABEL": "Visibilità Macro", "GLOBAL": { "LABEL": "Pubblica", - "DESCRIPTION": "Questa macro è disponibile pubblicamente per tutti gli operatori di questo account." + "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": "Privata", diff --git a/app/javascript/dashboard/i18n/locale/it/mfa.json b/app/javascript/dashboard/i18n/locale/it/mfa.json index 8d705edf7..9b3989261 100644 --- a/app/javascript/dashboard/i18n/locale/it/mfa.json +++ b/app/javascript/dashboard/i18n/locale/it/mfa.json @@ -55,6 +55,10 @@ "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", 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/ja/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json index 28fc50bba..bcc53b56f 100644 --- a/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "会話", - "CONTACT": "連絡先" + "CONTACT": "連絡先", + "COMPANY": "企業名" }, "ATTRIBUTE_TYPES": { "TEXT": "テキスト", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "カスタム属性", "CONVERSATION": "会話", - "CONTACT": "連絡先" + "CONTACT": "連絡先", + "COMPANY": "企業名" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ja/automation.json b/app/javascript/dashboard/i18n/locale/ja/automation.json index 4d19e9150..f89b2728c 100644 --- a/app/javascript/dashboard/i18n/locale/ja/automation.json +++ b/app/javascript/dashboard/i18n/locale/ja/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "少なくとも1つのアクションが必要です" }, "NONE_OPTION": "なし", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "会話が作成されました", "CONVERSATION_UPDATED": "会話が更新されました", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "ブラウザの言語", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "国", + "COMPANY_NAME": "企業名", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "担当者", "TEAM_NAME": "チーム", diff --git a/app/javascript/dashboard/i18n/locale/ja/bulkActions.json b/app/javascript/dashboard/i18n/locale/ja/bulkActions.json index 44be5fb4f..ccba7d563 100644 --- a/app/javascript/dashboard/i18n/locale/ja/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ja/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "{conversationCount} 件の{conversationLabel}の割り当てを解除しますか?", "GO_BACK_LABEL": "戻る", "ASSIGN_LABEL": "割り当て", + "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": "チームを割り当てる", @@ -38,6 +43,8 @@ "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": "チームの割り当てに失敗しました。再試行してください。" } diff --git a/app/javascript/dashboard/i18n/locale/ja/chatlist.json b/app/javascript/dashboard/i18n/locale/ja/chatlist.json index 192a94140..98351d116 100644 --- a/app/javascript/dashboard/i18n/locale/ja/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ja/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "引用テキストを非表示", "SHOW_QUOTED_TEXT": "引用テキストを表示", "MESSAGE_READ": "既読", - "SENDING": "送信中" + "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 index 591e5fe26..e260c2166 100644 --- a/app/javascript/dashboard/i18n/locale/ja/companies.json +++ b/app/javascript/dashboard/i18n/locale/ja/companies.json @@ -7,6 +7,7 @@ "NAME": "名前", "DOMAIN": "ドメイン", "CREATED_AT": "作成日時", + "LAST_ACTIVITY_AT": "最終アクティビティ", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/ja/contact.json b/app/javascript/dashboard/i18n/locale/ja/contact.json index d401d54ee..c206cd3b9 100644 --- a/app/javascript/dashboard/i18n/locale/ja/contact.json +++ b/app/javascript/dashboard/i18n/locale/ja/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "識別子", "COUNTRY": "国", "CITY": "都市", + "COMPANY": "企業名", "CREATED_AT": "作成日時", "LAST_ACTIVITY": "最終アクティビティ", "REFERER_LINK": "参照リンク", diff --git a/app/javascript/dashboard/i18n/locale/ja/conversation.json b/app/javascript/dashboard/i18n/locale/ja/conversation.json index 6aeeeedc4..c8c585b2e 100644 --- a/app/javascript/dashboard/i18n/locale/ja/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ja/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "メッセージは利用できません", "CARD": { "SHOW_LABELS": "ラベルを表示", - "HIDE_LABELS": "ラベルを隠す" + "HIDE_LABELS": "ラベルを隠す", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "解決する", @@ -92,6 +95,7 @@ "OPEN": "もっと見る", "CLOSE": "閉じる", "DETAILS": "詳細", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "次の時間までスヌーズ", "SNOOZED_UNTIL_TOMORROW": "明日までスヌーズしました", "SNOOZED_UNTIL_NEXT_WEEK": "来週までスヌーズ", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "以前の会話", "MACROS": "マクロ", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ja/helpCenter.json b/app/javascript/dashboard/i18n/locale/ja/helpCenter.json index f6e5ce9ba..9f3cf0fc4 100644 --- a/app/javascript/dashboard/i18n/locale/ja/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ja/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "公開", "DRAFT": "下書き", "ARCHIVE": "アーカイブ", + "TRANSLATE": "翻訳", "DELETE": "削除" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "翻訳", + "DELETE": "削除", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json index 409934efe..5ae18a793 100644 --- a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "ウィジェットビルダー", "BOT_CONFIGURATION": "ボット設定", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "顧客満足度" + "CSAT": "顧客満足度", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "受信トレイの設定", @@ -1000,7 +1011,8 @@ "LABEL": "パスワード", "PLACE_HOLDER": "パスワード" }, - "ENABLE_SSL": "SSLを有効にする" + "ENABLE_SSL": "SSLを有効にする", + "AUTH_MECHANISM": "認証" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ja/index.js b/app/javascript/dashboard/i18n/locale/ja/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ja/index.js +++ b/app/javascript/dashboard/i18n/locale/ja/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ja/integrationApps.json b/app/javascript/dashboard/i18n/locale/ja/integrationApps.json index 575eed497..8f42ec147 100644 --- a/app/javascript/dashboard/i18n/locale/ja/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ja/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "受信トレイを選択" }, "SUBMIT": "作成", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "キャンセル" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ja/integrations.json b/app/javascript/dashboard/i18n/locale/ja/integrations.json index c501c1993..4074a8d5a 100644 --- a/app/javascript/dashboard/i18n/locale/ja/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ja/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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はドキュメントから直接生成されます。" @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/ja/macros.json b/app/javascript/dashboard/i18n/locale/ja/macros.json index 59909faba..a5ea3fb39 100644 --- a/app/javascript/dashboard/i18n/locale/ja/macros.json +++ b/app/javascript/dashboard/i18n/locale/ja/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "マクロを削除する際にエラーが発生しました。後でもう一度お試しください。" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "マクロを編集", "API": { @@ -66,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": "非公開", diff --git a/app/javascript/dashboard/i18n/locale/ja/mfa.json b/app/javascript/dashboard/i18n/locale/ja/mfa.json index 1d49489fc..bb072437b 100644 --- a/app/javascript/dashboard/i18n/locale/ja/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ja/mfa.json @@ -55,6 +55,10 @@ "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", 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/ka/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json index fbc87935b..2bde32367 100644 --- a/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "საუბარი", - "CONTACT": "კონტაქტი" + "CONTACT": "კონტაქტი", + "COMPANY": "კომპანია" }, "ATTRIBUTE_TYPES": { "TEXT": "ტექსტი", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "კომპანია" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ka/automation.json b/app/javascript/dashboard/i18n/locale/ka/automation.json index cb865d8c3..14a01db3c 100644 --- a/app/javascript/dashboard/i18n/locale/ka/automation.json +++ b/app/javascript/dashboard/i18n/locale/ka/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "None", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "საუბარი შეიქმნა", "CONVERSATION_UPDATED": "საუბარი განახლდა", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "ბრაუზერის ენა", "MAIL_SUBJECT": "ელფოსტის თემა", "COUNTRY_NAME": "ქვეყანა", + "COMPANY_NAME": "კომპანია", "REFERER_LINK": "რეფერერის ბმული", "ASSIGNEE_NAME": "დავალებული", "TEAM_NAME": "გუნდი", diff --git a/app/javascript/dashboard/i18n/locale/ka/bulkActions.json b/app/javascript/dashboard/i18n/locale/ka/bulkActions.json index d736201de..2472a9288 100644 --- a/app/javascript/dashboard/i18n/locale/ka/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ka/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/ka/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/ka/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ka/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0eee6cb42..604c88fe9 100644 --- a/app/javascript/dashboard/i18n/locale/ka/companies.json +++ b/app/javascript/dashboard/i18n/locale/ka/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/ka/contact.json b/app/javascript/dashboard/i18n/locale/ka/contact.json index 726f40ada..0f1af9ccf 100644 --- a/app/javascript/dashboard/i18n/locale/ka/contact.json +++ b/app/javascript/dashboard/i18n/locale/ka/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "კომპანია", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/ka/conversation.json b/app/javascript/dashboard/i18n/locale/ka/conversation.json index a7fa5e43c..6b699292e 100644 --- a/app/javascript/dashboard/i18n/locale/ka/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ka/conversation.json @@ -71,7 +71,8 @@ "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": "შემომავალი ზარი", @@ -82,7 +83,9 @@ "CALL_ENDED": "ზარი დასრულდა", "NOT_ANSWERED_YET": "ჯერ არ უპასუხიათ", "THEY_ANSWERED": "მათ უპასუხეს", - "YOU_ANSWERED": "თქვენ უპასუხეთ" + "YOU_ANSWERED": "თქვენ უპასუხეთ", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resolve", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", "LINEAR_ISSUES": "დაკავშირებული Linear-ის საკითხები", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ka/helpCenter.json b/app/javascript/dashboard/i18n/locale/ka/helpCenter.json index 1d838f636..c4797cdca 100644 --- a/app/javascript/dashboard/i18n/locale/ka/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ka/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "გამოქვეყნება", "DRAFT": "ჩარჩო", "ARCHIVE": "არქივი", + "TRANSLATE": "Translate", "DELETE": "წაშლა" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json index bb79e1ea2..00458729b 100644 --- a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "ვიჯეტის შემქმნელი", "BOT_CONFIGURATION": "ბოტის კონფიგურაცია", "ACCOUNT_HEALTH": "ანგარიშის ჯანმრთელობა", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "ხმოვანი" + }, + "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." + } }, "CHANNEL_PREFERENCES": "არხის პარამეტრები", "WIDGET_FEATURES": "ვიჯეტის ფუნქციები", @@ -745,6 +755,7 @@ "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": "ინბოქსის პარამეტრები", @@ -1000,7 +1011,8 @@ "LABEL": "პაროლი", "PLACE_HOLDER": "პაროლი" }, - "ENABLE_SSL": "SSL-ის ჩართვა" + "ENABLE_SSL": "SSL-ის ჩართვა", + "AUTH_MECHANISM": "ავტორიზაცია" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ka/index.js b/app/javascript/dashboard/i18n/locale/ka/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ka/index.js +++ b/app/javascript/dashboard/i18n/locale/ka/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ka/integrationApps.json b/app/javascript/dashboard/i18n/locale/ka/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/ka/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ka/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ka/integrations.json b/app/javascript/dashboard/i18n/locale/ka/integrations.json index ec8452ce2..74b2cdd83 100644 --- a/app/javascript/dashboard/i18n/locale/ka/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ka/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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": "ეს ხშირად დასმული კითხვები პირდაპირ დოკუმენტიდან არის გენერირებული." @@ -792,11 +838,15 @@ }, "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 აფასებს შინაარსს და უზრუნველყოფს ზუსტ პასუხებს მომხმარებელთა კითხვებზე." diff --git a/app/javascript/dashboard/i18n/locale/ka/macros.json b/app/javascript/dashboard/i18n/locale/ka/macros.json index 9e25712ff..d73631be0 100644 --- a/app/javascript/dashboard/i18n/locale/ka/macros.json +++ b/app/javascript/dashboard/i18n/locale/ka/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/ka/mfa.json b/app/javascript/dashboard/i18n/locale/ka/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/ka/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ka/mfa.json @@ -55,6 +55,10 @@ "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", 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/ko/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json index fa334aa96..c162992e0 100644 --- a/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "검색과 일치하는 사용자 지정 속성이 없습니다", "ATTRIBUTE_MODELS": { "CONVERSATION": "대화", - "CONTACT": "연락처" + "CONTACT": "연락처", + "COMPANY": "회사" }, "ATTRIBUTE_TYPES": { "TEXT": "텍스트", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "사용자 지정 특성", "CONVERSATION": "대화", - "CONTACT": "연락처" + "CONTACT": "연락처", + "COMPANY": "회사" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ko/automation.json b/app/javascript/dashboard/i18n/locale/ko/automation.json index 59be1f768..c2c33a388 100644 --- a/app/javascript/dashboard/i18n/locale/ko/automation.json +++ b/app/javascript/dashboard/i18n/locale/ko/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "최소 하나의 액션이 필요합니다" }, "NONE_OPTION": "없음", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "대화 생성됨", "CONVERSATION_UPDATED": "대화 업데이트됨", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "브라우저 언어", "MAIL_SUBJECT": "이메일 제목", "COUNTRY_NAME": "국가", + "COMPANY_NAME": "회사", "REFERER_LINK": "참조 링크", "ASSIGNEE_NAME": "담당자", "TEAM_NAME": "팀", diff --git a/app/javascript/dashboard/i18n/locale/ko/bulkActions.json b/app/javascript/dashboard/i18n/locale/ko/bulkActions.json index 19b482966..b72c87b86 100644 --- a/app/javascript/dashboard/i18n/locale/ko/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ko/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "{conversationCount}개의 {conversationLabel} 배정을 해제하시겠습니까?", "GO_BACK_LABEL": "뒤로 가기", "ASSIGN_LABEL": "배정", + "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": "팀 배정", @@ -38,6 +43,8 @@ "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": "팀 배정에 실패했습니다. 다시 시도하십시오." } diff --git a/app/javascript/dashboard/i18n/locale/ko/chatlist.json b/app/javascript/dashboard/i18n/locale/ko/chatlist.json index c49ac12d9..2db0c8944 100644 --- a/app/javascript/dashboard/i18n/locale/ko/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ko/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "인용문 숨기기", "SHOW_QUOTED_TEXT": "인용문 보기", "MESSAGE_READ": "읽음", - "SENDING": "전송 중" + "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 index 521f55ba0..11e6fbafa 100644 --- a/app/javascript/dashboard/i18n/locale/ko/companies.json +++ b/app/javascript/dashboard/i18n/locale/ko/companies.json @@ -7,6 +7,7 @@ "NAME": "이름", "DOMAIN": "도메인", "CREATED_AT": "생성일", + "LAST_ACTIVITY_AT": "최근 활동", "CONTACTS_COUNT": "연락처 수" } }, @@ -21,6 +22,121 @@ "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": "회사를 찾을 수 없습니다" } diff --git a/app/javascript/dashboard/i18n/locale/ko/contact.json b/app/javascript/dashboard/i18n/locale/ko/contact.json index daad5a048..d4a9c8c27 100644 --- a/app/javascript/dashboard/i18n/locale/ko/contact.json +++ b/app/javascript/dashboard/i18n/locale/ko/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "식별자", "COUNTRY": "국가", "CITY": "도시", + "COMPANY": "회사", "CREATED_AT": "생성일", "LAST_ACTIVITY": "최근 활동", "REFERER_LINK": "참조 링크", diff --git a/app/javascript/dashboard/i18n/locale/ko/conversation.json b/app/javascript/dashboard/i18n/locale/ko/conversation.json index 59f9bc0f7..00ec0ed52 100644 --- a/app/javascript/dashboard/i18n/locale/ko/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ko/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "메시지를 사용할 수 없습니다", "CARD": { "SHOW_LABELS": "라벨 표시", - "HIDE_LABELS": "라벨 숨기기" + "HIDE_LABELS": "라벨 숨기기", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "수신 전화", @@ -82,7 +83,9 @@ "CALL_ENDED": "통화 종료", "NOT_ANSWERED_YET": "아직 응답하지 않았습니다", "THEY_ANSWERED": "상대방이 응답했습니다", - "YOU_ANSWERED": "귀하가 응답했습니다" + "YOU_ANSWERED": "귀하가 응답했습니다", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "통화 참가" }, "HEADER": { "RESOLVE_ACTION": "해결함", @@ -92,6 +95,7 @@ "OPEN": "더보기", "CLOSE": "닫기", "DETAILS": "자세히", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "다음까지 일시 중지", "SNOOZED_UNTIL_TOMORROW": "내일까지 일시 중지", "SNOOZED_UNTIL_NEXT_WEEK": "다음 주까지 일시 중지", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "이전 대화", "MACROS": "매크로", "LINEAR_ISSUES": "연결된 Linear 이슈", - "SHOPIFY_ORDERS": "Shopify 주문" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ko/helpCenter.json b/app/javascript/dashboard/i18n/locale/ko/helpCenter.json index 1b8f16775..99b7ce3a2 100644 --- a/app/javascript/dashboard/i18n/locale/ko/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ko/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "게시", "DRAFT": "임시 저장", "ARCHIVE": "보관", + "TRANSLATE": "번역", "DELETE": "삭제" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "번역", + "DELETE": "삭제", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json index 519198e9e..f0e5d3b7a 100644 --- a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "위젯 빌더", "BOT_CONFIGURATION": "봇 구성", "ACCOUNT_HEALTH": "계정 상태", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "음성" + }, + "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." + } }, "CHANNEL_PREFERENCES": "채널 환경설정", "WIDGET_FEATURES": "위젯 기능", @@ -745,6 +755,7 @@ "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": "받은 메시지함 설정", @@ -1000,7 +1011,8 @@ "LABEL": "비밀번호", "PLACE_HOLDER": "비밀번호" }, - "ENABLE_SSL": "SSL 사용" + "ENABLE_SSL": "SSL 사용", + "AUTH_MECHANISM": "인증" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ko/index.js b/app/javascript/dashboard/i18n/locale/ko/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ko/index.js +++ b/app/javascript/dashboard/i18n/locale/ko/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ko/integrationApps.json b/app/javascript/dashboard/i18n/locale/ko/integrationApps.json index 81f8449ff..fec2001a3 100644 --- a/app/javascript/dashboard/i18n/locale/ko/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ko/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "받은 메시지함 선택" }, "SUBMIT": "만들기", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "취소" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ko/integrations.json b/app/javascript/dashboard/i18n/locale/ko/integrations.json index 94d6599e0..3bbbe0c01 100644 --- a/app/javascript/dashboard/i18n/locale/ko/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ko/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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는 문서에서 직접 생성되었습니다." @@ -792,11 +838,15 @@ }, "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이 내용을 분석하여 고객 문의에 대한 정확한 응답을 제공할 수 있습니다." diff --git a/app/javascript/dashboard/i18n/locale/ko/macros.json b/app/javascript/dashboard/i18n/locale/ko/macros.json index e5d913c76..62e67cea5 100644 --- a/app/javascript/dashboard/i18n/locale/ko/macros.json +++ b/app/javascript/dashboard/i18n/locale/ko/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "매크로를 삭제하는 중 오류가 발생했습니다. 나중에 다시 시도해 주십시오." } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "매크로 수정", "API": { @@ -66,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": "비공개", diff --git a/app/javascript/dashboard/i18n/locale/ko/mfa.json b/app/javascript/dashboard/i18n/locale/ko/mfa.json index e8368ce37..aadfbce52 100644 --- a/app/javascript/dashboard/i18n/locale/ko/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ko/mfa.json @@ -55,6 +55,10 @@ "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단계 인증이 비활성화되었습니다", 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/lt/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json index 25aec4546..a0f70abb9 100644 --- a/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Pokalbis", - "CONTACT": "Kontaktas" + "CONTACT": "Kontaktas", + "COMPANY": "Įmonė" }, "ATTRIBUTE_TYPES": { "TEXT": "Tekstas", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Personalizuoti Požymiai", "CONVERSATION": "Pokalbis", - "CONTACT": "Kontaktas" + "CONTACT": "Kontaktas", + "COMPANY": "Įmonė" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/lt/automation.json b/app/javascript/dashboard/i18n/locale/lt/automation.json index 4fa4b169e..7124bb705 100644 --- a/app/javascript/dashboard/i18n/locale/lt/automation.json +++ b/app/javascript/dashboard/i18n/locale/lt/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/lt/bulkActions.json b/app/javascript/dashboard/i18n/locale/lt/bulkActions.json index 9275066da..058de8470 100644 --- a/app/javascript/dashboard/i18n/locale/lt/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/lt/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Ar tikrai atšauksite priskyrimą {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Grįžti", "ASSIGN_LABEL": "Priskirti", + "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ą", @@ -38,6 +43,8 @@ "NONE": "Nėra", "NO_TEAMS_AVAILABLE": "Šioje paskyroje nėra pridėtų komandų.", "ASSIGN_SELECTED_TEAMS": "Priskirti pažymėtą komandą.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/lt/chatlist.json index 858f590e1..fe6ef49de 100644 --- a/app/javascript/dashboard/i18n/locale/lt/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/lt/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Slėpti cituojamą tekstą", "SHOW_QUOTED_TEXT": "Rodyti cituojamą tekstą", "MESSAGE_READ": "Skaityti", - "SENDING": "Sending" + "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 index f38b5b954..c8321c4f4 100644 --- a/app/javascript/dashboard/i18n/locale/lt/companies.json +++ b/app/javascript/dashboard/i18n/locale/lt/companies.json @@ -7,6 +7,7 @@ "NAME": "Vardas", "DOMAIN": "Domenas", "CREATED_AT": "Sukurta", + "LAST_ACTIVITY_AT": "Paskutiniai veiksmai", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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ė" } diff --git a/app/javascript/dashboard/i18n/locale/lt/contact.json b/app/javascript/dashboard/i18n/locale/lt/contact.json index 5597a73c4..79c593828 100644 --- a/app/javascript/dashboard/i18n/locale/lt/contact.json +++ b/app/javascript/dashboard/i18n/locale/lt/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifikatorius", "COUNTRY": "Šalis", "CITY": "Miestas", + "COMPANY": "Įmonė", "CREATED_AT": "Sukurta", "LAST_ACTIVITY": "Paskutiniai veiksmai", "REFERER_LINK": "Siuntimo nuoroda", diff --git a/app/javascript/dashboard/i18n/locale/lt/conversation.json b/app/javascript/dashboard/i18n/locale/lt/conversation.json index b63cca7cc..515597bd4 100644 --- a/app/javascript/dashboard/i18n/locale/lt/conversation.json +++ b/app/javascript/dashboard/i18n/locale/lt/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Išspręsti", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Ankstesni pokalbiai", "MACROS": "Makrokomandos", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/lt/helpCenter.json b/app/javascript/dashboard/i18n/locale/lt/helpCenter.json index 8ddb2dc62..f777a14e5 100644 --- a/app/javascript/dashboard/i18n/locale/lt/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/lt/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Skelbti", "DRAFT": "Ruošinys", "ARCHIVE": "Archive", + "TRANSLATE": "Išversti", "DELETE": "Ištrinti" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Ištrinti", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json index ee23589a2..80bacc325 100644 --- a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Valdiklių kūrimo priemonė", "BOT_CONFIGURATION": "Boto konfiguracija", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Slaptažodis", "PLACE_HOLDER": "Slaptažodis" }, - "ENABLE_SSL": "Leisti SSL" + "ENABLE_SSL": "Leisti SSL", + "AUTH_MECHANISM": "Autentifikacija" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/lt/index.js b/app/javascript/dashboard/i18n/locale/lt/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/lt/index.js +++ b/app/javascript/dashboard/i18n/locale/lt/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/lt/integrationApps.json b/app/javascript/dashboard/i18n/locale/lt/integrationApps.json index f3da604a5..beb51af07 100644 --- a/app/javascript/dashboard/i18n/locale/lt/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/lt/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Pasirinkti gautų laiškų aplanką" }, "SUBMIT": "Sukurti", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Atšaukti" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/lt/integrations.json b/app/javascript/dashboard/i18n/locale/lt/integrations.json index b27f860c5..ee9bd0a1b 100644 --- a/app/javascript/dashboard/i18n/locale/lt/integrations.json +++ b/app/javascript/dashboard/i18n/locale/lt/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/lt/macros.json b/app/javascript/dashboard/i18n/locale/lt/macros.json index ce7e88310..0b687622c 100644 --- a/app/javascript/dashboard/i18n/locale/lt/macros.json +++ b/app/javascript/dashboard/i18n/locale/lt/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Ištrinant makrokomandą įvyko klaida. Pabandykite dar kartą vėliau" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Redaguoti makrokomandą", "API": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/lt/mfa.json b/app/javascript/dashboard/i18n/locale/lt/mfa.json index 5f7033c94..56ca2b413 100644 --- a/app/javascript/dashboard/i18n/locale/lt/mfa.json +++ b/app/javascript/dashboard/i18n/locale/lt/mfa.json @@ -55,6 +55,10 @@ "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", 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/lv/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json index 92bfdfea6..c75334d9e 100644 --- a/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Saruna", - "CONTACT": "Kontaktpersona" + "CONTACT": "Kontaktpersona", + "COMPANY": "Uzņēmums" }, "ATTRIBUTE_TYPES": { "TEXT": "Teksts", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Pielāgotās Īpašības", "CONVERSATION": "Saruna", - "CONTACT": "Kontaktpersona" + "CONTACT": "Kontaktpersona", + "COMPANY": "Uzņēmums" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/lv/automation.json b/app/javascript/dashboard/i18n/locale/lv/automation.json index cac761605..f29208076 100644 --- a/app/javascript/dashboard/i18n/locale/lv/automation.json +++ b/app/javascript/dashboard/i18n/locale/lv/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/lv/bulkActions.json b/app/javascript/dashboard/i18n/locale/lv/bulkActions.json index 100cf7f47..792648295 100644 --- a/app/javascript/dashboard/i18n/locale/lv/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/lv/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Vai patiešām vēlaties atsaistīt {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Atgriezties", "ASSIGN_LABEL": "Piešķirt", + "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", @@ -38,6 +43,8 @@ "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/chatlist.json b/app/javascript/dashboard/i18n/locale/lv/chatlist.json index 2da60cf93..cd309cccd 100644 --- a/app/javascript/dashboard/i18n/locale/lv/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/lv/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Paslēpt Citēto Tekstu", "SHOW_QUOTED_TEXT": "Rādīt Citēto Tekstu", "MESSAGE_READ": "Lasīt", - "SENDING": "Sūtīšana" + "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 index 1fb6b7041..f1303f81b 100644 --- a/app/javascript/dashboard/i18n/locale/lv/companies.json +++ b/app/javascript/dashboard/i18n/locale/lv/companies.json @@ -7,6 +7,7 @@ "NAME": "Nosaukums", "DOMAIN": "Domēns", "CREATED_AT": "Izveidots plkst", + "LAST_ACTIVITY_AT": "Pēdējā darbība", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/lv/contact.json b/app/javascript/dashboard/i18n/locale/lv/contact.json index 8050fc0c3..4c9e37cfe 100644 --- a/app/javascript/dashboard/i18n/locale/lv/contact.json +++ b/app/javascript/dashboard/i18n/locale/lv/contact.json @@ -386,6 +386,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/lv/conversation.json b/app/javascript/dashboard/i18n/locale/lv/conversation.json index ebc96dc7e..3998f71ac 100644 --- a/app/javascript/dashboard/i18n/locale/lv/conversation.json +++ b/app/javascript/dashboard/i18n/locale/lv/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Atrisināt", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Iepriekšējās Sarunas", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/lv/helpCenter.json b/app/javascript/dashboard/i18n/locale/lv/helpCenter.json index 3e74d4ada..97d06ab92 100644 --- a/app/javascript/dashboard/i18n/locale/lv/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/lv/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publicēt", "DRAFT": "Melnraksts", "ARCHIVE": "Arhīvs", + "TRANSLATE": "Tulkot", "DELETE": "Dzēst" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Dzēst", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json index a7bb4fc0a..b3a5807e9 100644 --- a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Logrīku Veidotājs", "BOT_CONFIGURATION": "Robota Konfigurācija", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Parole", "PLACE_HOLDER": "Parole" }, - "ENABLE_SSL": "Iespējot SSL" + "ENABLE_SSL": "Iespējot SSL", + "AUTH_MECHANISM": "Autentifikācija" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/lv/index.js b/app/javascript/dashboard/i18n/locale/lv/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/lv/index.js +++ b/app/javascript/dashboard/i18n/locale/lv/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/lv/integrationApps.json b/app/javascript/dashboard/i18n/locale/lv/integrationApps.json index ef3f3729c..acd71ffd8 100644 --- a/app/javascript/dashboard/i18n/locale/lv/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/lv/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Izvēlieties Iesūtni" }, "SUBMIT": "Izveidot", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Atcelt" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/lv/integrations.json b/app/javascript/dashboard/i18n/locale/lv/integrations.json index 426463dfa..64676ee3c 100644 --- a/app/javascript/dashboard/i18n/locale/lv/integrations.json +++ b/app/javascript/dashboard/i18n/locale/lv/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/lv/macros.json b/app/javascript/dashboard/i18n/locale/lv/macros.json index 5b5e2e547..1b40e4910 100644 --- a/app/javascript/dashboard/i18n/locale/lv/macros.json +++ b/app/javascript/dashboard/i18n/locale/lv/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/lv/mfa.json b/app/javascript/dashboard/i18n/locale/lv/mfa.json index 837a5b5b5..090d59682 100644 --- a/app/javascript/dashboard/i18n/locale/lv/mfa.json +++ b/app/javascript/dashboard/i18n/locale/lv/mfa.json @@ -55,6 +55,10 @@ "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", 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/ml/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json index ec5062839..9caaf966a 100644 --- a/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "സംഭാഷണം", - "CONTACT": "ബന്ധപ്പെടുക" + "CONTACT": "ബന്ധപ്പെടുക", + "COMPANY": "കമ്പനി" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "ഇഷ്‌ടാനുസൃത ആട്രിബ്യൂട്ടുകൾ", "CONVERSATION": "സംഭാഷണം", - "CONTACT": "ബന്ധപ്പെടുക" + "CONTACT": "ബന്ധപ്പെടുക", + "COMPANY": "കമ്പനി" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ml/automation.json b/app/javascript/dashboard/i18n/locale/ml/automation.json index d81f4a8e5..5aa7fc497 100644 --- a/app/javascript/dashboard/i18n/locale/ml/automation.json +++ b/app/javascript/dashboard/i18n/locale/ml/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "ബ്രൗസറിന്റെ ഭാഷ", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "രാജ്യം", + "COMPANY_NAME": "കമ്പനി", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/ml/bulkActions.json b/app/javascript/dashboard/i18n/locale/ml/bulkActions.json index 337ad7305..5dad22415 100644 --- a/app/javascript/dashboard/i18n/locale/ml/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ml/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "നിയോഗിക്കുക", + "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", @@ -38,6 +43,8 @@ "NONE": "ഒന്നുമില്ല", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/ml/chatlist.json index 8874a1c4a..87889d266 100644 --- a/app/javascript/dashboard/i18n/locale/ml/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ml/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "ഉദ്ധരിച്ച വാചകം മറയ്ക്കുക", "SHOW_QUOTED_TEXT": "ഉദ്ധരിച്ച വാചകം കാണിക്കുക", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 64930411b..9dab0321c 100644 --- a/app/javascript/dashboard/i18n/locale/ml/companies.json +++ b/app/javascript/dashboard/i18n/locale/ml/companies.json @@ -7,6 +7,7 @@ "NAME": "പേര്", "DOMAIN": "Domain", "CREATED_AT": "എന്ന സ്ഥലത്ത് സൃഷ്ടിച്ചു", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/ml/contact.json b/app/javascript/dashboard/i18n/locale/ml/contact.json index ab5e41f06..9240a4cdc 100644 --- a/app/javascript/dashboard/i18n/locale/ml/contact.json +++ b/app/javascript/dashboard/i18n/locale/ml/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "രാജ്യം", "CITY": "നഗരം", + "COMPANY": "കമ്പനി", "CREATED_AT": "എന്ന സ്ഥലത്ത് സൃഷ്ടിച്ചു", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "റഫറർ ലിങ്ക്", diff --git a/app/javascript/dashboard/i18n/locale/ml/conversation.json b/app/javascript/dashboard/i18n/locale/ml/conversation.json index 4d89ce40b..89b65cd53 100644 --- a/app/javascript/dashboard/i18n/locale/ml/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ml/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "പരിഹരിക്കുക", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "മുമ്പത്തെ സംഭാഷണങ്ങൾ", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ml/helpCenter.json b/app/javascript/dashboard/i18n/locale/ml/helpCenter.json index b94ea368c..2ad6fdb6e 100644 --- a/app/javascript/dashboard/i18n/locale/ml/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ml/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "ഇല്ലാതാക്കുക" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "ഇല്ലാതാക്കുക", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json index 09d8ab99a..c483970eb 100644 --- a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "വിഡ്ജറ്റ് നിർമ്മാതാവ്", "BOT_CONFIGURATION": "ബോട്ട് ക്രമീകരണം", "ACCOUNT_HEALTH": "അക്കൗണ്ട് ആരോഗ്യ നില", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "വോയ്സ്" + }, + "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." + } }, "CHANNEL_PREFERENCES": "ചാനൽ മുൻഗണനകൾ", "WIDGET_FEATURES": "വിഡ്ജറ്റ് സവിശേഷതകൾ", @@ -745,6 +755,7 @@ "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": "ഇൻബോക്സ് ക്രമീകരണങ്ങൾ", @@ -1000,7 +1011,8 @@ "LABEL": "പാസ്‌വേഡ്", "PLACE_HOLDER": "പാസ്‌വേഡ്" }, - "ENABLE_SSL": "SSL സജീവമാക്കുക" + "ENABLE_SSL": "SSL സജീവമാക്കുക", + "AUTH_MECHANISM": "പ്രാമാണീകരണം" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ml/index.js b/app/javascript/dashboard/i18n/locale/ml/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ml/index.js +++ b/app/javascript/dashboard/i18n/locale/ml/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ml/integrationApps.json b/app/javascript/dashboard/i18n/locale/ml/integrationApps.json index 62ed01e91..2c3fae56b 100644 --- a/app/javascript/dashboard/i18n/locale/ml/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ml/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "സൃഷ്ടിക്കുക", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "റദ്ദാക്കുക" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ml/integrations.json b/app/javascript/dashboard/i18n/locale/ml/integrations.json index 9fca1bdf3..711959a0f 100644 --- a/app/javascript/dashboard/i18n/locale/ml/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ml/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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": "ഈ സാധാരണ ചോദിക്കപ്പെടുന്ന ചോദ്യങ്ങൾ രേഖയിൽ നിന്നു നേരിട്ട് സൃഷ്ടിച്ചവയാണ്." @@ -792,11 +838,15 @@ }, "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 ഉള്ളടക്കം വിശകലനം ചെയ്ത് ഉപഭോക്തൃ ചോദനകൾക്ക് കൃത്യമായ മറുപടികൾ നൽകാൻ കഴിയും." diff --git a/app/javascript/dashboard/i18n/locale/ml/macros.json b/app/javascript/dashboard/i18n/locale/ml/macros.json index 7ef03bcc2..ec64b36c4 100644 --- a/app/javascript/dashboard/i18n/locale/ml/macros.json +++ b/app/javascript/dashboard/i18n/locale/ml/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/ml/mfa.json b/app/javascript/dashboard/i18n/locale/ml/mfa.json index e68c9aea4..fc360e139 100644 --- a/app/javascript/dashboard/i18n/locale/ml/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ml/mfa.json @@ -55,6 +55,10 @@ "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", 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/ms/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json index d26e05844..0ad3b8a8c 100644 --- a/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "ATTRIBUTE_TYPES": { "TEXT": "Teks", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ms/automation.json b/app/javascript/dashboard/i18n/locale/ms/automation.json index 98bd3af3f..7bb1ccda1 100644 --- a/app/javascript/dashboard/i18n/locale/ms/automation.json +++ b/app/javascript/dashboard/i18n/locale/ms/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Bahasa Pelayar", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Company", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/ms/bulkActions.json b/app/javascript/dashboard/i18n/locale/ms/bulkActions.json index c95d32a13..95b313287 100644 --- a/app/javascript/dashboard/i18n/locale/ms/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ms/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "Tiada", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/ms/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/ms/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ms/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index ed7a7183d..c3fb0079a 100644 --- a/app/javascript/dashboard/i18n/locale/ms/companies.json +++ b/app/javascript/dashboard/i18n/locale/ms/companies.json @@ -7,6 +7,7 @@ "NAME": "Nama", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/ms/contact.json b/app/javascript/dashboard/i18n/locale/ms/contact.json index ac848c1e5..d004a6e3c 100644 --- a/app/javascript/dashboard/i18n/locale/ms/contact.json +++ b/app/javascript/dashboard/i18n/locale/ms/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Company", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Perujuk pautan", diff --git a/app/javascript/dashboard/i18n/locale/ms/conversation.json b/app/javascript/dashboard/i18n/locale/ms/conversation.json index b2a2df10a..052de0559 100644 --- a/app/javascript/dashboard/i18n/locale/ms/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ms/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Mesej tidak tersedia", "CARD": { "SHOW_LABELS": "Tunjukkan label", - "HIDE_LABELS": "Sembunyikan label" + "HIDE_LABELS": "Sembunyikan label", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Panggilan masuk", @@ -82,7 +83,9 @@ "CALL_ENDED": "Panggilan tamat", "NOT_ANSWERED_YET": "Belum dijawab", "THEY_ANSWERED": "Mereka menjawab", - "YOU_ANSWERED": "Anda menjawab" + "YOU_ANSWERED": "Anda menjawab", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Sertai panggilan" }, "HEADER": { "RESOLVE_ACTION": "Selesaikan", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Perbualan Sebelumnya", "MACROS": "Makro", "LINEAR_ISSUES": "Isu Linear Berkaitan", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ms/helpCenter.json b/app/javascript/dashboard/i18n/locale/ms/helpCenter.json index ba678333f..13e893119 100644 --- a/app/javascript/dashboard/i18n/locale/ms/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ms/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Terbitkan", "DRAFT": "Draf", "ARCHIVE": "Arkib", + "TRANSLATE": "Terjemah", "DELETE": "Padamkan" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Padamkan", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json index ed2847a1b..d459b814c 100644 --- a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Konfigurasi Bot", "ACCOUNT_HEALTH": "Kesihatan Akaun", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Suara" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Keutamaan Saluran", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "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", @@ -1000,7 +1011,8 @@ "LABEL": "Kata Laluan", "PLACE_HOLDER": "Kata Laluan" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Pengesahan" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ms/index.js b/app/javascript/dashboard/i18n/locale/ms/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ms/index.js +++ b/app/javascript/dashboard/i18n/locale/ms/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ms/integrationApps.json b/app/javascript/dashboard/i18n/locale/ms/integrationApps.json index d6ac6547f..f172d8beb 100644 --- a/app/javascript/dashboard/i18n/locale/ms/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ms/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Batalkan" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ms/integrations.json b/app/javascript/dashboard/i18n/locale/ms/integrations.json index d5d4a2705..99b6d1580 100644 --- a/app/javascript/dashboard/i18n/locale/ms/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ms/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/ms/macros.json b/app/javascript/dashboard/i18n/locale/ms/macros.json index bb63ace29..546579b7f 100644 --- a/app/javascript/dashboard/i18n/locale/ms/macros.json +++ b/app/javascript/dashboard/i18n/locale/ms/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/ms/mfa.json b/app/javascript/dashboard/i18n/locale/ms/mfa.json index 345442d5b..6aece3913 100644 --- a/app/javascript/dashboard/i18n/locale/ms/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ms/mfa.json @@ -55,6 +55,10 @@ "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", 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/ne/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json index e83950b14..52b47ea11 100644 --- a/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "कम्पनी" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "कम्पनी" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ne/automation.json b/app/javascript/dashboard/i18n/locale/ne/automation.json index 8a1823da4..669be472c 100644 --- a/app/javascript/dashboard/i18n/locale/ne/automation.json +++ b/app/javascript/dashboard/i18n/locale/ne/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "कम्पनी", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/ne/bulkActions.json b/app/javascript/dashboard/i18n/locale/ne/bulkActions.json index d736201de..77d41d9b3 100644 --- a/app/javascript/dashboard/i18n/locale/ne/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ne/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/ne/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/ne/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ne/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 0d64a4abd..5ed2159b1 100644 --- a/app/javascript/dashboard/i18n/locale/ne/companies.json +++ b/app/javascript/dashboard/i18n/locale/ne/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/ne/contact.json b/app/javascript/dashboard/i18n/locale/ne/contact.json index b7c40ea6f..2d7821199 100644 --- a/app/javascript/dashboard/i18n/locale/ne/contact.json +++ b/app/javascript/dashboard/i18n/locale/ne/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "पहिचानकर्ता", "COUNTRY": "देश", "CITY": "सहर", + "COMPANY": "कम्पनी", "CREATED_AT": "सिर्जना मिति", "LAST_ACTIVITY": "अन्तिम क्रियाकलाप", "REFERER_LINK": "रेफरर लिंक", diff --git a/app/javascript/dashboard/i18n/locale/ne/conversation.json b/app/javascript/dashboard/i18n/locale/ne/conversation.json index 69cc756bc..e4e25a554 100644 --- a/app/javascript/dashboard/i18n/locale/ne/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ne/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "सन्देश उपलब्ध छैन", "CARD": { "SHOW_LABELS": "लेबलहरू देखाउनुहोस्", - "HIDE_LABELS": "लेबलहरू लुकाउनुहोस्" + "HIDE_LABELS": "लेबलहरू लुकाउनुहोस्", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "आउँदै गरेको कल", @@ -82,7 +83,9 @@ "CALL_ENDED": "कल समाप्त भयो", "NOT_ANSWERED_YET": "अझै जवाफ दिइएको छैन", "THEY_ANSWERED": "उनीहरूले जवाफ दिए", - "YOU_ANSWERED": "तपाईंले जवाफ दिनुभयो" + "YOU_ANSWERED": "तपाईंले जवाफ दिनुभयो", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "कलमा सामेल हुनुहोस्" }, "HEADER": { "RESOLVE_ACTION": "समाधान गर्नुहोस्", @@ -92,6 +95,7 @@ "OPEN": "थप", "CLOSE": "बन्दा गार्नुहोस्", "DETAILS": "विवरणहरू", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "यस मितिसम्म सुस्काइयो", "SNOOZED_UNTIL_TOMORROW": "भोलिसम्म सुताइएको", "SNOOZED_UNTIL_NEXT_WEEK": "अर्को हप्ता सम्म सुताइएको", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "अघिल्ला कुराकानीहरू", "MACROS": "म्याक्रोहरू", "LINEAR_ISSUES": "लिङ्क गरिएका Linear समस्याहरू", - "SHOPIFY_ORDERS": "Shopify अर्डरहरू" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ne/helpCenter.json b/app/javascript/dashboard/i18n/locale/ne/helpCenter.json index acff43fd8..2da7108b9 100644 --- a/app/javascript/dashboard/i18n/locale/ne/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ne/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "प्रकाशित गर्नुहोस्", "DRAFT": "ड्राफ्ट", "ARCHIVE": "अभिलेख", + "TRANSLATE": "अनुवाद गर्नुहोस्", "DELETE": "मेटाउनुहोस्" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "अनुवाद गर्नुहोस्", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json index d13540014..dd29826c2 100644 --- a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "विजेट बिल्डर", "BOT_CONFIGURATION": "बोट कन्फिगरेसन", "ACCOUNT_HEALTH": "खाता स्वास्थ्य", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "भ्वाइस" + }, + "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." + } }, "CHANNEL_PREFERENCES": "च्यानल प्राथमिकता", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "इनबक्स सेटिङहरू", @@ -1000,7 +1011,8 @@ "LABEL": "पासवर्ड", "PLACE_HOLDER": "पासवर्ड" }, - "ENABLE_SSL": "SSL सक्षम गर्नुहोस्" + "ENABLE_SSL": "SSL सक्षम गर्नुहोस्", + "AUTH_MECHANISM": "प्रमाणीकरण" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ne/index.js b/app/javascript/dashboard/i18n/locale/ne/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ne/index.js +++ b/app/javascript/dashboard/i18n/locale/ne/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ne/integrationApps.json b/app/javascript/dashboard/i18n/locale/ne/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/ne/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ne/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ne/integrations.json b/app/javascript/dashboard/i18n/locale/ne/integrations.json index 4b4969dff..d369fd8db 100644 --- a/app/javascript/dashboard/i18n/locale/ne/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ne/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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 सिधा कागजातबाट उत्पन्न भएका हुन्।" @@ -792,11 +838,15 @@ }, "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 सामग्री विश्लेषण गरी ग्राहक प्रश्नहरूको लागि सही उत्तर दिन सक्छ।" diff --git a/app/javascript/dashboard/i18n/locale/ne/macros.json b/app/javascript/dashboard/i18n/locale/ne/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/ne/macros.json +++ b/app/javascript/dashboard/i18n/locale/ne/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/ne/mfa.json b/app/javascript/dashboard/i18n/locale/ne/mfa.json index ce507418f..17eddd553 100644 --- a/app/javascript/dashboard/i18n/locale/ne/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ne/mfa.json @@ -55,6 +55,10 @@ "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", 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/nl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json index 49668e198..8f2258953 100644 --- a/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Gesprek", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Bedrijfsnaam" }, "ATTRIBUTE_TYPES": { "TEXT": "Tekst", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Aangepaste attributen", "CONVERSATION": "Gesprek", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Bedrijfsnaam" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/nl/automation.json b/app/javascript/dashboard/i18n/locale/nl/automation.json index eee48ac42..384d7182c 100644 --- a/app/javascript/dashboard/i18n/locale/nl/automation.json +++ b/app/javascript/dashboard/i18n/locale/nl/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/nl/bulkActions.json b/app/javascript/dashboard/i18n/locale/nl/bulkActions.json index 5cbd9c99b..9ce607cac 100644 --- a/app/javascript/dashboard/i18n/locale/nl/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/nl/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Weet u zeker dat u {conversationCount} {conversationLabel} wilt ontkoppelen?", "GO_BACK_LABEL": "Ga terug", "ASSIGN_LABEL": "Toewijzen", + "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", @@ -38,6 +43,8 @@ "NONE": "Geen", "NO_TEAMS_AVAILABLE": "Er zijn nog geen teams toegevoegd aan dit account.", "ASSIGN_SELECTED_TEAMS": "Geselecteerde team toewijzen.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/nl/chatlist.json index 6a27f5aef..6337ee3e6 100644 --- a/app/javascript/dashboard/i18n/locale/nl/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/nl/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Verberg geciteerde tekst", "SHOW_QUOTED_TEXT": "Toon geciteerde tekst", "MESSAGE_READ": "Lezen", - "SENDING": "Sending" + "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 index c6fb4a2d3..30acd9b46 100644 --- a/app/javascript/dashboard/i18n/locale/nl/companies.json +++ b/app/javascript/dashboard/i18n/locale/nl/companies.json @@ -7,6 +7,7 @@ "NAME": "Naam", "DOMAIN": "Domeinnaam", "CREATED_AT": "Aangemaakt op", + "LAST_ACTIVITY_AT": "Laatste Activiteit", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/nl/contact.json b/app/javascript/dashboard/i18n/locale/nl/contact.json index 3b78b0201..b1aa25574 100644 --- a/app/javascript/dashboard/i18n/locale/nl/contact.json +++ b/app/javascript/dashboard/i18n/locale/nl/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Land", "CITY": "Woonplaats", + "COMPANY": "Bedrijfsnaam", "CREATED_AT": "Aangemaakt op", "LAST_ACTIVITY": "Laatste Activiteit", "REFERER_LINK": "Verwijzende link", diff --git a/app/javascript/dashboard/i18n/locale/nl/conversation.json b/app/javascript/dashboard/i18n/locale/nl/conversation.json index 776e73a2b..83553e320 100644 --- a/app/javascript/dashboard/i18n/locale/nl/conversation.json +++ b/app/javascript/dashboard/i18n/locale/nl/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Oplossen", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Vorige gesprekken", "MACROS": "Macro's", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/nl/helpCenter.json b/app/javascript/dashboard/i18n/locale/nl/helpCenter.json index bc98f4d6b..e14763f34 100644 --- a/app/javascript/dashboard/i18n/locale/nl/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/nl/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Vertaal", "DELETE": "Verwijderen" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Verwijderen", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json index 39c33d2cc..abdbb47ee 100644 --- a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Wachtwoord", "PLACE_HOLDER": "Wachtwoord" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/nl/index.js b/app/javascript/dashboard/i18n/locale/nl/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/nl/index.js +++ b/app/javascript/dashboard/i18n/locale/nl/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/nl/integrationApps.json b/app/javascript/dashboard/i18n/locale/nl/integrationApps.json index a42f4f1de..23437d798 100644 --- a/app/javascript/dashboard/i18n/locale/nl/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/nl/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Selecteer een inbox" }, "SUBMIT": "Aanmaken", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Annuleren" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/nl/integrations.json b/app/javascript/dashboard/i18n/locale/nl/integrations.json index 184d0b14c..05766e58e 100644 --- a/app/javascript/dashboard/i18n/locale/nl/integrations.json +++ b/app/javascript/dashboard/i18n/locale/nl/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/nl/macros.json b/app/javascript/dashboard/i18n/locale/nl/macros.json index b19bcf03a..14d5f3dd6 100644 --- a/app/javascript/dashboard/i18n/locale/nl/macros.json +++ b/app/javascript/dashboard/i18n/locale/nl/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/nl/mfa.json b/app/javascript/dashboard/i18n/locale/nl/mfa.json index 047815c08..440115f7d 100644 --- a/app/javascript/dashboard/i18n/locale/nl/mfa.json +++ b/app/javascript/dashboard/i18n/locale/nl/mfa.json @@ -55,6 +55,10 @@ "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", 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/no/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json index 564c84716..76ddd7362 100644 --- a/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Firma" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Egendefinerte verdier", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Firma" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/no/automation.json b/app/javascript/dashboard/i18n/locale/no/automation.json index a1b19b062..4152d0cb7 100644 --- a/app/javascript/dashboard/i18n/locale/no/automation.json +++ b/app/javascript/dashboard/i18n/locale/no/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Firma", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Agent", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/no/bulkActions.json b/app/javascript/dashboard/i18n/locale/no/bulkActions.json index c0dfaf83f..9aea1df66 100644 --- a/app/javascript/dashboard/i18n/locale/no/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/no/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Tildel", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/no/chatlist.json index 5d7535cfe..34505045c 100644 --- a/app/javascript/dashboard/i18n/locale/no/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/no/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "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 index 98233d9b1..1dca466d9 100644 --- a/app/javascript/dashboard/i18n/locale/no/companies.json +++ b/app/javascript/dashboard/i18n/locale/no/companies.json @@ -7,6 +7,7 @@ "NAME": "Navn", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/no/contact.json b/app/javascript/dashboard/i18n/locale/no/contact.json index 9a7b24cc3..205ab67b8 100644 --- a/app/javascript/dashboard/i18n/locale/no/contact.json +++ b/app/javascript/dashboard/i18n/locale/no/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Firma", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/no/conversation.json b/app/javascript/dashboard/i18n/locale/no/conversation.json index 1687a4fb8..a973a0c84 100644 --- a/app/javascript/dashboard/i18n/locale/no/conversation.json +++ b/app/javascript/dashboard/i18n/locale/no/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Løs", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Tidligere samtaler", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/no/helpCenter.json b/app/javascript/dashboard/i18n/locale/no/helpCenter.json index f6ae638ed..c39867e15 100644 --- a/app/javascript/dashboard/i18n/locale/no/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/no/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Slett" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Slett", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json index e7737edd3..b59a61dcb 100644 --- a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Passord", "PLACE_HOLDER": "Passord" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/no/index.js b/app/javascript/dashboard/i18n/locale/no/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/no/index.js +++ b/app/javascript/dashboard/i18n/locale/no/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/no/integrationApps.json b/app/javascript/dashboard/i18n/locale/no/integrationApps.json index 54cf485da..8608263a0 100644 --- a/app/javascript/dashboard/i18n/locale/no/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/no/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Opprett", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Avbryt" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/no/integrations.json b/app/javascript/dashboard/i18n/locale/no/integrations.json index 1fa6a64b8..190f0ad4c 100644 --- a/app/javascript/dashboard/i18n/locale/no/integrations.json +++ b/app/javascript/dashboard/i18n/locale/no/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/no/macros.json b/app/javascript/dashboard/i18n/locale/no/macros.json index fe1e30153..ef44a42d5 100644 --- a/app/javascript/dashboard/i18n/locale/no/macros.json +++ b/app/javascript/dashboard/i18n/locale/no/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/no/mfa.json b/app/javascript/dashboard/i18n/locale/no/mfa.json index f13c9dadd..fd51396ef 100644 --- a/app/javascript/dashboard/i18n/locale/no/mfa.json +++ b/app/javascript/dashboard/i18n/locale/no/mfa.json @@ -55,6 +55,10 @@ "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", 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/pl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json index c6fefcfdd..91a9408b5 100644 --- a/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Rozmowa", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Firma" }, "ATTRIBUTE_TYPES": { "TEXT": "Tekst", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Atrybuty Niestandardowe", "CONVERSATION": "Rozmowa", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Firma" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/pl/automation.json b/app/javascript/dashboard/i18n/locale/pl/automation.json index 6284f0cb4..6f058afe5 100644 --- a/app/javascript/dashboard/i18n/locale/pl/automation.json +++ b/app/javascript/dashboard/i18n/locale/pl/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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ół", diff --git a/app/javascript/dashboard/i18n/locale/pl/bulkActions.json b/app/javascript/dashboard/i18n/locale/pl/bulkActions.json index 5a6da3513..11de057a2 100644 --- a/app/javascript/dashboard/i18n/locale/pl/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/pl/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Czy na pewno chcesz odwołać przypisanie {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Powróć", "ASSIGN_LABEL": "Przypisz", + "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ół", @@ -38,6 +43,8 @@ "NONE": "Brak", "NO_TEAMS_AVAILABLE": "Na tym koncie nie dodano jeszcze żadnych zespołów.", "ASSIGN_SELECTED_TEAMS": "Przypisz wybrany zespół.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/pl/chatlist.json index 7f37c06e8..e957bac03 100644 --- a/app/javascript/dashboard/i18n/locale/pl/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/pl/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Ukryj cytat", "SHOW_QUOTED_TEXT": "Pokaż cytat", "MESSAGE_READ": "Przeczytane", - "SENDING": "Sending" + "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 index bc89b2516..8eedccc18 100644 --- a/app/javascript/dashboard/i18n/locale/pl/companies.json +++ b/app/javascript/dashboard/i18n/locale/pl/companies.json @@ -7,6 +7,7 @@ "NAME": "Imię", "DOMAIN": "Domena", "CREATED_AT": "Data utworzenia", + "LAST_ACTIVITY_AT": "Ostatnia aktywność", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/pl/contact.json b/app/javascript/dashboard/i18n/locale/pl/contact.json index 46be89c4c..78333d35d 100644 --- a/app/javascript/dashboard/i18n/locale/pl/contact.json +++ b/app/javascript/dashboard/i18n/locale/pl/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identyfikator", "COUNTRY": "Kraj", "CITY": "Miasto", + "COMPANY": "Firma", "CREATED_AT": "Data utworzenia", "LAST_ACTIVITY": "Ostatnia aktywność", "REFERER_LINK": "Link odsyłający", diff --git a/app/javascript/dashboard/i18n/locale/pl/conversation.json b/app/javascript/dashboard/i18n/locale/pl/conversation.json index b15c07d96..d8bafa0e9 100644 --- a/app/javascript/dashboard/i18n/locale/pl/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pl/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Rozwiąż", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Poprzednie konwersacje", "MACROS": "Makra", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/pl/helpCenter.json b/app/javascript/dashboard/i18n/locale/pl/helpCenter.json index fa452e0a3..1f81b2fa4 100644 --- a/app/javascript/dashboard/i18n/locale/pl/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/pl/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Opublikuj", "DRAFT": "Szkic", "ARCHIVE": "Archive", + "TRANSLATE": "Przetłumacz", "DELETE": "Usuń" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Usuń", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json index 086df97f8..3006452c1 100644 --- a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Kreator widżetów", "BOT_CONFIGURATION": "Konfiguracja bota", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Hasło", "PLACE_HOLDER": "Hasło" }, - "ENABLE_SSL": "Włącz SSL" + "ENABLE_SSL": "Włącz SSL", + "AUTH_MECHANISM": "Uwierzytelnianie" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/pl/index.js b/app/javascript/dashboard/i18n/locale/pl/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/pl/index.js +++ b/app/javascript/dashboard/i18n/locale/pl/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/pl/integrationApps.json b/app/javascript/dashboard/i18n/locale/pl/integrationApps.json index 09432ca15..999b5ab80 100644 --- a/app/javascript/dashboard/i18n/locale/pl/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/pl/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Wybierz skrzynkę odbiorczą" }, "SUBMIT": "Dodaj", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Anuluj" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/pl/integrations.json b/app/javascript/dashboard/i18n/locale/pl/integrations.json index bfd34ac2e..2a9b55026 100644 --- a/app/javascript/dashboard/i18n/locale/pl/integrations.json +++ b/app/javascript/dashboard/i18n/locale/pl/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/pl/macros.json b/app/javascript/dashboard/i18n/locale/pl/macros.json index c6c6edc4a..3365528e7 100644 --- a/app/javascript/dashboard/i18n/locale/pl/macros.json +++ b/app/javascript/dashboard/i18n/locale/pl/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/pl/mfa.json b/app/javascript/dashboard/i18n/locale/pl/mfa.json index b44d1c883..862e41fea 100644 --- a/app/javascript/dashboard/i18n/locale/pl/mfa.json +++ b/app/javascript/dashboard/i18n/locale/pl/mfa.json @@ -55,6 +55,10 @@ "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", 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/pt/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json index b08f977e3..b29d62d85 100644 --- a/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversa", - "CONTACT": "Contacto" + "CONTACT": "Contacto", + "COMPANY": "Empresa" }, "ATTRIBUTE_TYPES": { "TEXT": "Texto", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Atributos personalizados", "CONVERSATION": "Conversa", - "CONTACT": "Contacto" + "CONTACT": "Contacto", + "COMPANY": "Empresa" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/pt/automation.json b/app/javascript/dashboard/i18n/locale/pt/automation.json index 1be6316f0..e57b58a8e 100644 --- a/app/javascript/dashboard/i18n/locale/pt/automation.json +++ b/app/javascript/dashboard/i18n/locale/pt/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/pt/bulkActions.json b/app/javascript/dashboard/i18n/locale/pt/bulkActions.json index 41aeafa27..12ad9423a 100644 --- a/app/javascript/dashboard/i18n/locale/pt/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/pt/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Tem a certeza que pretende remover a atribuição de {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Voltar", "ASSIGN_LABEL": "Atribuir", + "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 equipa", @@ -38,6 +43,8 @@ "NONE": "Nenhuma", "NO_TEAMS_AVAILABLE": "Não há equipas nesta conta.", "ASSIGN_SELECTED_TEAMS": "Atribuir equipa selecionada.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/pt/chatlist.json index 055cdddb3..a542e663e 100644 --- a/app/javascript/dashboard/i18n/locale/pt/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/pt/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Ocultar texto citado", "SHOW_QUOTED_TEXT": "Mostrar texto citado", "MESSAGE_READ": "Lida", - "SENDING": "Sending" + "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 index 24d8d55fc..e9ea3b171 100644 --- a/app/javascript/dashboard/i18n/locale/pt/companies.json +++ b/app/javascript/dashboard/i18n/locale/pt/companies.json @@ -7,6 +7,7 @@ "NAME": "Nome:", "DOMAIN": "Domínio", "CREATED_AT": "Criada em", + "LAST_ACTIVITY_AT": "Última atividade", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/pt/contact.json b/app/javascript/dashboard/i18n/locale/pt/contact.json index 049d442e3..09d66b265 100644 --- a/app/javascript/dashboard/i18n/locale/pt/contact.json +++ b/app/javascript/dashboard/i18n/locale/pt/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identificador", "COUNTRY": "País", "CITY": "Cidade", + "COMPANY": "Empresa", "CREATED_AT": "Criada em", "LAST_ACTIVITY": "Última atividade", "REFERER_LINK": "Link de referência", diff --git a/app/javascript/dashboard/i18n/locale/pt/conversation.json b/app/javascript/dashboard/i18n/locale/pt/conversation.json index 165bc9ab9..578adb793 100644 --- a/app/javascript/dashboard/i18n/locale/pt/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pt/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Mensagem indisponível", "CARD": { "SHOW_LABELS": "Mostrar etiquetas", - "HIDE_LABELS": "Ocultar etiquetas" + "HIDE_LABELS": "Ocultar etiquetas", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resolver", @@ -92,6 +95,7 @@ "OPEN": "Mais", "CLOSE": "Fechar", "DETAILS": "Detalhes", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Suspender até", "SNOOZED_UNTIL_TOMORROW": "Adiada até amanhã", "SNOOZED_UNTIL_NEXT_WEEK": "Adiada até a próxima semana", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Conversas anteriores", "MACROS": "Macros", "LINEAR_ISSUES": "Casos Linear Associados", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/pt/helpCenter.json b/app/javascript/dashboard/i18n/locale/pt/helpCenter.json index a3dbbf2fd..269c91738 100644 --- a/app/javascript/dashboard/i18n/locale/pt/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/pt/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publicar", "DRAFT": "Rascunho", "ARCHIVE": "Archive", + "TRANSLATE": "Traduzir", "DELETE": "Excluir" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Excluir", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json index 1b64d623b..58bfefaa5 100644 --- a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Construtor de widgets", "BOT_CONFIGURATION": "Configuração do bot", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voz" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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", @@ -1000,7 +1011,8 @@ "LABEL": "Palavra-passe", "PLACE_HOLDER": "Palavra-passe" }, - "ENABLE_SSL": "Ativar SSL" + "ENABLE_SSL": "Ativar SSL", + "AUTH_MECHANISM": "Autenticação" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/pt/index.js b/app/javascript/dashboard/i18n/locale/pt/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/pt/index.js +++ b/app/javascript/dashboard/i18n/locale/pt/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/pt/integrationApps.json b/app/javascript/dashboard/i18n/locale/pt/integrationApps.json index 64f22381b..a0ef0b0e0 100644 --- a/app/javascript/dashboard/i18n/locale/pt/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/pt/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Selecionar caixa de entrada" }, "SUBMIT": "Criar", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancelar" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/pt/integrations.json b/app/javascript/dashboard/i18n/locale/pt/integrations.json index 484a5627d..41fe0cf5a 100644 --- a/app/javascript/dashboard/i18n/locale/pt/integrations.json +++ b/app/javascript/dashboard/i18n/locale/pt/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/pt/macros.json b/app/javascript/dashboard/i18n/locale/pt/macros.json index 257c0bcf0..f385bb5cc 100644 --- a/app/javascript/dashboard/i18n/locale/pt/macros.json +++ b/app/javascript/dashboard/i18n/locale/pt/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Ocorreu um erro ao excluir a macro. Por favor, tente novamente mais tarde" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Editar macro", "API": { @@ -66,7 +69,9 @@ "LABEL": "Visibilidade da macro", "GLOBAL": { "LABEL": "Pública", - "DESCRIPTION": "Esta macro está disponível publicamente para todos os agentes nesta conta." + "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", diff --git a/app/javascript/dashboard/i18n/locale/pt/mfa.json b/app/javascript/dashboard/i18n/locale/pt/mfa.json index f72c7120d..750c14085 100644 --- a/app/javascript/dashboard/i18n/locale/pt/mfa.json +++ b/app/javascript/dashboard/i18n/locale/pt/mfa.json @@ -55,6 +55,10 @@ "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", 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_BR/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json index 751175d9c..de939a396 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "Nenhum atributo encontrado correspondente à sua busca", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversas", - "CONTACT": "Contato" + "CONTACT": "Contato", + "COMPANY": "Empresa" }, "ATTRIBUTE_TYPES": { "TEXT": "Texto", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Atributos Personalizados", "CONVERSATION": "Conversas", - "CONTACT": "Contato" + "CONTACT": "Contato", + "COMPANY": "Empresa" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json index 6b52ea99a..e3e315a61 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json b/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json index f66223231..d8c372466 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Você tem certeza que quer remover a atribuição de {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Voltar atrás", "ASSIGN_LABEL": "Atribua", + "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 time", @@ -38,6 +43,8 @@ "NONE": "Nenhum", "NO_TEAMS_AVAILABLE": "Ainda não há times adicionados a esta conta.", "ASSIGN_SELECTED_TEAMS": "Atribuir time selecionado.", + "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/chatlist.json b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json index 1afef7efe..eb71ba81e 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Ocultar Texto Citado", "SHOW_QUOTED_TEXT": "Mostrar Texto Citado", "MESSAGE_READ": "Lida", - "SENDING": "Enviando" + "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 index 050919739..0bb46e60f 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/companies.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/companies.json @@ -7,6 +7,7 @@ "NAME": "Nome", "DOMAIN": "Domínio", "CREATED_AT": "Criado em", + "LAST_ACTIVITY_AT": "Última atividade", "CONTACTS_COUNT": "Quantidade de contatos" } }, @@ -21,6 +22,121 @@ "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" } diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json index 76519478d..c9b5cd942 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identificador", "COUNTRY": "País/região", "CITY": "Cidade", + "COMPANY": "Empresa", "CREATED_AT": "Criado em", "LAST_ACTIVITY": "Última atividade", "REFERER_LINK": "Link de origem", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json index 01dd97457..ecd158e16 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Mensagem não disponível", "CARD": { "SHOW_LABELS": "Mostrar etiquetas", - "HIDE_LABELS": "Ocultar as etiquetas" + "HIDE_LABELS": "Ocultar as etiquetas", + "LABELS_COUNT": "{count} etiquetas" }, "VOICE_CALL": { "INCOMING_CALL": "Chamada recebida", @@ -82,7 +83,9 @@ "CALL_ENDED": "Chamada encerrada", "NOT_ANSWERED_YET": "Ainda não respondido", "THEY_ANSWERED": "Eles responderam", - "YOU_ANSWERED": "Você respondeu" + "YOU_ANSWERED": "Você respondeu", + "AGENT_ANSWERED": "{agentName} respondeu", + "JOIN_CALL": "Entrar na chamada" }, "HEADER": { "RESOLVE_ACTION": "Resolver", @@ -92,6 +95,7 @@ "OPEN": "Mais", "CLOSE": "Fechar", "DETAILS": "detalhes", + "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Conversas anteriores", "MACROS": "Macros", "LINEAR_ISSUES": "Problemas do Linear vinculados", - "SHOPIFY_ORDERS": "Pedidos do Shopify" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json b/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json index 6affb9cb4..6448cf209 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publicar", "DRAFT": "Rascunho", "ARCHIVE": "Arquivar", + "TRANSLATE": "Traduzir", "DELETE": "Excluir" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Excluir", + "STATUS_SUCCESS": "Artigos atualizados com sucesso", + "STATUS_ERROR": "Falha ao atualizar 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": { diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json index 583ac362c..d8ab81b0c 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Construtor de Widget", "BOT_CONFIGURATION": "Configuração do Bot", "ACCOUNT_HEALTH": "Saúde da conta", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voz" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Preferências do Canal", "WIDGET_FEATURES": "Recursos do widget", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "Ativar/Desativar exibição do nome do agente no e-mail, se estiver desativado, exibirá o nome da empresa", "ENABLE_CONTINUITY_VIA_EMAIL": "Habilitar continuidade das conversas por e-mail", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "As conversas continuarão sobre o e-mail se o endereço de e-mail de contato estiver disponível.", + "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "Este recurso está disponível em um plano pago. Atualize para ativar a continuidade da conversa via e-mail.", "LOCK_TO_SINGLE_CONVERSATION": "Roteamento de Conversa", "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configurar a criação de conversas para contatos existentes", "INBOX_UPDATE_TITLE": "Configurações da Caixa de Entrada", @@ -1000,7 +1011,8 @@ "LABEL": "Senha", "PLACE_HOLDER": "Senha" }, - "ENABLE_SSL": "Habilitar o SSL" + "ENABLE_SSL": "Habilitar o SSL", + "AUTH_MECHANISM": "Autenticação" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/index.js b/app/javascript/dashboard/i18n/locale/pt_BR/index.js index 92dee2fd0..ab2907b3c 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/index.js +++ b/app/javascript/dashboard/i18n/locale/pt_BR/index.js @@ -29,6 +29,7 @@ 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'; @@ -74,6 +75,7 @@ export default { ...login, ...macros, ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/integrationApps.json b/app/javascript/dashboard/i18n/locale/pt_BR/integrationApps.json index a4443a46c..a42b3be4f 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Selecionar caixa de entrada" }, "SUBMIT": "Criar", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancelar" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json index 7c5bce11e..b08d05c5a 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Selecionar todos ({count})", "UNSELECT_ALL": "Desmarcar todos ({count})", "BULK_DELETE_BUTTON": "Excluir", + "BULK_SYNC_BUTTON": "Atualizar", "BULK_DELETE": { "TITLE": "Excluir documentos?", "DESCRIPTION": "Você tem certeza que deseja excluir os documentos selecionados? Esta ação não pode ser desfeita.", @@ -749,6 +750,51 @@ "SUCCESS_MESSAGE": "Documentos excluídos com sucesso", "ERROR_MESSAGE": "Ocorreu um erro ao excluir os documentos, por favor novamente." }, + "BULK_SYNC": { + "SUCCESS_MESSAGE_ONE": "Atualização enfileirada para 1 documento", + "SUCCESS_MESSAGE": "Atualização enfileirada para {count} documentos", + "ZERO_MESSAGE": "Nenhum documento selecionado para atualização.", + "ERROR_MESSAGE": "Ocorreu um erro ao enfileirar a atualização. Por favor, tente novamente." + }, + "SYNC": { + "QUEUED_MESSAGE": "Atualização enfileirada. O documento será atualizado em breve.", + "ERROR_MESSAGE": "Não foi possível enfileirar a atualização. Por favor, tente novamente." + }, + "FILTERS": { + "SOURCE": { + "ALL": "Todas as fontes", + "WEB": "Páginas da web", + "PDF": "PDF's" + }, + "STATUS": { + "ANY": "Qualquer status", + "UPDATED": "Atualizado", + "NEEDS_UPDATE": "Precisa de atualização", + "UPDATING": "Atualizando", + "FAILED": "Falha" + }, + "SORT": { + "RECENTLY_UPDATED": "Atualizado recentemente", + "RECENTLY_CREATED": "Criado recentemente" + }, + "SEARCH_PLACEHOLDER": "Pesquisar..." + }, + "SYNC_STATUS": { + "SYNCED": "última atualização em {time}", + "SYNCING": "atualizando...", + "STALE_SYNC": "atualização travada", + "FAILED": "Falha ao sincronizar", + "NEVER_SYNCED": "ainda não atualizado" + }, + "SYNC_ERRORS": { + "NOT_FOUND": "Página não encontrada", + "ACCESS_DENIED": "Acesso negado", + "TIMEOUT": "A página demorou muito para responder", + "CONTENT_EMPTY": "A página retornou conteúdo vazio", + "FETCH_FAILED": "Não foi possível recuperar a página", + "SYNC_ERROR": "Erro inesperado", + "DEFAULT": "Erro na sincronização" + }, "RELATED_RESPONSES": { "TITLE": "FAQs Relacionadas", "DESCRIPTION": "Estes FAQs são gerados diretamente a partir do documento." @@ -792,11 +838,15 @@ }, "OPTIONS": { "VIEW_RELATED_RESPONSES": "Visualizar Respostas relacionadas", + "SYNC_NOW": "Atualizar agora", + "RETRY_SYNC": "Tentar atualizar novamente", "DELETE_DOCUMENT": "Excluir Documento" }, "EMPTY_STATE": { "TITLE": "Nenhum documento disponível", "SUBTITLE": "Os documentos são usados pelo seu assistente para gerar perguntas frequentes. Pode importar documentos para fornecer um contexto para seu assistente.", + "FILTERED_TITLE": "Nenhum documento correspondente", + "FILTERED_SUBTITLE": "Tente alterar a origem, o status ou o termo de pesquisa.", "FEATURE_SPOTLIGHT": { "TITLE": "Documento do Capitão", "NOTE": "Um documento no Capitão serve como um recurso de conhecimento para o assistente. Ao conectar sua central de ajuda ou guias, o Capitão pode analisar o conteúdo e fornecer respostas precisas para as dúvidas dos clientes." diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/macros.json b/app/javascript/dashboard/i18n/locale/pt_BR/macros.json index b5b235c6e..efc3be016 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/macros.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Ocorreu um erro ao excluir a macro. Por favor, tente novamente mais tarde" } }, + "VIEW": { + "TOOLTIP": "Ver macro" + }, "EDIT": { "TOOLTIP": "Editar macro", "API": { @@ -66,7 +69,9 @@ "LABEL": "Visibilidade da Macro", "GLOBAL": { "LABEL": "Publico", - "DESCRIPTION": "Esta macro está disponível publicamente para todos os agentes desta conta." + "DESCRIPTION": "Esta macro está disponível publicamente para todos os agentes desta conta.", + "CREATE_DISABLED_DESCRIPTION": "Somente administradores podem criar macros públicos.", + "EDIT_DISABLED_DESCRIPTION": "Somente administradores podem editar macros públicos." }, "PERSONAL": { "LABEL": "Privada", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/mfa.json b/app/javascript/dashboard/i18n/locale/pt_BR/mfa.json index 9a84d2144..e151222bc 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/mfa.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/mfa.json @@ -55,6 +55,10 @@ "PASSWORD": "Senha", "OTP_CODE": "Código de Verificação", "OTP_CODE_PLACEHOLDER": "000000", + "BACKUP_CODE": "Código de Recuperação", + "BACKUP_CODE_PLACEHOLDER": "Insira um dos seus códigos de recuperação", + "USE_BACKUP_CODE": "Perdeu o acesso ao seu autenticador? Use um código de recuperação em vez disso", + "USE_OTP_CODE": "Use um código de verificação do seu aplicativo de autenticação", "CONFIRM": "Desabilitar 2FA", "CANCEL": "Cancelar", "SUCCESS": "A autenticação em dois fatores foi desabilitada", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/onboarding.json b/app/javascript/dashboard/i18n/locale/pt_BR/onboarding.json new file mode 100644 index 000000000..3bc40bf65 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/pt_BR/onboarding.json @@ -0,0 +1,34 @@ +{ + "ONBOARDING_NEXT": { + "GREETING": "Olá, {name}!", + "SUBTITLE": "Por favor, reveja os seguintes detalhes", + "YOUR_DETAILS": "Seus detalhes", + "COMPANY_DETAILS": "Detalhes da empresa", + "FIELDS": { + "EMAIL": "E-mail", + "YOUR_ROLE": "Sua Função", + "WEBSITE": "Site", + "LANGUAGE": "Idioma", + "TIMEZONE": "Fuso horário", + "COMPANY_SIZE": "Tamanho da Empresa", + "INDUSTRY": "Setor", + "REFERRAL_SOURCE": "Onde você nos encontrou?" + }, + "PLACEHOLDERS": { + "SELECT_ROLE": "Selecione sua função", + "ENTER_WEBSITE": "www.exemplo.com", + "SELECT_LANGUAGE": "Selecione o idioma", + "SELECT_TIMEZONE": "Selecionar fuso horário", + "SELECT_COMPANY_SIZE": "Selecione tamanho da empresa", + "SELECT_INDUSTRY": "Selecione o setor", + "SELECT_REFERRAL_SOURCE": "Selecione a origem" + }, + "EMAIL_VERIFIED": "E-mail verificado", + "SETTING_UP": "Configurando sua conta...", + "CONTINUE": "Continuar", + "SAVING": "Salvando...", + "VALIDATION_ERROR": "Por favor, preencha todos os campos obrigatórios", + "SUCCESS": "Detalhes salvos com sucesso", + "ERROR": "Não foi possível salvar os detalhes. Por favor, tente novamente." + } +} diff --git a/app/javascript/dashboard/i18n/locale/ro/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ro/attributesMgmt.json index 03d961959..80153fba9 100644 --- a/app/javascript/dashboard/i18n/locale/ro/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ro/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversație", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Companie" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Editează atribut personalizat", "CONVERSATION": "Conversație", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Companie" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ro/automation.json b/app/javascript/dashboard/i18n/locale/ro/automation.json index 8214fdd1b..62a2e162e 100644 --- a/app/javascript/dashboard/i18n/locale/ro/automation.json +++ b/app/javascript/dashboard/i18n/locale/ro/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Nimic", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "Conversație creată", "CONVERSATION_UPDATED": "Conversație actualizată", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Limba browserului", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Țară", + "COMPANY_NAME": "Companie", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Echipa", diff --git a/app/javascript/dashboard/i18n/locale/ro/bulkActions.json b/app/javascript/dashboard/i18n/locale/ro/bulkActions.json index b83cf47cf..396b5b5b0 100644 --- a/app/javascript/dashboard/i18n/locale/ro/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ro/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Sigur doriți să anulați atribuirea a {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Mergeți înapoi", "ASSIGN_LABEL": "Atribuiți", + "NONE": "Nimic", + "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": "Da", + "CANCEL": "Renunță", "SEARCH_INPUT_PLACEHOLDER": "Caută", "ASSIGN_AGENT_TOOLTIP": "Atribuiți agent", "ASSIGN_TEAM_TOOLTIP": "Atribuiți echipă", @@ -38,6 +43,8 @@ "NONE": "Nimic", "NO_TEAMS_AVAILABLE": "Nu există încă echipe adăugate la acest cont.", "ASSIGN_SELECTED_TEAMS": "Atribuirea echipei selectate.", + "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/ro/chatlist.json b/app/javascript/dashboard/i18n/locale/ro/chatlist.json index 16ff7b373..8f9fb4142 100644 --- a/app/javascript/dashboard/i18n/locale/ro/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ro/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Ascunde textul citat", "SHOW_QUOTED_TEXT": "Arată textul citat", "MESSAGE_READ": "Citește", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/ro/companies.json b/app/javascript/dashboard/i18n/locale/ro/companies.json index bcb887cd0..ce8d6b86f 100644 --- a/app/javascript/dashboard/i18n/locale/ro/companies.json +++ b/app/javascript/dashboard/i18n/locale/ro/companies.json @@ -7,6 +7,7 @@ "NAME": "Nume", "DOMAIN": "Domeniu", "CREATED_AT": "Creat la", + "LAST_ACTIVITY_AT": "Ultima activitate", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Contacte", + "HISTORY": "History", + "NOTES": "Notițe" + } + }, + "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": "Cauta atribute...", + "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": "Se încarcă contactele...", + "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": "Companie", + "CONTACT_LABEL": "Contact", + "CURRENT_COMPANY": "Currently linked to {companyName}", + "ADD": "Link contact", + "CANCEL": "Renunță" + } + }, + "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": "Nume", + "DOMAIN": "Domeniu" + } + }, + "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" } diff --git a/app/javascript/dashboard/i18n/locale/ro/contact.json b/app/javascript/dashboard/i18n/locale/ro/contact.json index 1b1752132..4c2c842b6 100644 --- a/app/javascript/dashboard/i18n/locale/ro/contact.json +++ b/app/javascript/dashboard/i18n/locale/ro/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identificator", "COUNTRY": "Țară", "CITY": "Oraș", + "COMPANY": "Companie", "CREATED_AT": "Creat la", "LAST_ACTIVITY": "Ultima activitate", "REFERER_LINK": "Link referer", diff --git a/app/javascript/dashboard/i18n/locale/ro/conversation.json b/app/javascript/dashboard/i18n/locale/ro/conversation.json index f203c430c..ac6def97c 100644 --- a/app/javascript/dashboard/i18n/locale/ro/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ro/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Message not available", "CARD": { "SHOW_LABELS": "Afișare etichete", - "HIDE_LABELS": "Ascunderea etichetelor" + "HIDE_LABELS": "Ascunderea etichetelor", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Rezolvă", @@ -92,6 +95,7 @@ "OPEN": "Mai mult", "CLOSE": "Închide", "DETAILS": "detalii", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Amânare până la", "SNOOZED_UNTIL_TOMORROW": "Amânat până mâine", "SNOOZED_UNTIL_NEXT_WEEK": "Amânat până săptămâna viitoare", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Conversații anterioare", "MACROS": "Macrocomenzi", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ro/helpCenter.json b/app/javascript/dashboard/i18n/locale/ro/helpCenter.json index a33428b57..85771bfb6 100644 --- a/app/javascript/dashboard/i18n/locale/ro/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ro/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publicați", "DRAFT": "Ciornă", "ARCHIVE": "Archive", + "TRANSLATE": "Traduceți", "DELETE": "Şterge" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "Traduceți", + "SELECT_ALL": "Select all ({count})", + "SELECTED_COUNT": "{count} selected", + "CLEAR_SELECTION": "Clear selection", + "TRANSLATE_BUTTON": "Traduceți", + "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ți", + "DRAFT": "Ciornă", + "ARCHIVE": "Archive", + "TRANSLATE": "Traduceți", + "DELETE": "Şterge", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": "Şterge", + "DELETE_SUCCESS": "Articles deleted successfully", + "DELETE_ERROR": "Failed to delete articles" } }, "CATEGORY_PAGE": { diff --git a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json index 8ffdaa322..94a6ab812 100644 --- a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Configurarea botului", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name", "ENABLE_CONTINUITY_VIA_EMAIL": "Activați continuitatea conversației prin e-mail", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversațiile vor continua prin e-mail dacă adresa de e-mail de contact este disponibilă.", + "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": "Setări Inbox", @@ -1000,7 +1011,8 @@ "LABEL": "Parola", "PLACE_HOLDER": "Parola" }, - "ENABLE_SSL": "Activare SSL" + "ENABLE_SSL": "Activare SSL", + "AUTH_MECHANISM": "Autentificare" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ro/index.js b/app/javascript/dashboard/i18n/locale/ro/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ro/index.js +++ b/app/javascript/dashboard/i18n/locale/ro/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ro/integrationApps.json b/app/javascript/dashboard/i18n/locale/ro/integrationApps.json index 74260f3e3..fd4a93f4f 100644 --- a/app/javascript/dashboard/i18n/locale/ro/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ro/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Selectați Inbox" }, "SUBMIT": "Creeaza", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Renunță" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ro/integrations.json b/app/javascript/dashboard/i18n/locale/ro/integrations.json index d9dd64d93..c1426486d 100644 --- a/app/javascript/dashboard/i18n/locale/ro/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ro/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Select all ({count})", "UNSELECT_ALL": "Unselect all ({count})", "BULK_DELETE_BUTTON": "Şterge", + "BULK_SYNC_BUTTON": "Reîmprospătare", "BULK_DELETE": { "TITLE": "Delete documents?", "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.", @@ -749,6 +750,51 @@ "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": "actualizare...", + "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/ro/macros.json b/app/javascript/dashboard/i18n/locale/ro/macros.json index 9b77e8250..52e9e1133 100644 --- a/app/javascript/dashboard/i18n/locale/ro/macros.json +++ b/app/javascript/dashboard/i18n/locale/ro/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "A existat o eroare la ștergerea macrocomenzii. Încercați din nou mai târziu" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Editarea macrocomenzii", "API": { @@ -66,7 +69,9 @@ "LABEL": "Vizibilitatea macrocomenzilor", "GLOBAL": { "LABEL": "Public", - "DESCRIPTION": "Această macrocomandă este disponibilă public pentru toți agenții din acest cont." + "DESCRIPTION": "Această macrocomandă este disponibilă public pentru toți agenții din acest cont.", + "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.", + "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros." }, "PERSONAL": { "LABEL": "Privat", diff --git a/app/javascript/dashboard/i18n/locale/ro/mfa.json b/app/javascript/dashboard/i18n/locale/ro/mfa.json index 420e46f5a..9e081d058 100644 --- a/app/javascript/dashboard/i18n/locale/ro/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ro/mfa.json @@ -55,6 +55,10 @@ "PASSWORD": "Parola", "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": "Renunță", "SUCCESS": "Two-factor authentication has been disabled", diff --git a/app/javascript/dashboard/i18n/locale/ro/onboarding.json b/app/javascript/dashboard/i18n/locale/ro/onboarding.json new file mode 100644 index 000000000..66cb06914 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ro/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": "Limbă", + "TIMEZONE": "Fus orar", + "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": "Selectați fusul orar", + "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": "Se salvează...", + "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/ru/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ru/attributesMgmt.json index 402663784..26d815edc 100644 --- a/app/javascript/dashboard/i18n/locale/ru/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ru/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "Не найдено атрибутов, соответствующих вашему запросу", "ATTRIBUTE_MODELS": { "CONVERSATION": "Диалог", - "CONTACT": "Контакт" + "CONTACT": "Контакт", + "COMPANY": "Компания" }, "ATTRIBUTE_TYPES": { "TEXT": "Текст", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Пользовательские атрибуты", "CONVERSATION": "Диалог", - "CONTACT": "Контакт" + "CONTACT": "Контакт", + "COMPANY": "Компания" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ru/automation.json b/app/javascript/dashboard/i18n/locale/ru/automation.json index 6b4d326d6..28319ca74 100644 --- a/app/javascript/dashboard/i18n/locale/ru/automation.json +++ b/app/javascript/dashboard/i18n/locale/ru/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "Необходимо указать хотя бы одно действие" }, "NONE_OPTION": "Нет", + "LAST_RESPONDING_AGENT": "Последний ответ агента", "EVENTS": { "CONVERSATION_CREATED": "Диалог создан", "CONVERSATION_UPDATED": "Диалог обновлён", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Язык браузера", "MAIL_SUBJECT": "Тема письма", "COUNTRY_NAME": "Страна", + "COMPANY_NAME": "Компания", "REFERER_LINK": "Источник перехода", "ASSIGNEE_NAME": "Назначенный агент", "TEAM_NAME": "Команда", diff --git a/app/javascript/dashboard/i18n/locale/ru/bulkActions.json b/app/javascript/dashboard/i18n/locale/ru/bulkActions.json index 6efb69f6e..da44dc3a0 100644 --- a/app/javascript/dashboard/i18n/locale/ru/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ru/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Вы уверены, что хотите отменить назначение {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Вернуться", "ASSIGN_LABEL": "Назначить", + "NONE": "Ничего", + "CLEAR_SELECTION": "Сбросить", + "ASSIGN_AGENT_CONFIRMATION_LABEL": "Вы уверены, что вы хотите назначить разговор {n} для {agentName}? | Вы уверены, что хотите назначить {n} разговоры {agentName}?", + "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Вы уверены, что хотите отменить назначение разговора {n}? | Вы уверены, что хотите отменить назначение разговоров {n}?", "YES": "Да", + "CANCEL": "Отменить", "SEARCH_INPUT_PLACEHOLDER": "Поиск", "ASSIGN_AGENT_TOOLTIP": "Назначить агента", "ASSIGN_TEAM_TOOLTIP": "Назначить команду", @@ -38,6 +43,8 @@ "NONE": "Ничего", "NO_TEAMS_AVAILABLE": "Нет команд, добавленных в этот аккаунт.", "ASSIGN_SELECTED_TEAMS": "Назначить выбранную команду.", + "ASSIGN_TEAM_CONFIRMATION_LABEL": "Вы уверены, что вы хотите назначить разговор {n} для {teamName}? | Вы уверены, что хотите назначить {n} разговоры {teamName}?", + "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Вы уверены, что хотите отменить назначение разговора {n}? | Вы уверены, что хотите отменить назначение разговоров {n}?", "ASSIGN_SUCCESFUL": "Команды успешно назначены.", "ASSIGN_FAILED": "Не удалось назначить команду, попробуйте еще раз." } diff --git a/app/javascript/dashboard/i18n/locale/ru/chatlist.json b/app/javascript/dashboard/i18n/locale/ru/chatlist.json index ac97ef2aa..4f0bc0c98 100644 --- a/app/javascript/dashboard/i18n/locale/ru/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ru/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Скрыть цитируемый текст", "SHOW_QUOTED_TEXT": "Показать цитируемый текст", "MESSAGE_READ": "Прочитано", - "SENDING": "Отправка" + "SENDING": "Отправка", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/ru/companies.json b/app/javascript/dashboard/i18n/locale/ru/companies.json index 87c460e21..2dd912860 100644 --- a/app/javascript/dashboard/i18n/locale/ru/companies.json +++ b/app/javascript/dashboard/i18n/locale/ru/companies.json @@ -7,6 +7,7 @@ "NAME": "Имя", "DOMAIN": "Домен", "CREATED_AT": "Дата создания", + "LAST_ACTIVITY_AT": "Последние действия", "CONTACTS_COUNT": "Количество контактов" } }, @@ -21,6 +22,121 @@ "LOADING": "Загрузка компаний...", "UNNAMED": "Безымянная компания", "CONTACTS_COUNT": "{n} Контакт | {n} Контакта | Контактов", + "ACTIONS": { + "CREATE": "Добавить компанию" + }, + "CREATE": { + "TITLE": "Добавить информацию о компании", + "ACTIONS": { + "SAVE": "Добавить компанию" + }, + "MESSAGES": { + "SUCCESS": "Компания создана.", + "ERROR": "Не удалось создать компанию." + } + }, + "DETAIL": { + "LOADING": "Загрузка информации о компании...", + "EMPTY_STATE": { + "TITLE": "Компания не найдена", + "SUBTITLE": "Возможно, эта компания была удалена или больше не доступна для этого аккаунта." + }, + "SIDEBAR": { + "TABS": { + "ATTRIBUTES": "Свойства", + "CONTACTS": "Контакты", + "HISTORY": "История", + "NOTES": "Заметки" + } + }, + "HISTORY": { + "EMPTY": "Для контактов этой компании пока нет ни одной беседы." + }, + "NOTES": { + "EMPTY": "Заметки для контактов этой компании еще не найдены." + }, + "ATTRIBUTES": { + "SEARCH_PLACEHOLDER": "Поиск по атрибутам...", + "EMPTY_STATE": "Пользовательские атрибуты компании еще не настроены.", + "NO_ATTRIBUTES": "Подходящие атрибуты не найдены.", + "UNUSED_ATTRIBUTES": "{count} неиспользуемый атрибут | {count} неиспользованные атрибуты", + "MESSAGES": { + "UPDATE_SUCCESS": "Атрибут компании обновлён.", + "UPDATE_ERROR": "Невозможно обновить атрибут компании.", + "DELETE_SUCCESS": "Атрибут организации удален.", + "DELETE_ERROR": "Не удалось удалить атрибут организации." + } + }, + "CONTACTS": { + "LOADING": "Загрузка контактов...", + "EMPTY": "Нет контактов связанных с этой компанией.", + "UNNAMED_CONTACT": "Контакт без имени", + "ACTIONS": { + "ADD": "Добавить контакт", + "REMOVE": "Удалить контакт" + }, + "DIALOGS": { + "ADD": { + "DESCRIPTION": "Искать существующий контакт и привязать его к этой компании.", + "SEARCH_PLACEHOLDER": "Поиск контактов...", + "INITIAL": "Начните печатать для поиска контактов.", + "EMPTY": "Контакты не найдены.", + "CONFIRM_TITLE": "Связать контакт", + "CONFIRM_DESCRIPTION": "Подтвердите компанию и свяжитесь с ней перед тем, как связать ее.", + "COMPANY_LABEL": "Компания", + "CONTACT_LABEL": "Контакт", + "CURRENT_COMPANY": "В настоящее время связаны с {companyName}", + "ADD": "Привязать контакт", + "CANCEL": "Отменить" + } + }, + "MESSAGES": { + "ADD_SUCCESS": "Контакт связан с компанией.", + "ADD_ERROR": "Не удалось привязать контакт к компании.", + "REASSIGN_SUCCESS": "Контакт переназначен компании.", + "REASSIGN_ERROR": "Невозможно переназначить контакт с компанией.", + "REMOVE_SUCCESS": "Контакт удалён из компании.", + "REMOVE_ERROR": "Невозможно удалить контакт из компании." + } + }, + "AVATAR": { + "UPDATING": "Обновление аватара компании ...", + "UPLOAD_SUCCESS": "Аватар компании обновлён.", + "UPLOAD_ERROR": "Невозможно обновить аватар компании.", + "DELETE_SUCCESS": "Аватар компании удалён.", + "DELETE_ERROR": "Невозможно удалить аватар компании." + }, + "PROFILE": { + "TITLE": "Изменение данных компании", + "CREATED_AT": "Создано {date}", + "LAST_ACTIVE": "Последняя активность {date}", + "DESCRIPTION_PLACEHOLDER": "Добавить краткое описание этой компании", + "ACTIONS": { + "SAVE": "Обновить компанию" + }, + "MESSAGES": { + "UPDATE_SUCCESS": "Компания обновлена.", + "UPDATE_ERROR": "Невозможно обновить компанию." + }, + "FIELDS": { + "NAME": "Имя", + "DOMAIN": "Домен" + } + }, + "DELETE": { + "SECTION_TITLE": "Опасная зона", + "SECTION_DESCRIPTION": "Удалите эту компанию и отсоедините её контакты. Контакты останутся в учетной записи.", + "BUTTON": "Удалить компанию", + "TITLE": "Удалить компанию?", + "DESCRIPTION": "Это удалит компанию и отсоединит все связанные с ней контакты. Контакты будут сохранены.", + "DESCRIPTION_WITH_NAME": "Это удалит {companyName} и отсоединит все соответствующие контакты. Контакты будут сохранены.", + "CONFIRM": "Удалить компанию", + "MESSAGES": { + "SUCCESS": "Компания удалена.", + "ERROR": "Не удалось удалить компанию." + } + } + }, "EMPTY_STATE": { "TITLE": "Компаний не найдено" } diff --git a/app/javascript/dashboard/i18n/locale/ru/contact.json b/app/javascript/dashboard/i18n/locale/ru/contact.json index 5156a7456..10c51cf98 100644 --- a/app/javascript/dashboard/i18n/locale/ru/contact.json +++ b/app/javascript/dashboard/i18n/locale/ru/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Идентификатор", "COUNTRY": "Страна", "CITY": "Город", + "COMPANY": "Компания", "CREATED_AT": "Дата создания", "LAST_ACTIVITY": "Последние действия", "REFERER_LINK": "Ссылка реферера", diff --git a/app/javascript/dashboard/i18n/locale/ru/conversation.json b/app/javascript/dashboard/i18n/locale/ru/conversation.json index 41a91d075..88faa9870 100644 --- a/app/javascript/dashboard/i18n/locale/ru/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ru/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Сообщение недоступно", "CARD": { "SHOW_LABELS": "Показать метки", - "HIDE_LABELS": "Скрыть метки" + "HIDE_LABELS": "Скрыть метки", + "LABELS_COUNT": "{count} метки" }, "VOICE_CALL": { "INCOMING_CALL": "Входящий звонок", @@ -82,7 +83,9 @@ "CALL_ENDED": "Звонок завершен", "NOT_ANSWERED_YET": "Пока нет ответа", "THEY_ANSWERED": "Они ответили", - "YOU_ANSWERED": "Вы ответили" + "YOU_ANSWERED": "Вы ответили", + "AGENT_ANSWERED": "{agentName} ответил", + "JOIN_CALL": "Присоединиться к звонку" }, "HEADER": { "RESOLVE_ACTION": "Завершить", @@ -92,6 +95,7 @@ "OPEN": "Открыть", "CLOSE": "Закрыть", "DETAILS": "подробности", + "COPY_ID_SUCCESS": "ID разговора скопирован в буфер обмена", "SNOOZED_UNTIL": "Отложить до", "SNOOZED_UNTIL_TOMORROW": "Отложено до завтра", "SNOOZED_UNTIL_NEXT_WEEK": "Отложено до следующей недели", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Предыдущие диалоги", "MACROS": "Макросс", "LINEAR_ISSUES": "Связанные проблемы", - "SHOPIFY_ORDERS": "Shopify Orders" + "SHOPIFY_ORDERS": "Shopify Orders", + "SHARED_FILES": "Вложения" + }, + "SHARED_FILES": { + "EMPTY": "Нет вложений", + "DOWNLOAD": "Загрузить файл", + "DOWNLOAD_ERROR": "Не удалось загрузить файл. Пожалуйста, попробуйте еще раз.", + "MEDIA_HEADING": "Медиа", + "FILES_HEADING": "Файлы", + "VIEW_ALL": "Посмотреть все", + "SHOW_LESS": "Показать меньше", + "MORE_COUNT": "+{count}", + "UNTITLED_FILE": "Файл без заголовка" }, "SHOPIFY": { "ORDER_ID": "Order #{id}", diff --git a/app/javascript/dashboard/i18n/locale/ru/helpCenter.json b/app/javascript/dashboard/i18n/locale/ru/helpCenter.json index fd94877c8..34fffd4a7 100644 --- a/app/javascript/dashboard/i18n/locale/ru/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ru/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Опубликовано", "DRAFT": "Черновик", "ARCHIVE": "Архив", + "TRANSLATE": "Перевести", "DELETE": "Удалить" }, "STATUS": { @@ -579,6 +580,41 @@ "TITLE": "В этой категории нет статей", "SUBTITLE": "Статьи в этой категории будут отображаться здесь" } + }, + "BULK_TRANSLATE": { + "TITLE": "Перевести статью | Перевести статьи {count}", + "DESCRIPTION": "Перевод выбранной статьи на другой язык. | Перевести выбранные статьи на другой язык.", + "LOCALE_LABEL": "Целевой язык", + "LOCALE_PLACEHOLDER": "Выбрать язык", + "CATEGORY_LABEL": "Целевая категория", + "CATEGORY_PLACEHOLDER": "Выберите категорию", + "OPTIONAL": "(не обязательно)", + "CONFIRM": "Перевести", + "SELECT_ALL": "Выбрать все ({count})", + "SELECTED_COUNT": "Выбрано {count}", + "CLEAR_SELECTION": "Clear selection", + "TRANSLATE_BUTTON": "Перевести", + "CONFIRM_OVERWRITE": "Перезаписать и перевести", + "DUPLICATE_WARNING": "Перевод для этой статьи уже существует на выбранном языке. | Переводы уже существуют для {count} статей на выбранном языке.", + "DUPLICATE_CONFIRM_HINT": "Нажмите еще раз для перезаписи существующего перевода.", + "API": { + "SUCCESS_MESSAGE": "Перевод в процессе. Статья будет отображаться в виде проекта, как только будет готова.", + "ERROR_MESSAGE": "Не удалось начать перевод. Попробуйте еще раз." + } + }, + "BULK_ACTIONS": { + "PUBLISH": "Опубликовано", + "DRAFT": "Черновик", + "ARCHIVE": "Архив", + "TRANSLATE": "Перевести", + "DELETE": "Удалить", + "STATUS_SUCCESS": "Статьи успешно обновлены", + "STATUS_ERROR": "Ошибка обновления статей", + "DELETE_CONFIRM_TITLE": "Удаление статьи | Удалить статьи {count}", + "DELETE_CONFIRM_DESCRIPTION": "Это действие будет окончательно удалено выбранной статьи. Это действие не может быть отменено. | Это действие будет окончательно удалено {count} выбранных статей. Это действие нельзя отменить.", + "DELETE_CONFIRM": "Удалить", + "DELETE_SUCCESS": "Статьи успешно удалены", + "DELETE_ERROR": "Не удалось удалить статьи" } }, "CATEGORY_PAGE": { diff --git a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json index 2c419f614..2aede55ea 100644 --- a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Конструктор виджетов", "BOT_CONFIGURATION": "Конфигурация бота", "ACCOUNT_HEALTH": "Здоровье аккаунта", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Голосовая связь" + }, + "VOICE_CONFIGURATION": { + "ENABLE_VOICE": { + "LABEL": "Включить голосовой звонок", + "DESCRIPTION": "Включить голосовой вызов для этого ящика. Сотрудники смогут совершать и принимать телефонные звонки." + }, + "CREDENTIALS": { + "DESCRIPTION": "Голосовой вызов требует учетные данные Twilio API Key. Они используются для генерации токенов для голосовых подключений агентов." + } }, "CHANNEL_PREFERENCES": "Настройки канала", "WIDGET_FEATURES": "Функции виджета", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "Включить/выключить отображение имени Сотрудника в электронной почте, если отключено, он будет показывать бизнес-имя", "ENABLE_CONTINUITY_VIA_EMAIL": "Включить непрерывность диалогов по электронной почте", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Диалоги будут продолжаться по электронной почте, если доступен контактный адрес электронной почты.", + "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "Эта функция доступна на платном тарифном плане. Обновите тарифный план, чтобы включить непрерывность разговора по электронной почте.", "LOCK_TO_SINGLE_CONVERSATION": "Маршрутизация диалогов", "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Настройте создание диалогов для существующих контактов", "INBOX_UPDATE_TITLE": "Настройки источника", @@ -1000,7 +1011,8 @@ "LABEL": "Пароль", "PLACE_HOLDER": "Пароль" }, - "ENABLE_SSL": "Включить SSL" + "ENABLE_SSL": "Включить SSL", + "AUTH_MECHANISM": "Авторизация" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ru/index.js b/app/javascript/dashboard/i18n/locale/ru/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ru/index.js +++ b/app/javascript/dashboard/i18n/locale/ru/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ru/integrationApps.json b/app/javascript/dashboard/i18n/locale/ru/integrationApps.json index 56b05c243..4902283f0 100644 --- a/app/javascript/dashboard/i18n/locale/ru/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ru/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Выбрать \"Входящий\" канал" }, "SUBMIT": "Создать", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Отменить" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ru/integrations.json b/app/javascript/dashboard/i18n/locale/ru/integrations.json index 2356bfc5e..297b87453 100644 --- a/app/javascript/dashboard/i18n/locale/ru/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ru/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "SUCCESS_MESSAGE": "Documents deleted successfully", "ERROR_MESSAGE": "There was an error deleting the documents, please try again." }, + "BULK_SYNC": { + "SUCCESS_MESSAGE_ONE": "Обновления поставлены в очередь для 1 документа", + "SUCCESS_MESSAGE": "Обновления в очереди для документов {count}", + "ZERO_MESSAGE": "Нет документов, помеченных для обновления.", + "ERROR_MESSAGE": "При обновлении произошла ошибка, пожалуйста, попробуйте еще раз." + }, + "SYNC": { + "QUEUED_MESSAGE": "Обновляется очередь. Мы скоро обновим документ.", + "ERROR_MESSAGE": "Не удалось обновить, попробуйте еще раз." + }, + "FILTERS": { + "SOURCE": { + "ALL": "Все источники", + "WEB": "Веб страницы", + "PDF": "PDF-файлы" + }, + "STATUS": { + "ANY": "Любой статус", + "UPDATED": "Обновлено", + "NEEDS_UPDATE": "Необходимо обновить", + "UPDATING": "Обновляется", + "FAILED": "Не удалось" + }, + "SORT": { + "RECENTLY_UPDATED": "Недавно обновленные", + "RECENTLY_CREATED": "Недавно созданные" + }, + "SEARCH_PLACEHOLDER": "Поиск..." + }, + "SYNC_STATUS": { + "SYNCED": "последнее обновление {time}", + "SYNCING": "обновление...", + "STALE_SYNC": "обновление приостановлено", + "FAILED": "Ошибка синхронизации", + "NEVER_SYNCED": "еще не обновлено" + }, + "SYNC_ERRORS": { + "NOT_FOUND": "Страница не найдена", + "ACCESS_DENIED": "Доступ запрещён", + "TIMEOUT": "Страница заняла слишком много времени, чтобы ответить", + "CONTENT_EMPTY": "Страница вернула пустое содержимое", + "FETCH_FAILED": "Не удалось загрузить страницу", + "SYNC_ERROR": "Неизвестная ошибка", + "DEFAULT": "Ошибка синхронизации" + }, "RELATED_RESPONSES": { "TITLE": "Связанные FAQ", "DESCRIPTION": "Эти FAQ генерируются напрямую из документа." @@ -792,11 +838,15 @@ }, "OPTIONS": { "VIEW_RELATED_RESPONSES": "Просмотр связанных ответов", + "SYNC_NOW": "Обновите сейчас", + "RETRY_SYNC": "Повторите обновление", "DELETE_DOCUMENT": "Удалить документ" }, "EMPTY_STATE": { "TITLE": "Нет доступных документов", "SUBTITLE": "Документы используются Вашим ассистентом для создания FAQ. Вы можете импортировать документы для предоставления контекста для Вашего ассистента.", + "FILTERED_TITLE": "Нет подходящих документов", + "FILTERED_SUBTITLE": "Попробуйте изменить источник, статус или слово поиска.", "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." diff --git a/app/javascript/dashboard/i18n/locale/ru/macros.json b/app/javascript/dashboard/i18n/locale/ru/macros.json index 35c479c50..9a8e57b47 100644 --- a/app/javascript/dashboard/i18n/locale/ru/macros.json +++ b/app/javascript/dashboard/i18n/locale/ru/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Произошла ошибка при удалении макроса. Пожалуйста, повторите попытку позже" } }, + "VIEW": { + "TOOLTIP": "Просмотр макроса" + }, "EDIT": { "TOOLTIP": "Изменить макрос", "API": { @@ -66,7 +69,9 @@ "LABEL": "Видимость макроса", "GLOBAL": { "LABEL": "Публичный", - "DESCRIPTION": "Этот макрос доступен всем агентам на этом аккаунте." + "DESCRIPTION": "Этот макрос доступен всем агентам на этом аккаунте.", + "CREATE_DISABLED_DESCRIPTION": "Только администраторы могут создавать общедоступные макросы.", + "EDIT_DISABLED_DESCRIPTION": "Только администраторы могут редактировать общедоступные макросы." }, "PERSONAL": { "LABEL": "Приватный", diff --git a/app/javascript/dashboard/i18n/locale/ru/mfa.json b/app/javascript/dashboard/i18n/locale/ru/mfa.json index c0861212f..5e386d94c 100644 --- a/app/javascript/dashboard/i18n/locale/ru/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ru/mfa.json @@ -55,6 +55,10 @@ "PASSWORD": "Пароль", "OTP_CODE": "Проверочный код", "OTP_CODE_PLACEHOLDER": "000000", + "BACKUP_CODE": "Резервные код", + "BACKUP_CODE_PLACEHOLDER": "Введите один из ваших резервных кодов", + "USE_BACKUP_CODE": "Потеряли доступ к вашему аутентификатору? Используйте вместо этого резервный код", + "USE_OTP_CODE": "Используйте проверочный код из вашего приложения-аутентификатора", "CONFIRM": "Отключить 2FA", "CANCEL": "Отменить", "SUCCESS": "Двухфакторная аутентификация была отключена", diff --git a/app/javascript/dashboard/i18n/locale/ru/onboarding.json b/app/javascript/dashboard/i18n/locale/ru/onboarding.json new file mode 100644 index 000000000..45ccce014 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ru/onboarding.json @@ -0,0 +1,34 @@ +{ + "ONBOARDING_NEXT": { + "GREETING": "Привет, {name}!", + "SUBTITLE": "Пожалуйста, ознакомьтесь со следующими подробностями", + "YOUR_DETAILS": "Ваши данные", + "COMPANY_DETAILS": "Информация о компании", + "FIELDS": { + "EMAIL": "Email", + "YOUR_ROLE": "Ваша роль", + "WEBSITE": "Сайт", + "LANGUAGE": "Язык", + "TIMEZONE": "Часовой пояс", + "COMPANY_SIZE": "Размер компании", + "INDUSTRY": "Индустрия", + "REFERRAL_SOURCE": "Где вы нас нашли?" + }, + "PLACEHOLDERS": { + "SELECT_ROLE": "Выберите Вашу роль", + "ENTER_WEBSITE": "www.example.com", + "SELECT_LANGUAGE": "Выберите язык", + "SELECT_TIMEZONE": "Выберите часовой пояс", + "SELECT_COMPANY_SIZE": "Выбрать размер компании", + "SELECT_INDUSTRY": "Выберите отрасль", + "SELECT_REFERRAL_SOURCE": "Выбор источника" + }, + "EMAIL_VERIFIED": "Email подтверждён", + "SETTING_UP": "Настройка аккаунта...", + "CONTINUE": "Продолжить", + "SAVING": "Сохранение...", + "VALIDATION_ERROR": "Пожалуйста, заполните все обязательные поля", + "SUCCESS": "Данные успешно сохранены", + "ERROR": "Не удалось сохранить детали. Пожалуйста, попробуйте еще раз." + } +} diff --git a/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json index e83950b14..31b175812 100644 --- a/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sh/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/sh/automation.json b/app/javascript/dashboard/i18n/locale/sh/automation.json index 8e46cd539..ac8c18acd 100644 --- a/app/javascript/dashboard/i18n/locale/sh/automation.json +++ b/app/javascript/dashboard/i18n/locale/sh/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Company", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/sh/bulkActions.json b/app/javascript/dashboard/i18n/locale/sh/bulkActions.json index d736201de..58bac30cb 100644 --- a/app/javascript/dashboard/i18n/locale/sh/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/sh/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "NONE": "Nijedan", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/sh/chatlist.json b/app/javascript/dashboard/i18n/locale/sh/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/sh/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/sh/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/sh/companies.json b/app/javascript/dashboard/i18n/locale/sh/companies.json index 0d64a4abd..463127228 100644 --- a/app/javascript/dashboard/i18n/locale/sh/companies.json +++ b/app/javascript/dashboard/i18n/locale/sh/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Kontakti", + "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": "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": "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": "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" } diff --git a/app/javascript/dashboard/i18n/locale/sh/contact.json b/app/javascript/dashboard/i18n/locale/sh/contact.json index 77cc2dee1..aedc7728c 100644 --- a/app/javascript/dashboard/i18n/locale/sh/contact.json +++ b/app/javascript/dashboard/i18n/locale/sh/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Company", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/sh/conversation.json b/app/javascript/dashboard/i18n/locale/sh/conversation.json index 0b93ec39e..3d4f2573b 100644 --- a/app/javascript/dashboard/i18n/locale/sh/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sh/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Reši", @@ -92,6 +95,7 @@ "OPEN": "Više", "CLOSE": "Zatvori", "DETAILS": "detalji", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Snoozed until", "SNOOZED_UNTIL_TOMORROW": "Odloženo do sutra", "SNOOZED_UNTIL_NEXT_WEEK": "Odloženo do sledeće nedelje", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Prethodni razgovori", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/sh/helpCenter.json b/app/javascript/dashboard/i18n/locale/sh/helpCenter.json index 09fefffb6..e555aac69 100644 --- a/app/javascript/dashboard/i18n/locale/sh/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/sh/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Objavi", "DRAFT": "Nacrt", "ARCHIVE": "Arhiviraj", + "TRANSLATE": "Translate", "DELETE": "Obriši" }, "STATUS": { @@ -579,6 +580,41 @@ "TITLE": "Nema članaka u ovoj kategoriji", "SUBTITLE": "Članci iz ove kategorije će se pojaviti ovde" } + }, + "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": "Odaberi sve ({count})", + "SELECTED_COUNT": "{count} odabrano", + "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": "Nacrt", + "ARCHIVE": "Arhiviraj", + "TRANSLATE": "Translate", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json index 8296ba002..c4c5cc769 100644 --- a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Konfiguracija bota", "ACCOUNT_HEALTH": "Zdravlje računa", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Glas" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Postavke kanala", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "Omogući/onemogući prikaz imena agenta u e-pošti, ako je onemogućeno prikazat će se naziv tvrtke", "ENABLE_CONTINUITY_VIA_EMAIL": "Omogući kontinuitet razgovora putem e-pošte", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Razgovori će se nastaviti putem e-pošte ako je dostupna adresa e-pošte kontakta.", + "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": "Usmjeravanje razgovora", "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts", "INBOX_UPDATE_TITLE": "Postavke pristigle pošte", @@ -1000,7 +1011,8 @@ "LABEL": "Lozinka", "PLACE_HOLDER": "Lozinka" }, - "ENABLE_SSL": "Omogući SSL" + "ENABLE_SSL": "Omogući SSL", + "AUTH_MECHANISM": "Autentifikacija" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/sh/index.js b/app/javascript/dashboard/i18n/locale/sh/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/sh/index.js +++ b/app/javascript/dashboard/i18n/locale/sh/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/sh/integrationApps.json b/app/javascript/dashboard/i18n/locale/sh/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/sh/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/sh/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/sh/integrations.json b/app/javascript/dashboard/i18n/locale/sh/integrations.json index 8dff3c2b0..d8fe9fa2f 100644 --- a/app/javascript/dashboard/i18n/locale/sh/integrations.json +++ b/app/javascript/dashboard/i18n/locale/sh/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Odaberi sve ({count})", "UNSELECT_ALL": "Poništi odabir svih ({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.", @@ -749,6 +750,51 @@ "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": "Povezana često postavljana pitanja", "DESCRIPTION": "Ova često postavljana pitanja generirana su izravno iz dokumenta." @@ -792,11 +838,15 @@ }, "OPTIONS": { "VIEW_RELATED_RESPONSES": "Pogledaj povezane odgovore", + "SYNC_NOW": "Refresh now", + "RETRY_SYNC": "Retry refresh", "DELETE_DOCUMENT": "Izbriši dokument" }, "EMPTY_STATE": { "TITLE": "Nema dostupnih dokumenata", "SUBTITLE": "Dokumenti se koriste za generiranje često postavljanih pitanja od strane vašeg asistenta. Možete uvesti dokumente kako biste pružili kontekst vašem asistentu.", + "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." diff --git a/app/javascript/dashboard/i18n/locale/sh/macros.json b/app/javascript/dashboard/i18n/locale/sh/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/sh/macros.json +++ b/app/javascript/dashboard/i18n/locale/sh/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/sh/mfa.json b/app/javascript/dashboard/i18n/locale/sh/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/sh/mfa.json +++ b/app/javascript/dashboard/i18n/locale/sh/mfa.json @@ -55,6 +55,10 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/sh/onboarding.json b/app/javascript/dashboard/i18n/locale/sh/onboarding.json new file mode 100644 index 000000000..b10b9a5ac --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sh/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": "Odaberi vremensku zonu", + "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": "Nastavi", + "SAVING": "Čuvanje...", + "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/sk/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sk/attributesMgmt.json index 84ec0078c..4dda99eb6 100644 --- a/app/javascript/dashboard/i18n/locale/sk/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sk/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Spoločnosť" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Spoločnosť" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/sk/automation.json b/app/javascript/dashboard/i18n/locale/sk/automation.json index 2d4e41b66..7369cb340 100644 --- a/app/javascript/dashboard/i18n/locale/sk/automation.json +++ b/app/javascript/dashboard/i18n/locale/sk/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Žiadne", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "Conversation Created", "CONVERSATION_UPDATED": "Conversation Updated", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Krajina", + "COMPANY_NAME": "Spoločnosť", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/sk/bulkActions.json b/app/javascript/dashboard/i18n/locale/sk/bulkActions.json index 878d7af8f..45e2b9fc2 100644 --- a/app/javascript/dashboard/i18n/locale/sk/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/sk/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "NONE": "Žiadne", + "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": "Áno", + "CANCEL": "Zrušiť", "SEARCH_INPUT_PLACEHOLDER": "Hľadať", "ASSIGN_AGENT_TOOLTIP": "Assign agent", "ASSIGN_TEAM_TOOLTIP": "Assign team", @@ -38,6 +43,8 @@ "NONE": "Žiadne", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/sk/chatlist.json b/app/javascript/dashboard/i18n/locale/sk/chatlist.json index d57ee9be7..02811892d 100644 --- a/app/javascript/dashboard/i18n/locale/sk/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/sk/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Skryť citovaný text", "SHOW_QUOTED_TEXT": "Ukázať citovaný text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/sk/companies.json b/app/javascript/dashboard/i18n/locale/sk/companies.json index 37e921d26..06d8493ba 100644 --- a/app/javascript/dashboard/i18n/locale/sk/companies.json +++ b/app/javascript/dashboard/i18n/locale/sk/companies.json @@ -7,6 +7,7 @@ "NAME": "Meno", "DOMAIN": "Doména", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Poznámky" + } + }, + "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": "Hľadať atribúty...", + "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": "Kontakty sa hľadajú...", + "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": "Spoločnosť", + "CONTACT_LABEL": "Contact", + "CURRENT_COMPANY": "Currently linked to {companyName}", + "ADD": "Link contact", + "CANCEL": "Zrušiť" + } + }, + "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": "Meno", + "DOMAIN": "Doména" + } + }, + "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" } diff --git a/app/javascript/dashboard/i18n/locale/sk/contact.json b/app/javascript/dashboard/i18n/locale/sk/contact.json index 63dab97d7..d2cbf5d42 100644 --- a/app/javascript/dashboard/i18n/locale/sk/contact.json +++ b/app/javascript/dashboard/i18n/locale/sk/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Krajina", "CITY": "Mesto", + "COMPANY": "Spoločnosť", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/sk/conversation.json b/app/javascript/dashboard/i18n/locale/sk/conversation.json index c0851426f..8607defca 100644 --- a/app/javascript/dashboard/i18n/locale/sk/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sk/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Vyriešiť", @@ -92,6 +95,7 @@ "OPEN": "Viac", "CLOSE": "Zatvoriť", "DETAILS": "detaily", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Snoozed until", "SNOOZED_UNTIL_TOMORROW": "Odložené do zajtra", "SNOOZED_UNTIL_NEXT_WEEK": "Odložené do ďalšieho týždňa", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Prechádzajúce konverzácie", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/sk/helpCenter.json b/app/javascript/dashboard/i18n/locale/sk/helpCenter.json index 94adc2dc4..add2d5e48 100644 --- a/app/javascript/dashboard/i18n/locale/sk/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/sk/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Vymazať" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Vymazať", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": "Vymazať", + "DELETE_SUCCESS": "Articles deleted successfully", + "DELETE_ERROR": "Failed to delete articles" } }, "CATEGORY_PAGE": { diff --git a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json index 5c1ba9d40..6bedff0ac 100644 --- a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Heslo", "PLACE_HOLDER": "Heslo" }, - "ENABLE_SSL": "Povoliť SSL" + "ENABLE_SSL": "Povoliť SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/sk/index.js b/app/javascript/dashboard/i18n/locale/sk/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/sk/index.js +++ b/app/javascript/dashboard/i18n/locale/sk/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/sk/integrationApps.json b/app/javascript/dashboard/i18n/locale/sk/integrationApps.json index 4a6b20120..76ea151ba 100644 --- a/app/javascript/dashboard/i18n/locale/sk/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/sk/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Zrušiť" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/sk/integrations.json b/app/javascript/dashboard/i18n/locale/sk/integrations.json index 87791f7b3..20e07960d 100644 --- a/app/javascript/dashboard/i18n/locale/sk/integrations.json +++ b/app/javascript/dashboard/i18n/locale/sk/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Select all ({count})", "UNSELECT_ALL": "Unselect all ({count})", "BULK_DELETE_BUTTON": "Vymazať", + "BULK_SYNC_BUTTON": "Obnoviť", "BULK_DELETE": { "TITLE": "Delete documents?", "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/sk/macros.json b/app/javascript/dashboard/i18n/locale/sk/macros.json index 220838b7a..ac61d219e 100644 --- a/app/javascript/dashboard/i18n/locale/sk/macros.json +++ b/app/javascript/dashboard/i18n/locale/sk/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/sk/mfa.json b/app/javascript/dashboard/i18n/locale/sk/mfa.json index 4ff8d73d5..d58c7e061 100644 --- a/app/javascript/dashboard/i18n/locale/sk/mfa.json +++ b/app/javascript/dashboard/i18n/locale/sk/mfa.json @@ -55,6 +55,10 @@ "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": "Zrušiť", "SUCCESS": "Two-factor authentication has been disabled", diff --git a/app/javascript/dashboard/i18n/locale/sk/onboarding.json b/app/javascript/dashboard/i18n/locale/sk/onboarding.json new file mode 100644 index 000000000..4a6e1dc3b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sk/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": "Vybrať č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": "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/sl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sl/attributesMgmt.json index 7d8528687..79565e194 100644 --- a/app/javascript/dashboard/i18n/locale/sl/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sl/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Podjetje" }, "ATTRIBUTE_TYPES": { "TEXT": "Tekst", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Podjetje" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/sl/automation.json b/app/javascript/dashboard/i18n/locale/sl/automation.json index 5556bff34..2d948caba 100644 --- a/app/javascript/dashboard/i18n/locale/sl/automation.json +++ b/app/javascript/dashboard/i18n/locale/sl/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Podjetje", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Prejemnik", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/sl/bulkActions.json b/app/javascript/dashboard/i18n/locale/sl/bulkActions.json index d736201de..2472a9288 100644 --- a/app/javascript/dashboard/i18n/locale/sl/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/sl/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/sl/chatlist.json b/app/javascript/dashboard/i18n/locale/sl/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/sl/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/sl/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/sl/companies.json b/app/javascript/dashboard/i18n/locale/sl/companies.json index 0d64a4abd..eda06793c 100644 --- a/app/javascript/dashboard/i18n/locale/sl/companies.json +++ b/app/javascript/dashboard/i18n/locale/sl/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Atributi", + "CONTACTS": "Stiki", + "HISTORY": "Zgodovina", + "NOTES": "Beležke" + } + }, + "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": "Dodaj stik", + "REMOVE": "Remove contact" + }, + "DIALOGS": { + "ADD": { + "DESCRIPTION": "Search for an existing contact and link it to this company.", + "SEARCH_PLACEHOLDER": "Išči stike...", + "INITIAL": "Start typing to search contacts.", + "EMPTY": "Ni najdenih stikov.", + "CONFIRM_TITLE": "Link contact", + "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.", + "COMPANY_LABEL": "Podjetje", + "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": "Ustvarjeno {date}", + "LAST_ACTIVE": "Zadnja aktivnost {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": "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" } diff --git a/app/javascript/dashboard/i18n/locale/sl/contact.json b/app/javascript/dashboard/i18n/locale/sl/contact.json index d5f30df00..63b9a388a 100644 --- a/app/javascript/dashboard/i18n/locale/sl/contact.json +++ b/app/javascript/dashboard/i18n/locale/sl/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifikator", "COUNTRY": "Država", "CITY": "Mesto", + "COMPANY": "Podjetje", "CREATED_AT": "Ustvarjeno ob", "LAST_ACTIVITY": "Zadnja aktivnost", "REFERER_LINK": "Napotitvena povezava", diff --git a/app/javascript/dashboard/i18n/locale/sl/conversation.json b/app/javascript/dashboard/i18n/locale/sl/conversation.json index 84629e2a0..31c410270 100644 --- a/app/javascript/dashboard/i18n/locale/sl/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sl/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resolve", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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": "Prikaži vse", + "SHOW_LESS": "Show less", + "MORE_COUNT": "+{count}", + "UNTITLED_FILE": "Untitled file" }, "SHOPIFY": { "ORDER_ID": "Order #{id}", diff --git a/app/javascript/dashboard/i18n/locale/sl/helpCenter.json b/app/javascript/dashboard/i18n/locale/sl/helpCenter.json index 121e109bb..b32e9e99d 100644 --- a/app/javascript/dashboard/i18n/locale/sl/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/sl/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Objavi", "DRAFT": "Osnutek", "ARCHIVE": "Arhiviraj", + "TRANSLATE": "Translate", "DELETE": "Izbriši" }, "STATUS": { @@ -579,6 +580,41 @@ "TITLE": "V tej kategoriji ni člankov", "SUBTITLE": "Članki v tej kategoriji se bodo prikazali tukaj" } + }, + "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} izbranih", + "CLEAR_SELECTION": "Počisti izbiro", + "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": "Osnutek", + "ARCHIVE": "Arhiviraj", + "TRANSLATE": "Translate", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json index a18a439a1..4285f543d 100644 --- a/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Ustvarjalec pripomočkov", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Zdravje računa", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Glas" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Nastavitve kanala", "WIDGET_FEATURES": "Funkcije pripomočka", @@ -745,6 +755,7 @@ "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.", + "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": "Usmerjanje pogovorov", "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts", "INBOX_UPDATE_TITLE": "Nastavitve prejemnika", @@ -1000,7 +1011,8 @@ "LABEL": "Geslo", "PLACE_HOLDER": "Geslo" }, - "ENABLE_SSL": "Omogoči SSL" + "ENABLE_SSL": "Omogoči SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/sl/index.js b/app/javascript/dashboard/i18n/locale/sl/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/sl/index.js +++ b/app/javascript/dashboard/i18n/locale/sl/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/sl/integrationApps.json b/app/javascript/dashboard/i18n/locale/sl/integrationApps.json index 0204eec1e..f4c2413ad 100644 --- a/app/javascript/dashboard/i18n/locale/sl/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/sl/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/sl/integrations.json b/app/javascript/dashboard/i18n/locale/sl/integrations.json index 6831f7ea7..5f43707c2 100644 --- a/app/javascript/dashboard/i18n/locale/sl/integrations.json +++ b/app/javascript/dashboard/i18n/locale/sl/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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": "Neuspešno" + }, + "SORT": { + "RECENTLY_UPDATED": "Recently updated", + "RECENTLY_CREATED": "Recently created" + }, + "SEARCH_PLACEHOLDER": "Iskanje ..." + }, + "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": "Stran ni najdena", + "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": "Povezana pogosta vprašanja", "DESCRIPTION": "Ta pogosta vprašanja so ustvarjena neposredno iz dokumenta." @@ -792,11 +838,15 @@ }, "OPTIONS": { "VIEW_RELATED_RESPONSES": "Ogled povezanih odgovorov", + "SYNC_NOW": "Refresh now", + "RETRY_SYNC": "Retry refresh", "DELETE_DOCUMENT": "Izbriši dokument" }, "EMPTY_STATE": { "TITLE": "Ni na voljo dokumentov", "SUBTITLE": "Dokumenti se uporabljajo za generiranje FAQ vašega asistenta. Dokumente lahko uvozite, da zagotovite kontekst za vašega asistenta.", + "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." diff --git a/app/javascript/dashboard/i18n/locale/sl/macros.json b/app/javascript/dashboard/i18n/locale/sl/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/sl/macros.json +++ b/app/javascript/dashboard/i18n/locale/sl/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/sl/mfa.json b/app/javascript/dashboard/i18n/locale/sl/mfa.json index 3ae6e4431..af9a835d6 100644 --- a/app/javascript/dashboard/i18n/locale/sl/mfa.json +++ b/app/javascript/dashboard/i18n/locale/sl/mfa.json @@ -55,6 +55,10 @@ "PASSWORD": "Geslo", "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", diff --git a/app/javascript/dashboard/i18n/locale/sl/onboarding.json b/app/javascript/dashboard/i18n/locale/sl/onboarding.json new file mode 100644 index 000000000..2b7f78041 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sl/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-pošta", + "YOUR_ROLE": "Your Role", + "WEBSITE": "Spletna stran", + "LANGUAGE": "Jezik", + "TIMEZONE": "Časovni pas", + "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": "Izberi časovni pas", + "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": "Nadaljuj", + "SAVING": "Shranjujem...", + "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/sq/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sq/attributesMgmt.json index 20a3c0596..4e37bd18f 100644 --- a/app/javascript/dashboard/i18n/locale/sq/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sq/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Kompania" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Kompania" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/sq/automation.json b/app/javascript/dashboard/i18n/locale/sq/automation.json index 6aa6af242..b80591b3a 100644 --- a/app/javascript/dashboard/i18n/locale/sq/automation.json +++ b/app/javascript/dashboard/i18n/locale/sq/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Subjekti i emailit", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Kompania", "REFERER_LINK": "Lidhja e referuesit", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/sq/bulkActions.json b/app/javascript/dashboard/i18n/locale/sq/bulkActions.json index d736201de..2472a9288 100644 --- a/app/javascript/dashboard/i18n/locale/sq/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/sq/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/sq/chatlist.json b/app/javascript/dashboard/i18n/locale/sq/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/sq/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/sq/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/sq/companies.json b/app/javascript/dashboard/i18n/locale/sq/companies.json index 0d64a4abd..89e1682ba 100644 --- a/app/javascript/dashboard/i18n/locale/sq/companies.json +++ b/app/javascript/dashboard/i18n/locale/sq/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Karakteristika", + "CONTACTS": "Kontaktet", + "HISTORY": "Historia", + "NOTES": "Shënime" + } + }, + "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": "Shto kontakt", + "REMOVE": "Remove contact" + }, + "DIALOGS": { + "ADD": { + "DESCRIPTION": "Search for an existing contact and link it to this company.", + "SEARCH_PLACEHOLDER": "Kërko kontakte...", + "INITIAL": "Start typing to search contacts.", + "EMPTY": "Nuk u gjetën kontakte.", + "CONFIRM_TITLE": "Link contact", + "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.", + "COMPANY_LABEL": "Kompania", + "CONTACT_LABEL": "Kontakti", + "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": "Krijuar më {date}", + "LAST_ACTIVE": "Aktiv i fundit {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": "Domeni" + } + }, + "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" } diff --git a/app/javascript/dashboard/i18n/locale/sq/contact.json b/app/javascript/dashboard/i18n/locale/sq/contact.json index 958766792..97ca50b75 100644 --- a/app/javascript/dashboard/i18n/locale/sq/contact.json +++ b/app/javascript/dashboard/i18n/locale/sq/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifikuesi", "COUNTRY": "Shteti", "CITY": "Qyteti", + "COMPANY": "Kompania", "CREATED_AT": "Krijuar më", "LAST_ACTIVITY": "Aktiviteti i fundit", "REFERER_LINK": "Lidhja referuese", diff --git a/app/javascript/dashboard/i18n/locale/sq/conversation.json b/app/javascript/dashboard/i18n/locale/sq/conversation.json index 44041d04e..8c9d27da0 100644 --- a/app/javascript/dashboard/i18n/locale/sq/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sq/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Zgjidh", @@ -92,6 +95,7 @@ "OPEN": "Më shumë", "CLOSE": "Mbyll", "DETAILS": "detaje", + "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", "LINEAR_ISSUES": "Çështje të lidhura në Linear", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/sq/helpCenter.json b/app/javascript/dashboard/i18n/locale/sq/helpCenter.json index a5ed7cd09..28dc8b141 100644 --- a/app/javascript/dashboard/i18n/locale/sq/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/sq/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publiko", "DRAFT": "Draft", "ARCHIVE": "Arkivo", + "TRANSLATE": "Translate", "DELETE": "Fshij" }, "STATUS": { @@ -579,6 +580,41 @@ "TITLE": "Nuk ka artikuj në këtë kategori", "SUBTITLE": "Artikujt në këtë kategori do të shfaqen këtu" } + }, + "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": "Zgjidh të gjitha ({count})", + "SELECTED_COUNT": "{count} i/e zgjedhur", + "CLEAR_SELECTION": "Pastro përzgjedhjen", + "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": "Publiko", + "DRAFT": "Draft", + "ARCHIVE": "Arkivo", + "TRANSLATE": "Translate", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json index 0fc12b73b..d460526c3 100644 --- a/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Konfigurimi i Botit", "ACCOUNT_HEALTH": "Shëndeti i Llogarisë", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Zë" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Preferencat e kanalit", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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": "Rrjedhja e Bisedave", "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Konfiguro krijimin e bisedave për kontaktet ekzistuese", "INBOX_UPDATE_TITLE": "Cilësimet e Postës", @@ -1000,7 +1011,8 @@ "LABEL": "Fjalëkalimi", "PLACE_HOLDER": "Fjalëkalimi" }, - "ENABLE_SSL": "Aktivizo SSL" + "ENABLE_SSL": "Aktivizo SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/sq/index.js b/app/javascript/dashboard/i18n/locale/sq/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/sq/index.js +++ b/app/javascript/dashboard/i18n/locale/sq/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/sq/integrationApps.json b/app/javascript/dashboard/i18n/locale/sq/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/sq/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/sq/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/sq/integrations.json b/app/javascript/dashboard/i18n/locale/sq/integrations.json index f87439881..0140c428b 100644 --- a/app/javascript/dashboard/i18n/locale/sq/integrations.json +++ b/app/javascript/dashboard/i18n/locale/sq/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Zgjidh të gjitha ({count})", "UNSELECT_ALL": "Hiq zgjedhjen nga të gjitha ({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.", @@ -749,6 +750,51 @@ "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": "Dështuar" + }, + "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": "Pyetje të Shpeshta të lidhura", "DESCRIPTION": "Këto Pyetje të Shpeshta janë gjeneruar direkt nga dokumenti." @@ -792,11 +838,15 @@ }, "OPTIONS": { "VIEW_RELATED_RESPONSES": "Shiko Përgjigjet e Lidhura", + "SYNC_NOW": "Refresh now", + "RETRY_SYNC": "Retry refresh", "DELETE_DOCUMENT": "Fshi Dokumentin" }, "EMPTY_STATE": { "TITLE": "Nuk ka dokumente në dispozicion", "SUBTITLE": "Dokumentet përdoren nga asistenti juaj për të krijuar pyetje të shpeshta. Mund të importoni dokumente për t’i dhënë kontekst asistentit tuaj.", + "FILTERED_TITLE": "No matching documents", + "FILTERED_SUBTITLE": "Try changing the source, status, or search term.", "FEATURE_SPOTLIGHT": { "TITLE": "Dokumenti Captain", "NOTE": "Një dokument në Captain shërben si një burim njohurish për asistentin. Duke lidhur qendrën tuaj të ndihmës ose udhëzuesit, Captain mund të analizojë përmbajtjen dhe të ofrojë përgjigje të sakta për pyetjet e klientëve." diff --git a/app/javascript/dashboard/i18n/locale/sq/macros.json b/app/javascript/dashboard/i18n/locale/sq/macros.json index 476271038..e6380b7a7 100644 --- a/app/javascript/dashboard/i18n/locale/sq/macros.json +++ b/app/javascript/dashboard/i18n/locale/sq/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/sq/mfa.json b/app/javascript/dashboard/i18n/locale/sq/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/sq/mfa.json +++ b/app/javascript/dashboard/i18n/locale/sq/mfa.json @@ -55,6 +55,10 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/sq/onboarding.json b/app/javascript/dashboard/i18n/locale/sq/onboarding.json new file mode 100644 index 000000000..ce8e5e7fc --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sq/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": "Zgjidh zonën kohore", + "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": "Vazhdo", + "SAVING": "Duke ruajtur...", + "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/sr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sr/attributesMgmt.json index fa3b9d008..911d92ab3 100644 --- a/app/javascript/dashboard/i18n/locale/sr/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sr/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Razgovor", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Firma" }, "ATTRIBUTE_TYPES": { "TEXT": "Tekst", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Prilagođeni atributi", "CONVERSATION": "Razgovor", - "CONTACT": "Kontakt" + "CONTACT": "Kontakt", + "COMPANY": "Firma" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/sr/automation.json b/app/javascript/dashboard/i18n/locale/sr/automation.json index ef707a764..061976840 100644 --- a/app/javascript/dashboard/i18n/locale/sr/automation.json +++ b/app/javascript/dashboard/i18n/locale/sr/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Niko", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "Razgovor je napravljen", "CONVERSATION_UPDATED": "Razgovor je izmenjen", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Jezik pregledača", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Država", + "COMPANY_NAME": "Firma", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Tim", diff --git a/app/javascript/dashboard/i18n/locale/sr/bulkActions.json b/app/javascript/dashboard/i18n/locale/sr/bulkActions.json index a1b651426..216988dd9 100644 --- a/app/javascript/dashboard/i18n/locale/sr/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/sr/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Povratak", "ASSIGN_LABEL": "Dodeli", + "NONE": "Niko", + "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": "Da", + "CANCEL": "Otkaži", "SEARCH_INPUT_PLACEHOLDER": "Traži", "ASSIGN_AGENT_TOOLTIP": "Dodeli agenta", "ASSIGN_TEAM_TOOLTIP": "Dodeli tim", @@ -38,6 +43,8 @@ "NONE": "Niko", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/sr/chatlist.json b/app/javascript/dashboard/i18n/locale/sr/chatlist.json index bdce531ec..196992d18 100644 --- a/app/javascript/dashboard/i18n/locale/sr/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/sr/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Sakriji citirani tekst", "SHOW_QUOTED_TEXT": "Prikaži citirani tekst", "MESSAGE_READ": "Pročitane", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/sr/companies.json b/app/javascript/dashboard/i18n/locale/sr/companies.json index 260560347..32583aeed 100644 --- a/app/javascript/dashboard/i18n/locale/sr/companies.json +++ b/app/javascript/dashboard/i18n/locale/sr/companies.json @@ -7,6 +7,7 @@ "NAME": "Ime", "DOMAIN": "Domen", "CREATED_AT": "Napravljena u", + "LAST_ACTIVITY_AT": "Poslednja aktivnost", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Kontakti", + "HISTORY": "History", + "NOTES": "Beleške" + } + }, + "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": "Traži atribute...", + "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": "Preuzimanje kontakata...", + "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": "Otkaži" + } + }, + "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": "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" } diff --git a/app/javascript/dashboard/i18n/locale/sr/contact.json b/app/javascript/dashboard/i18n/locale/sr/contact.json index 1e6b7c9de..c07b3d008 100644 --- a/app/javascript/dashboard/i18n/locale/sr/contact.json +++ b/app/javascript/dashboard/i18n/locale/sr/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifikator", "COUNTRY": "Država", "CITY": "Grad", + "COMPANY": "Firma", "CREATED_AT": "Napravljena u", "LAST_ACTIVITY": "Poslednja aktivnost", "REFERER_LINK": "Veza reference", diff --git a/app/javascript/dashboard/i18n/locale/sr/conversation.json b/app/javascript/dashboard/i18n/locale/sr/conversation.json index fb0a5d1ed..571b96db3 100644 --- a/app/javascript/dashboard/i18n/locale/sr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sr/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Reši", @@ -92,6 +95,7 @@ "OPEN": "Više", "CLOSE": "Zatvori", "DETAILS": "detalji", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Snoozed until", "SNOOZED_UNTIL_TOMORROW": "Odloženo do sutra", "SNOOZED_UNTIL_NEXT_WEEK": "Odloženo do sledeće nedelje", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Prethodni razgovor", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/sr/helpCenter.json b/app/javascript/dashboard/i18n/locale/sr/helpCenter.json index 0617bbc65..ccedf07f6 100644 --- a/app/javascript/dashboard/i18n/locale/sr/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/sr/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Objavite", "DRAFT": "Nacrt", "ARCHIVE": "Archive", + "TRANSLATE": "Prevedi", "DELETE": "Izbriši" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "Prevedi", + "SELECT_ALL": "Select all ({count})", + "SELECTED_COUNT": "{count} selected", + "CLEAR_SELECTION": "Clear selection", + "TRANSLATE_BUTTON": "Prevedi", + "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": "Objavite", + "DRAFT": "Nacrt", + "ARCHIVE": "Archive", + "TRANSLATE": "Prevedi", + "DELETE": "Izbriši", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json index 4e7b557d9..a237f2498 100644 --- a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Izgrađivač vidžeta", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "Izveštaj o zadovoljstvu" + "CSAT": "Izveštaj o zadovoljstvu", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name", "ENABLE_CONTINUITY_VIA_EMAIL": "Omogući nastavljanje razgovora putem e-pošte", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Razgovori će se nastaviti putem e-pošte ako je dostupna adresa e-pošte kontakta.", + "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": "Podešavanja prijemnog sandučeta", @@ -1000,7 +1011,8 @@ "LABEL": "Lozinka", "PLACE_HOLDER": "Lozinka" }, - "ENABLE_SSL": "Omogući SSL" + "ENABLE_SSL": "Omogući SSL", + "AUTH_MECHANISM": "Autentifikacija" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/sr/index.js b/app/javascript/dashboard/i18n/locale/sr/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/sr/index.js +++ b/app/javascript/dashboard/i18n/locale/sr/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/sr/integrationApps.json b/app/javascript/dashboard/i18n/locale/sr/integrationApps.json index 03e98bac1..551f5dca3 100644 --- a/app/javascript/dashboard/i18n/locale/sr/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/sr/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Izaberi prijemno sanduče" }, "SUBMIT": "Napravi", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Otkaži" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/sr/integrations.json b/app/javascript/dashboard/i18n/locale/sr/integrations.json index 263de1216..657873708 100644 --- a/app/javascript/dashboard/i18n/locale/sr/integrations.json +++ b/app/javascript/dashboard/i18n/locale/sr/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Select all ({count})", "UNSELECT_ALL": "Unselect all ({count})", "BULK_DELETE_BUTTON": "Izbriši", + "BULK_SYNC_BUTTON": "Osveži", "BULK_DELETE": { "TITLE": "Delete documents?", "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/sr/macros.json b/app/javascript/dashboard/i18n/locale/sr/macros.json index b51c78700..47b1a982f 100644 --- a/app/javascript/dashboard/i18n/locale/sr/macros.json +++ b/app/javascript/dashboard/i18n/locale/sr/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/sr/mfa.json b/app/javascript/dashboard/i18n/locale/sr/mfa.json index cbc87418b..0fcca3b92 100644 --- a/app/javascript/dashboard/i18n/locale/sr/mfa.json +++ b/app/javascript/dashboard/i18n/locale/sr/mfa.json @@ -55,6 +55,10 @@ "PASSWORD": "Lozinka", "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": "Otkaži", "SUCCESS": "Two-factor authentication has been disabled", diff --git a/app/javascript/dashboard/i18n/locale/sr/onboarding.json b/app/javascript/dashboard/i18n/locale/sr/onboarding.json new file mode 100644 index 000000000..4a9723a78 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sr/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-pošta", + "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": "Izaberite vremenski zonu", + "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/sv/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/sv/attributesMgmt.json index 142c29549..774508731 100644 --- a/app/javascript/dashboard/i18n/locale/sv/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sv/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Företag" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Egna egenskaper", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Företag" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/sv/automation.json b/app/javascript/dashboard/i18n/locale/sv/automation.json index 356f0c313..844defc9a 100644 --- a/app/javascript/dashboard/i18n/locale/sv/automation.json +++ b/app/javascript/dashboard/i18n/locale/sv/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Inget", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "Conversation Created", "CONVERSATION_UPDATED": "Conversation Updated", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Företag", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/sv/bulkActions.json b/app/javascript/dashboard/i18n/locale/sv/bulkActions.json index 77c37de0b..96331b821 100644 --- a/app/javascript/dashboard/i18n/locale/sv/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/sv/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Tilldela", + "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": "Ja", + "CANCEL": "Avbryt", "SEARCH_INPUT_PLACEHOLDER": "Sök", "ASSIGN_AGENT_TOOLTIP": "Tilldela agent", "ASSIGN_TEAM_TOOLTIP": "Tilldela team", @@ -38,6 +43,8 @@ "NONE": "Inget", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/sv/chatlist.json b/app/javascript/dashboard/i18n/locale/sv/chatlist.json index b2861436b..7f4140ea7 100644 --- a/app/javascript/dashboard/i18n/locale/sv/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/sv/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Dölj citerad text", "SHOW_QUOTED_TEXT": "Visa citerad text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/sv/companies.json b/app/javascript/dashboard/i18n/locale/sv/companies.json index 75a3af307..e6debadad 100644 --- a/app/javascript/dashboard/i18n/locale/sv/companies.json +++ b/app/javascript/dashboard/i18n/locale/sv/companies.json @@ -7,6 +7,7 @@ "NAME": "Namn", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Laddar 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": "Företag", + "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": "Namn", + "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" } diff --git a/app/javascript/dashboard/i18n/locale/sv/contact.json b/app/javascript/dashboard/i18n/locale/sv/contact.json index 2da38056a..99e96c3ca 100644 --- a/app/javascript/dashboard/i18n/locale/sv/contact.json +++ b/app/javascript/dashboard/i18n/locale/sv/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Företag", "CREATED_AT": "Skapad den", "LAST_ACTIVITY": "Senaste aktivitet", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/sv/conversation.json b/app/javascript/dashboard/i18n/locale/sv/conversation.json index 2f3428cef..ff9b46845 100644 --- a/app/javascript/dashboard/i18n/locale/sv/conversation.json +++ b/app/javascript/dashboard/i18n/locale/sv/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Meddelandet är inte tillgängligt", "CARD": { "SHOW_LABELS": "Visa etiketter", - "HIDE_LABELS": "Dölj etiketter" + "HIDE_LABELS": "Dölj etiketter", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Lös", @@ -92,6 +95,7 @@ "OPEN": "Mer", "CLOSE": "Stäng", "DETAILS": "detaljer", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Snoozad till", "SNOOZED_UNTIL_TOMORROW": "Snoozad till imorgon", "SNOOZED_UNTIL_NEXT_WEEK": "Snoozad till nästa vecka", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Tidigare konversationer", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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": "Visa alla", + "SHOW_LESS": "Show less", + "MORE_COUNT": "+{count}", + "UNTITLED_FILE": "Untitled file" }, "SHOPIFY": { "ORDER_ID": "Order #{id}", diff --git a/app/javascript/dashboard/i18n/locale/sv/helpCenter.json b/app/javascript/dashboard/i18n/locale/sv/helpCenter.json index 8420de95c..ff65f5e76 100644 --- a/app/javascript/dashboard/i18n/locale/sv/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/sv/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Radera" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Radera", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": "Radera", + "DELETE_SUCCESS": "Articles deleted successfully", + "DELETE_ERROR": "Failed to delete articles" } }, "CATEGORY_PAGE": { diff --git a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json index 115dcdf59..141d0840d 100644 --- a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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": "Inkorgsinställningar", @@ -1000,7 +1011,8 @@ "LABEL": "Lösenord", "PLACE_HOLDER": "Lösenord" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/sv/index.js b/app/javascript/dashboard/i18n/locale/sv/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/sv/index.js +++ b/app/javascript/dashboard/i18n/locale/sv/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/sv/integrationApps.json b/app/javascript/dashboard/i18n/locale/sv/integrationApps.json index 34b277e20..90cd10e8d 100644 --- a/app/javascript/dashboard/i18n/locale/sv/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/sv/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Skapa", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Avbryt" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/sv/integrations.json b/app/javascript/dashboard/i18n/locale/sv/integrations.json index d32b4e3b7..7a4853244 100644 --- a/app/javascript/dashboard/i18n/locale/sv/integrations.json +++ b/app/javascript/dashboard/i18n/locale/sv/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Select all ({count})", "UNSELECT_ALL": "Unselect all ({count})", "BULK_DELETE_BUTTON": "Radera", + "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.", @@ -749,6 +750,51 @@ "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": "Sidan kunde inte hittas", + "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/sv/macros.json b/app/javascript/dashboard/i18n/locale/sv/macros.json index 08f2492a0..7531e373f 100644 --- a/app/javascript/dashboard/i18n/locale/sv/macros.json +++ b/app/javascript/dashboard/i18n/locale/sv/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/sv/mfa.json b/app/javascript/dashboard/i18n/locale/sv/mfa.json index 95374c6f9..7a1a6b436 100644 --- a/app/javascript/dashboard/i18n/locale/sv/mfa.json +++ b/app/javascript/dashboard/i18n/locale/sv/mfa.json @@ -55,6 +55,10 @@ "PASSWORD": "Lösenord", "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", diff --git a/app/javascript/dashboard/i18n/locale/sv/onboarding.json b/app/javascript/dashboard/i18n/locale/sv/onboarding.json new file mode 100644 index 000000000..023c31848 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/sv/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": "Hemsida", + "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/ta/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ta/attributesMgmt.json index 606dc81ea..8f1cbae8b 100644 --- a/app/javascript/dashboard/i18n/locale/ta/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ta/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ta/automation.json b/app/javascript/dashboard/i18n/locale/ta/automation.json index 475fbc860..860480bbb 100644 --- a/app/javascript/dashboard/i18n/locale/ta/automation.json +++ b/app/javascript/dashboard/i18n/locale/ta/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Company", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/ta/bulkActions.json b/app/javascript/dashboard/i18n/locale/ta/bulkActions.json index d736201de..cdea2cfd6 100644 --- a/app/javascript/dashboard/i18n/locale/ta/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ta/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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": "Search", "ASSIGN_AGENT_TOOLTIP": "Assign agent", "ASSIGN_TEAM_TOOLTIP": "Assign team", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/ta/chatlist.json b/app/javascript/dashboard/i18n/locale/ta/chatlist.json index c3fa54fe4..7e20f0629 100644 --- a/app/javascript/dashboard/i18n/locale/ta/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ta/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/ta/companies.json b/app/javascript/dashboard/i18n/locale/ta/companies.json index 9a8f21021..d703a50c8 100644 --- a/app/javascript/dashboard/i18n/locale/ta/companies.json +++ b/app/javascript/dashboard/i18n/locale/ta/companies.json @@ -7,6 +7,7 @@ "NAME": "பெயர்", "DOMAIN": "களம்", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "ரத்துசெய்" + } + }, + "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" } diff --git a/app/javascript/dashboard/i18n/locale/ta/contact.json b/app/javascript/dashboard/i18n/locale/ta/contact.json index dccf6dc8c..b94d18cee 100644 --- a/app/javascript/dashboard/i18n/locale/ta/contact.json +++ b/app/javascript/dashboard/i18n/locale/ta/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Company", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/ta/conversation.json b/app/javascript/dashboard/i18n/locale/ta/conversation.json index 535f073e9..1a0061fbf 100644 --- a/app/javascript/dashboard/i18n/locale/ta/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ta/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "தீர்", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "முந்தைய உரையாடல்கள்", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ta/helpCenter.json b/app/javascript/dashboard/i18n/locale/ta/helpCenter.json index 8ef5a191a..825348f9f 100644 --- a/app/javascript/dashboard/i18n/locale/ta/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ta/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Delete" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json index b98daba65..ee4d87f6e 100644 --- a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "விட்ஜெட் கட்டுமானி", "BOT_CONFIGURATION": "பாட் அமைப்பு", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "இன்பாக்ஸ் அமைப்புகள்", @@ -1000,7 +1011,8 @@ "LABEL": "பாஸ்வேர்ட்", "PLACE_HOLDER": "பாஸ்வேர்ட்" }, - "ENABLE_SSL": "SSL ஐ இயக்கவும்" + "ENABLE_SSL": "SSL ஐ இயக்கவும்", + "AUTH_MECHANISM": "அங்கீகாரம்" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ta/index.js b/app/javascript/dashboard/i18n/locale/ta/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ta/index.js +++ b/app/javascript/dashboard/i18n/locale/ta/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ta/integrationApps.json b/app/javascript/dashboard/i18n/locale/ta/integrationApps.json index 79ca01a5b..4911b18f4 100644 --- a/app/javascript/dashboard/i18n/locale/ta/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ta/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "ரத்துசெய்" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ta/integrations.json b/app/javascript/dashboard/i18n/locale/ta/integrations.json index 0cb31905a..a5d2e5131 100644 --- a/app/javascript/dashboard/i18n/locale/ta/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ta/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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": "இந்த அடிக்கடி கேட்கப்படும் கேள்விகள் நேரடியாக ஆவணத்திலிருந்து உருவாக்கப்பட்டவை." @@ -792,11 +838,15 @@ }, "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 உள்ளடக்கத்தை பகுப்பாய்வு செய்து வாடிக்கையாளர் கேள்விகளுக்கு துல்லியமான பதில்களை வழங்க முடியும்." diff --git a/app/javascript/dashboard/i18n/locale/ta/macros.json b/app/javascript/dashboard/i18n/locale/ta/macros.json index f1f73e0ed..99397a8b4 100644 --- a/app/javascript/dashboard/i18n/locale/ta/macros.json +++ b/app/javascript/dashboard/i18n/locale/ta/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/ta/mfa.json b/app/javascript/dashboard/i18n/locale/ta/mfa.json index 8dfef7138..9c3b23b59 100644 --- a/app/javascript/dashboard/i18n/locale/ta/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ta/mfa.json @@ -55,6 +55,10 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/ta/onboarding.json b/app/javascript/dashboard/i18n/locale/ta/onboarding.json new file mode 100644 index 000000000..2a1adcc8a --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ta/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": "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/th/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/th/attributesMgmt.json index 8d095609d..11293ad0d 100644 --- a/app/javascript/dashboard/i18n/locale/th/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/th/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "การสนทนา", - "CONTACT": "ผู้ติดต่อ" + "CONTACT": "ผู้ติดต่อ", + "COMPANY": "บริษัท" }, "ATTRIBUTE_TYPES": { "TEXT": "ข้อความ", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "แอตทริบิวต์ที่กำหนดเอง", "CONVERSATION": "การสนทนา", - "CONTACT": "รายชื่อผู้ติดต่อ" + "CONTACT": "รายชื่อผู้ติดต่อ", + "COMPANY": "บริษัท" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/th/automation.json b/app/javascript/dashboard/i18n/locale/th/automation.json index d41f0fe4b..ac5181b31 100644 --- a/app/javascript/dashboard/i18n/locale/th/automation.json +++ b/app/javascript/dashboard/i18n/locale/th/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "ไม่มี", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "การสนทนาที่ถูกสร้าง", "CONVERSATION_UPDATED": "อัปเดตการสนทนาแล้ว", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "ภาษาของเบราว์เซอร์", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "ประเทศ", + "COMPANY_NAME": "บริษัท", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "ทีม", diff --git a/app/javascript/dashboard/i18n/locale/th/bulkActions.json b/app/javascript/dashboard/i18n/locale/th/bulkActions.json index e6cc8d785..45ea549ad 100644 --- a/app/javascript/dashboard/i18n/locale/th/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/th/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "มอบหมาย", + "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 team", @@ -38,6 +43,8 @@ "NONE": "ไม่มี", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/th/chatlist.json b/app/javascript/dashboard/i18n/locale/th/chatlist.json index 9b7d274fd..9cce5d633 100644 --- a/app/javascript/dashboard/i18n/locale/th/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/th/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "ซ่อนข้อความในเครื่องหมายคำพูด", "SHOW_QUOTED_TEXT": "แสดงข้อความในเครื่องหมายคำพูด", "MESSAGE_READ": "อ่านแล้ว", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/th/companies.json b/app/javascript/dashboard/i18n/locale/th/companies.json index cc68f1af3..7231c2f93 100644 --- a/app/javascript/dashboard/i18n/locale/th/companies.json +++ b/app/javascript/dashboard/i18n/locale/th/companies.json @@ -7,6 +7,7 @@ "NAME": "ชื่อ", "DOMAIN": "โดเมน", "CREATED_AT": "สร้างเมื่อ", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "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" } diff --git a/app/javascript/dashboard/i18n/locale/th/contact.json b/app/javascript/dashboard/i18n/locale/th/contact.json index 09e94d2c8..ddfe7705a 100644 --- a/app/javascript/dashboard/i18n/locale/th/contact.json +++ b/app/javascript/dashboard/i18n/locale/th/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "ตัวระบุ", "COUNTRY": "ประเทศ", "CITY": "เมือง", + "COMPANY": "บริษัท", "CREATED_AT": "สร้างเมื่อ", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "ลิงก์อ้างอิง", diff --git a/app/javascript/dashboard/i18n/locale/th/conversation.json b/app/javascript/dashboard/i18n/locale/th/conversation.json index afbb99475..508b03c04 100644 --- a/app/javascript/dashboard/i18n/locale/th/conversation.json +++ b/app/javascript/dashboard/i18n/locale/th/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Message not available", "CARD": { "SHOW_LABELS": "แสดงป้ายกำกับ", - "HIDE_LABELS": "ซ่อนป้ายกำกับ" + "HIDE_LABELS": "ซ่อนป้ายกำกับ", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "เสร็จสิ้น", @@ -92,6 +95,7 @@ "OPEN": "เพิ่มเติม", "CLOSE": "ปิด", "DETAILS": "รายละเอียด", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Snoozed until", "SNOOZED_UNTIL_TOMORROW": "พักการสนทนาจนถึงพรุ่งนี้", "SNOOZED_UNTIL_NEXT_WEEK": "พักการสนทนาจนถึงสัปดาห์หน้า", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "การสนทนาก่อนหน้า", "MACROS": "คีย์ลัด", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/th/helpCenter.json b/app/javascript/dashboard/i18n/locale/th/helpCenter.json index 310d6aace..5d1004d82 100644 --- a/app/javascript/dashboard/i18n/locale/th/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/th/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "โครงร่าง", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "ลบ" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "โครงร่าง", + "ARCHIVE": "Archive", + "TRANSLATE": "Translate", + "DELETE": "ลบ", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json index 91c808d0e..20e77be9e 100644 --- a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "เครื่องมือสร้าง Widget", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "การสนทนาจะสามารถดำเนินการต่อผ่านทางอีเมลได้ หากลูกค้าให้อีเมลไว้", + "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": "ตั้งค่ากล่องข้อความ", @@ -1000,7 +1011,8 @@ "LABEL": "หรัสผ่าน", "PLACE_HOLDER": "หรัสผ่าน" }, - "ENABLE_SSL": "เปิดใช้ SSL" + "ENABLE_SSL": "เปิดใช้ SSL", + "AUTH_MECHANISM": "การตรวจสอบสิทธิ์" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/th/index.js b/app/javascript/dashboard/i18n/locale/th/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/th/index.js +++ b/app/javascript/dashboard/i18n/locale/th/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/th/integrationApps.json b/app/javascript/dashboard/i18n/locale/th/integrationApps.json index 5fb03f152..af07cb4d5 100644 --- a/app/javascript/dashboard/i18n/locale/th/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/th/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "เลือกกล่องข้อความ" }, "SUBMIT": "สร้าง", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "ยกเลิก" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/th/integrations.json b/app/javascript/dashboard/i18n/locale/th/integrations.json index 581de8844..9ab2c2f21 100644 --- a/app/javascript/dashboard/i18n/locale/th/integrations.json +++ b/app/javascript/dashboard/i18n/locale/th/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/th/macros.json b/app/javascript/dashboard/i18n/locale/th/macros.json index f16ba5820..2ad112535 100644 --- a/app/javascript/dashboard/i18n/locale/th/macros.json +++ b/app/javascript/dashboard/i18n/locale/th/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/th/mfa.json b/app/javascript/dashboard/i18n/locale/th/mfa.json index d64fc689f..83d35c27c 100644 --- a/app/javascript/dashboard/i18n/locale/th/mfa.json +++ b/app/javascript/dashboard/i18n/locale/th/mfa.json @@ -55,6 +55,10 @@ "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": "ใช้รหัสยืนยันจากแอปยืนยันตัวตนของคุณ", "CONFIRM": "Disable 2FA", "CANCEL": "ยกเลิก", "SUCCESS": "Two-factor authentication has been disabled", diff --git a/app/javascript/dashboard/i18n/locale/th/onboarding.json b/app/javascript/dashboard/i18n/locale/th/onboarding.json new file mode 100644 index 000000000..66aea76dc --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/th/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": "กำลังบันทึก...", + "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/tl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/tl/attributesMgmt.json index e83950b14..0675049ee 100644 --- a/app/javascript/dashboard/i18n/locale/tl/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/tl/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Kumpanya" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Kumpanya" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/tl/automation.json b/app/javascript/dashboard/i18n/locale/tl/automation.json index 93f281517..4378999a9 100644 --- a/app/javascript/dashboard/i18n/locale/tl/automation.json +++ b/app/javascript/dashboard/i18n/locale/tl/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Kumpanya", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/tl/bulkActions.json b/app/javascript/dashboard/i18n/locale/tl/bulkActions.json index d736201de..2472a9288 100644 --- a/app/javascript/dashboard/i18n/locale/tl/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/tl/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/tl/chatlist.json b/app/javascript/dashboard/i18n/locale/tl/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/tl/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/tl/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/tl/companies.json b/app/javascript/dashboard/i18n/locale/tl/companies.json index 0d64a4abd..8b0568ce7 100644 --- a/app/javascript/dashboard/i18n/locale/tl/companies.json +++ b/app/javascript/dashboard/i18n/locale/tl/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Mga Katangian", + "CONTACTS": "Mga Kontak", + "HISTORY": "Kasaysayan", + "NOTES": "Mga Tala" + } + }, + "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": "Magdagdag ng kontak", + "REMOVE": "Remove contact" + }, + "DIALOGS": { + "ADD": { + "DESCRIPTION": "Search for an existing contact and link it to this company.", + "SEARCH_PLACEHOLDER": "Maghanap ng mga kontak...", + "INITIAL": "Start typing to search contacts.", + "EMPTY": "Walang nahanap na mga contact.", + "CONFIRM_TITLE": "Link contact", + "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.", + "COMPANY_LABEL": "Kumpanya", + "CONTACT_LABEL": "Kontak", + "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": "Nilikha noong {date}", + "LAST_ACTIVE": "Huling aktibo noong {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" } diff --git a/app/javascript/dashboard/i18n/locale/tl/contact.json b/app/javascript/dashboard/i18n/locale/tl/contact.json index 07f7ba793..59d189bdb 100644 --- a/app/javascript/dashboard/i18n/locale/tl/contact.json +++ b/app/javascript/dashboard/i18n/locale/tl/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Tagakilanlan", "COUNTRY": "Bansa", "CITY": "Lungsod", + "COMPANY": "Kumpanya", "CREATED_AT": "Nilikhang noong", "LAST_ACTIVITY": "Huling aktibidad", "REFERER_LINK": "Link ng nag-refer", diff --git a/app/javascript/dashboard/i18n/locale/tl/conversation.json b/app/javascript/dashboard/i18n/locale/tl/conversation.json index 674e4f090..bce62180c 100644 --- a/app/javascript/dashboard/i18n/locale/tl/conversation.json +++ b/app/javascript/dashboard/i18n/locale/tl/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Message not available", "CARD": { "SHOW_LABELS": "Ipakita ang mga label", - "HIDE_LABELS": "Itago ang mga label" + "HIDE_LABELS": "Itago ang mga label", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Tapusin", @@ -92,6 +95,7 @@ "OPEN": "Higit pa", "CLOSE": "Isara", "DETAILS": "detalye", + "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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": "Tingnan lahat", + "SHOW_LESS": "Show less", + "MORE_COUNT": "+{count}", + "UNTITLED_FILE": "Untitled file" }, "SHOPIFY": { "ORDER_ID": "Order #{id}", diff --git a/app/javascript/dashboard/i18n/locale/tl/helpCenter.json b/app/javascript/dashboard/i18n/locale/tl/helpCenter.json index 708d3fc83..c0b43025f 100644 --- a/app/javascript/dashboard/i18n/locale/tl/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/tl/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "I-publish", "DRAFT": "Burador", "ARCHIVE": "I-archive", + "TRANSLATE": "Translate", "DELETE": "Tanggalin" }, "STATUS": { @@ -579,6 +580,41 @@ "TITLE": "Walang artikulo sa kategoryang ito", "SUBTITLE": "Lalabas dito ang mga artikulo sa kategoryang ito" } + }, + "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": "Piliin lahat ({count})", + "SELECTED_COUNT": "{count} napili", + "CLEAR_SELECTION": "Tanggalin ang pagpili", + "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": "I-publish", + "DRAFT": "Burador", + "ARCHIVE": "I-archive", + "TRANSLATE": "Translate", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json index ba9a104e2..3c4981932 100644 --- a/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Tagabuo ng widget", "BOT_CONFIGURATION": "Pag-configure ng Bot", "ACCOUNT_HEALTH": "Kalusugan ng Account", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Boses" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Mga Kagustuhan sa Channel", "WIDGET_FEATURES": "Mga tampok ng widget", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "I-enable/Disable ang pagpapakita ng pangalan ng Ahente sa email, kung naka-disable ipapakita ang pangalan ng negosyo", "ENABLE_CONTINUITY_VIA_EMAIL": "Paganahin ang pagpapatuloy ng pag-uusap sa pamamagitan ng email", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Magpapatuloy ang mga pag-uusap sa email kung available ang email address ng contact.", + "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": "Pag-ruta ng Pag-uusap", "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "I-configure ang paggawa ng pag-uusap para sa mga umiiral na contact", "INBOX_UPDATE_TITLE": "Mga Setting ng Inbox", @@ -1000,7 +1011,8 @@ "LABEL": "Password", "PLACE_HOLDER": "Password" }, - "ENABLE_SSL": "Paganahin ang SSL" + "ENABLE_SSL": "Paganahin ang SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/tl/index.js b/app/javascript/dashboard/i18n/locale/tl/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/tl/index.js +++ b/app/javascript/dashboard/i18n/locale/tl/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/tl/integrationApps.json b/app/javascript/dashboard/i18n/locale/tl/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/tl/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/tl/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/tl/integrations.json b/app/javascript/dashboard/i18n/locale/tl/integrations.json index a8fcdbf9f..a65d144d6 100644 --- a/app/javascript/dashboard/i18n/locale/tl/integrations.json +++ b/app/javascript/dashboard/i18n/locale/tl/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Piliin lahat ({count})", "UNSELECT_ALL": "Alisin ang pagpili sa lahat ({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.", @@ -749,6 +750,51 @@ "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": "Nabigo" + }, + "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": "Hindi makita ang pahina", + "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": "Mga Kaugnay na FAQ", "DESCRIPTION": "Ang mga FAQ na ito ay direktang ginawa mula sa dokumento." @@ -792,11 +838,15 @@ }, "OPTIONS": { "VIEW_RELATED_RESPONSES": "Tingnan ang mga Kaugnay na Tugon", + "SYNC_NOW": "Refresh now", + "RETRY_SYNC": "Retry refresh", "DELETE_DOCUMENT": "Tanggalin ang Dokumento" }, "EMPTY_STATE": { "TITLE": "Walang magagamit na mga dokumento", "SUBTITLE": "Ginagamit ng iyong assistant ang mga dokumento para gumawa ng FAQs. Maaari kang mag-import ng mga dokumento upang magbigay ng konteksto para sa iyong assistant.", + "FILTERED_TITLE": "No matching documents", + "FILTERED_SUBTITLE": "Try changing the source, status, or search term.", "FEATURE_SPOTLIGHT": { "TITLE": "Captain Document", "NOTE": "Ang isang dokumento sa Captain ay nagsisilbing pinagkukunan ng kaalaman para sa assistant. Sa pamamagitan ng pagkonekta ng iyong help center o mga gabay, maaaring suriin ni Captain ang nilalaman at magbigay ng tumpak na mga sagot para sa mga tanong ng customer." diff --git a/app/javascript/dashboard/i18n/locale/tl/macros.json b/app/javascript/dashboard/i18n/locale/tl/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/tl/macros.json +++ b/app/javascript/dashboard/i18n/locale/tl/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/tl/mfa.json b/app/javascript/dashboard/i18n/locale/tl/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/tl/mfa.json +++ b/app/javascript/dashboard/i18n/locale/tl/mfa.json @@ -55,6 +55,10 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/tl/onboarding.json b/app/javascript/dashboard/i18n/locale/tl/onboarding.json new file mode 100644 index 000000000..224550caf --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/tl/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": "Piliin ang 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": "Magpatuloy", + "SAVING": "Nagsu-save...", + "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/tr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/tr/attributesMgmt.json index aa66472f9..ba88c730a 100644 --- a/app/javascript/dashboard/i18n/locale/tr/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/tr/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Sohbet", - "CONTACT": "İletişim" + "CONTACT": "İletişim", + "COMPANY": "Şirket" }, "ATTRIBUTE_TYPES": { "TEXT": "Metin", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Özel Nitelikler", "CONVERSATION": "Sohbet", - "CONTACT": "İletişim" + "CONTACT": "İletişim", + "COMPANY": "Şirket" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/tr/automation.json b/app/javascript/dashboard/i18n/locale/tr/automation.json index e17624c5f..9d28c57df 100644 --- a/app/javascript/dashboard/i18n/locale/tr/automation.json +++ b/app/javascript/dashboard/i18n/locale/tr/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Hiç", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "Sohbet Oluşturuldu", "CONVERSATION_UPDATED": "Sohbet Güncellendi", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Tarayıcı Dili", "MAIL_SUBJECT": "E-posta Konusu", "COUNTRY_NAME": "Ülke", + "COMPANY_NAME": "Şirket", "REFERER_LINK": "Yönlendiren Bağlantı", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Ekip", diff --git a/app/javascript/dashboard/i18n/locale/tr/bulkActions.json b/app/javascript/dashboard/i18n/locale/tr/bulkActions.json index 94bb2c3d2..9c63f1b8a 100644 --- a/app/javascript/dashboard/i18n/locale/tr/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/tr/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "{conversationCount} {conversationLabel} atanmamış yapılacak. Emin misiniz?", "GO_BACK_LABEL": "Geri git", "ASSIGN_LABEL": "Atama yap", + "NONE": "Hiç", + "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": "Evet", + "CANCEL": "İptal Et", "SEARCH_INPUT_PLACEHOLDER": "Ara", "ASSIGN_AGENT_TOOLTIP": "Temsilci ata", "ASSIGN_TEAM_TOOLTIP": "Takım ata", @@ -38,6 +43,8 @@ "NONE": "Hiçbiri", "NO_TEAMS_AVAILABLE": "Bu hesaba henüz eklenmiş takımlar yok.", "ASSIGN_SELECTED_TEAMS": "Seçili takımları atama", + "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": "Takımlar atanırken bir hata oluştu. Lütfen tekrar deneyin." } diff --git a/app/javascript/dashboard/i18n/locale/tr/chatlist.json b/app/javascript/dashboard/i18n/locale/tr/chatlist.json index 54499a285..98f794510 100644 --- a/app/javascript/dashboard/i18n/locale/tr/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/tr/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Alıntı Yapılan Mesajı Gizle", "SHOW_QUOTED_TEXT": "Alıntı Yapılan Mesajı Göster", "MESSAGE_READ": "Oku", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/tr/companies.json b/app/javascript/dashboard/i18n/locale/tr/companies.json index 195e8356e..acc35a355 100644 --- a/app/javascript/dashboard/i18n/locale/tr/companies.json +++ b/app/javascript/dashboard/i18n/locale/tr/companies.json @@ -7,6 +7,7 @@ "NAME": "İsim", "DOMAIN": "Alan", "CREATED_AT": "Oluşturma zamanı", + "LAST_ACTIVITY_AT": "Son etkinlik", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "LOADING": "Şirketler yükleniyor...", "UNNAMED": "İsimsiz Şirket", "CONTACTS_COUNT": "{n} kişi | {n} kişi", + "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": "Öznitelikler", + "CONTACTS": "Kişiler", + "HISTORY": "Geçmiş", + "NOTES": "Notlar" + } + }, + "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": "Öznitelik ara...", + "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": "Kişiler yükleniyor...", + "EMPTY": "No contacts are linked to this company yet.", + "UNNAMED_CONTACT": "Unnamed contact", + "ACTIONS": { + "ADD": "Kişi ekle", + "REMOVE": "Remove contact" + }, + "DIALOGS": { + "ADD": { + "DESCRIPTION": "Search for an existing contact and link it to this company.", + "SEARCH_PLACEHOLDER": "Kişileri Ara...", + "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": "Şirket", + "CONTACT_LABEL": "İletişim", + "CURRENT_COMPANY": "Currently linked to {companyName}", + "ADD": "Link contact", + "CANCEL": "İptal Et" + } + }, + "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": "Oluşturuldu {date}", + "LAST_ACTIVE": "Son etkinlik {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": "İsim", + "DOMAIN": "Alan" + } + }, + "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": "Hiçbir şirket bulunamadı" } diff --git a/app/javascript/dashboard/i18n/locale/tr/contact.json b/app/javascript/dashboard/i18n/locale/tr/contact.json index 6b35d8597..acabd8a54 100644 --- a/app/javascript/dashboard/i18n/locale/tr/contact.json +++ b/app/javascript/dashboard/i18n/locale/tr/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Doğrulayıcı", "COUNTRY": "Ülke", "CITY": "Şehir", + "COMPANY": "Şirket", "CREATED_AT": "Oluşturma zamanı", "LAST_ACTIVITY": "Son etkinlik", "REFERER_LINK": "Yönlendiren Bağlantı", diff --git a/app/javascript/dashboard/i18n/locale/tr/conversation.json b/app/javascript/dashboard/i18n/locale/tr/conversation.json index 7c0be21fc..0ddb7f6c2 100644 --- a/app/javascript/dashboard/i18n/locale/tr/conversation.json +++ b/app/javascript/dashboard/i18n/locale/tr/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Mesaj bulunamadı", "CARD": { "SHOW_LABELS": "Etiketleri Göster", - "HIDE_LABELS": "Etiketleri Gizle" + "HIDE_LABELS": "Etiketleri Gizle", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Gelen arama", @@ -82,7 +83,9 @@ "CALL_ENDED": "Arama sona erdi", "NOT_ANSWERED_YET": "Henüz yanıtlanmadı", "THEY_ANSWERED": "Onlar yanıtladı", - "YOU_ANSWERED": "Siz yanıtladınız" + "YOU_ANSWERED": "Siz yanıtladınız", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Çözüldü", @@ -92,6 +95,7 @@ "OPEN": "Devamı", "CLOSE": "Kapat", "DETAILS": "detaylar", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Susturulacak kadar ertelendi", "SNOOZED_UNTIL_TOMORROW": "yarına ertelendi", "SNOOZED_UNTIL_NEXT_WEEK": "Önümüzdeki haftaya ertelendi", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Önceki Konuşmalar", "MACROS": "Kısayollar", "LINEAR_ISSUES": "Bağlantılı Linear Sorunları", - "SHOPIFY_ORDERS": "Shopify Orders" + "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": "Medya", + "FILES_HEADING": "Files", + "VIEW_ALL": "Tümünü Görüntüle", + "SHOW_LESS": "Show less", + "MORE_COUNT": "+{count}", + "UNTITLED_FILE": "Untitled file" }, "SHOPIFY": { "ORDER_ID": "Order #{id}", diff --git a/app/javascript/dashboard/i18n/locale/tr/helpCenter.json b/app/javascript/dashboard/i18n/locale/tr/helpCenter.json index 7e766f2b0..7acf118f8 100644 --- a/app/javascript/dashboard/i18n/locale/tr/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/tr/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Yayınla", "DRAFT": "Taslak", "ARCHIVE": "Arşiv", + "TRANSLATE": "Çevir", "DELETE": "Sil" }, "STATUS": { @@ -579,6 +580,41 @@ "TITLE": "Bu kategoride makale bulunmamaktadır", "SUBTITLE": "Bu kategorideki makaleler burada görünecektir" } + }, + "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": "Çevir", + "SELECT_ALL": "Tümünü seç ({count})", + "SELECTED_COUNT": "{count} selected", + "CLEAR_SELECTION": "Seçimi temizle", + "TRANSLATE_BUTTON": "Çevir", + "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ınla", + "DRAFT": "Taslak", + "ARCHIVE": "Arşiv", + "TRANSLATE": "Çevir", + "DELETE": "Sil", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": "Sil", + "DELETE_SUCCESS": "Articles deleted successfully", + "DELETE_ERROR": "Failed to delete articles" } }, "CATEGORY_PAGE": { diff --git a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json index 90b96cead..8515fdddb 100644 --- a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Oluşturucu", "BOT_CONFIGURATION": "Bot Yapılandırma", "ACCOUNT_HEALTH": "Hesap Sağlığı", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Ses" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "E-postada Ajanın adını göstermeyi/Devre dışı bırakmayı etkinleştirin, devre dışı bırakıldığında iş adını gösterir", "ENABLE_CONTINUITY_VIA_EMAIL": "E-posta aracılığıyla konuşma sürekliliğini etkinleştir", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "E-posta adresi mevcut ise konuşmalar e-posta aracılığıyla devam eder.", + "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": "Gelen Kutusu Ayarları", @@ -1000,7 +1011,8 @@ "LABEL": "Parola", "PLACE_HOLDER": "Parola" }, - "ENABLE_SSL": "SSL'yi Etkinleştir" + "ENABLE_SSL": "SSL'yi Etkinleştir", + "AUTH_MECHANISM": "Kimlik Doğrulama" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/tr/index.js b/app/javascript/dashboard/i18n/locale/tr/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/tr/index.js +++ b/app/javascript/dashboard/i18n/locale/tr/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/tr/integrationApps.json b/app/javascript/dashboard/i18n/locale/tr/integrationApps.json index d4f74d3a3..747acde55 100644 --- a/app/javascript/dashboard/i18n/locale/tr/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/tr/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Gelen Kutu Seç" }, "SUBMIT": "Oluştur", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "İptal Et" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/tr/integrations.json b/app/javascript/dashboard/i18n/locale/tr/integrations.json index 11c3a82bc..5e8214448 100644 --- a/app/javascript/dashboard/i18n/locale/tr/integrations.json +++ b/app/javascript/dashboard/i18n/locale/tr/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Tümünü seç ({count})", "UNSELECT_ALL": "Tümünü kaldır ({count})", "BULK_DELETE_BUTTON": "Sil", + "BULK_SYNC_BUTTON": "Yenile", "BULK_DELETE": { "TITLE": "Delete documents?", "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.", @@ -749,6 +750,51 @@ "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": "Başarısız" + }, + "SORT": { + "RECENTLY_UPDATED": "Recently updated", + "RECENTLY_CREATED": "Recently created" + }, + "SEARCH_PLACEHOLDER": "Ara..." + }, + "SYNC_STATUS": { + "SYNCED": "last updated {time}", + "SYNCING": "güncelleniyor...", + "STALE_SYNC": "update stalled", + "FAILED": "Failed to sync", + "NEVER_SYNCED": "not updated yet" + }, + "SYNC_ERRORS": { + "NOT_FOUND": "Sayfa bulunamadı", + "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": "İlgili SSS", "DESCRIPTION": "Bu SSS'ler doğrudan belgeden oluşturulmuştur." @@ -792,11 +838,15 @@ }, "OPTIONS": { "VIEW_RELATED_RESPONSES": "İlgili Yanıtları Görüntüle", + "SYNC_NOW": "Refresh now", + "RETRY_SYNC": "Retry refresh", "DELETE_DOCUMENT": "Belgeyi Sil" }, "EMPTY_STATE": { "TITLE": "Kullanılabilir belge yok", "SUBTITLE": "Belgeler, asistanınız tarafından SSS oluşturmak için kullanılır. Asistanınıza içerik sağlamak için belge aktarabilirsiniz.", + "FILTERED_TITLE": "No matching documents", + "FILTERED_SUBTITLE": "Try changing the source, status, or search term.", "FEATURE_SPOTLIGHT": { "TITLE": "Captain Belge", "NOTE": "Captain'daki bir belge, asistan için bir bilgi kaynağı görevi görür. Yardım merkezinizi veya kılavuzlarınızı bağlayarak Captain, içeriği analiz edebilir ve müşteri sorularına doğru yanıtlar sağlayabilir." diff --git a/app/javascript/dashboard/i18n/locale/tr/macros.json b/app/javascript/dashboard/i18n/locale/tr/macros.json index 98d09e146..d559defbe 100644 --- a/app/javascript/dashboard/i18n/locale/tr/macros.json +++ b/app/javascript/dashboard/i18n/locale/tr/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Kısayol silinirken bir hata oluştu. Lütfen daha sonra tekrar deneyin" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Kısayolu Düzenle", "API": { @@ -66,7 +69,9 @@ "LABEL": "Kısayol Görünürlüğü", "GLOBAL": { "LABEL": "Genel", - "DESCRIPTION": "Bu kısayol, tüm temsilciler için genel olarak kullanılabilir." + "DESCRIPTION": "Bu kısayol, tüm temsilciler için genel olarak kullanılabilir.", + "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.", + "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros." }, "PERSONAL": { "LABEL": "Özel", diff --git a/app/javascript/dashboard/i18n/locale/tr/mfa.json b/app/javascript/dashboard/i18n/locale/tr/mfa.json index bec70ff05..0335fc1f3 100644 --- a/app/javascript/dashboard/i18n/locale/tr/mfa.json +++ b/app/javascript/dashboard/i18n/locale/tr/mfa.json @@ -55,6 +55,10 @@ "PASSWORD": "Parola", "OTP_CODE": "Doğrulama Kodu", "OTP_CODE_PLACEHOLDER": "000000", + "BACKUP_CODE": "Yedek Kod", + "BACKUP_CODE_PLACEHOLDER": "Yedek kodlarınızdan birini girin", + "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'yı devre dışı bırak", "CANCEL": "İptal Et", "SUCCESS": "İki faktörlü kimlik doğrulama devre dışı bırakıldı", diff --git a/app/javascript/dashboard/i18n/locale/tr/onboarding.json b/app/javascript/dashboard/i18n/locale/tr/onboarding.json new file mode 100644 index 000000000..f71900d38 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/tr/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-Posta", + "YOUR_ROLE": "Your Role", + "WEBSITE": "Website", + "LANGUAGE": "Dil", + "TIMEZONE": "Zaman dilimi", + "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 Dilimini 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": "Devam et", + "SAVING": "Kaydediliyor...", + "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/uk/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json index 79d0cb40a..c32997058 100644 --- a/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/uk/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Розмови", - "CONTACT": "Контакт" + "CONTACT": "Контакт", + "COMPANY": "Організація" }, "ATTRIBUTE_TYPES": { "TEXT": "Текст", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Свої атрибути", "CONVERSATION": "Діалог", - "CONTACT": "Контакт" + "CONTACT": "Контакт", + "COMPANY": "Організація" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/uk/automation.json b/app/javascript/dashboard/i18n/locale/uk/automation.json index baf7420b2..d2dc1967e 100644 --- a/app/javascript/dashboard/i18n/locale/uk/automation.json +++ b/app/javascript/dashboard/i18n/locale/uk/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Нiчого", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "Розмову створено", "CONVERSATION_UPDATED": "Розмову оновлено", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Мова браузера", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Країна", + "COMPANY_NAME": "Організація", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Команда", diff --git a/app/javascript/dashboard/i18n/locale/uk/bulkActions.json b/app/javascript/dashboard/i18n/locale/uk/bulkActions.json index fa7f9c969..7d52b4336 100644 --- a/app/javascript/dashboard/i18n/locale/uk/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/uk/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Ви впевнені, що хочете скасувати призначення {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Повернутися назад", "ASSIGN_LABEL": "Призначити", + "NONE": "Нічого", + "CLEAR_SELECTION": "Очистити", + "ASSIGN_AGENT_CONFIRMATION_LABEL": "Ви впевнені, що хочете призначити {n} діалог агенту {agentName}? | Ви впевнені, що хочете призначити {n} діалогів агенту {agentName}?", + "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Ви впевнені, що хочете відкріпити {n} діалог? | Ви впевнені, що хочете відкріпити {n} діалогів?", "YES": "Так", + "CANCEL": "Скасувати", "SEARCH_INPUT_PLACEHOLDER": "Пошук", "ASSIGN_AGENT_TOOLTIP": "Призначити агента", "ASSIGN_TEAM_TOOLTIP": "Призначити команду", @@ -38,6 +43,8 @@ "NONE": "Нiчого", "NO_TEAMS_AVAILABLE": "Цей акаунт ще не доданий до жодної команди.", "ASSIGN_SELECTED_TEAMS": "Призначити обрану команду.", + "ASSIGN_TEAM_CONFIRMATION_LABEL": "Ви впевнені, що хочете призначити {n} діалог команді {teamName}? | Ви впевнені, що хочете призначити {n} діалогів команді {teamName}?", + "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Ви впевнені, що хочете відкріпити {n} діалог? | Ви впевнені, що хочете відкріпити {n} діалогів?", "ASSIGN_SUCCESFUL": "Teams assigned successfully.", "ASSIGN_FAILED": "Не вдалося призначити команду, будь ласка, спробуйте ще раз." } diff --git a/app/javascript/dashboard/i18n/locale/uk/chatlist.json b/app/javascript/dashboard/i18n/locale/uk/chatlist.json index 7d98c056d..e7dfc9ac0 100644 --- a/app/javascript/dashboard/i18n/locale/uk/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/uk/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Приховати цитований текст", "SHOW_QUOTED_TEXT": "Показати цитований текст", "MESSAGE_READ": "Прочитано", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/uk/companies.json b/app/javascript/dashboard/i18n/locale/uk/companies.json index 0f464ae74..4ef761f2e 100644 --- a/app/javascript/dashboard/i18n/locale/uk/companies.json +++ b/app/javascript/dashboard/i18n/locale/uk/companies.json @@ -7,6 +7,7 @@ "NAME": "Ім'я", "DOMAIN": "Домен", "CREATED_AT": "Створений в", + "LAST_ACTIVITY_AT": "Остання активність", "CONTACTS_COUNT": "Кількість контактів" } }, @@ -21,6 +22,121 @@ "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": "Не знайдено жодної компанії" } diff --git a/app/javascript/dashboard/i18n/locale/uk/contact.json b/app/javascript/dashboard/i18n/locale/uk/contact.json index 04d3bbc16..bcf717055 100644 --- a/app/javascript/dashboard/i18n/locale/uk/contact.json +++ b/app/javascript/dashboard/i18n/locale/uk/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Ідентифікатор", "COUNTRY": "Країна", "CITY": "Місто", + "COMPANY": "Організація", "CREATED_AT": "Створений в", "LAST_ACTIVITY": "Остання активність", "REFERER_LINK": "Посилання", diff --git a/app/javascript/dashboard/i18n/locale/uk/conversation.json b/app/javascript/dashboard/i18n/locale/uk/conversation.json index 587ea716b..67078b5ef 100644 --- a/app/javascript/dashboard/i18n/locale/uk/conversation.json +++ b/app/javascript/dashboard/i18n/locale/uk/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Повідомлення недоступне", "CARD": { "SHOW_LABELS": "Показати мітки", - "HIDE_LABELS": "Сховати мітки" + "HIDE_LABELS": "Сховати мітки", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Доєднатися до виклику" }, "HEADER": { "RESOLVE_ACTION": "Вирішити", @@ -92,6 +95,7 @@ "OPEN": "Ще", "CLOSE": "Закрити", "DETAILS": "подробиці", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Відкладено до", "SNOOZED_UNTIL_TOMORROW": "Відкладено до завтра", "SNOOZED_UNTIL_NEXT_WEEK": "Відкладено до наступного тижня", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Попередні бесіди", "MACROS": "Макрос", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/uk/helpCenter.json b/app/javascript/dashboard/i18n/locale/uk/helpCenter.json index eeffbcfe6..481633b52 100644 --- a/app/javascript/dashboard/i18n/locale/uk/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/uk/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Опублікувати", "DRAFT": "Чернетка", "ARCHIVE": "Archive", + "TRANSLATE": "Перекласти", "DELETE": "Видалити" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "Перекласти", + "DELETE": "Видалити", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json index abacb0688..1095cc585 100644 --- a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Конструктор віджетів", "BOT_CONFIGURATION": "Налаштування бота", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "Налаштування каналу", @@ -1000,7 +1011,8 @@ "LABEL": "Пароль", "PLACE_HOLDER": "Пароль" }, - "ENABLE_SSL": "Увімкнути SSL" + "ENABLE_SSL": "Увімкнути SSL", + "AUTH_MECHANISM": "Автентифікація" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/uk/index.js b/app/javascript/dashboard/i18n/locale/uk/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/uk/index.js +++ b/app/javascript/dashboard/i18n/locale/uk/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/uk/integrationApps.json b/app/javascript/dashboard/i18n/locale/uk/integrationApps.json index ff6b2ec55..658b4c9d4 100644 --- a/app/javascript/dashboard/i18n/locale/uk/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/uk/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Виділити \"Вхідні\"" }, "SUBMIT": "Створити", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Скасувати" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/uk/integrations.json b/app/javascript/dashboard/i18n/locale/uk/integrations.json index c069f5659..e757374e7 100644 --- a/app/javascript/dashboard/i18n/locale/uk/integrations.json +++ b/app/javascript/dashboard/i18n/locale/uk/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/uk/macros.json b/app/javascript/dashboard/i18n/locale/uk/macros.json index a8cdba398..becce5f7a 100644 --- a/app/javascript/dashboard/i18n/locale/uk/macros.json +++ b/app/javascript/dashboard/i18n/locale/uk/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Виникла помилка при видаленні макросу. Будь ласка, спробуйте пізніше" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Редагувати макрос", "API": { @@ -66,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": "Приватний", diff --git a/app/javascript/dashboard/i18n/locale/uk/mfa.json b/app/javascript/dashboard/i18n/locale/uk/mfa.json index ddd1b510a..c67c3a39f 100644 --- a/app/javascript/dashboard/i18n/locale/uk/mfa.json +++ b/app/javascript/dashboard/i18n/locale/uk/mfa.json @@ -55,6 +55,10 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/uk/onboarding.json b/app/javascript/dashboard/i18n/locale/uk/onboarding.json new file mode 100644 index 000000000..721458489 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/uk/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": "Мова", + "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/ur/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ur/attributesMgmt.json index bac52b17c..d0a30a8d4 100644 --- a/app/javascript/dashboard/i18n/locale/ur/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ur/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "کمپنی" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "کمپنی" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ur/automation.json b/app/javascript/dashboard/i18n/locale/ur/automation.json index 7dd3ff8fe..314d7c3ee 100644 --- a/app/javascript/dashboard/i18n/locale/ur/automation.json +++ b/app/javascript/dashboard/i18n/locale/ur/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "ملک", + "COMPANY_NAME": "کمپنی", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/ur/bulkActions.json b/app/javascript/dashboard/i18n/locale/ur/bulkActions.json index 97fcff0f8..4c0b3c814 100644 --- a/app/javascript/dashboard/i18n/locale/ur/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ur/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "کوئی نہیں۔", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/ur/chatlist.json b/app/javascript/dashboard/i18n/locale/ur/chatlist.json index 230e94c09..027e18c6b 100644 --- a/app/javascript/dashboard/i18n/locale/ur/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ur/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "اقتباس شدہ متن کو چھپائیں۔", "SHOW_QUOTED_TEXT": "اقتباس شدہ متن دکھائیں۔", "MESSAGE_READ": "پڑھیں", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/ur/companies.json b/app/javascript/dashboard/i18n/locale/ur/companies.json index b8255a4a2..9b22d3ea1 100644 --- a/app/javascript/dashboard/i18n/locale/ur/companies.json +++ b/app/javascript/dashboard/i18n/locale/ur/companies.json @@ -7,6 +7,7 @@ "NAME": "نام", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "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": "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" } diff --git a/app/javascript/dashboard/i18n/locale/ur/contact.json b/app/javascript/dashboard/i18n/locale/ur/contact.json index d1e273392..bc5c59ec0 100644 --- a/app/javascript/dashboard/i18n/locale/ur/contact.json +++ b/app/javascript/dashboard/i18n/locale/ur/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "ملک", "CITY": "شہر", + "COMPANY": "کمپنی", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/ur/conversation.json b/app/javascript/dashboard/i18n/locale/ur/conversation.json index 63b63615b..5c99eb959 100644 --- a/app/javascript/dashboard/i18n/locale/ur/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ur/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "حل کریں۔", @@ -92,6 +95,7 @@ "OPEN": "مزید", "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "پچھلی بات چیت", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ur/helpCenter.json b/app/javascript/dashboard/i18n/locale/ur/helpCenter.json index 59f61ce7c..cc0aa10a1 100644 --- a/app/javascript/dashboard/i18n/locale/ur/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ur/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Publish", "DRAFT": "Draft", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "حذف کریں۔" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "حذف کریں۔", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json index d356d9fa1..5d27e5a6a 100644 --- a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Widget Builder", "BOT_CONFIGURATION": "Bot Configuration", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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.", + "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", @@ -1000,7 +1011,8 @@ "LABEL": "Password", "PLACE_HOLDER": "Password" }, - "ENABLE_SSL": "Enable SSL" + "ENABLE_SSL": "Enable SSL", + "AUTH_MECHANISM": "Authentication" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ur/index.js b/app/javascript/dashboard/i18n/locale/ur/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ur/index.js +++ b/app/javascript/dashboard/i18n/locale/ur/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ur/integrationApps.json b/app/javascript/dashboard/i18n/locale/ur/integrationApps.json index 0bd8cb500..83332c015 100644 --- a/app/javascript/dashboard/i18n/locale/ur/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ur/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "منسوخ کریں۔" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ur/integrations.json b/app/javascript/dashboard/i18n/locale/ur/integrations.json index 796290e68..48ecc3941 100644 --- a/app/javascript/dashboard/i18n/locale/ur/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ur/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/ur/macros.json b/app/javascript/dashboard/i18n/locale/ur/macros.json index befac16d7..0e750103b 100644 --- a/app/javascript/dashboard/i18n/locale/ur/macros.json +++ b/app/javascript/dashboard/i18n/locale/ur/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/ur/mfa.json b/app/javascript/dashboard/i18n/locale/ur/mfa.json index 6baa463e0..f828585cd 100644 --- a/app/javascript/dashboard/i18n/locale/ur/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ur/mfa.json @@ -55,6 +55,10 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/ur/onboarding.json b/app/javascript/dashboard/i18n/locale/ur/onboarding.json new file mode 100644 index 000000000..d7c960002 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ur/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/ur_IN/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/attributesMgmt.json index e83950b14..31b175812 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "ATTRIBUTE_TYPES": { "TEXT": "Text", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Custom Attributes", "CONVERSATION": "Conversation", - "CONTACT": "Contact" + "CONTACT": "Contact", + "COMPANY": "Company" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/automation.json b/app/javascript/dashboard/i18n/locale/ur_IN/automation.json index 46f4a520e..2c4852dc8 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/automation.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/automation.json @@ -130,6 +130,7 @@ "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", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Browser Language", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Country", + "COMPANY_NAME": "Company", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Team", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/bulkActions.json b/app/javascript/dashboard/i18n/locale/ur_IN/bulkActions.json index d736201de..2472a9288 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Go back", "ASSIGN_LABEL": "Assign", + "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", @@ -38,6 +43,8 @@ "NONE": "None", "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "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/ur_IN/chatlist.json b/app/javascript/dashboard/i18n/locale/ur_IN/chatlist.json index 0e8e87a04..1384dae2b 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Hide Quoted Text", "SHOW_QUOTED_TEXT": "Show Quoted Text", "MESSAGE_READ": "Read", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/companies.json b/app/javascript/dashboard/i18n/locale/ur_IN/companies.json index 0d64a4abd..fcdc25a1c 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/companies.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/companies.json @@ -7,6 +7,7 @@ "NAME": "Name", "DOMAIN": "Domain", "CREATED_AT": "Created at", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "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": "ڈومین" + } + }, + "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" } diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/contact.json b/app/javascript/dashboard/i18n/locale/ur_IN/contact.json index 1614f943b..36074609c 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/contact.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Identifier", "COUNTRY": "Country", "CITY": "City", + "COMPANY": "Company", "CREATED_AT": "Created at", "LAST_ACTIVITY": "Last activity", "REFERER_LINK": "Referer link", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json b/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json index 4a200b79a..e28213805 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json @@ -71,7 +71,8 @@ "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", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Resolve", @@ -92,6 +95,7 @@ "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", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json b/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json index df37ab3e3..817b3347d 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "شائع کریں", "DRAFT": "مسودہ", "ARCHIVE": "محفوظ کریں", + "TRANSLATE": "Translate", "DELETE": "حذف کریں" }, "STATUS": { @@ -579,6 +580,41 @@ "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", + "DELETE": "Delete", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json index 800351e62..18a18c3a1 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "ویجیٹ بلڈر", "BOT_CONFIGURATION": "بوٹ کی ترتیب", "ACCOUNT_HEALTH": "اکاؤنٹ کی صحت", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "وائس" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "ان باکس کی ترتیبات", @@ -1000,7 +1011,8 @@ "LABEL": "پاس ورڈ", "PLACE_HOLDER": "پاس ورڈ" }, - "ENABLE_SSL": "SSL کو فعال کریں" + "ENABLE_SSL": "SSL کو فعال کریں", + "AUTH_MECHANISM": "تصدیق" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/index.js b/app/javascript/dashboard/i18n/locale/ur_IN/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/index.js +++ b/app/javascript/dashboard/i18n/locale/ur_IN/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/integrationApps.json b/app/javascript/dashboard/i18n/locale/ur_IN/integrationApps.json index 828f4ea67..a922473c6 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Select Inbox" }, "SUBMIT": "Create", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Cancel" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json b/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json index 8ef714188..30e847011 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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": "متعلقہ FAQs", "DESCRIPTION": "یہ FAQs براہ راست دستاویز سے تیار کیے گئے ہیں۔" @@ -792,11 +838,15 @@ }, "OPTIONS": { "VIEW_RELATED_RESPONSES": "متعلقہ جوابات دیکھیں", + "SYNC_NOW": "Refresh now", + "RETRY_SYNC": "Retry refresh", "DELETE_DOCUMENT": "دستاویز حذف کریں" }, "EMPTY_STATE": { "TITLE": "کوئی دستاویزات دستیاب نہیں", "SUBTITLE": "دستاویزات آپ کے اسسٹنٹ کے لیے FAQs تیار کرنے میں استعمال ہوتی ہیں۔ آپ دستاویزات درآمد کر کے اپنے اسسٹنٹ کے لیے سیاق و سباق فراہم کر سکتے ہیں۔", + "FILTERED_TITLE": "No matching documents", + "FILTERED_SUBTITLE": "Try changing the source, status, or search term.", "FEATURE_SPOTLIGHT": { "TITLE": "Captain دستاویز", "NOTE": "Captain میں ایک دستاویز اسسٹنٹ کے لیے علم کا ذریعہ ہوتی ہے۔ آپ کے مدد مرکز یا رہنما خطوط کو منسلک کر کے، Captain مواد کا تجزیہ کر سکتا ہے اور صارفین کی پوچھ گچھ کے لیے درست جوابات فراہم کر سکتا ہے۔" diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/macros.json b/app/javascript/dashboard/i18n/locale/ur_IN/macros.json index 67a5c5003..e51975921 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/macros.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/macros.json @@ -49,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": { @@ -66,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", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/mfa.json b/app/javascript/dashboard/i18n/locale/ur_IN/mfa.json index b03917bcd..10dc30c0c 100644 --- a/app/javascript/dashboard/i18n/locale/ur_IN/mfa.json +++ b/app/javascript/dashboard/i18n/locale/ur_IN/mfa.json @@ -55,6 +55,10 @@ "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", diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/onboarding.json b/app/javascript/dashboard/i18n/locale/ur_IN/onboarding.json new file mode 100644 index 000000000..74776644e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/ur_IN/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/vi/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/vi/attributesMgmt.json index edfeb4114..56ac46b37 100644 --- a/app/javascript/dashboard/i18n/locale/vi/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/vi/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "Cuộc hội thoại", - "CONTACT": "Liên hệ" + "CONTACT": "Liên hệ", + "COMPANY": "Công ty" }, "ATTRIBUTE_TYPES": { "TEXT": "Văn bản", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "Thuộc tính tùy chỉnh", "CONVERSATION": "Cuộc hội thoại", - "CONTACT": "Liên lạc" + "CONTACT": "Liên lạc", + "COMPANY": "Công ty" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/vi/automation.json b/app/javascript/dashboard/i18n/locale/vi/automation.json index 40ae9781a..1da891baa 100644 --- a/app/javascript/dashboard/i18n/locale/vi/automation.json +++ b/app/javascript/dashboard/i18n/locale/vi/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Không có", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "Cuộc trò chuyện đã được tạo", "CONVERSATION_UPDATED": "Cuộc trò chuyện đã được cập nhật", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "Ngôn ngữ của Trình duyệt", "MAIL_SUBJECT": "Email Subject", "COUNTRY_NAME": "Quốc gia", + "COMPANY_NAME": "Công ty", "REFERER_LINK": "Referrer Link", "ASSIGNEE_NAME": "Assignee", "TEAM_NAME": "Nhóm", diff --git a/app/javascript/dashboard/i18n/locale/vi/bulkActions.json b/app/javascript/dashboard/i18n/locale/vi/bulkActions.json index 03c53ad4f..2a00f8304 100644 --- a/app/javascript/dashboard/i18n/locale/vi/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/vi/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "Bạn có chắc chắn hủy chỉ định {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Trở về", "ASSIGN_LABEL": "Gán", + "NONE": "Không có", + "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": "Có", + "CANCEL": "Huỷ", "SEARCH_INPUT_PLACEHOLDER": "Tìm kiếm", "ASSIGN_AGENT_TOOLTIP": "Gán tổng đài viên", "ASSIGN_TEAM_TOOLTIP": "Gán nhóm", @@ -38,6 +43,8 @@ "NONE": "Không có", "NO_TEAMS_AVAILABLE": "Chưa có nhóm nào được thêm vào tài khoản này.", "ASSIGN_SELECTED_TEAMS": "Chỉ định nhóm đã chọn.", + "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/vi/chatlist.json b/app/javascript/dashboard/i18n/locale/vi/chatlist.json index 394fe6089..c66341891 100644 --- a/app/javascript/dashboard/i18n/locale/vi/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/vi/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "Ẩn văn bản được trích dẫn", "SHOW_QUOTED_TEXT": "Hiện Văn bản được trích dẫn", "MESSAGE_READ": "\bĐọc", - "SENDING": "Sending" + "SENDING": "Sending", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/vi/companies.json b/app/javascript/dashboard/i18n/locale/vi/companies.json index d7f1fc288..82ac9c245 100644 --- a/app/javascript/dashboard/i18n/locale/vi/companies.json +++ b/app/javascript/dashboard/i18n/locale/vi/companies.json @@ -7,6 +7,7 @@ "NAME": "Tên", "DOMAIN": "Miền", "CREATED_AT": "Tạo vào lúc", + "LAST_ACTIVITY_AT": "Last activity", "CONTACTS_COUNT": "Contacts count" } }, @@ -21,6 +22,121 @@ "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": "Liên hệ", + "HISTORY": "History", + "NOTES": "Ghi chú" + } + }, + "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": "Tìm kiếm nhiều thuộc tính...", + "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": "Đang tải liên hệ...", + "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": "Tìm kiếm liên hệ...", + "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": "Công ty", + "CONTACT_LABEL": "Liên hệ", + "CURRENT_COMPANY": "Currently linked to {companyName}", + "ADD": "Link contact", + "CANCEL": "Huỷ" + } + }, + "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": "Tên", + "DOMAIN": "Miề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" } diff --git a/app/javascript/dashboard/i18n/locale/vi/contact.json b/app/javascript/dashboard/i18n/locale/vi/contact.json index 25cc6b2a5..ef1825b41 100644 --- a/app/javascript/dashboard/i18n/locale/vi/contact.json +++ b/app/javascript/dashboard/i18n/locale/vi/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "Định danh", "COUNTRY": "Quốc gia", "CITY": "Tỉnh / Thành phố", + "COMPANY": "Công ty", "CREATED_AT": "Tạo vào lúc", "LAST_ACTIVITY": "Hành động cuối cùng", "REFERER_LINK": "Liên kết người giới thiệu", diff --git a/app/javascript/dashboard/i18n/locale/vi/conversation.json b/app/javascript/dashboard/i18n/locale/vi/conversation.json index 19778bfc7..5318c3979 100644 --- a/app/javascript/dashboard/i18n/locale/vi/conversation.json +++ b/app/javascript/dashboard/i18n/locale/vi/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "Message not available", "CARD": { "SHOW_LABELS": "Hiển thị nhãn", - "HIDE_LABELS": "Ẩn nhãn" + "HIDE_LABELS": "Ẩn nhãn", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "Incoming call", @@ -82,7 +83,9 @@ "CALL_ENDED": "Call ended", "NOT_ANSWERED_YET": "Not answered yet", "THEY_ANSWERED": "They answered", - "YOU_ANSWERED": "You answered" + "YOU_ANSWERED": "You answered", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "Giải quyết", @@ -92,6 +95,7 @@ "OPEN": "Nhiều", "CLOSE": "Đóng", "DETAILS": "chi tiết", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "Snoozed until", "SNOOZED_UNTIL_TOMORROW": "Tạm dừng đến ngày mai", "SNOOZED_UNTIL_NEXT_WEEK": "Tạm dừng đến tuần sau", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "Cuộc trò chuyện trước đó", "MACROS": "Macros", "LINEAR_ISSUES": "Linked Linear Issues", - "SHOPIFY_ORDERS": "Shopify Orders" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/vi/helpCenter.json b/app/javascript/dashboard/i18n/locale/vi/helpCenter.json index fa002f780..75bf9d415 100644 --- a/app/javascript/dashboard/i18n/locale/vi/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/vi/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "Phát hành", "DRAFT": "Nháp", "ARCHIVE": "Archive", + "TRANSLATE": "Translate", "DELETE": "Xoá" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "Phát hành", + "DRAFT": "Nháp", + "ARCHIVE": "Archive", + "TRANSLATE": "Translate", + "DELETE": "Xoá", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": "Xoá", + "DELETE_SUCCESS": "Articles deleted successfully", + "DELETE_ERROR": "Failed to delete articles" } }, "CATEGORY_PAGE": { diff --git a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json index 72df3dad0..564b76168 100644 --- a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "Trình tạo widget", "BOT_CONFIGURATION": "Cấu hình Bot", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "Voice" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name", "ENABLE_CONTINUITY_VIA_EMAIL": "Bật tiếp tục cuộc trò chuyện qua email", "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Cuộc trò chuyện sẽ tiếp tục qua email nếu có địa chỉ email liên lạc.", + "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": "Cài đặt Hộp thư đến", @@ -1000,7 +1011,8 @@ "LABEL": "Mật khẩu", "PLACE_HOLDER": "Mật khẩu" }, - "ENABLE_SSL": "Kích hoạt SSL" + "ENABLE_SSL": "Kích hoạt SSL", + "AUTH_MECHANISM": "Xác minh" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/vi/index.js b/app/javascript/dashboard/i18n/locale/vi/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/vi/index.js +++ b/app/javascript/dashboard/i18n/locale/vi/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/vi/integrationApps.json b/app/javascript/dashboard/i18n/locale/vi/integrationApps.json index fede38884..f1f734503 100644 --- a/app/javascript/dashboard/i18n/locale/vi/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/vi/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "Chọn Hộp thư đến" }, "SUBMIT": "Tạo", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "Huỷ" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/vi/integrations.json b/app/javascript/dashboard/i18n/locale/vi/integrations.json index f54f81203..48c1e236f 100644 --- a/app/javascript/dashboard/i18n/locale/vi/integrations.json +++ b/app/javascript/dashboard/i18n/locale/vi/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "Select all ({count})", "UNSELECT_ALL": "Unselect all ({count})", "BULK_DELETE_BUTTON": "Xoá", + "BULK_SYNC_BUTTON": "Làm mới", "BULK_DELETE": { "TITLE": "Delete documents?", "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.", @@ -749,6 +750,51 @@ "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": "đang cập nhật...", + "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." @@ -792,11 +838,15 @@ }, "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." diff --git a/app/javascript/dashboard/i18n/locale/vi/macros.json b/app/javascript/dashboard/i18n/locale/vi/macros.json index e5c69dcec..9608a8b9c 100644 --- a/app/javascript/dashboard/i18n/locale/vi/macros.json +++ b/app/javascript/dashboard/i18n/locale/vi/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "Đã xảy ra lỗi khi xóa macro. Vui lòng thử lại sau" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "Sửa Macro", "API": { @@ -66,7 +69,9 @@ "LABEL": "Hiển thị Macro", "GLOBAL": { "LABEL": "Công khai", - "DESCRIPTION": "Macro này có sẵn công khai cho tất cả các tác nhân trong tài khoản này." + "DESCRIPTION": "Macro này có sẵn công khai cho tất cả các tác nhân trong tài khoản này.", + "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.", + "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros." }, "PERSONAL": { "LABEL": "Riêng tư", diff --git a/app/javascript/dashboard/i18n/locale/vi/mfa.json b/app/javascript/dashboard/i18n/locale/vi/mfa.json index a8aedc53f..727325261 100644 --- a/app/javascript/dashboard/i18n/locale/vi/mfa.json +++ b/app/javascript/dashboard/i18n/locale/vi/mfa.json @@ -55,6 +55,10 @@ "PASSWORD": "Mật khẩu", "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": "Huỷ", "SUCCESS": "Two-factor authentication has been disabled", diff --git a/app/javascript/dashboard/i18n/locale/vi/onboarding.json b/app/javascript/dashboard/i18n/locale/vi/onboarding.json new file mode 100644 index 000000000..ffbae5a8b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/vi/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": "Ngôn ngữ", + "TIMEZONE": "Múi giờ", + "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": "Chọn múi giờ", + "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": "Đang lưu...", + "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/zh_CN/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/attributesMgmt.json index a528ad09f..e9b689574 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "No attributes found matching your search", "ATTRIBUTE_MODELS": { "CONVERSATION": "会话", - "CONTACT": "联系人" + "CONTACT": "联系人", + "COMPANY": "公司" }, "ATTRIBUTE_TYPES": { "TEXT": "文本", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "自定义属性", "CONVERSATION": "会话", - "CONTACT": "联系人" + "CONTACT": "联系人", + "COMPANY": "公司" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/automation.json b/app/javascript/dashboard/i18n/locale/zh_CN/automation.json index b0122e961..9bdfd06ef 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/automation.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "至少需要一个动作" }, "NONE_OPTION": "无", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "对话创建", "CONVERSATION_UPDATED": "对话已更新", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "浏览器语言", "MAIL_SUBJECT": "电子邮件主题", "COUNTRY_NAME": "国家", + "COMPANY_NAME": "公司", "REFERER_LINK": "引荐链接", "ASSIGNEE_NAME": "负责人", "TEAM_NAME": "团队", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/bulkActions.json b/app/javascript/dashboard/i18n/locale/zh_CN/bulkActions.json index 408d71776..14adf13b6 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "您确定要取消分配 {conversationCount} 个 {conversationLabel} 吗?", "GO_BACK_LABEL": "返回", "ASSIGN_LABEL": "分配", + "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": "分配一个团队", @@ -38,6 +43,8 @@ "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": "分配团队失败。请再试一次。" } diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json b/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json index 947d20d58..9d170012f 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "隐藏引用文字", "SHOW_QUOTED_TEXT": "显示引用文字", "MESSAGE_READ": "已读", - "SENDING": "发送中" + "SENDING": "发送中", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/companies.json b/app/javascript/dashboard/i18n/locale/zh_CN/companies.json index df37de873..211a9b577 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/companies.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/companies.json @@ -7,6 +7,7 @@ "NAME": "姓名:", "DOMAIN": "域名", "CREATED_AT": "创建于", + "LAST_ACTIVITY_AT": "上次操作", "CONTACTS_COUNT": "联系人数" } }, @@ -21,6 +22,121 @@ "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": "没有找到公司" } diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json index deb7022e3..478878853 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json @@ -386,6 +386,7 @@ "IDENTIFIER": "标识符", "COUNTRY": "国家", "CITY": "城市", + "COMPANY": "公司", "CREATED_AT": "创建于", "LAST_ACTIVITY": "上次操作", "REFERER_LINK": "引用链接", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json index e18dfd0cd..d5a2c792d 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "消息不可用", "CARD": { "SHOW_LABELS": "显示标签", - "HIDE_LABELS": "隐藏标签" + "HIDE_LABELS": "隐藏标签", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "来电", @@ -82,7 +83,9 @@ "CALL_ENDED": "通话结束", "NOT_ANSWERED_YET": "尚未回复", "THEY_ANSWERED": "对方已回复", - "YOU_ANSWERED": "你已回复" + "YOU_ANSWERED": "你已回复", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "Join call" }, "HEADER": { "RESOLVE_ACTION": "已解决", @@ -92,6 +95,7 @@ "OPEN": "详细信息", "CLOSE": "关闭", "DETAILS": "详情", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "推迟到", "SNOOZED_UNTIL_TOMORROW": "推迟到明天", "SNOOZED_UNTIL_NEXT_WEEK": "推迟到下周", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "上一次对话", "MACROS": "宏", "LINEAR_ISSUES": "已链接的 Linear 问题", - "SHOPIFY_ORDERS": "Shopify Orders" + "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": "媒体", + "FILES_HEADING": "Files", + "VIEW_ALL": "查看全部", + "SHOW_LESS": "Show less", + "MORE_COUNT": "+{count}", + "UNTITLED_FILE": "Untitled file" }, "SHOPIFY": { "ORDER_ID": "Order #{id}", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json b/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json index 139146f18..95700269f 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "发布", "DRAFT": "草稿", "ARCHIVE": "归档", + "TRANSLATE": "翻译", "DELETE": "删除" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "翻译", + "DELETE": "删除", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json index e61744e99..08ba76bfb 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "小部件生成器", "BOT_CONFIGURATION": "机器人配置", "ACCOUNT_HEALTH": "Account Health", - "CSAT": "客户满意度" + "CSAT": "客户满意度", + "VOICE": "语音" + }, + "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." + } }, "CHANNEL_PREFERENCES": "Channel Preferences", "WIDGET_FEATURES": "Widget features", @@ -745,6 +755,7 @@ "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": "收件箱设置", @@ -1000,7 +1011,8 @@ "LABEL": "密码", "PLACE_HOLDER": "密码" }, - "ENABLE_SSL": "启用SSL" + "ENABLE_SSL": "启用SSL", + "AUTH_MECHANISM": "认证机制" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/index.js b/app/javascript/dashboard/i18n/locale/zh_CN/index.js index 213387d0c..785b1e0b1 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/index.js +++ b/app/javascript/dashboard/i18n/locale/zh_CN/index.js @@ -8,6 +8,7 @@ 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'; @@ -26,6 +27,8 @@ 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'; @@ -47,6 +50,7 @@ export default { ...campaign, ...cannedMgmt, ...chatlist, + ...companies, ...components, ...contact, ...contactFilters, @@ -65,6 +69,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/integrationApps.json b/app/javascript/dashboard/i18n/locale/zh_CN/integrationApps.json index 2b9d953bf..4c7d824d6 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "选择收件箱" }, "SUBMIT": "创建", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "取消" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json b/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json index b79d8bae0..8d40ea6ae 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json @@ -742,6 +742,7 @@ "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.", @@ -749,6 +750,51 @@ "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": "这些常见问题直接从文档生成。" @@ -792,11 +838,15 @@ }, "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 可以分析内容并为客户询问提供准确的回答。" diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/macros.json b/app/javascript/dashboard/i18n/locale/zh_CN/macros.json index 0cd71d1f5..3e3a2ed6d 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/macros.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "删除宏时出错。请稍后再试" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "编辑宏文件", "API": { @@ -66,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": "私人的", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/mfa.json b/app/javascript/dashboard/i18n/locale/zh_CN/mfa.json index 444e233bb..87541f572 100644 --- a/app/javascript/dashboard/i18n/locale/zh_CN/mfa.json +++ b/app/javascript/dashboard/i18n/locale/zh_CN/mfa.json @@ -55,6 +55,10 @@ "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": "禁用两步验证", "CANCEL": "取消", "SUCCESS": "两步验证已禁用", diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/onboarding.json b/app/javascript/dashboard/i18n/locale/zh_CN/onboarding.json new file mode 100644 index 000000000..b2305361d --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/zh_CN/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": "语言", + "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/zh_TW/agentMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json index 635be6793..9c1e40a9f 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/agentMgmt.json @@ -18,7 +18,7 @@ "EMAIL": "電子郵件", "STATUS": "狀態", "ACTIONS": "操作", - "VERIFIED": "已驗證", + "VERIFIED": "已認證", "VERIFICATION_PENDING": "待驗證", "AVAILABLE_CUSTOM_ROLE": "可用的自訂角色權限" }, @@ -57,8 +57,8 @@ "CONFIRM": { "TITLE": "確認刪除", "MESSAGE": "您確定要刪除嗎?", - "YES": "是,刪除", - "NO": "不,保留" + "YES": "是,刪除 ", + "NO": "不,保留 " } }, "EDIT": { @@ -87,11 +87,11 @@ "BUTTON_TEXT": "編輯", "CANCEL_BUTTON_TEXT": "取消", "API": { - "SUCCESS_MESSAGE": "客服資訊更新成功", + "SUCCESS_MESSAGE": "更新客服資訊成功", "ERROR_MESSAGE": "無法連接伺服器,請稍後再試" }, "PASSWORD_RESET": { - "ADMIN_RESET_BUTTON": "重設密碼", + "ADMIN_RESET_BUTTON": "重置密碼", "ADMIN_SUCCESS_MESSAGE": "一封包含重設密碼說明的電子郵件已傳送給客服", "SUCCESS_MESSAGE": "客服密碼重設成功", "ERROR_MESSAGE": "無法連接伺服器,請稍後再試" diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json index 9cc9dd6ed..5c81efd81 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/attributesMgmt.json @@ -10,7 +10,8 @@ "NO_RESULTS": "找不到符合搜尋條件的屬性", "ATTRIBUTE_MODELS": { "CONVERSATION": "對話", - "CONTACT": "聯絡人" + "CONTACT": "聯絡人", + "COMPANY": "公司" }, "ATTRIBUTE_TYPES": { "TEXT": "文字", @@ -108,7 +109,8 @@ "TABS": { "HEADER": "自訂屬性", "CONVERSATION": "對話", - "CONTACT": "聯絡人" + "CONTACT": "聯絡人", + "COMPANY": "公司" }, "LIST": { "TABLE_HEADER": { diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/automation.json b/app/javascript/dashboard/i18n/locale/zh_TW/automation.json index e8d691f82..99c5d3e15 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/automation.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/automation.json @@ -130,6 +130,7 @@ "ATLEAST_ONE_ACTION_REQUIRED": "至少需要一個動作" }, "NONE_OPTION": "無", + "LAST_RESPONDING_AGENT": "Last Responding Agent", "EVENTS": { "CONVERSATION_CREATED": "對話已建立", "CONVERSATION_UPDATED": "對話已更新", @@ -181,6 +182,7 @@ "BROWSER_LANGUAGE": "瀏覽器語言", "MAIL_SUBJECT": "郵件主旨", "COUNTRY_NAME": "國家", + "COMPANY_NAME": "公司", "REFERER_LINK": "來源連結", "ASSIGNEE_NAME": "負責人", "TEAM_NAME": "團隊", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/bulkActions.json b/app/javascript/dashboard/i18n/locale/zh_TW/bulkActions.json index 22d4b3ea8..8600e1453 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/bulkActions.json @@ -6,7 +6,12 @@ "UNASSIGN_CONFIRMATION_LABEL": "您確定要取消指派 {conversationCount} 個{conversationLabel}嗎?", "GO_BACK_LABEL": "返回", "ASSIGN_LABEL": "指派", + "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": "指派團隊", @@ -38,6 +43,8 @@ "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": "指派團隊失敗,請再試一次。" } diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json b/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json index 227e83521..71f4d58f7 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/chatlist.json @@ -140,6 +140,7 @@ "HIDE_QUOTED_TEXT": "隱藏引用文字", "SHOW_QUOTED_TEXT": "顯示引用文字", "MESSAGE_READ": "已讀", - "SENDING": "傳送中" + "SENDING": "傳送中", + "UNREAD_COUNT_OVERFLOW": "9+" } } diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/companies.json b/app/javascript/dashboard/i18n/locale/zh_TW/companies.json index e03d13de5..fa023537d 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/companies.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/companies.json @@ -7,6 +7,7 @@ "NAME": "名稱", "DOMAIN": "網域", "CREATED_AT": "建立時間", + "LAST_ACTIVITY_AT": "最後活動", "CONTACTS_COUNT": "聯絡人數量" } }, @@ -21,6 +22,121 @@ "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": "找不到公司" } diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/contact.json b/app/javascript/dashboard/i18n/locale/zh_TW/contact.json index 72c37c875..9b02b785b 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/contact.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/contact.json @@ -288,7 +288,6 @@ "ID": "(ID: {identifier})" } }, - "CONTACTS_LAYOUT": { "HEADER": { "TITLE": "聯絡人", @@ -387,6 +386,7 @@ "IDENTIFIER": "識別碼", "COUNTRY": "國家", "CITY": "城市", + "COMPANY": "公司", "CREATED_AT": "建立時間", "LAST_ACTIVITY": "最後活動", "REFERER_LINK": "來源連結", @@ -602,7 +602,6 @@ "CONFIRM_SINGLE": "刪除聯絡人" } }, - "COMPOSE_NEW_CONVERSATION": { "CONTACT_SEARCH": { "ERROR_MESSAGE": "無法完成搜尋,請重試。" diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json index af331dc0d..783c9a541 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json @@ -71,7 +71,8 @@ "REPLY_MESSAGE_NOT_FOUND": "訊息無法使用", "CARD": { "SHOW_LABELS": "顯示標籤", - "HIDE_LABELS": "隱藏標籤" + "HIDE_LABELS": "隱藏標籤", + "LABELS_COUNT": "{count} labels" }, "VOICE_CALL": { "INCOMING_CALL": "來電", @@ -82,7 +83,9 @@ "CALL_ENDED": "通話結束", "NOT_ANSWERED_YET": "尚未接聽", "THEY_ANSWERED": "對方已接聽", - "YOU_ANSWERED": "您已接聽" + "YOU_ANSWERED": "您已接聽", + "AGENT_ANSWERED": "{agentName} answered", + "JOIN_CALL": "加入通話" }, "HEADER": { "RESOLVE_ACTION": "解決", @@ -92,6 +95,7 @@ "OPEN": "更多", "CLOSE": "關閉", "DETAILS": "詳情", + "COPY_ID_SUCCESS": "Conversation ID copied to clipboard", "SNOOZED_UNTIL": "延後至", "SNOOZED_UNTIL_TOMORROW": "延後至明天", "SNOOZED_UNTIL_NEXT_WEEK": "延後至下週", @@ -362,7 +366,19 @@ "PREVIOUS_CONVERSATION": "先前的對話", "MACROS": "巨集", "LINEAR_ISSUES": "已連結的 Linear 議題", - "SHOPIFY_ORDERS": "Shopify 訂單" + "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}", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json b/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json index b462339b2..5d68d982f 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json @@ -525,6 +525,7 @@ "PUBLISH": "發佈", "DRAFT": "草稿", "ARCHIVE": "封存", + "TRANSLATE": "翻譯", "DELETE": "刪除" }, "STATUS": { @@ -579,6 +580,41 @@ "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": "翻譯", + "DELETE": "刪除", + "STATUS_SUCCESS": "Articles updated successfully", + "STATUS_ERROR": "Failed to update 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": { diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json index fa207e9bb..49d0a5081 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json @@ -636,7 +636,17 @@ "WIDGET_BUILDER": "小工具建置器", "BOT_CONFIGURATION": "機器人設定", "ACCOUNT_HEALTH": "帳號健康狀態", - "CSAT": "CSAT" + "CSAT": "CSAT", + "VOICE": "語音" + }, + "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." + } }, "CHANNEL_PREFERENCES": "頻道偏好設定", "WIDGET_FEATURES": "小工具功能", @@ -745,6 +755,7 @@ "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": "收件匣設定", @@ -1000,7 +1011,8 @@ "LABEL": "密碼", "PLACE_HOLDER": "密碼" }, - "ENABLE_SSL": "啟用 SSL" + "ENABLE_SSL": "啟用 SSL", + "AUTH_MECHANISM": "驗證機制" }, "MICROSOFT": { "TITLE": "Microsoft", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/index.js b/app/javascript/dashboard/i18n/locale/zh_TW/index.js index 1e5b0b2cd..7974e3385 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/index.js +++ b/app/javascript/dashboard/i18n/locale/zh_TW/index.js @@ -27,6 +27,8 @@ 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'; @@ -68,6 +70,8 @@ export default { ...labelsMgmt, ...login, ...macros, + ...mfa, + ...onboarding, ...report, ...resetPassword, ...search, diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/integrationApps.json b/app/javascript/dashboard/i18n/locale/zh_TW/integrationApps.json index e88d80e13..c18520d24 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/integrationApps.json @@ -46,6 +46,7 @@ "PLACEHOLDER": "選擇收件匣" }, "SUBMIT": "建立", + "VALIDATING_OPENAI": "Validating with OpenAI...", "CANCEL": "取消" }, "API": { diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json b/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json index b45661d38..213268f07 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json @@ -742,6 +742,7 @@ "SELECT_ALL": "全選({count})", "UNSELECT_ALL": "取消全選({count})", "BULK_DELETE_BUTTON": "刪除", + "BULK_SYNC_BUTTON": "重新整理", "BULK_DELETE": { "TITLE": "刪除文件?", "DESCRIPTION": "您確定要刪除所選的文件嗎?此操作無法復原。", @@ -749,6 +750,51 @@ "SUCCESS_MESSAGE": "文件已成功刪除", "ERROR_MESSAGE": "刪除文件時發生錯誤,請重試。" }, + "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": "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": "這些常見問答是直接從文件中生成的。" @@ -792,11 +838,15 @@ }, "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 能分析內容並為客戶詢問提供準確的回應。" diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/login.json b/app/javascript/dashboard/i18n/locale/zh_TW/login.json index ff21105b1..39a9630ae 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/login.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/login.json @@ -1,6 +1,6 @@ { "LOGIN": { - "TITLE": "登入 Chatwoot", + "TITLE": "登入到 Chatwoot", "EMAIL": { "LABEL": "電子郵件", "PLACEHOLDER": "example{'@'}companyname.com", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/macros.json b/app/javascript/dashboard/i18n/locale/zh_TW/macros.json index e82569fea..82c4161f4 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/macros.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/macros.json @@ -49,6 +49,9 @@ "ERROR_MESSAGE": "刪除巨集時發生錯誤,請稍後再試" } }, + "VIEW": { + "TOOLTIP": "View macro" + }, "EDIT": { "TOOLTIP": "編輯巨集", "API": { @@ -66,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": "私人", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/mfa.json b/app/javascript/dashboard/i18n/locale/zh_TW/mfa.json index 3616edaec..b44898734 100644 --- a/app/javascript/dashboard/i18n/locale/zh_TW/mfa.json +++ b/app/javascript/dashboard/i18n/locale/zh_TW/mfa.json @@ -55,6 +55,10 @@ "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": "雙重驗證已停用", diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/onboarding.json b/app/javascript/dashboard/i18n/locale/zh_TW/onboarding.json new file mode 100644 index 000000000..db6b89923 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/zh_TW/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/config/locales/am.yml b/config/locales/am.yml index 3a68a7f81..a42e45ab3 100644 --- a/config/locales/am.yml +++ b/config/locales/am.yml @@ -50,6 +50,8 @@ am: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ am: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ am: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ am: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ am: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ am: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ am: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ am: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 25c2760f2..b7b59493a 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -50,6 +50,8 @@ ar: email_already_exists: 'لقد قمت بالفعل بتسجيل حساب سابقاً بالعنوان %{email}' invalid_params: 'غير صالح، الرجاء التحقق من خانات التسجيل وحاول مرة أخرى' failed: فشلت عملية التسجيل + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ar: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: الرجاء التحقق من اتصال الشبكة وعنوان IMAP ثم حاول مرة أخرى. @@ -229,6 +240,10 @@ ar: deleted: تم حذف هذه الرسالة whatsapp: list_button_label: 'اختر عنصر' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'رمز الخطأ: %{error_code}' activity: @@ -273,6 +288,9 @@ ar: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ar: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'إنشاء مشكلات في Linear مباشرة من نافذة المحادثة الخاصة بك. بدلاً من ذلك، قم بربط مشكلات Linear القائمة من أجل عملية تتبع أكثر تبسيطاً وكفاءة.' + attachment_link_title: 'محادثة (#%{conversation_id}) مع %{name}' notion: name: 'نوشن' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ar: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -490,6 +512,12 @@ ar: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'اللغة غير متوفرة في هذه البوابة' + category_not_found: 'التصنيف غير موجود في هذه البوابة' + no_articles_found: 'لا يوجد مقالات حتى يتم معالجتها' + invalid_status: 'قيمة الحالة غير صالحة' send_instructions: email_required: 'البريد الإلكتروني مطلوب' invalid_email_format: 'Invalid email format' @@ -498,3 +526,9 @@ ar: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'لم يتم العثور على المستخدم.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/az.yml b/config/locales/az.yml index 59e96ea15..5632d143e 100644 --- a/config/locales/az.yml +++ b/config/locales/az.yml @@ -50,6 +50,8 @@ az: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ az: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ az: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ az: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ az: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ az: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ az: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ az: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 1b7595267..ca2fe620a 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -50,6 +50,8 @@ bg: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ bg: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ bg: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ bg: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ bg: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ bg: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ bg: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ bg: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 2a6bd9f38..1a7b02b1b 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -50,6 +50,8 @@ bn: email_already_exists: 'আপনি ইতিমধ্যে %{email} দিয়ে একটি অ্যাকাউন্ট তৈরি করেছেন' invalid_params: 'অবৈধ, অনুগ্রহ করে সাইনআপের তথ্য যাচাই করুন এবং আবার চেষ্টা করুন' failed: সাইন আপ ব্যর্থ হয়েছে + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: অ্যাসাইনমেন্ট নীতি পাওয়া যায়নি attachments: @@ -100,6 +102,15 @@ bn: reauthorization: generic: 'WhatsApp পুনরায় অনুমোদন করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।.' not_supported: 'এই ধরনের WhatsApp চ্যানেলের জন্য পুনরায় অনুমোদন সমর্থিত নয়।.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: অনুগ্রহ করে নেটওয়ার্ক সংযোগ, IMAP ঠিকানা যাচাই করুন এবং আবার চেষ্টা করুন।. @@ -229,6 +240,10 @@ bn: deleted: এই বার্তাটি মুছে ফেলা হয়েছে whatsapp: list_button_label: 'একটি আইটেম নির্বাচন করুন' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'ত্রুটি কোড: %{error_code}' activity: @@ -273,6 +288,9 @@ bn: issue_created: 'Linear ইস্যু %{issue_id} তৈরি করেছেন %{user_name}' issue_linked: 'Linear ইস্যু %{issue_id} লিঙ্ক করেছেন %{user_name}' issue_unlinked: 'Linear ইস্যু %{issue_id} আনলিঙ্ক করেছেন %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'বাহ্যিক বার্তা পাঠানোর সীমাবদ্ধতার কারণে CSAT জরিপ পাঠানো হয়নি' auto_resolve: @@ -337,6 +355,7 @@ bn: name: 'লিনিয়ার' short_description: 'কথোপকথন থেকে সরাসরি Linear ইস্যু তৈরি ও সংযুক্ত করুন।.' description: 'আপনার কথোপকথনের উইন্ডো থেকেই সরাসরি Linear-এ ইস্যু তৈরি করুন। বিকল্পভাবে, বিদ্যমান Linear ইস্যুগুলিকে সংযুক্ত করুন আরও সহজ ও কার্যকর ইস্যু ট্র্যাকিংয়ের জন্য।.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'ডাটাবেস, ডকুমেন্ট এবং পেজগুলো সরাসরি Captain-এর সাথে সংযুক্ত করুন।.' @@ -365,6 +384,9 @@ bn: limit_exceeded: 'ডকুমেন্ট সীমা অতিক্রম হয়েছে' pdf_format_error: 'একটি PDF ফাইল হতে হবে' pdf_size_error: '১০MB-এর কম হতে হবে' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'PDF টি OpenAI-তে আপলোড করতে ব্যর্থ হয়েছে' pdf_upload_success: 'PDF সফলভাবে আপলোড হয়েছে, file_id: %{file_id}' pdf_processing_failed: 'PDF ডকুমেন্ট %{document_id} প্রসেস করতে ব্যর্থ হয়েছে: %{error}' @@ -474,6 +496,12 @@ bn: agent_capacity_policy: inbox_already_assigned: 'এই নীতিতে ইনবক্স ইতিমধ্যে অ্যাসাইন করা হয়েছে' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'ইমেইল আবশ্যক' invalid_email_format: 'ইমেইলের ফরম্যাট সঠিক নয়' @@ -482,3 +510,9 @@ bn: subject: '%{custom_domain} সেটআপ সম্পন্ন করুন' ssl_status: custom_domain_not_configured: 'কাস্টম ডোমেইন কনফিগার করা হয়নি' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 9787db7bb..920ba2ec0 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -50,6 +50,8 @@ ca: email_already_exists: 'Ja us heu registrat amb el compte %{email}' invalid_params: 'No és vàlid, comprova els paràmetres de registre i torna-ho a provar' failed: El registre ha fallat + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ca: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Comprova la connexió de xarxa, l'adreça IMAP i torna-ho a provar. @@ -229,6 +240,10 @@ ca: deleted: Aquest missatge a sigut eliminat whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Codi d''error: %{error_code}' activity: @@ -273,6 +288,9 @@ ca: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ca: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversa (#%{conversation_id}) amb %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ca: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ ca: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'El correu electrònic és obligatori' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ ca: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/cs.yml b/config/locales/cs.yml index a1793a4c1..2fe9bfe41 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -50,6 +50,8 @@ cs: email_already_exists: 'Již jste se zaregistrovali k účtu s %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Registrace se nezdařila + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ cs: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ cs: deleted: Tato zpráva byla smazána whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ cs: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ cs: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ cs: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -482,6 +504,12 @@ cs: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -490,3 +518,9 @@ cs: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/da.yml b/config/locales/da.yml index 512b659ac..5af6c9ccd 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -50,6 +50,8 @@ da: email_already_exists: 'Du har allerede tilmeldt dig en konto med %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Tilmelding mislykkedes + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ da: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Tjek venligst netværksforbindelsen, IMAP-adressen og prøv igen. @@ -229,6 +240,10 @@ da: deleted: Denne besked blev slettet whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ da: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ da: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ da: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ da: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ da: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/de.yml b/config/locales/de.yml index 0243b90a5..f9156ece1 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -50,6 +50,8 @@ de: email_already_exists: 'Sie haben sich bereits für ein Konto bei %{email} angemeldet.' invalid_params: 'Ungültig, bitte überprüfen Sie die Anmeldeparameter und versuchen Sie es erneut' failed: Anmeldung gescheitert + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ de: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Bitte überprüfen Sie die Netzwerkverbindung, die IMAP-Adresse und versuchen Sie es erneut. @@ -229,6 +240,10 @@ de: deleted: Diese Nachricht wurde gelöscht whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Fehlercode: %{error_code}' activity: @@ -273,6 +288,9 @@ de: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ de: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Unterhaltung (#%{conversation_id}) mit %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ de: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ de: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'E-Mail ist erforderlich' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ de: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/el.yml b/config/locales/el.yml index 3dbdcefd3..ae45f7518 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -50,6 +50,8 @@ el: email_already_exists: 'Έχει ήδη καταχωρηθεί λογαριασμός στο %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Η εγγραφή απέτυχε + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ el: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Παρακαλώ ελέγξτε τη σύνδεση δικτύου, τη διεύθυνση IMAP και προσπαθήστε ξανά. @@ -229,6 +240,10 @@ el: deleted: Το μήνυμα διαγράφηκε whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ el: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ el: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ el: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ el: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ el: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/es.yml b/config/locales/es.yml index 013ff5354..24166770a 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -50,6 +50,8 @@ es: email_already_exists: 'Ya te has registrado en una cuenta con %{email}' invalid_params: 'Inválido, por favor comprueba los parámetros de registro e inténtalo de nuevo' failed: Registro fallido + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ es: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Verifique la conexión de red, la dirección IMAP y vuelva a intentarlo. @@ -229,6 +240,10 @@ es: deleted: Este mensaje se ha eliminado whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Código de error: %{error_code}' activity: @@ -273,6 +288,9 @@ es: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ es: name: 'Lineal' short_description: 'Create and link Linear issues directly from conversations.' description: 'Crea problemas en Linear directamente desde tu ventana de conversación. Alternativamente, enlaza problemas existentes en Linear para un proceso de seguimiento de problemas más eficiente y ágil.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ es: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ es: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'El email es requerido' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ es: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/et.yml b/config/locales/et.yml index 1778895f2..f5a0a6229 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -50,6 +50,8 @@ et: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Registreerumine ebaõnnestus + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ et: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Kontrolli võrguühendust ja IMAP-aadressi ning proovi uuesti. @@ -229,6 +240,10 @@ et: deleted: See sõnum kustutati whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ et: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ et: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ et: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ et: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ et: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/fa.yml b/config/locales/fa.yml index c14c8a4d0..b48f5ffaa 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -50,6 +50,8 @@ fa: email_already_exists: 'قبلا کاربری با ایمیل %{email} ثبت‌نام کرده است' invalid_params: 'نامعتبر است، لطفا پارامترهای ثبت‌نام را بررسی کرده و دوباره امتحان کنید' failed: ثبت نام ناموفق بود + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ fa: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: لطفا اتصال شبکه، آدرس IMAP را بررسی کنید و دوباره امتحان کنید. @@ -229,6 +240,10 @@ fa: deleted: این پیام حذف شد whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'کد خطا " %{error_code}' activity: @@ -273,6 +288,9 @@ fa: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ fa: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ fa: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ fa: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'ایمیل الزامی است' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ fa: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 9e66eac93..ed9925caf 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -50,6 +50,8 @@ fi: email_already_exists: 'Olet jo rekisteröitynyt tiliin sähköpostin %{email} kanssa' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Rekisteröityminen epäonnistui + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ fi: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ fi: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ fi: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ fi: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ fi: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ fi: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Sähköpostiosoite vaaditaan' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ fi: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/fr.yml b/config/locales/fr.yml index f32ab8466..7f3d3a7d3 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -50,6 +50,8 @@ fr: email_already_exists: 'Vous avez déjà créé un compte avec %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: L'inscription a échoué + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ fr: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Veuillez vérifier la connexion, l'adresse IMAP et réessayez. @@ -229,6 +240,10 @@ fr: deleted: Ce message a été supprimé whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Code d''erreur : %{error_code}' activity: @@ -273,6 +288,9 @@ fr: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ fr: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ fr: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ fr: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'L''e-mail est requis' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ fr: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/he.yml b/config/locales/he.yml index 67da6fb2c..7f6439e6d 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -50,6 +50,8 @@ he: email_already_exists: 'כבר נרשמת לחשבון עם %{email}' invalid_params: 'לא תקין, אנא בדוק את פרמטרי הרישום ונסה שוב' failed: הרישמה נכשלה + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: מדיניות הקצאה לא נמצאה attachments: @@ -100,6 +102,15 @@ he: reauthorization: generic: 'אישור מחדש של WhatsApp נכשל. אנא נסה שוב.' not_supported: 'אישור מחדש אינו נתמך עבור סוג ערוץ WhatsApp זה.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: אנא בדוק את חיבור הרשת, כתובת ה-IMAP ונסה שוב. @@ -229,6 +240,10 @@ he: deleted: הודעה זו נמחקה whatsapp: list_button_label: 'בחר פריט' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'קוד שגיאה: %{error_code}' activity: @@ -273,6 +288,9 @@ he: issue_created: 'בעיית Linear %{issue_id} נוצרה על ידי %{user_name}' issue_linked: 'בעיית Linear %{issue_id} קושרה על ידי %{user_name}' issue_unlinked: 'בעיית Linear %{issue_id} נותקה על ידי %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'סקר CSAT לא נשלח עקב הגבלות הודעות יוצאות' auto_resolve: @@ -337,6 +355,7 @@ he: name: 'Linear' short_description: 'צור וקשר בעיות Linear ישירות משיחות.' description: 'צור בעיות ב-Linear ישירות מחלון השיחה שלך. לחלופין, קשר בעיות Linear קיימות לתהליך מעקב בעיות יעיל וזורם יותר.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'שלב מסדי נתונים, מסמכים ודפים ישירות עם Captain.' @@ -365,6 +384,9 @@ he: limit_exceeded: 'מגבלת מסמכים חרגה' pdf_format_error: 'חייב להיות קובץ PDF' pdf_size_error: 'חייב להיות קטן מ-10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'העלאת PDF ל-OpenAI נכשלה' pdf_upload_success: 'PDF הועלה בהצלחה עם file_id: %{file_id}' pdf_processing_failed: 'עיבוד מסמך PDF %{document_id} נכשל: %{error}' @@ -482,6 +504,12 @@ he: agent_capacity_policy: inbox_already_assigned: 'תיבת דואר נכנס כבר הוקצתה למדיניות זו' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'דוא"ל נדרש' invalid_email_format: 'פורמט דוא"ל לא תקין' @@ -490,3 +518,9 @@ he: subject: 'סיים להגדיר %{custom_domain}' ssl_status: custom_domain_not_configured: 'דומיין מותאם אישית לא מוגדר' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 212d49986..6f9a44e7c 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -50,6 +50,8 @@ hi: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ hi: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ hi: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ hi: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ hi: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ hi: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ hi: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ hi: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 712fc1631..ea2a83880 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -50,6 +50,8 @@ hr: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ hr: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ hr: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ hr: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ hr: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ hr: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -478,6 +500,12 @@ hr: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -486,3 +514,9 @@ hr: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/hu.yml b/config/locales/hu.yml index efaa5ae7a..2de754354 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -50,6 +50,8 @@ hu: email_already_exists: 'Ezzel az e-mailcímmel már van fiók: %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Feliratkozás sikertelen + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ hu: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Kérlek ellenőrizd a hálózati kapcsolatot, az IMAP címet, majd próbáld újra. @@ -229,6 +240,10 @@ hu: deleted: Az üzenet törölve lett whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Hibakód: %{error_code}' activity: @@ -273,6 +288,9 @@ hu: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ hu: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ hu: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ hu: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ hu: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 8997a301f..28845eaf3 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -50,6 +50,8 @@ hy: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Սխալ տվյալներ, խնդրում ենք ստուգել գրանցման պարամետրերը և կրկին փորձել' failed: Գրանցումը ձախողվեց + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ hy: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Խնդրում ենք ստուգել ցանցի կապը, IMAP հասցեն և կրկին փորձել։ @@ -229,6 +240,10 @@ hy: deleted: Այս հաղորդագրությունը ջնջվել է whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ hy: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ hy: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ hy: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ hy: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ hy: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/id.yml b/config/locales/id.yml index b097de83d..246c7e1c3 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -50,6 +50,8 @@ id: email_already_exists: 'Anda telah mendaftar untuk sebuah akun dengan %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Pendaftaran gagal + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ id: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Periksa sambungan jaringan, alamat IMAP, dan coba lagi. @@ -229,6 +240,10 @@ id: deleted: Pesan ini telah terhapus whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ id: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ id: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ id: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -470,6 +492,12 @@ id: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -478,3 +506,9 @@ id: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/is.yml b/config/locales/is.yml index 321ff3baa..c20c24820 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -50,6 +50,8 @@ is: email_already_exists: 'Þú hefur þegar skráð þig fyrir reikning með %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ is: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Athugaðu nettenginguna, IMAP vistfangið og reyndu aftur. @@ -229,6 +240,10 @@ is: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ is: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ is: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ is: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ is: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ is: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/it.yml b/config/locales/it.yml index 8ef40fceb..3b132a9d7 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -50,6 +50,8 @@ it: email_already_exists: 'Ti sei già registrato per un account con %{email}' invalid_params: 'Non valido, controlla i dati di registrazione e riprova' failed: Registrazione non riuscita + voice: + call_already_accepted: '%{agent_name} sta già gestendo la chiamata.' assignment_policy: not_found: Policy di assegnazione non trovata attachments: @@ -100,6 +102,15 @@ it: reauthorization: generic: 'Impossibile riautorizzare WhatsApp. Riprova.' not_supported: 'La riautorizzazione non è supportata per questo tipo di canale WhatsApp.' + calls: + not_enabled: 'Le chiamate non sono abilitate per questa inbox' + no_recording: 'Nessun file di registrazione fornito' + no_message: 'La chiamata non ha messaggi associati' + sdp_offer_required: 'sdp_offer è richiesto' + contact_phone_required: 'È richiesto il numero di telefono del contatto' + permission_request_failed: 'Impossibile inviare la richiesta di autorizzazione di chiamata' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Controlla la connessione di rete, l'indirizzo IMAP e riprova. @@ -229,6 +240,10 @@ it: deleted: Questo messaggio è stato eliminato whatsapp: list_button_label: 'Scegli un elemento' + call_permission_request_body: 'Vorremmo chiamarti riguardo alla tua conversazione.' + voice_call: + twilio: 'Chiamata Vocale' + whatsapp: 'Chiamata WhatsApp' delivery_status: error_code: 'Codice errore: %{error_code}' activity: @@ -273,6 +288,9 @@ it: issue_created: 'Issue Linear %{issue_id} è stata creata da %{user_name}' issue_linked: 'Issue Linear %{issue_id} è stata collegata da %{user_name}' issue_unlinked: 'Issue Linear %{issue_id} è stata scollegata da %{user_name}' + whatsapp_call: + permission_requested: 'Richiesta di autorizzazione di chiamata inviata a %{contact_name}.' + permission_granted: '%{contact_name} ha accettato la richiesta di autorizzazione di chiamata.' csat: not_sent_due_to_messaging_window: 'Sondaggio CSAT non inviato a causa di restrizioni sui messaggi in uscita' auto_resolve: @@ -337,6 +355,7 @@ it: name: 'Linear' short_description: 'Crea e collega issue Linear direttamente dalle conversazioni.' description: 'Crea issue in Linear direttamente dalla finestra di conversazione. In alternativa, collega issue Linear esistenti per un processo di monitoraggio più snello ed efficiente.' + attachment_link_title: 'Conversazione (#%{conversation_id}) con %{name}' notion: name: 'Notion' short_description: 'Integra database, documenti e pagine direttamente con Captain.' @@ -365,6 +384,9 @@ it: limit_exceeded: 'Raggiunto limite documenti' pdf_format_error: 'deve essere un file PDF' pdf_size_error: 'deve essere inferiore a 10MB' + sync_not_supported_for_pdf: 'Sincronizzazione non supportata per i documenti PDF' + sync_only_available_documents: 'Sincronizzazione disponibile solo per i documenti già elaborati' + sync_already_in_progress: 'Sincronizzazione del documento già in corso' pdf_upload_failed: 'Caricamento PDF a OpenAI fallito' pdf_upload_success: 'PDF caricato con successo (file_id: %{file_id})' pdf_processing_failed: 'Errore nell''elaborazione del documento PDF %{document_id}: %{error}' @@ -474,6 +496,12 @@ it: agent_capacity_policy: inbox_already_assigned: 'La Inbox è già stata assegnata a questa policy' portals: + articles: + captain_not_available: 'La traduzione richiede che Captain sia abilitato per questo account' + locale_not_available: 'Lingua non disponibile in questo portale' + category_not_found: 'Categoria non trovata in questo portale' + no_articles_found: 'Nessun articolo trovato da elaborare' + invalid_status: 'Valore dello stato non valido' send_instructions: email_required: 'Email richiesta' invalid_email_format: 'Formato email non valido' @@ -482,3 +510,9 @@ it: subject: 'Termina la configurazione di %{custom_domain}' ssl_status: custom_domain_not_configured: 'Il dominio personalizzato non è configurato' + super_admin: + push_diagnostics: + user_not_found: 'Utente non trovato.' + no_subscriptions_to_test: 'Seleziona almeno una subscription da testare.' + no_subscriptions_to_delete: 'Seleziona almeno una subscription da eliminare.' + subscriptions_deleted: "Eliminate %{count} subscription. I dispositivi dell'utente dovranno essere ri-registrati al prossimo avvio dell'app." diff --git a/config/locales/ja.yml b/config/locales/ja.yml index deca85ebf..f1409a55d 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -50,6 +50,8 @@ ja: email_already_exists: 'あなたは既に %{email} でアカウントにサインアップしています' invalid_params: '無効な値が入力されました。確認のうえ再度お試しください。' failed: サインアップに失敗しました + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ja: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: ネットワーク接続、IMAPアドレスを確認の上、再度お試しください。 @@ -229,6 +240,10 @@ ja: deleted: このメッセージは削除されました whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'エラーコード: %{error_code}' activity: @@ -273,6 +288,9 @@ ja: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ja: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: '会話ウィンドウから直接Linearに問題を作成します。あるいは、既存のLinearの問題をリンクして、より効率的な問題追跡プロセスを実現します。' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ja: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -470,6 +492,12 @@ ja: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -478,3 +506,9 @@ ja: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ka.yml b/config/locales/ka.yml index ee4696938..8272e6eda 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -50,6 +50,8 @@ ka: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ka: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ ka: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ ka: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ka: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ka: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ ka: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ ka: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 153f39928..c52f3525b 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -50,6 +50,8 @@ ko: email_already_exists: '이미 %{email}로 계정이 등록되어 있습니다' invalid_params: '유효하지 않습니다. 가입 정보를 확인하고 다시 시도하십시오' failed: 가입에 실패했습니다 + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: 배정 정책을 찾을 수 없습니다 attachments: @@ -100,6 +102,15 @@ ko: reauthorization: generic: 'WhatsApp 재인증에 실패했습니다. 다시 시도하십시오.' not_supported: '이 유형의 WhatsApp 채널은 재인증을 지원하지 않습니다.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: 네트워크 연결, IMAP 주소를 확인하고 다시 시도하십시오. @@ -229,6 +240,10 @@ ko: deleted: 이 메시지는 삭제되었습니다 whatsapp: list_button_label: '항목 선택' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: '오류 코드: %{error_code}' activity: @@ -273,6 +288,9 @@ ko: issue_created: '%{user_name}님이 Linear 이슈 %{issue_id}을(를) 생성했습니다' issue_linked: '%{user_name}님이 Linear 이슈 %{issue_id}을(를) 연결했습니다' issue_unlinked: '%{user_name}님이 Linear 이슈 %{issue_id}의 연결을 해제했습니다' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: '발신 메시지 제한으로 인해 CSAT 설문이 전송되지 않았습니다' auto_resolve: @@ -337,6 +355,7 @@ ko: name: 'Linear' short_description: '대화에서 직접 Linear 이슈를 생성하고 연결합니다.' description: '대화 창에서 직접 Linear에 이슈를 생성합니다. 또는 기존 Linear 이슈를 연결하여 더 효율적인 이슈 추적 프로세스를 구현할 수 있습니다.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: '데이터베이스, 문서 및 페이지를 Captain과 직접 통합합니다.' @@ -365,6 +384,9 @@ ko: limit_exceeded: '문서 한도 초과' pdf_format_error: 'PDF 파일이어야 합니다' pdf_size_error: '10MB 미만이어야 합니다' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'OpenAI에 PDF 업로드 실패' pdf_upload_success: 'file_id: %{file_id}로 PDF가 성공적으로 업로드되었습니다' pdf_processing_failed: 'PDF 문서 %{document_id} 처리 실패: %{error}' @@ -470,6 +492,12 @@ ko: agent_capacity_policy: inbox_already_assigned: '받은 메시지함이 이미 이 정책에 배정되어 있습니다' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: '이메일이 필요합니다' invalid_email_format: '유효하지 않은 이메일 형식' @@ -478,3 +506,9 @@ ko: subject: '%{custom_domain} 설정 완료하기' ssl_status: custom_domain_not_configured: '사용자 정의 도메인이 구성되지 않았습니다' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 90f899071..8e78bccf8 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -50,6 +50,8 @@ lt: email_already_exists: 'Jūs jau užregistravote paskyrą su %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Prisijungimas nesėkmingas + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ lt: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Patikrinkite tinklo sujungimus, IMAP adresą ir bandykite dar kartą. @@ -229,6 +240,10 @@ lt: deleted: Šis pranešimas buvo ištrintas whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Klaidos kodas: %{error_code}' activity: @@ -273,6 +288,9 @@ lt: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ lt: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ lt: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -482,6 +504,12 @@ lt: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -490,3 +518,9 @@ lt: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 47cc547bc..7f28dbca0 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -50,6 +50,8 @@ lv: email_already_exists: 'Jūs jau esat reģistrējis kontu ar %{email}' invalid_params: 'Kļūda. Lūdzu, pārbaudiet pierakstīšanās parametrus un mēģiniet vēlreiz' failed: Reģistrēšanās neizdevās + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ lv: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Lūdzu, pārbaudiet tīkla savienojumu, IMAP adresi un mēģiniet vēlreiz. @@ -229,6 +240,10 @@ lv: deleted: Šis ziņojums ir izdzēsts whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Kļūdas kods: %{error_code}' activity: @@ -273,6 +288,9 @@ lv: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ lv: name: 'Lineārs' short_description: 'Create and link Linear issues directly from conversations.' description: 'Izveidojiet problēmu pieteikumus programmā Linear, tieši no sarunas loga. Varat arī sasaistīt esošos Linear problēmu pieteikumus, lai nodrošinātu racionālāku un efektīvāku problēmu izsekošanas procesu.' + attachment_link_title: 'Saruna (#%{conversation_id}) ar %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ lv: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -478,6 +500,12 @@ lv: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -486,3 +514,9 @@ lv: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ml.yml b/config/locales/ml.yml index ddef447be..583e033b2 100644 --- a/config/locales/ml.yml +++ b/config/locales/ml.yml @@ -50,6 +50,8 @@ ml: email_already_exists: 'നിങ്ങൾ ഇതിനകം ഈ %{email} ഉപയോഗിച്ചു ഒരു അക്കൗണ്ടിനായി സൈൻ അപ്പ് ചെയ്തു' invalid_params: 'Invalid, please check the signup paramters and try again' failed: സൈനപ്പ് പരാജയപ്പെട്ടു + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ml: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ ml: deleted: ഈ സന്ദേശം ഇല്ലാതാക്കി whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ ml: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ml: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ml: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ ml: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'ഇമെയിൽ ആവശ്യമാണ്' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ ml: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ms.yml b/config/locales/ms.yml index e1ee39aee..e506a8825 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -50,6 +50,8 @@ ms: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ms: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ ms: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ ms: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ms: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ms: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -470,6 +492,12 @@ ms: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -478,3 +506,9 @@ ms: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ne.yml b/config/locales/ne.yml index f0635e7a3..3dc7731ce 100644 --- a/config/locales/ne.yml +++ b/config/locales/ne.yml @@ -50,6 +50,8 @@ ne: email_already_exists: 'तपाईंले पहिले नै %{email} मा खाता दर्ता गर्नुभएको छ' invalid_params: 'Invalid, please check the signup paramters and try again' failed: दर्ता असफल भयो + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ne: reauthorization: generic: 'WhatsApp पुन: अधिकृत गर्न असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।.' not_supported: 'यस प्रकारको WhatsApp च्यानलमा पुन: अधिकृत समर्थन छैन।.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: कृपया नेटवर्क जडान, IMAP ठेगाना जाँच गर्नुहोस् र फेरि प्रयास गर्नुहोस्।. @@ -229,6 +240,10 @@ ne: deleted: यो सन्देश मेटाइएको छ whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ ne: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'बाहिर पठाउने सन्देशमा प्रतिबन्ध भएकाले CSAT सर्वेक्षण पठाइएको छैन' auto_resolve: @@ -337,6 +355,7 @@ ne: name: 'Linear' short_description: 'कुराकानीबाट सिधै Linear मुद्दा सिर्जना र लिंक गर्नुहोस्।.' description: 'तपाईंको कुराकानी विन्डोबाट सिधै Linear मा मुद्दा सिर्जना गर्नुहोस्। वैकल्पिक रूपमा, अझ सहज र प्रभावकारी ट्र्याकिङका लागि अवस्थित Linear मुद्दा जोड्नुहोस्।.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'डेटाबेस, कागजात र पृष्ठहरू सिधै Captain सँग एकीकृत गर्नुहोस्।.' @@ -365,6 +384,9 @@ ne: limit_exceeded: 'कागजात सीमा पार गरियो' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'PDF दस्तावेज %{document_id} प्रक्रिया गर्न असफल भयो: %{error}' @@ -474,6 +496,12 @@ ne: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'इमेल आवश्यक छ' invalid_email_format: 'अवैध इमेल ढाँचा' @@ -482,3 +510,9 @@ ne: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 1f79b90bd..97a5ae9a4 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -50,6 +50,8 @@ nl: email_already_exists: 'Je hebt je al aangemeld voor een account bij %{email}' invalid_params: 'Ongeldig zijn, controleer de aanmeldingsparameters en probeer het opnieuw' failed: Aanmelden mislukt + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ nl: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Controleer de netwerkverbinding, IMAP-adres en probeer het opnieuw. @@ -229,6 +240,10 @@ nl: deleted: Dit bericht werd verwijderd whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ nl: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ nl: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ nl: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ nl: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'E-mail is vereist' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ nl: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/no.yml b/config/locales/no.yml index 493a0d58a..c311ae85e 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -50,6 +50,8 @@ email_already_exists: 'Du har allerede registrert en konto med %{email}' invalid_params: 'Ugyldig registrering, sjekk registrerings-parametere og prøv på nytt' failed: Registrering mislyktes + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Kontroller nettverkstilkoblingen, IMAP-adressen og prøv på nytt. @@ -229,6 +240,10 @@ deleted: Denne meldingen er slettet whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Feilkode: %{error_code}' activity: @@ -273,6 +288,9 @@ issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/pl.yml b/config/locales/pl.yml index eb85a1bdb..3c3c0c1be 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -50,6 +50,8 @@ pl: email_already_exists: 'Już zarejestrowałeś się na konto %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Rejestracja nie powiodła się + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ pl: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Sprawdź połączenie sieciowe, adres IMAP i spróbuj ponownie. @@ -229,6 +240,10 @@ pl: deleted: Ta wiadomość została usunięta whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ pl: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ pl: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ pl: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -482,6 +504,12 @@ pl: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'E-mail jest wymagany' invalid_email_format: 'Invalid email format' @@ -490,3 +518,9 @@ pl: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 7ce751b51..1cec41f9d 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -50,6 +50,8 @@ pt: email_already_exists: 'Já existe uma conta com o %{email}' invalid_params: 'Inválido, por favor, verifique os parâmetros de subscrição e tente novamente' failed: Falha na inscrição + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ pt: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Por favor, verifique a ligação à rede, endereço IMAP e tente novamente. @@ -229,6 +240,10 @@ pt: deleted: Esta mensagem foi apagada whatsapp: list_button_label: 'Escolha um item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Código de erro: %{error_code}' activity: @@ -273,6 +288,9 @@ pt: issue_created: 'Caso Linear %{issue_id} foi criado por %{user_name}' issue_linked: 'Caso Linear %{issue_id} foi associado por %{user_name}' issue_unlinked: 'Caso Linear %{issue_id} foi desassociado por %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'Inquérito CSAT não enviado devido a restrições de saída de mensagem' auto_resolve: @@ -337,6 +355,7 @@ pt: name: 'Linear' short_description: 'Crie e associe casos Linear diretamente de conversas.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversa (#%{conversation_id}) com %{name}' notion: name: 'Noção' short_description: 'Integrar bases de dados, documentos e páginas diretamente com o Captain.' @@ -365,6 +384,9 @@ pt: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -462,6 +484,12 @@ pt: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'E-mail é necessário' invalid_email_format: 'Invalid email format' @@ -470,3 +498,9 @@ pt: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/pt_BR.yml b/config/locales/pt_BR.yml index 00a53a284..d69b12f04 100644 --- a/config/locales/pt_BR.yml +++ b/config/locales/pt_BR.yml @@ -50,6 +50,8 @@ pt_BR: email_already_exists: 'Você já se cadastrou para uma conta com %{email}' invalid_params: 'Inválido, por favor, verifique os parâmetros de inscrição e tente novamente' failed: Registro falhou + voice: + call_already_accepted: '%{agent_name} já está atendendo a chamada.' assignment_policy: not_found: Política de atribuição não encontrada attachments: @@ -100,6 +102,15 @@ pt_BR: reauthorization: generic: 'Falha ao reautenticar o WhatsApp. Por favor, tente novamente.' not_supported: 'Reautenticação não é suportado por este tipo de canal WhatsApp.' + calls: + not_enabled: 'As chamadas não estão habilitadas para esta caixa de entrada' + no_recording: 'Nenhum arquivo de gravação fornecido' + no_message: 'A chamada não possui mensagem associada' + sdp_offer_required: 'sdp_offer é obrigatório' + contact_phone_required: 'Número de telefone do contato é obrigatório' + permission_request_failed: 'Falha ao enviar solicitação de permissão de chamada' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Por favor, verifique a conexão de rede, endereço IMAP e tente novamente. @@ -229,6 +240,10 @@ pt_BR: deleted: Esta mensagem foi excluída whatsapp: list_button_label: 'Escolha um item' + call_permission_request_body: 'Gostaríamos de ligar para você em relação à sua conversa.' + voice_call: + twilio: 'Chamada de Voz' + whatsapp: 'Chamada do WhatsApp' delivery_status: error_code: 'Código de erro: %{error_code}' activity: @@ -273,6 +288,9 @@ pt_BR: issue_created: 'Problema linear %{issue_id} foi criado por %{user_name}' issue_linked: 'Problema linear %{issue_id} foi vinculado por %{user_name}' issue_unlinked: 'Problema linear %{issue_id} foi desvinculado por %{user_name}' + whatsapp_call: + permission_requested: 'Solicitação de permissão de chamada enviada para %{contact_name}.' + permission_granted: '%{contact_name} aceitou a solicitação de permissão de chamada.' csat: not_sent_due_to_messaging_window: 'Pesquisa CSAT não foi enviada devido a restrições de envio de mensagens' auto_resolve: @@ -337,6 +355,7 @@ pt_BR: name: 'Linear' short_description: 'Crie e vincule issues do Linear diretamente de conversas.' description: 'Crie issues em Linear diretamente da sua janela de conversa. Alternativamente, vincule as issues lineares existentes para um processo de rastreamento de problemas mais simples e eficiente.' + attachment_link_title: 'Conversa (#%{conversation_id}) com %{name}' notion: name: 'Notion' short_description: 'Integre banco de dados, documentos e páginas diretamente com o Capitão.' @@ -365,6 +384,9 @@ pt_BR: limit_exceeded: 'Limite de documento excedido' pdf_format_error: 'Deve ser um arquivo PDF' pdf_size_error: 'Deve ser menor que 10 MB' + sync_not_supported_for_pdf: 'A sincronização não é suportada para documentos PDF' + sync_only_available_documents: 'A sincronização só está disponível para documentos processados' + sync_already_in_progress: 'Sincronização de documentos já está em andamento' pdf_upload_failed: 'Falha ao enviar PDF para OpenAI' pdf_upload_success: 'PDF enviado com sucesso com file_id: %{file_id}' pdf_processing_failed: 'Falha ao processar o documento PDF %{document_id}: %{error}' @@ -474,6 +496,12 @@ pt_BR: agent_capacity_policy: inbox_already_assigned: 'A caixa de entrada já foi atribuída a esta política' portals: + articles: + captain_not_available: 'A tradução requer que o Capitão esteja ativado para esta conta' + locale_not_available: 'Localidade não disponível neste portal' + category_not_found: 'Categoria não encontrada neste portal' + no_articles_found: 'Nenhum artigo encontrado para processar' + invalid_status: 'Valor de status inválido' send_instructions: email_required: 'E-mail é obrigatório' invalid_email_format: 'Formato inválido de e-mail' @@ -482,3 +510,9 @@ pt_BR: subject: 'Termine de configurar %{custom_domain}' ssl_status: custom_domain_not_configured: 'Domínio personalizado não está configurado' + super_admin: + push_diagnostics: + user_not_found: 'Usuário não encontrado.' + no_subscriptions_to_test: 'Selecione pelo menos uma assinatura para teste.' + no_subscriptions_to_delete: 'Selecione pelo menos uma assinatura para excluir.' + subscriptions_deleted: "Excluída(s) %{count} inscrição(ões). O(s) dispositivo(s) do usuário será(ão) registrado(s) novamente na próxima inicialização do aplicativo." diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 5c60afe0c..89f8ea497 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -50,6 +50,8 @@ ro: email_already_exists: 'V-ați înregistrat deja cu un cont cu %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Înregistrare eșuată + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ro: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Verificați conexiunea la rețea, adresa IMAP și încercați din nou. @@ -229,6 +240,10 @@ ro: deleted: Acest mesaj a fost șters whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ ro: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ro: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ro: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -478,6 +500,12 @@ ro: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'E-mailul este necesar' invalid_email_format: 'Invalid email format' @@ -486,3 +514,9 @@ ro: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 2e6e0e9ef..c5884b521 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -50,6 +50,8 @@ ru: email_already_exists: 'Вы уже зарегистрировались для учётной записи с %{email}' invalid_params: 'Неверно, проверьте параметры регистрации и повторите попытку' failed: Ошибка регистрации + voice: + call_already_accepted: '%{agent_name} уже обрабатывает вызов.' assignment_policy: not_found: Политика назначения не найдена attachments: @@ -100,6 +102,15 @@ ru: reauthorization: generic: 'Не удалось повторно авторизовать WhatsApp. Пожалуйста, попробуйте еще раз.' not_supported: 'Повторная авторизация не поддерживается для данного типа канала WhatsApp.' + calls: + not_enabled: 'Вызов не включен для этого входящего сообщения' + no_recording: 'Файл записи не указан' + no_message: 'Звонок не имеет связанных сообщений' + sdp_offer_required: 'Необходимо указать sdp_offer' + contact_phone_required: 'Требуется номер телефона контакта' + permission_request_failed: 'Не удалось отправить запрос на разрешение вызова' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Пожалуйста, проверьте сетевое подключение, адрес IMAP и повторите попытку. @@ -229,6 +240,10 @@ ru: deleted: Это сообщение было удалено whatsapp: list_button_label: 'Выберите элемент' + call_permission_request_body: 'Мы хотели бы позвонить Вам по поводу Вашего разговора.' + voice_call: + twilio: 'Голосовой звонок' + whatsapp: 'WhatsApp звонок' delivery_status: error_code: 'Код ошибки: %{error_code}' activity: @@ -273,6 +288,9 @@ ru: issue_created: 'Линейная задача %{issue_id} была создана %{user_name}' issue_linked: 'Линейная задача %{issue_id} была связана с %{user_name}' issue_unlinked: 'Линейная задача %{issue_id} была отвязана от %{user_name}' + whatsapp_call: + permission_requested: 'Отправлен запрос на разрешение на звонок %{contact_name}.' + permission_granted: '%{contact_name} принял запрос на разрешение звонка.' csat: not_sent_due_to_messaging_window: 'Опрос CSAT не отправлен из-за ограничений исходящих сообщений' auto_resolve: @@ -337,6 +355,7 @@ ru: name: 'Linear' short_description: 'Создать и связать Линейные задачи непосредственно из диалогов.' description: 'Создавайте или прикрепляйте уже существующие задачи в Linear непосредственно из окна диалога для более упорядоченного и эффективного процесса отслеживания проблем.' + attachment_link_title: 'Разговор (#%{conversation_id}) с %{name}' notion: name: 'Notion' short_description: 'Интеграция баз данных, документов и страниц напрямую с Captain.' @@ -365,6 +384,9 @@ ru: limit_exceeded: 'Превышен лимит документов' pdf_format_error: 'должен быть PDF файлом' pdf_size_error: 'должно быть меньше 10МБ' + sync_not_supported_for_pdf: 'Синхронизация не поддерживается для PDF документов' + sync_only_available_documents: 'Синхронизация доступна только для обрабатываемых документов' + sync_already_in_progress: 'Синхронизация документов уже выполняется' pdf_upload_failed: 'Не удалось загрузить PDF в OpenAI' pdf_upload_success: 'PDF успешно загружен с file_id: %{file_id}' pdf_processing_failed: 'Не удалось обработать PDF документ %{document_id}: %{error}' @@ -482,6 +504,12 @@ ru: agent_capacity_policy: inbox_already_assigned: 'Входящие уже были назначены на эту политику' portals: + articles: + captain_not_available: 'Перевод требует включения Captain для этой учетной записи' + locale_not_available: 'Язык не доступен на этом портале' + category_not_found: 'Категория не найдена в этом портале' + no_articles_found: 'Нет статей для обработки' + invalid_status: 'Неверное значение статуса' send_instructions: email_required: 'Необходимо указать Email' invalid_email_format: 'Неправильный формат email' @@ -490,3 +518,9 @@ ru: subject: 'Завершить настройку %{custom_domain}' ssl_status: custom_domain_not_configured: 'Пользовательский домен не настроен' + super_admin: + push_diagnostics: + user_not_found: 'Пользователь не найден.' + no_subscriptions_to_test: 'Выберите хотя бы одну подписку для тестирования.' + no_subscriptions_to_delete: 'Выберите хотя бы одну подписку для удаления.' + subscriptions_deleted: "Подписка %{count} удалена. Устройство (устройства) пользователя будет перерегистрироваться при следующем запуске." diff --git a/config/locales/sh.yml b/config/locales/sh.yml index 5527c21a9..749490e19 100644 --- a/config/locales/sh.yml +++ b/config/locales/sh.yml @@ -50,6 +50,8 @@ sh: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Registracija nije uspela + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ sh: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Proverite mrežnu vezu, IMAP adresu i pokušajte ponovo. @@ -229,6 +240,10 @@ sh: deleted: Ova poruka je obrisana whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ sh: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ sh: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ sh: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -482,6 +504,12 @@ sh: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -490,3 +518,9 @@ sh: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/sk.yml b/config/locales/sk.yml index ec487afda..55256f38a 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -50,6 +50,8 @@ sk: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ sk: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ sk: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ sk: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ sk: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ sk: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -482,6 +504,12 @@ sk: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -490,3 +518,9 @@ sk: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 42981c8a0..6182643c3 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -50,6 +50,8 @@ sl: email_already_exists: 'Ste že ustvarili račun z e-poštnim naslovom %{email}' invalid_params: 'Neveljavno, preverite vnešene podatke in poskusite znova' failed: Registracija neuspešna + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ sl: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Preverite omrežno povezavo, naslov IMAP in poskusite znova. @@ -229,6 +240,10 @@ sl: deleted: To sporočilo je bilo izbrisano whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Koda napake: %{error_code}' activity: @@ -273,6 +288,9 @@ sl: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ sl: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Ustvarite issue v Linearju neposredno iz pogovornega okna. Druga možnost je, da povežete obstoječe Linear issue za bolj poenostavljen in učinkovit postopek sledenja težavam.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ sl: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -482,6 +504,12 @@ sl: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -490,3 +518,9 @@ sl: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 6ad4e91a9..35c5f6911 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -50,6 +50,8 @@ sq: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Nuk u gjet politika e caktimit attachments: @@ -100,6 +102,15 @@ sq: reauthorization: generic: 'Dështoi riautorizimi i WhatsApp-it. Ju lutemi, provoni përsëri.' not_supported: 'Riautorizimi nuk mbështetet për këtë lloj kanali të WhatsApp-it.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ sq: deleted: This message was deleted whatsapp: list_button_label: 'Zgjidhni një element' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ sq: issue_created: 'Çështja në Linear %{issue_id} u krijua nga %{user_name}' issue_linked: 'Çështja në Linear %{issue_id} u lidh nga %{user_name}' issue_unlinked: 'Çështja në Linear %{issue_id} u shkëput nga %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'Anketa CSAT nuk u dërgua për shkak të kufizimeve për mesazhet dalëse' auto_resolve: @@ -337,6 +355,7 @@ sq: name: 'Linear' short_description: 'Krijoni dhe lidhni çështje në Linear drejtpërdrejt nga bisedat.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integroni bazat e të dhënave, dokumentet dhe faqet drejtpërdrejt me Captain.' @@ -365,6 +384,9 @@ sq: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ sq: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Kërkohet emaili' invalid_email_format: 'Format i pavlefshëm i emailit' @@ -482,3 +510,9 @@ sq: subject: 'Përfundoni konfigurimin e %{custom_domain}' ssl_status: custom_domain_not_configured: 'Domeni i personalizuar nuk është konfiguruar' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/sr.yml b/config/locales/sr.yml index a86b4ad62..c220b5437 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -50,6 +50,8 @@ sr-Latn: email_already_exists: 'Već ste registrovali nalog sa %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Registracija nije uspela + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ sr-Latn: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Molim vas proverite vezu sa mrežom, IMAP adresu i pokušajte ponovo. @@ -229,6 +240,10 @@ sr-Latn: deleted: Poruka je obrisana whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ sr-Latn: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ sr-Latn: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ sr-Latn: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -478,6 +500,12 @@ sr-Latn: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -486,3 +514,9 @@ sr-Latn: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 08550469c..ba1d82c77 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -50,6 +50,8 @@ sv: email_already_exists: 'Du har redan registrerat dig för ett konto med %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Registrering misslyckades + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ sv: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ sv: deleted: Detta meddelande har tagits bort whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Felkod: %{error_code}' activity: @@ -273,6 +288,9 @@ sv: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ sv: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ sv: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ sv: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ sv: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ta.yml b/config/locales/ta.yml index b6a3c610e..c1faba784 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -50,6 +50,8 @@ ta: email_already_exists: 'நீங்கள் ஏற்கனவே %{email} கொண்டு கணக்கிற்கு பதிவு செய்துள்ளீர்கள்' invalid_params: 'Invalid, please check the signup paramters and try again' failed: உள்நுழையும் முயறிசி தோல்வி அடைந்துள்ளது + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ta: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ ta: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ ta: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ta: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ta: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ ta: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ ta: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/th.yml b/config/locales/th.yml index aeef51e95..1f3420af2 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -50,6 +50,8 @@ th: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ th: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ th: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ th: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ th: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ th: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -470,6 +492,12 @@ th: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -478,3 +506,9 @@ th: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/tl.yml b/config/locales/tl.yml index 0c536c4ec..64ea7e0b9 100644 --- a/config/locales/tl.yml +++ b/config/locales/tl.yml @@ -50,6 +50,8 @@ tl: email_already_exists: 'May account ka nang nakarehistro gamit ang %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Nabigo ang pag-sign up + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Hindi matagpuan ang patakaran sa pagtatalaga attachments: @@ -100,6 +102,15 @@ tl: reauthorization: generic: 'Nabigong muling pahintulutan ang WhatsApp. Pakisubukang muli.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ tl: deleted: Tinanggal ang mensaheng ito whatsapp: list_button_label: 'Pumili ng isang item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ tl: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ tl: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ tl: limit_exceeded: 'Lumampas sa limitasyon ang dokumento' pdf_format_error: 'dapat ay isang PDF na file' pdf_size_error: 'dapat ay mas mababa sa 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Nabigong i-upload ang PDF sa OpenAI' pdf_upload_success: 'Matagumpay na na-upload ang PDF na may file_id: %{file_id}' pdf_processing_failed: 'Nabigong iproseso ang dokumentong PDF %{document_id}: %{error}' @@ -474,6 +496,12 @@ tl: agent_capacity_policy: inbox_already_assigned: 'Na-assign na ang inbox sa patakarang ito' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Kinakailangan ang email' invalid_email_format: 'Hindi wastong format ng email' @@ -482,3 +510,9 @@ tl: subject: 'Tapusin ang pagsasaayos ng %{custom_domain}' ssl_status: custom_domain_not_configured: 'Hindi nakaayos ang custom domain' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/tr.yml b/config/locales/tr.yml index ac77a7282..f3e72a41e 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -50,6 +50,8 @@ tr: email_already_exists: '%{email} ile zaten bir hesaba kaydoldunuz' invalid_params: 'Hata, lütfen kayıt olma parametrelerini kontrol edin ve tekrar deneyin' failed: Kayıt başarısız oldu + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ tr: reauthorization: generic: 'WhatsApp''ı yeniden yetkilendirme işlemi başarısız oldu. Lütfen tekrar deneyin.' not_supported: 'Bu tür WhatsApp kanalları için yeniden yetkilendirme desteklenmemektedir.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Lütfen ağ bağlantınızı, IMAP adresini kontrol edin ve tekrar deneyin. @@ -229,6 +240,10 @@ tr: deleted: Bu mesaj silinmiş whatsapp: list_button_label: 'Bir öğe seçin' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Hata kodu: %{error_code}' activity: @@ -273,6 +288,9 @@ tr: issue_created: 'Linear sorun %{issue_id} %{user_name} tarafından oluşturuldu' issue_linked: 'Linear sorun %{issue_id} %{user_name} tarafından bağlandı' issue_unlinked: 'Linear sorun %{issue_id} %{user_name} tarafından bağlantısı kaldırıldı' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'Giden mesaj kısıtlamaları nedeniyle CSAT anketi gönderilmedi' auto_resolve: @@ -337,6 +355,7 @@ tr: name: 'Linear' short_description: 'Linear sorunlarını doğrudan sohbetlerden oluşturun ve bağlayın.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Veritabanlarını, dokümanları ve sayfaları doğrudan Captain ile entegre edin.' @@ -365,6 +384,9 @@ tr: limit_exceeded: 'Belge sınırı aşıldı' pdf_format_error: 'PDF dosyası olmalıdır' pdf_size_error: '10 MB''dan az olmalıdır' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'OpenAI''ye PDF yükleme başarısız' pdf_upload_success: 'PDF başarıyla yüklendi, file_id: %{file_id}' pdf_processing_failed: 'PDF belgesi işlenemedi %{document_id}: %{error}' @@ -474,6 +496,12 @@ tr: agent_capacity_policy: inbox_already_assigned: 'Gelen Kutusu bu politikaya zaten atanmış' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'E-posta gereklidir' invalid_email_format: 'Geçersiz e-posta formatı' @@ -482,3 +510,9 @@ tr: subject: '%{custom_domain} kurulumunu tamamlayın' ssl_status: custom_domain_not_configured: 'Özel alan adı yapılandırılmamış' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/uk.yml b/config/locales/uk.yml index e0b007835..9ba280726 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -50,6 +50,8 @@ uk: email_already_exists: 'Ви вже зареєстровані з адресою %{email}' invalid_params: 'Неправильно, будь ласка, перевірте параметри реєстрації та повторіть спробу' failed: Помилка реєстрації + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ uk: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Перевірте підключення до мережі, адреса IMAP і повторіть спробу. @@ -229,6 +240,10 @@ uk: deleted: Це повідомлення було видалено whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Код помилки: %{error_code}' activity: @@ -273,6 +288,9 @@ uk: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ uk: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ uk: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -482,6 +504,12 @@ uk: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Необхідно вказати електронну адресу' invalid_email_format: 'Invalid email format' @@ -490,3 +518,9 @@ uk: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ur.yml b/config/locales/ur.yml index 3d66bfed1..1ec17a447 100644 --- a/config/locales/ur.yml +++ b/config/locales/ur.yml @@ -50,6 +50,8 @@ ur: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ur: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ ur: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ ur: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ur: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ur: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ ur: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ ur: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/ur_IN.yml b/config/locales/ur_IN.yml index 952b2b6fc..f3c26d1c8 100644 --- a/config/locales/ur_IN.yml +++ b/config/locales/ur_IN.yml @@ -50,6 +50,8 @@ ur: email_already_exists: 'You have already signed up for an account with %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Signup failed + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ ur: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Please check the network connection, IMAP address and try again. @@ -229,6 +240,10 @@ ur: deleted: This message was deleted whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ ur: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ ur: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ ur: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -474,6 +496,12 @@ ur: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email is required' invalid_email_format: 'Invalid email format' @@ -482,3 +510,9 @@ ur: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 1facb248f..fa827806f 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -50,6 +50,8 @@ vi: email_already_exists: 'Bạn đã đăng ký một tài khoản với %{email}' invalid_params: 'Invalid, please check the signup paramters and try again' failed: Đăng ký thât bại + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ vi: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: Vui lòng kiểm tra kết nối mạng, địa chỉ IMAP và thử lại. @@ -229,6 +240,10 @@ vi: deleted: Tin nhắn đã bị xoá whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: 'Error code: %{error_code}' activity: @@ -273,6 +288,9 @@ vi: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ vi: name: 'Linear' short_description: 'Create and link Linear issues directly from conversations.' description: 'Create issues in Linear directly from your conversation window. Alternatively, link existing Linear issues for a more streamlined and efficient issue tracking process.' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ vi: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -470,6 +492,12 @@ vi: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email bắt buộc có' invalid_email_format: 'Invalid email format' @@ -478,3 +506,9 @@ vi: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/zh_CN.yml b/config/locales/zh_CN.yml index ab8005c5e..89ebf755d 100644 --- a/config/locales/zh_CN.yml +++ b/config/locales/zh_CN.yml @@ -50,6 +50,8 @@ zh_CN: email_already_exists: '您已经注册了 %{email} 的帐户' invalid_params: '无效,请检查注册参数并重试' failed: 注册失败 + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: not_found: Assignment policy not found attachments: @@ -100,6 +102,15 @@ zh_CN: reauthorization: generic: 'Failed to reauthorize WhatsApp. Please try again.' not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: socket_error: 请检查网络连接,IMAP地址,然后再试一次。 @@ -229,6 +240,10 @@ zh_CN: deleted: 此消息已被删除 whatsapp: list_button_label: 'Choose an item' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: '错误代码: %{error_code}' activity: @@ -273,6 +288,9 @@ zh_CN: issue_created: 'Linear issue %{issue_id} was created by %{user_name}' issue_linked: 'Linear issue %{issue_id} was linked by %{user_name}' issue_unlinked: 'Linear issue %{issue_id} was unlinked by %{user_name}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' auto_resolve: @@ -337,6 +355,7 @@ zh_CN: name: 'Linear' short_description: '直接在会话中创建并关联 Linear 问题。' description: '直接从对话窗口在 Linear 中创建问题。或者,链接现有的 Linear 问题以简化问题跟踪过程。' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: 'Integrate databases, documents and pages directly with Captain.' @@ -365,6 +384,9 @@ zh_CN: limit_exceeded: 'Document limit exceeded' pdf_format_error: 'must be a PDF file' pdf_size_error: 'must be less than 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: 'Failed to upload PDF to OpenAI' pdf_upload_success: 'PDF uploaded successfully with file_id: %{file_id}' pdf_processing_failed: 'Failed to process PDF document %{document_id}: %{error}' @@ -470,6 +492,12 @@ zh_CN: agent_capacity_policy: inbox_already_assigned: 'Inbox has already been assigned to this policy' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: 'Email 是必填项' invalid_email_format: 'Invalid email format' @@ -478,3 +506,9 @@ zh_CN: subject: 'Finish setting up %{custom_domain}' ssl_status: custom_domain_not_configured: 'Custom domain is not configured' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch." diff --git a/config/locales/zh_TW.yml b/config/locales/zh_TW.yml index d7dd33efa..6e8055c51 100644 --- a/config/locales/zh_TW.yml +++ b/config/locales/zh_TW.yml @@ -28,32 +28,34 @@ zh_TW: invalid_email: '請輸入一個有效的電子信箱' authentication_failed: '驗證失敗,請檢查您的憑證後再試一次。' messages: - reset_password: '密碼重設請求已成功,若該電子郵件存在,將會收到一封包含操作說明的信件。' - reset_password_saml_user: '此帳號使用 SAML 驗證,無法重設密碼。請聯繫您的管理員。' - login_saml_user: '此帳號使用 SAML 驗證,請透過您組織的 SAML 提供者登入。' - saml_not_available: '此安裝尚未啟用 SAML 驗證。' - inbox_deletetion_response: '您的收件匣刪除請求將在一段時間後處理。' + reset_password: 密碼重設請求已成功,若該電子郵件存在,將會收到一封包含操作說明的信件。 + reset_password_saml_user: 此帳號使用 SAML 驗證,無法重設密碼。請聯繫您的管理員。 + login_saml_user: 此帳號使用 SAML 驗證,請透過您組織的 SAML 提供者登入。 + saml_not_available: 此安裝尚未啟用 SAML 驗證。 + inbox_deletetion_response: 您的收件匣刪除請求將在一段時間後處理。 errors: account: reporting_timezone: - invalid: '不是有效的時區' + invalid: 不是有效的時區 support_email: - invalid: '不是有效的電子郵件地址' + invalid: 不是有效的電子郵件地址 validations: - presence: '不能為空白' + presence: 不能為空白 webhook: - invalid: '無效的事件' + invalid: 無效的事件 signup: - disposable_email: '我們不允許一次性電子郵件。' - blocked_domain: '此網域不被允許。如果您認為這是一個錯誤,請聯繫客服。' - invalid_email: '您輸入的電子郵件無效。' + disposable_email: 我們不允許一次性電子郵件。 + blocked_domain: 此網域不被允許。如果您認為這是一個錯誤,請聯繫客服。 + invalid_email: 您輸入的電子郵件無效。 email_already_exists: '您已經使用 %{email} 註冊過帳號' invalid_params: '參數無效,請檢查註冊資料後再試一次' - failed: '註冊失敗。' + failed: 註冊失敗。 + voice: + call_already_accepted: '%{agent_name} is already handling the call.' assignment_policy: - not_found: '找不到分配策略' + not_found: 找不到分配策略 attachments: - invalid: '無效的附件' + invalid: 無效的附件 upload: missing_input: '未提供檔案或 URL' invalid_url: '提供的 URL 無效' @@ -63,31 +65,31 @@ zh_TW: unsupported_content_type: '不支援的檔案類型(僅允許圖片和影片)' unexpected: '發生未預期的錯誤' saml: - feature_not_enabled: '此帳號尚未啟用 SAML 功能' - sso_not_enabled: '此安裝尚未啟用 SAML SSO' + feature_not_enabled: 此帳號尚未啟用 SAML 功能 + sso_not_enabled: 此安裝尚未啟用 SAML SSO data_import: data_type: - invalid: '無效的資料類型' + invalid: 無效的資料類型 contacts: import: - failed: '檔案為空白' + failed: 檔案為空白 export: - success: '聯絡人匯出檔案準備好後,我們會通知您。' + success: 聯絡人匯出檔案準備好後,我們會通知您。 email: - invalid: '無效的電子郵件' + invalid: 無效的電子郵件 phone_number: - invalid: '應為 E.164 格式' + invalid: 應為 E.164 格式 companies: domain: - invalid: '必須是有效的網域名稱' + invalid: 必須是有效的網域名稱 search: - query_missing: '請使用參數 q 指定搜尋字串' + query_missing: 請使用參數 q 指定搜尋字串 messages: search: time_range_limit_exceeded: '搜尋範圍限制為最近 %{days} 天' categories: locale: - unique: '在該分類與入口網站中應為唯一' + unique: 在該分類與入口網站中應為唯一 dyte: invalid_message_type: '無效的訊息類型,不允許此操作' slack: @@ -100,113 +102,122 @@ zh_TW: reauthorization: generic: '無法重新授權 WhatsApp,請再試一次。' not_supported: '此類型的 WhatsApp 頻道不支援重新授權。' + calls: + not_enabled: 'Calling is not enabled for this inbox' + no_recording: 'No recording file provided' + no_message: 'Call has no associated message' + sdp_offer_required: 'sdp_offer is required' + contact_phone_required: 'Contact phone number is required' + permission_request_failed: 'Failed to send call permission request' + openai: + invalid_api_key: 'OpenAI API key is invalid or revoked. Please check your key in your OpenAI dashboard.' inboxes: imap: - socket_error: '請檢查網路連線與 IMAP 位址後再試一次。' - no_response_error: '請檢查 IMAP 憑證後再試一次。' - host_unreachable_error: '無法連線到主機,請檢查 IMAP 位址、IMAP 連接埠後再試一次。' + socket_error: 請檢查網路連線與 IMAP 位址後再試一次。 + no_response_error: 請檢查 IMAP 憑證後再試一次。 + host_unreachable_error: 無法連線到主機,請檢查 IMAP 位址、IMAP 連接埠後再試一次。 connection_timed_out_error: '%{address}:%{port} 連線逾時' - connection_closed_error: '連線已關閉。' + connection_closed_error: 連線已關閉。 smtp: - authentication_error: 'SMTP 驗證失敗,請確認您的登入憑證。' - connection_error: '無法連線到 SMTP 伺服器,請檢查伺服器位址與連接埠。' - ssl_error: 'SSL/TLS 錯誤,請確認您的加密設定。' - smtp_error: 'SMTP 伺服器錯誤,請檢查您的設定後再試一次。' + authentication_error: SMTP 驗證失敗,請確認您的登入憑證。 + connection_error: 無法連線到 SMTP 伺服器,請檢查伺服器位址與連接埠。 + ssl_error: SSL/TLS 錯誤,請確認您的加密設定。 + smtp_error: SMTP 伺服器錯誤,請檢查您的設定後再試一次。 validations: - name: '不能以符號開頭或結尾,且不能包含 < > / \ @ 字元。' + name: 不能以符號開頭或結尾,且不能包含 < > / \ @ 字元。 custom_filters: - number_of_records: '已達上限。每位使用者在每個帳號中最多可建立 1000 個自訂篩選器。' - invalid_attribute: '無效的屬性鍵 - [%{key}]。鍵應為 [%{allowed_keys}] 之一,或帳號中定義的自訂屬性。' - invalid_operator: '無效的運算子。%{attribute_name} 允許的運算子為 [%{allowed_keys}]。' - invalid_query_operator: '查詢運算子必須為「AND」或「OR」。' - invalid_value: '無效的值。為 %{attribute_name} 提供的值無效' + number_of_records: 已達上限。每位使用者在每個帳號中最多可建立 1000 個自訂篩選器。 + invalid_attribute: 無效的屬性鍵 - [%{key}]。鍵應為 [%{allowed_keys}] 之一,或帳號中定義的自訂屬性。 + invalid_operator: 無效的運算子。%{attribute_name} 允許的運算子為 [%{allowed_keys}]。 + invalid_query_operator: 查詢運算子必須為「AND」或「OR」。 + invalid_value: 無效的值。為 %{attribute_name} 提供的值無效 custom_attribute_definition: - attribute_key_format: '只能包含字母、數字、底線、連字號和點' - key_conflict: '提供的鍵不被允許,因為可能與預設屬性衝突。' + attribute_key_format: 只能包含字母、數字、底線、連字號和點 + key_conflict: 提供的鍵不被允許,因為可能與預設屬性衝突。 mfa: - already_enabled: 'MFA 已啟用' - not_enabled: 'MFA 未啟用' - invalid_code: '無效的驗證碼' - invalid_backup_code: '無效的備用碼' - invalid_token: '無效或已過期的 MFA 權杖' - invalid_credentials: '無效的憑證或驗證碼' - feature_unavailable: 'MFA 功能無法使用,請設定加密金鑰。' + already_enabled: MFA 已啟用 + not_enabled: MFA 未啟用 + invalid_code: 無效的驗證碼 + invalid_backup_code: 無效的備用碼 + invalid_token: 無效或已過期的 MFA 權杖 + invalid_credentials: 無效的憑證或驗證碼 + feature_unavailable: MFA 功能無法使用,請設定加密金鑰。 topup: - credits_required: '需填入儲值點數金額' - invalid_credits: '無效的儲值點數金額' - invalid_option: '無效的儲值選項' - plan_not_eligible: '儲值僅適用於付費方案,請先升級您的方案。' - stripe_customer_not_configured: 'Stripe 客戶尚未設定' - no_payment_method: '找不到付款方式,請先新增付款方式再進行購買。' + credits_required: 需填入儲值點數金額 + invalid_credits: 無效的儲值點數金額 + invalid_option: 無效的儲值選項 + plan_not_eligible: 儲值僅適用於付費方案,請先升級您的方案。 + stripe_customer_not_configured: Stripe 客戶尚未設定 + no_payment_method: 找不到付款方式,請先新增付款方式再進行購買。 reports: - date_range_too_long: '日期範圍不能超過 6 個月' + date_range_too_long: 日期範圍不能超過 6 個月 profile: mfa: - enabled: 'MFA 啟用成功' - disabled: 'MFA 停用成功' + enabled: MFA 啟用成功 + disabled: MFA 停用成功 account_saml_settings: - invalid_certificate: '必須是 PEM 格式的有效 X.509 憑證' + invalid_certificate: 必須是 PEM 格式的有效 X.509 憑證 reports: - period: '報告期間 %{since} 至 %{until}' - utc_warning: '此報告以 UTC 時區產生' + period: 報告期間 %{since} 至 %{until} + utc_warning: 此報告以 UTC 時區產生 agent_csv: - agent_name: '客服名稱' - conversations_count: '已分配的對話數' - avg_first_response_time: '平均首次回應時間' - avg_resolution_time: '平均解決時間' - resolution_count: '已解決的數量' - avg_customer_waiting_time: '平均客戶等待時間' + agent_name: 客服名稱 + conversations_count: 已分配的對話數 + avg_first_response_time: 平均首次回應時間 + avg_resolution_time: 平均解決時間 + resolution_count: 已解決的數量 + avg_customer_waiting_time: 平均客戶等待時間 inbox_csv: - inbox_name: '收件匣名稱' - inbox_type: '收件匣類型' - conversations_count: '對話數量' - avg_first_response_time: '平均首次回應時間' - avg_resolution_time: '平均解決時間' + inbox_name: 收件匣名稱 + inbox_type: 收件匣類型 + conversations_count: 對話數量 + avg_first_response_time: 平均首次回應時間 + avg_resolution_time: 平均解決時間 label_csv: - label_title: '標籤' - conversations_count: '對話數量' - avg_first_response_time: '平均首次回應時間' - avg_resolution_time: '平均解決時間' - avg_reply_time: '平均回覆時間' - resolution_count: '已解決的數量' + label_title: 標籤 + conversations_count: 對話數量 + avg_first_response_time: 平均首次回應時間 + avg_resolution_time: 平均解決時間 + avg_reply_time: 平均回覆時間 + resolution_count: 已解決的數量 team_csv: - team_name: '團隊名稱' - conversations_count: '對話數量' - avg_first_response_time: '平均首次回應時間' - avg_resolution_time: '平均解決時間' - resolution_count: '已解決的數量' - avg_customer_waiting_time: '平均客戶等待時間' + team_name: 團隊名稱 + conversations_count: 對話數量 + avg_first_response_time: 平均首次回應時間 + avg_resolution_time: 平均解決時間 + resolution_count: 已解決的數量 + avg_customer_waiting_time: 平均客戶等待時間 conversation_csv: - conversations_count: '對話' - incoming_messages_count: '收到的訊息' - outgoing_messages_count: '發送的訊息' - avg_first_response_time: '平均首次回應時間' - avg_resolution_time: '平均解決時間' - resolution_count: '已解決的數量' - avg_customer_waiting_time: '平均客戶等待時間' + conversations_count: 對話 + incoming_messages_count: 收到的訊息 + outgoing_messages_count: 發送的訊息 + avg_first_response_time: 平均首次回應時間 + avg_resolution_time: 平均解決時間 + resolution_count: 已解決的數量 + avg_customer_waiting_time: 平均客戶等待時間 conversation_traffic_csv: - timezone: '時區' + timezone: 時區 sla_csv: - conversation_id: '對話 ID' - sla_policy_breached: 'SLA 政策' - assignee: '負責人' - team: '團隊' - inbox: '收件匣' - labels: '標籤' - conversation_link: '對話連結' - breached_events: '違反的事件' + conversation_id: 對話 ID + sla_policy_breached: SLA 政策 + assignee: 負責人 + team: 團隊 + inbox: 收件匣 + labels: 標籤 + conversation_link: 對話連結 + breached_events: 違反的事件 default_group_by: day csat: headers: - contact_name: '聯絡人姓名' - contact_email_address: '聯絡人電子郵件' - contact_phone_number: '聯絡人電話號碼' - link_to_the_conversation: '對話連結' - agent_name: '客服姓名' - rating: '評分' - feedback: '意見回饋' - recorded_at: '記錄日期' - review_notes: '審核備註' + contact_name: 聯絡人姓名 + contact_email_address: 聯絡人電子郵件 + contact_phone_number: 聯絡人電話號碼 + link_to_the_conversation: 對話連結 + agent_name: 客服姓名 + rating: 評分 + feedback: 意見回饋 + recorded_at: 記錄日期 + review_notes: 審核備註 notifications: notification_title: conversation_creation: '一則對話 (#%{display_id}) 已在 %{inbox_name} 中建立' @@ -223,12 +234,16 @@ zh_TW: handoff: '正在轉接至其他客服人員以提供進一步協助。' messages: instagram_story_content: '%{story_sender} 在限時動態中提及了您:' - instagram_deleted_story_content: '此限時動態已不存在。' + instagram_deleted_story_content: 此限時動態已不存在。 instagram_shared_story_content: '分享的限時動態' instagram_shared_post_content: '分享的貼文' - deleted: '訊息已被刪除' + deleted: 訊息已被刪除 whatsapp: list_button_label: '選擇一個項目' + call_permission_request_body: 'We would like to call you regarding your conversation.' + voice_call: + twilio: 'Voice Call' + whatsapp: 'WhatsApp Call' delivery_status: error_code: '錯誤代碼:%{error_code}' activity: @@ -250,7 +265,7 @@ zh_TW: auto_resolved_days: '由於對話已經 %{count} 天沒有新活動,已被系統標記為已解決' auto_resolved_hours: '由於對話已經 %{count} 小時沒有新活動,已被系統標記為已解決' auto_resolved_minutes: '由於對話已經 %{count} 分鐘沒有新活動,已被系統標記為已解決' - system_auto_open: '由於收到新的傳入訊息,系統已重新開啟對話。' + system_auto_open: 由於收到新的傳入訊息,系統已重新開啟對話。 priority: added: '%{user_name} 將優先順序設為 %{new_priority}' updated: '%{user_name} 將優先順序從 %{old_priority} 變更為 %{new_priority}' @@ -273,6 +288,9 @@ zh_TW: issue_created: '%{user_name} 建立了 Linear 議題 %{issue_id}' issue_linked: '%{user_name} 連結了 Linear 議題 %{issue_id}' issue_unlinked: '%{user_name} 取消連結了 Linear 議題 %{issue_id}' + whatsapp_call: + permission_requested: 'Sent a call permission request to %{contact_name}.' + permission_granted: '%{contact_name} accepted the call permission request.' csat: not_sent_due_to_messaging_window: '由於傳出訊息限制,未發送 CSAT 問卷' auto_resolve: @@ -317,7 +335,7 @@ zh_TW: slack: name: 'Slack' short_description: '在 Slack 中直接接收通知並回覆對話。' - description: '將 Chatwoot 與 Slack 整合,讓您的團隊保持同步。此整合可讓您接收新對話的通知,並直接在 Slack 介面中回覆。' + description: "將 Chatwoot 與 Slack 整合,讓您的團隊保持同步。此整合可讓您接收新對話的通知,並直接在 Slack 介面中回覆。" webhooks: name: 'Webhooks' description: 'Webhook 事件提供您 Chatwoot 帳號中活動的即時更新。您可以訂閱偏好的事件,Chatwoot 將透過 HTTP 回呼向您發送更新。' @@ -328,7 +346,7 @@ zh_TW: google_translate: name: 'Google 翻譯' short_description: '自動為客服人員翻譯客戶訊息。' - description: '整合 Google 翻譯,幫助客服人員輕鬆翻譯客戶訊息。此整合會自動偵測語言,並將其轉換為客服人員或管理員偏好的語言。' + description: "整合 Google 翻譯,幫助客服人員輕鬆翻譯客戶訊息。此整合會自動偵測語言,並將其轉換為客服人員或管理員偏好的語言。" openai: name: 'OpenAI' short_description: 'AI 驅動的回覆建議、摘要和訊息強化。' @@ -337,6 +355,7 @@ zh_TW: name: 'Linear' short_description: '直接從對話中建立和連結 Linear 議題。' description: '直接從對話視窗中在 Linear 建立議題。或者連結現有的 Linear 議題,讓議題追蹤流程更加順暢高效。' + attachment_link_title: 'Conversation (#%{conversation_id}) with %{name}' notion: name: 'Notion' short_description: '將資料庫、文件和頁面直接與 Captain 整合。' @@ -350,7 +369,7 @@ zh_TW: short_description: '將您的聯絡人和對話與 LeadSquared CRM 同步。' description: '將您的聯絡人和對話與 LeadSquared CRM 同步。此整合會在新增聯絡人時自動在 LeadSquared 中建立潛在客戶,並記錄對話活動,為您的銷售團隊提供完整的上下文。' captain: - copilot_message_required: '訊息為必填' + copilot_message_required: 訊息為必填 copilot_error: '請先為此收件匣連結助理以使用 Copilot' copilot_limit: '您的 Copilot 點數已用完。您可以在帳單區域購買更多點數。' upgrade: '請升級您的方案以啟用 Captain AI' @@ -365,6 +384,9 @@ zh_TW: limit_exceeded: '已超過文件上限' pdf_format_error: '必須為 PDF 檔案' pdf_size_error: '必須小於 10MB' + sync_not_supported_for_pdf: 'Sync is not supported for PDF documents' + sync_only_available_documents: 'Sync is only available for processed documents' + sync_already_in_progress: 'Document sync is already in progress' pdf_upload_failed: '無法將 PDF 上傳至 OpenAI' pdf_upload_success: 'PDF 上傳成功,file_id:%{file_id}' pdf_processing_failed: '處理 PDF 文件 %{document_id} 失敗:%{error}' @@ -386,53 +408,53 @@ zh_TW: limit_exceeded: '每個帳號最多可建立 %{limit} 個自訂工具' public_portal: search: - search_placeholder: '依標題或內容搜尋文章...' - empty_placeholder: '查無結果。' - loading_placeholder: '搜尋中...' - results_title: '搜尋結果' + search_placeholder: 依標題或內容搜尋文章... + empty_placeholder: 查無結果。 + loading_placeholder: 搜尋中... + results_title: 搜尋結果 toc_header: '本頁內容' hero: - sub_title: '在此搜尋文章或瀏覽以下分類。' + sub_title: 在此搜尋文章或瀏覽以下分類。 common: - home: '首頁' - last_updated_on: '最後更新於 %{last_updated_on}' - view_all_articles: '查看全部' - article: '篇文章' - articles: '篇文章' - author: '位作者' - authors: '位作者' - other: '其他' - others: '其他' - by: '作者:' - no_articles: '這裡還沒有文章' + home: 首頁 + last_updated_on: 最後更新於 %{last_updated_on} + view_all_articles: 查看全部 + article: 篇文章 + articles: 篇文章 + author: 位作者 + authors: 位作者 + other: 其他 + others: 其他 + by: 作者: + no_articles: 這裡還沒有文章 footer: - made_with: '由以下技術製作' + made_with: 由以下技術製作 header: - go_to_homepage: '網站首頁' - visit_website: '前往網站' + go_to_homepage: 網站首頁 + visit_website: 前往網站 appearance: - system: '系統' - light: '淺色' - dark: '深色' - featured_articles: '精選文章' - uncategorized: '未分類' + system: 系統 + light: 淺色 + dark: 深色 + featured_articles: 精選文章 + uncategorized: 未分類 404: - title: '找不到頁面' - description: '我們找不到您要尋找的頁面。' - back_to_home: '回到首頁' + title: 找不到頁面 + description: 我們找不到您要尋找的頁面。 + back_to_home: 回到首頁 not_active: - title: '幫助中心目前無法使用' - description: '請聯繫網站管理員以取得更多資訊。' - action: '如果您是管理員,請升級您的方案以恢復存取權限。' + title: 幫助中心目前無法使用 + description: 請聯繫網站管理員以取得更多資訊。 + action: 如果您是管理員,請升級您的方案以恢復存取權限。 slack_unfurl: fields: - name: '姓名' - email: '電子郵件' - phone_number: '電話' - company_name: '公司' - inbox_name: '收件匣' - inbox_type: '收件匣類型' - button: '開啟對話' + name: 姓名 + email: 電子郵件 + phone_number: 電話 + company_name: 公司 + inbox_name: 收件匣 + inbox_type: 收件匣類型 + button: 開啟對話 time_units: days: other: '%{count} 天' @@ -470,6 +492,12 @@ zh_TW: agent_capacity_policy: inbox_already_assigned: '收件匣已被分配給此策略' portals: + articles: + captain_not_available: 'Translation requires Captain to be enabled for this account' + locale_not_available: 'Locale not available in this portal' + category_not_found: 'Category not found in this portal' + no_articles_found: 'No articles found to process' + invalid_status: 'Invalid status value' send_instructions: email_required: '電子郵件為必填' invalid_email_format: '電子郵件格式無效' @@ -478,3 +506,9 @@ zh_TW: subject: '完成 %{custom_domain} 的設定' ssl_status: custom_domain_not_configured: '尚未設定自訂網域' + super_admin: + push_diagnostics: + user_not_found: 'User not found.' + no_subscriptions_to_test: 'Select at least one subscription to test.' + no_subscriptions_to_delete: 'Select at least one subscription to delete.' + subscriptions_deleted: "Deleted %{count} subscription(s). The user's device(s) will re-register on next app launch."