diff --git a/app/javascript/dashboard/i18n/locale/bn/advancedFilters.json b/app/javascript/dashboard/i18n/locale/bn/advancedFilters.json new file mode 100644 index 000000000..a991cb25b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/advancedFilters.json @@ -0,0 +1,119 @@ +{ + "FILTER": { + "TITLE": "Filter conversations", + "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.", + "EDIT_CUSTOM_FILTER": "Edit Folder", + "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.", + "ADD_NEW_FILTER": "Add filter", + "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.", + "SUBMIT_BUTTON_LABEL": "Apply filters", + "UPDATE_BUTTON_LABEL": "Update folder", + "CANCEL_BUTTON_LABEL": "Cancel", + "CLEAR_BUTTON_LABEL": "Clear filters", + "FOLDER_LABEL": "Folder Name", + "FOLDER_QUERY_LABEL": "Folder Query", + "EMPTY_VALUE_ERROR": "Value is required.", + "TOOLTIP_LABEL": "Filter conversations", + "QUERY_DROPDOWN_LABELS": { + "AND": "AND", + "OR": "OR" + }, + "INPUT_PLACEHOLDER": "Enter value", + "OPERATOR_LABELS": { + "equal_to": "Equal to", + "not_equal_to": "Not equal to", + "does_not_contain": "Does not contain", + "is_present": "Is present", + "is_not_present": "Is not present", + "is_greater_than": "Is greater than", + "is_less_than": "Is lesser than", + "days_before": "Is x days before", + "starts_with": "Starts with", + "equalTo": "Equal to", + "notEqualTo": "Not equal to", + "contains": "Contains", + "doesNotContain": "Does not contain", + "isPresent": "Is present", + "isNotPresent": "Is not present", + "isGreaterThan": "Is greater than", + "isLessThan": "Is lesser than", + "daysBefore": "Is x days before", + "startsWith": "Starts with" + }, + "ATTRIBUTE_LABELS": { + "TRUE": "True", + "FALSE": "False" + }, + "ATTRIBUTES": { + "STATUS": "Status", + "ASSIGNEE_NAME": "Assignee name", + "INBOX_NAME": "Inbox name", + "TEAM_NAME": "Team name", + "CONVERSATION_IDENTIFIER": "Conversation identifier", + "CAMPAIGN_NAME": "Campaign name", + "LABELS": "Labels", + "BROWSER_LANGUAGE": "Browser language", + "PRIORITY": "Priority", + "COUNTRY_NAME": "Country name", + "REFERER_LINK": "Referer link", + "CUSTOM_ATTRIBUTE_LIST": "List", + "CUSTOM_ATTRIBUTE_TEXT": "Text", + "CUSTOM_ATTRIBUTE_NUMBER": "Number", + "CUSTOM_ATTRIBUTE_LINK": "Link", + "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", + "CREATED_AT": "Created at", + "LAST_ACTIVITY": "Last activity" + }, + "ERRORS": { + "VALUE_REQUIRED": "Value is required", + "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", + "FILTER_OPERATOR_REQUIRED": "Filter operator is required", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998" + }, + "GROUPS": { + "STANDARD_FILTERS": "Standard filters", + "ADDITIONAL_FILTERS": "Additional filters", + "CUSTOM_ATTRIBUTES": "Custom attributes" + }, + "CUSTOM_VIEWS": { + "ADD": { + "TITLE": "Do you want to save this filter?", + "LABEL": "Name this filter", + "PLACEHOLDER": "Name your filter to refer it later.", + "ERROR_MESSAGE": "Name is required.", + "SAVE_BUTTON": "Save filter", + "CANCEL_BUTTON": "Cancel", + "API_FOLDERS": { + "SUCCESS_MESSAGE": "Folder created successfully.", + "ERROR_MESSAGE": "Error while creating folder." + }, + "API_SEGMENTS": { + "SUCCESS_MESSAGE": "Segment created successfully.", + "ERROR_MESSAGE": "Error while creating segment." + } + }, + "EDIT": { + "EDIT_BUTTON": "Edit folder" + }, + "DELETE": { + "DELETE_BUTTON": "Delete filter", + "MODAL": { + "CONFIRM": { + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete the filter ", + "YES": "Yes, delete", + "NO": "No, keep it" + } + }, + "API_FOLDERS": { + "SUCCESS_MESSAGE": "Folder deleted successfully.", + "ERROR_MESSAGE": "Error while deleting folder." + }, + "API_SEGMENTS": { + "SUCCESS_MESSAGE": "Segment deleted successfully.", + "ERROR_MESSAGE": "Error while deleting segment." + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/agentBots.json b/app/javascript/dashboard/i18n/locale/bn/agentBots.json new file mode 100644 index 000000000..d3a0bb991 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/agentBots.json @@ -0,0 +1,103 @@ +{ + "AGENT_BOTS": { + "HEADER": "Bots", + "LOADING_EDITOR": "Loading editor...", + "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.", + "LEARN_MORE": "Learn about agent bots", + "GLOBAL_BOT": "System bot", + "GLOBAL_BOT_BADGE": "System", + "AVATAR": { + "SUCCESS_DELETE": "Bot avatar deleted successfully", + "ERROR_DELETE": "Error deleting bot avatar, please try again" + }, + "BOT_CONFIGURATION": { + "TITLE": "Select an agent bot", + "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.", + "SUBMIT": "Update", + "DISCONNECT": "Disconnect bot", + "SUCCESS_MESSAGE": "Successfully updated the agent bot.", + "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.", + "ERROR_MESSAGE": "Could not update the agent bot. Please try again.", + "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.", + "SELECT_PLACEHOLDER": "Select bot" + }, + "ADD": { + "TITLE": "Add Bot", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Bot added successfully.", + "ERROR_MESSAGE": "Could not add bot. Please try again later." + } + }, + "LIST": { + "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.", + "LOADING": "Fetching bots...", + "TABLE_HEADER": { + "DETAILS": "Bot Details", + "URL": "Webhook URL" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "TITLE": "Delete bot", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure you want to delete {name}?", + "YES": "Yes, Delete", + "NO": "No, Keep" + }, + "API": { + "SUCCESS_MESSAGE": "Bot deleted successfully.", + "ERROR_MESSAGE": "Could not delete bot. Please try again." + } + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "TITLE": "Edit bot", + "API": { + "SUCCESS_MESSAGE": "Bot updated successfully.", + "ERROR_MESSAGE": "Could not update bot. Please try again." + } + }, + "ACCESS_TOKEN": { + "TITLE": "Access Token", + "DESCRIPTION": "Copy the access token and save it securely", + "COPY_SUCCESSFUL": "Access token copied to clipboard", + "RESET_SUCCESS": "Access token regenerated successfully", + "RESET_ERROR": "Unable to regenerate access token. Please try again" + }, + "FORM": { + "AVATAR": { + "LABEL": "Bot avatar" + }, + "NAME": { + "LABEL": "Bot name", + "PLACEHOLDER": "Enter bot name", + "REQUIRED": "Bot name is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "What does this bot do?" + }, + "WEBHOOK_URL": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "https://example.com/webhook", + "REQUIRED": "Webhook URL is required" + }, + "ERRORS": { + "NAME": "Bot name is required", + "URL": "Webhook URL is required", + "VALID_URL": "Please enter a valid URL starting with http:// or https://" + }, + "CANCEL": "Cancel", + "CREATE": "Create Bot", + "UPDATE": "Update Bot" + }, + "WEBHOOK": { + "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them." + }, + "TYPES": { + "WEBHOOK": "Webhook bot" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json b/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json new file mode 100644 index 000000000..448994e69 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json @@ -0,0 +1,124 @@ +{ + "AGENT_MGMT": { + "HEADER": "Agents", + "HEADER_BTN_TXT": "Add Agent", + "LOADING": "Fetching Agent List", + "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.", + "LEARN_MORE": "Learn about user roles", + "AGENT_TYPES": { + "ADMINISTRATOR": "Administrator", + "AGENT": "Agent" + }, + "LIST": { + "404": "There are no agents associated to this account", + "TITLE": "Manage agents in your team", + "DESC": "You can add/remove agents to/in your team.", + "NAME": "Name", + "EMAIL": "EMAIL", + "STATUS": "Status", + "ACTIONS": "Actions", + "VERIFIED": "Verified", + "VERIFICATION_PENDING": "Verification Pending", + "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions" + }, + "ADD": { + "TITLE": "Add agent to your team", + "DESC": "You can add people who will be able to handle support for your inboxes.", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Agent Name", + "PLACEHOLDER": "Please enter a name of the agent" + }, + "AGENT_TYPE": { + "LABEL": "Role", + "PLACEHOLDER": "Please select a role", + "ERROR": "Role is required" + }, + "EMAIL": { + "LABEL": "Email Address", + "PLACEHOLDER": "Please enter an email address of the agent" + }, + "SUBMIT": "Add Agent" + }, + "API": { + "SUCCESS_MESSAGE": "Agent added successfully", + "EXIST_MESSAGE": "Agent email already in use, Please try another email address", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Agent deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + }, + "EDIT": { + "TITLE": "Edit agent", + "FORM": { + "NAME": { + "LABEL": "Agent Name", + "PLACEHOLDER": "Please enter a name of the agent" + }, + "AGENT_TYPE": { + "LABEL": "Role", + "PLACEHOLDER": "Please select a role", + "ERROR": "Role is required" + }, + "EMAIL": { + "LABEL": "Email Address", + "PLACEHOLDER": "Please enter an email address of the agent" + }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, + "SUBMIT": "Edit Agent" + }, + "BUTTON_TEXT": "Edit", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Agent updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "PASSWORD_RESET": { + "ADMIN_RESET_BUTTON": "Reset Password", + "ADMIN_SUCCESS_MESSAGE": "An email with reset password instructions has been sent to the agent", + "SUCCESS_MESSAGE": "Agent password reset successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "SEARCH": { + "NO_RESULTS": "No results found." + }, + "MULTI_SELECTOR": { + "PLACEHOLDER": "None", + "TITLE": { + "AGENT": "Select agent", + "TEAM": "Select team" + }, + "LIST": { + "NONE": "None" + }, + "SEARCH": { + "NO_RESULTS": { + "AGENT": "No agents found", + "TEAM": "No teams found" + }, + "PLACEHOLDER": { + "AGENT": "Search agents", + "TEAM": "Search teams", + "INPUT": "Search for agents" + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json new file mode 100644 index 000000000..cea6359de --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json @@ -0,0 +1,134 @@ +{ + "ATTRIBUTES_MGMT": { + "HEADER": "Custom Attributes", + "HEADER_BTN_TXT": "Add Custom Attribute", + "LOADING": "Fetching custom attributes", + "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.", + "LEARN_MORE": "Learn more about custom attributes", + "ATTRIBUTE_MODELS": { + "CONVERSATION": "Conversation", + "CONTACT": "Contact" + }, + "ATTRIBUTE_TYPES": { + "TEXT": "Text", + "NUMBER": "Number", + "LINK": "Link", + "DATE": "Date", + "LIST": "List", + "CHECKBOX": "Checkbox" + }, + "ADD": { + "TITLE": "Add Custom Attribute", + "SUBMIT": "Create", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Display Name", + "PLACEHOLDER": "Enter custom attribute display name", + "ERROR": "Name is required" + }, + "DESC": { + "LABEL": "Description", + "PLACEHOLDER": "Enter custom attribute description", + "ERROR": "Description is required" + }, + "MODEL": { + "LABEL": "Applies to", + "PLACEHOLDER": "Please select one", + "ERROR": "Model is required" + }, + "TYPE": { + "LABEL": "Type", + "PLACEHOLDER": "Please select a type", + "ERROR": "Type is required", + "LIST": { + "LABEL": "List Values", + "PLACEHOLDER": "Please enter value and press enter key", + "ERROR": "Must have at least one value" + } + }, + "KEY": { + "LABEL": "Key", + "PLACEHOLDER": "Enter custom attribute key", + "ERROR": "Key is required", + "IN_VALID": "Invalid key" + }, + "REGEX_PATTERN": { + "LABEL": "Regex Pattern", + "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)" + }, + "REGEX_CUE": { + "LABEL": "Regex Cue", + "PLACEHOLDER": "Please enter regex pattern hint. (Optional)" + }, + "ENABLE_REGEX": { + "LABEL": "Enable regex validation" + } + }, + "API": { + "SUCCESS_MESSAGE": "Custom Attribute added successfully!", + "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.", + "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again." + }, + "CONFIRM": { + "TITLE": "Are you sure want to delete - {attributeName}", + "PLACE_HOLDER": "Please type {attributeName} to confirm", + "MESSAGE": "Deleting will remove the custom attribute", + "YES": "Delete ", + "NO": "Cancel" + } + }, + "EDIT": { + "TITLE": "Edit Custom Attribute", + "UPDATE_BUTTON_TEXT": "Update", + "TYPE": { + "LIST": { + "LABEL": "List Values", + "PLACEHOLDER": "Please enter values and press enter key" + } + }, + "API": { + "SUCCESS_MESSAGE": "Custom Attribute updated successfully", + "ERROR_MESSAGE": "There was an error updating custom attribute, please try again" + } + }, + "TABS": { + "HEADER": "Custom Attributes", + "CONVERSATION": "Conversation", + "CONTACT": "Contact" + }, + "LIST": { + "TABLE_HEADER": { + "NAME": "Name", + "DESCRIPTION": "Description", + "TYPE": "Type", + "KEY": "Key" + }, + "BUTTONS": { + "EDIT": "Edit", + "DELETE": "Delete" + }, + "EMPTY_RESULT": { + "404": "There are no custom attributes created", + "NOT_FOUND": "There are no custom attributes configured" + }, + "REGEX_PATTERN": { + "LABEL": "Regex Pattern", + "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)" + }, + "REGEX_CUE": { + "LABEL": "Regex Cue", + "PLACEHOLDER": "Please enter regex pattern hint. (Optional)" + }, + "ENABLE_REGEX": { + "LABEL": "Enable regex validation" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/auditLogs.json b/app/javascript/dashboard/i18n/locale/bn/auditLogs.json new file mode 100644 index 000000000..f85ad2a3e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/auditLogs.json @@ -0,0 +1,77 @@ +{ + "AUDIT_LOGS": { + "HEADER": "Audit Logs", + "HEADER_BTN_TXT": "Add Audit Logs", + "LOADING": "Fetching Audit Logs", + "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.", + "LEARN_MORE": "Learn more about audit logs", + "SEARCH_404": "There are no items matching this query", + "SIDEBAR_TXT": "

Audit Logs

Audit Logs are trails for events and actions in a Chatwoot System.

", + "LIST": { + "404": "There are no Audit Logs available in this account.", + "TITLE": "Manage Audit Logs", + "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.", + "TABLE_HEADER": { + "ACTIVITY": "Activity", + "TIME": "Time", + "IP_ADDRESS": "IP Address" + } + }, + "API": { + "SUCCESS_MESSAGE": "AuditLogs retrieved successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "DEFAULT_USER": "System", + "AUTOMATION_RULE": { + "ADD": "{agentName} created a new automation rule (#{id})", + "EDIT": "{agentName} updated an automation rule (#{id})", + "DELETE": "{agentName} deleted an automation rule (#{id})" + }, + "ACCOUNT_USER": { + "ADD": "{agentName} invited {invitee} to the account as an {role}", + "EDIT": { + "SELF": "{agentName} changed their {attributes} to {values}", + "OTHER": "{agentName} changed {attributes} of {user} to {values}", + "DELETED": "{agentName} changed {attributes} of a deleted user to {values}" + } + }, + "INBOX": { + "ADD": "{agentName} created a new inbox (#{id})", + "EDIT": "{agentName} updated an inbox (#{id})", + "DELETE": "{agentName} deleted an inbox (#{id})" + }, + "WEBHOOK": { + "ADD": "{agentName} created a new webhook (#{id})", + "EDIT": "{agentName} updated a webhook (#{id})", + "DELETE": "{agentName} deleted a webhook (#{id})" + }, + "USER_ACTION": { + "SIGN_IN": "{agentName} signed in", + "SIGN_OUT": "{agentName} signed out" + }, + "TEAM": { + "ADD": "{agentName} created a new team (#{id})", + "EDIT": "{agentName} updated a team (#{id})", + "DELETE": "{agentName} deleted a team (#{id})" + }, + "MACRO": { + "ADD": "{agentName} created a new macro (#{id})", + "EDIT": "{agentName} updated a macro (#{id})", + "DELETE": "{agentName} deleted a macro (#{id})" + }, + "INBOX_MEMBER": { + "ADD": "{agentName} added {user} to the inbox(#{inbox_id})", + "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})" + }, + "TEAM_MEMBER": { + "ADD": "{agentName} added {user} to the team(#{team_id})", + "REMOVE": "{agentName} removed {user} from the team(#{team_id})" + }, + "ACCOUNT": { + "EDIT": "{agentName} updated the account configuration (#{id})" + }, + "CONVERSATION": { + "DELETE": "{agentName} deleted conversation #{id}" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/automation.json b/app/javascript/dashboard/i18n/locale/bn/automation.json new file mode 100644 index 000000000..43245a1d5 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/automation.json @@ -0,0 +1,184 @@ +{ + "AUTOMATION": { + "HEADER": "Automation", + "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.", + "LEARN_MORE": "Learn more about automation", + "HEADER_BTN_TXT": "Add Automation Rule", + "LOADING": "Fetching automation rules", + "ADD": { + "TITLE": "Add Automation Rule", + "SUBMIT": "Create", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Rule Name", + "PLACEHOLDER": "Enter rule name", + "ERROR": "Name is required" + }, + "DESC": { + "LABEL": "Description", + "PLACEHOLDER": "Enter rule description", + "ERROR": "Description is required" + }, + "EVENT": { + "LABEL": "Event", + "PLACEHOLDER": "Please select one", + "ERROR": "Event is required" + }, + "CONDITIONS": { + "LABEL": "Conditions" + }, + "ACTIONS": { + "LABEL": "Actions" + } + }, + "CONDITION_BUTTON_LABEL": "Add Condition", + "ACTION_BUTTON_LABEL": "Add Action", + "API": { + "SUCCESS_MESSAGE": "Automation rule added successfully", + "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later" + } + }, + "LIST": { + "TABLE_HEADER": { + "NAME": "Name", + "DESCRIPTION": "Description", + "ACTIVE": "Active", + "CREATED_ON": "Created on" + }, + "404": "No automation rules found" + }, + "DELETE": { + "TITLE": "Delete Automation Rule", + "SUBMIT": "Delete", + "CANCEL_BUTTON_TEXT": "Cancel", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Automation rule deleted successfully", + "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later" + } + }, + "EDIT": { + "TITLE": "Edit Automation Rule", + "SUBMIT": "Update", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Automation rule updated successfully", + "ERROR_MESSAGE": "Could not update automation rule, Please try again later" + } + }, + "CLONE": { + "TOOLTIP": "Clone", + "API": { + "SUCCESS_MESSAGE": "Automation cloned successfully", + "ERROR_MESSAGE": "Could not clone automation rule, Please try again later" + } + }, + "FORM": { + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel", + "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below" + }, + "CONDITION": { + "DELETE_MESSAGE": "You need to have atleast one condition to save", + "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes", + "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes" + }, + "ACTION": { + "DELETE_MESSAGE": "You need to have atleast one action to save", + "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here", + "TEAM_DROPDOWN_PLACEHOLDER": "Select teams", + "EMAIL_INPUT_PLACEHOLDER": "Enter email", + "URL_INPUT_PLACEHOLDER": "Enter URL" + }, + "TOGGLE": { + "ACTIVATION_TITLE": "Activate Automation Rule", + "DEACTIVATION_TITLE": "Deactivate Automation Rule", + "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?", + "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?", + "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully", + "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully", + "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later", + "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later", + "CONFIRMATION_LABEL": "Yes", + "CANCEL_LABEL": "No" + }, + "ATTACHMENT": { + "UPLOAD_ERROR": "Could not upload attachment, Please try again", + "LABEL_IDLE": "Upload Attachment", + "LABEL_UPLOADING": "Uploading...", + "LABEL_UPLOADED": "Successfully Uploaded", + "LABEL_UPLOAD_FAILED": "Upload Failed" + }, + "ERRORS": { + "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", + "FILTER_OPERATOR_REQUIRED": "Filter operator is required", + "VALUE_REQUIRED": "Value is required", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998", + "ACTION_PARAMETERS_REQUIRED": "Action parameters are required", + "ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required", + "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" + }, + "NONE_OPTION": "None", + "EVENTS": { + "CONVERSATION_CREATED": "Conversation Created", + "CONVERSATION_UPDATED": "Conversation Updated", + "MESSAGE_CREATED": "Message Created", + "CONVERSATION_RESOLVED": "Conversation Resolved", + "CONVERSATION_OPENED": "Conversation Opened" + }, + "ACTIONS": { + "ASSIGN_AGENT": "Assign to Agent", + "ASSIGN_TEAM": "Assign a Team", + "ADD_LABEL": "Add a Label", + "REMOVE_LABEL": "Remove a Label", + "SEND_EMAIL_TO_TEAM": "Send an Email to Team", + "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript", + "MUTE_CONVERSATION": "Mute Conversation", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "RESOLVE_CONVERSATION": "Resolve Conversation", + "SEND_WEBHOOK_EVENT": "Send Webhook Event", + "SEND_ATTACHMENT": "Send Attachment", + "SEND_MESSAGE": "Send a Message", + "ADD_PRIVATE_NOTE": "Add a Private Note", + "CHANGE_PRIORITY": "Change Priority", + "ADD_SLA": "Add SLA", + "OPEN_CONVERSATION": "Open conversation" + }, + "MESSAGE_TYPES": { + "INCOMING": "Incoming Message", + "OUTGOING": "Outgoing Message" + }, + "PRIORITY_TYPES": { + "NONE": "None", + "LOW": "Low", + "MEDIUM": "Medium", + "HIGH": "High", + "URGENT": "Urgent" + }, + "ATTRIBUTES": { + "MESSAGE_TYPE": "Message Type", + "MESSAGE_CONTAINS": "Message Contains", + "EMAIL": "Email", + "INBOX": "Inbox", + "CONVERSATION_LANGUAGE": "Conversation Language", + "PHONE_NUMBER": "Phone Number", + "STATUS": "Status", + "BROWSER_LANGUAGE": "Browser Language", + "MAIL_SUBJECT": "Email Subject", + "COUNTRY_NAME": "Country", + "REFERER_LINK": "Referrer Link", + "ASSIGNEE_NAME": "Assignee", + "TEAM_NAME": "Team", + "PRIORITY": "Priority", + "LABELS": "Labels" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/bulkActions.json b/app/javascript/dashboard/i18n/locale/bn/bulkActions.json new file mode 100644 index 000000000..d64d9d38c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/bulkActions.json @@ -0,0 +1,41 @@ +{ + "BULK_ACTION": { + "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected", + "AGENT_SELECT_LABEL": "Select agent", + "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign {conversationCount} {conversationLabel} to", + "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", + "GO_BACK_LABEL": "Go back", + "ASSIGN_LABEL": "Assign", + "YES": "Yes", + "SEARCH_INPUT_PLACEHOLDER": "Search", + "ASSIGN_AGENT_TOOLTIP": "Assign agent", + "ASSIGN_TEAM_TOOLTIP": "Assign team", + "ASSIGN_SUCCESFUL": "Conversations assigned successfully.", + "ASSIGN_FAILED": "Failed to assign conversations. Please try again.", + "RESOLVE_SUCCESFUL": "Conversations resolved successfully.", + "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.", + "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.", + "AGENT_LIST_LOADING": "Loading agents", + "UPDATE": { + "CHANGE_STATUS": "Change status", + "SNOOZE_UNTIL": "Snooze", + "UPDATE_SUCCESFUL": "Conversation status updated successfully.", + "UPDATE_FAILED": "Failed to update conversations. Please try again." + }, + "LABELS": { + "ASSIGN_LABELS": "Assign labels", + "NO_LABELS_FOUND": "No labels found for", + "ASSIGN_SELECTED_LABELS": "Assign selected labels", + "ASSIGN_SUCCESFUL": "Labels assigned successfully.", + "ASSIGN_FAILED": "Failed to assign labels. Please try again." + }, + "TEAMS": { + "TEAM_SELECT_LABEL": "Select team", + "NONE": "None", + "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", + "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "ASSIGN_SUCCESFUL": "Teams assigned successfully.", + "ASSIGN_FAILED": "Failed to assign team. Please try again." + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/campaign.json b/app/javascript/dashboard/i18n/locale/bn/campaign.json new file mode 100644 index 000000000..10366e79e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/campaign.json @@ -0,0 +1,214 @@ +{ + "CAMPAIGN": { + "LIVE_CHAT": { + "HEADER_TITLE": "Live chat campaigns", + "NEW_CAMPAIGN": "Create campaign", + "CARD": { + "STATUS": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "CAMPAIGN_DETAILS": { + "SENT_BY": "Sent by", + "BOT": "Bot", + "FROM": "from", + "URL": "URL:" + } + }, + "EMPTY_STATE": { + "TITLE": "No live chat campaigns are available", + "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started." + }, + "CREATE": { + "TITLE": "Create a live chat campaign", + "CANCEL_BUTTON_TEXT": "Cancel", + "CREATE_BUTTON_TEXT": "Create", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Please enter the title of campaign", + "ERROR": "Title is required" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter the message of campaign", + "ERROR": "Message is required" + }, + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox", + "ERROR": "Inbox is required" + }, + "SENT_BY": { + "LABEL": "Sent by", + "PLACEHOLDER": "Please select sender", + "ERROR": "Sender is required" + }, + "END_POINT": { + "LABEL": "URL", + "PLACEHOLDER": "Please enter the URL", + "ERROR": "Please enter a valid URL" + }, + "TIME_ON_PAGE": { + "LABEL": "Time on page(Seconds)", + "PLACEHOLDER": "Please enter the time", + "ERROR": "Time on page is required" + }, + "OTHER_PREFERENCES": { + "TITLE": "Other preferences", + "ENABLED": "Enable campaign", + "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours" + }, + "BUTTONS": { + "CREATE": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Live chat campaign created successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + }, + "EDIT": { + "TITLE": "Edit live chat campaign", + "FORM": { + "API": { + "SUCCESS_MESSAGE": "Live chat campaign updated successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + } + }, + "SMS": { + "HEADER_TITLE": "SMS campaigns", + "NEW_CAMPAIGN": "Create campaign", + "EMPTY_STATE": { + "TITLE": "No SMS campaigns are available", + "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started." + }, + "CARD": { + "STATUS": { + "COMPLETED": "Completed", + "SCHEDULED": "Scheduled" + }, + "CAMPAIGN_DETAILS": { + "SENT_FROM": "Sent from", + "ON": "on" + } + }, + "CREATE": { + "TITLE": "Create SMS campaign", + "CANCEL_BUTTON_TEXT": "Cancel", + "CREATE_BUTTON_TEXT": "Create", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Please enter the title of campaign", + "ERROR": "Title is required" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter the message of campaign", + "ERROR": "Message is required" + }, + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox", + "ERROR": "Inbox is required" + }, + "AUDIENCE": { + "LABEL": "Audience", + "PLACEHOLDER": "Select the customer labels", + "ERROR": "Audience is required" + }, + "SCHEDULED_AT": { + "LABEL": "Scheduled time", + "PLACEHOLDER": "Please select the time", + "ERROR": "Scheduled time is required" + }, + "BUTTONS": { + "CREATE": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "SMS campaign created successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + } + }, + "WHATSAPP": { + "HEADER_TITLE": "WhatsApp campaigns", + "NEW_CAMPAIGN": "Create campaign", + "EMPTY_STATE": { + "TITLE": "No WhatsApp campaigns are available", + "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started." + }, + "CARD": { + "STATUS": { + "COMPLETED": "Completed", + "SCHEDULED": "Scheduled" + }, + "CAMPAIGN_DETAILS": { + "SENT_FROM": "Sent from", + "ON": "on" + } + }, + "CREATE": { + "TITLE": "Create WhatsApp campaign", + "CANCEL_BUTTON_TEXT": "Cancel", + "CREATE_BUTTON_TEXT": "Create", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Please enter the title of campaign", + "ERROR": "Title is required" + }, + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox", + "ERROR": "Inbox is required" + }, + "TEMPLATE": { + "LABEL": "WhatsApp Template", + "PLACEHOLDER": "Select a template", + "INFO": "Select a template to use for this campaign.", + "ERROR": "Template is required", + "PREVIEW_TITLE": "Process {templateName}", + "LANGUAGE": "Language", + "CATEGORY": "Category", + "VARIABLES_LABEL": "Variables", + "VARIABLE_PLACEHOLDER": "Enter value for {variable}" + }, + "AUDIENCE": { + "LABEL": "Audience", + "PLACEHOLDER": "Select the customer labels", + "ERROR": "Audience is required" + }, + "SCHEDULED_AT": { + "LABEL": "Scheduled time", + "PLACEHOLDER": "Please select the time", + "ERROR": "Scheduled time is required" + }, + "BUTTONS": { + "CREATE": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "WhatsApp campaign created successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + } + }, + "CONFIRM_DELETE": { + "TITLE": "Are you sure to delete?", + "DESCRIPTION": "The delete action is permanent and cannot be reversed.", + "CONFIRM": "Delete", + "API": { + "SUCCESS_MESSAGE": "Campaign deleted successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json new file mode 100644 index 000000000..3ff246f06 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json @@ -0,0 +1,77 @@ +{ + "CANNED_MGMT": { + "HEADER": "Canned Responses", + "LEARN_MORE": "Learn more about canned responses", + "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ", + "HEADER_BTN_TXT": "Add canned response", + "LOADING": "Fetching canned responses...", + "SEARCH_404": "There are no items matching this query.", + "LIST": { + "404": "There are no canned responses available in this account.", + "TITLE": "Manage canned responses", + "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.", + "TABLE_HEADER": { + "SHORT_CODE": "Short code", + "CONTENT": "Content", + "ACTIONS": "Actions" + } + }, + "ADD": { + "TITLE": "Add canned response", + "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "SHORT_CODE": { + "LABEL": "Short code", + "PLACEHOLDER": "Please enter a short code.", + "ERROR": "Short Code is required." + }, + "CONTENT": { + "LABEL": "Message", + "PLACEHOLDER": "Please write the message you want to save as a template to use later.", + "ERROR": "Message is required." + }, + "SUBMIT": "Submit" + }, + "API": { + "SUCCESS_MESSAGE": "Canned response added successfully.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + } + }, + "EDIT": { + "TITLE": "Edit canned response", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "SHORT_CODE": { + "LABEL": "Short code", + "PLACEHOLDER": "Please enter a shortcode.", + "ERROR": "Short code is required." + }, + "CONTENT": { + "LABEL": "Message", + "PLACEHOLDER": "Please write the message you want to save as a template to use later.", + "ERROR": "Message is required." + }, + "SUBMIT": "Submit" + }, + "BUTTON_TEXT": "Edit", + "API": { + "SUCCESS_MESSAGE": "Canned response is updated successfully.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Canned response deleted successfully.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "CONFIRM": { + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, delete ", + "NO": "No, keep " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/chatlist.json b/app/javascript/dashboard/i18n/locale/bn/chatlist.json new file mode 100644 index 000000000..ec416f6cb --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/chatlist.json @@ -0,0 +1,139 @@ +{ + "CHAT_LIST": { + "LOADING": "Fetching conversations", + "LOAD_MORE_CONVERSATIONS": "Load more conversations", + "EOF": "All conversations loaded 🎉", + "LIST": { + "404": "There are no active conversations in this group." + }, + "FAILED_TO_SEND": "Failed to send", + "TAB_HEADING": "Conversations", + "MENTION_HEADING": "Mentions", + "UNATTENDED_HEADING": "Unattended", + "SEARCH": { + "INPUT": "Search for People, Chats, Saved Replies .." + }, + "FILTER_ALL": "All", + "ASSIGNEE_TYPE_TABS": { + "me": "Mine", + "unassigned": "Unassigned", + "all": "All" + }, + "CHAT_STATUS_FILTER_ITEMS": { + "open": { + "TEXT": "Open" + }, + "resolved": { + "TEXT": "Resolved" + }, + "pending": { + "TEXT": "Pending" + }, + "snoozed": { + "TEXT": "Snoozed" + }, + "all": { + "TEXT": "All" + } + }, + "VIEW_FILTER": "View", + "SORT_TOOLTIP_LABEL": "Sort conversations", + "CHAT_SORT": { + "STATUS": "Status", + "ORDER_BY": "Order by" + }, + "CHAT_TIME_STAMP": { + "CREATED": { + "LATEST": "Created", + "OLDEST": "Created at:" + }, + "LAST_ACTIVITY": { + "NOT_ACTIVE": "Last activity:", + "ACTIVE": "Last activity" + } + }, + "SORT_ORDER_ITEMS": { + "last_activity_at_asc": { + "TEXT": "Last activity: Oldest first" + }, + "last_activity_at_desc": { + "TEXT": "Last activity: Newest first" + }, + "created_at_desc": { + "TEXT": "Created at: Newest first" + }, + "created_at_asc": { + "TEXT": "Created at: Oldest first" + }, + "priority_desc": { + "TEXT": "Priority: Highest first" + }, + "priority_asc": { + "TEXT": "Priority: Lowest first" + }, + "waiting_since_asc": { + "TEXT": "Pending Response: Longest first" + }, + "waiting_since_desc": { + "TEXT": "Pending Response: Shortest first" + } + }, + "ATTACHMENTS": { + "image": { + "CONTENT": "Picture message" + }, + "audio": { + "CONTENT": "Audio message" + }, + "video": { + "CONTENT": "Video message" + }, + "file": { + "CONTENT": "File Attachment" + }, + "location": { + "CONTENT": "Location" + }, + "ig_reel": { + "CONTENT": "Instagram Reel" + }, + "fallback": { + "CONTENT": "has shared a url" + }, + "contact": { + "CONTENT": "Shared contact" + } + }, + "CHAT_SORT_BY_FILTER": { + "TITLE": "Sort conversation", + "DROPDOWN_TITLE": "Sort by", + "ITEMS": { + "LATEST": { + "NAME": "Last activity at", + "LABEL": "Last activity" + }, + "CREATED_AT": { + "NAME": "Created at", + "LABEL": "Created at" + }, + "LAST_USER_MESSAGE_AT": { + "NAME": "Last user message at", + "LABEL": "Last message" + } + } + }, + "RECEIVED_VIA_EMAIL": "Received via email", + "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", + "REPLY_TO_TWEET": "Reply to this tweet", + "LINK_TO_STORY": "Go to instagram story", + "SENT": "Sent successfully", + "READ": "Read successfully", + "DELIVERED": "Delivered successfully", + "NO_MESSAGES": "No Messages", + "NO_CONTENT": "No content available", + "HIDE_QUOTED_TEXT": "Hide Quoted Text", + "SHOW_QUOTED_TEXT": "Show Quoted Text", + "MESSAGE_READ": "Read", + "SENDING": "Sending" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/components.json b/app/javascript/dashboard/i18n/locale/bn/components.json new file mode 100644 index 000000000..0a2542a84 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/components.json @@ -0,0 +1,56 @@ +{ + "PAGINATION_FOOTER": { + "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items", + "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages" + }, + "COMBOBOX": { + "PLACEHOLDER": "Select an option...", + "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`", + "EMPTY_STATE": "No results found.", + "SEARCH_PLACEHOLDER": "Search...", + "MORE": "+{count} more" + }, + "DROPDOWN_MENU": { + "SEARCH_PLACEHOLDER": "Search...", + "EMPTY_STATE": "No results found.", + "SEARCHING": "Searching..." + }, + "DIALOG": { + "BUTTONS": { + "CANCEL": "Cancel", + "CONFIRM": "Confirm" + } + }, + "PHONE_INPUT": { + "SEARCH_PLACEHOLDER": "Search country", + "ERROR": "Phone number should be empty or in E.164 format", + "DIAL_CODE_ERROR": "Please select a dial code from the list" + }, + "THUMBNAIL": { + "AUTHOR": { + "NOT_AVAILABLE": "Author is not available" + } + }, + "BREADCRUMB": { + "ARIA_LABEL": "Breadcrumb" + }, + "SWITCH": { + "TOGGLE": "Toggle switch" + }, + "LABEL": { + "TAG_BUTTON": "tag" + }, + "FEATURE_SPOTLIGHT": { + "LEARN_MORE": "Learn more", + "WATCH_VIDEO": "Watch video" + }, + "DURATION_INPUT": { + "MINUTES": "Minutes", + "HOURS": "Hours", + "DAYS": "Days", + "PLACEHOLDER": "Enter duration" + }, + "CHANNEL_SELECTOR": { + "COMING_SOON": "Coming Soon!" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/contact.json b/app/javascript/dashboard/i18n/locale/bn/contact.json new file mode 100644 index 000000000..54d783efc --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/contact.json @@ -0,0 +1,630 @@ +{ + "CONTACT_PANEL": { + "NOT_AVAILABLE": "Not Available", + "EMAIL_ADDRESS": "Email Address", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "COMPANY": "Company", + "LOCATION": "Location", + "BROWSER_LANGUAGE": "Browser Language", + "CONVERSATION_TITLE": "Conversation Details", + "VIEW_PROFILE": "View Profile", + "BROWSER": "Browser", + "OS": "Operating System", + "INITIATED_FROM": "Initiated from", + "INITIATED_AT": "Initiated at", + "IP_ADDRESS": "IP Address", + "CREATED_AT_LABEL": "Created", + "NEW_MESSAGE": "New message", + "CALL": "Call", + "CALL_UNDER_DEVELOPMENT": "Calling is under development", + "VOICE_INBOX_PICKER": { + "TITLE": "Choose a voice inbox" + }, + "CONVERSATIONS": { + "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.", + "TITLE": "Previous Conversations" + }, + "LABELS": { + "CONTACT": { + "TITLE": "Contact Labels", + "ERROR": "Couldn't update labels" + }, + "CONVERSATION": { + "TITLE": "Conversation Labels", + "ADD_BUTTON": "Add Labels" + }, + "LABEL_SELECT": { + "TITLE": "Add Labels", + "PLACEHOLDER": "Search labels", + "NO_RESULT": "No labels found", + "CREATE_LABEL": "Create new label" + } + }, + "MERGE_CONTACT": "Merge contact", + "CONTACT_ACTIONS": "Contact actions", + "MUTE_CONTACT": "Block Contact", + "UNMUTE_CONTACT": "Unblock Contact", + "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.", + "UNMUTED_SUCCESS": "This contact is unblocked successfully.", + "SEND_TRANSCRIPT": "Send Transcript", + "EDIT_LABEL": "Edit", + "SIDEBAR_SECTIONS": { + "CUSTOM_ATTRIBUTES": "Custom Attributes", + "CONTACT_LABELS": "Contact Labels", + "PREVIOUS_CONVERSATIONS": "Previous Conversations", + "NO_RECORDS_FOUND": "No attributes found" + } + }, + "EDIT_CONTACT": { + "BUTTON_LABEL": "Edit Contact", + "TITLE": "Edit contact", + "DESC": "Edit contact details" + }, + "DELETE_CONTACT": { + "BUTTON_LABEL": "Delete Contact", + "TITLE": "Delete contact", + "DESC": "Delete contact details", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete", + "NO": "No, Keep" + }, + "API": { + "SUCCESS_MESSAGE": "Contact deleted successfully", + "ERROR_MESSAGE": "Could not delete contact. Please try again later." + } + }, + "CONTACT_FORM": { + "FORM": { + "SUBMIT": "Submit", + "CANCEL": "Cancel", + "AVATAR": { + "LABEL": "Contact Avatar" + }, + "NAME": { + "PLACEHOLDER": "Enter the full name of the contact", + "LABEL": "Full Name" + }, + "BIO": { + "PLACEHOLDER": "Enter the bio of the contact", + "LABEL": "Bio" + }, + "EMAIL_ADDRESS": { + "PLACEHOLDER": "Enter the email address of the contact", + "LABEL": "Email Address", + "DUPLICATE": "This email address is in use for another contact.", + "ERROR": "Please enter a valid email address." + }, + "PHONE_NUMBER": { + "PLACEHOLDER": "Enter the phone number of the contact", + "LABEL": "Phone Number", + "HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.", + "ERROR": "Phone number should be either empty or of E.164 format", + "DIAL_CODE_ERROR": "Please select a dial code from the list", + "DUPLICATE": "This phone number is in use for another contact." + }, + "LOCATION": { + "PLACEHOLDER": "Enter the location of the contact", + "LABEL": "Location" + }, + "COMPANY_NAME": { + "PLACEHOLDER": "Enter the company name", + "LABEL": "Company Name" + }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, + "SOCIAL_PROFILES": { + "FACEBOOK": { + "PLACEHOLDER": "Enter the Facebook username", + "LABEL": "Facebook" + }, + "TWITTER": { + "PLACEHOLDER": "Enter the Twitter username", + "LABEL": "Twitter" + }, + "LINKEDIN": { + "PLACEHOLDER": "Enter the LinkedIn username", + "LABEL": "LinkedIn" + }, + "GITHUB": { + "PLACEHOLDER": "Enter the Github username", + "LABEL": "Github" + } + } + }, + "DELETE_AVATAR": { + "API": { + "SUCCESS_MESSAGE": "Contact avatar deleted successfully", + "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later." + } + }, + "SUCCESS_MESSAGE": "Contact saved successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "NEW_CONVERSATION": { + "BUTTON_LABEL": "Start conversation", + "TITLE": "New conversation", + "DESC": "Start a new conversation by sending a new message.", + "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.", + "FORM": { + "TO": { + "LABEL": "To" + }, + "INBOX": { + "LABEL": "Via Inbox", + "PLACEHOLDER": "Choose source inbox", + "ERROR": "Select an inbox" + }, + "SUBJECT": { + "LABEL": "Subject", + "PLACEHOLDER": "Subject", + "ERROR": "Subject can't be empty" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Write your message here", + "ERROR": "Message can't be empty" + }, + "ATTACHMENTS": { + "SELECT": "Choose files", + "HELP_TEXT": "Drag and drop files here or choose files to attach" + }, + "SUBMIT": "Send message", + "CANCEL": "Cancel", + "SUCCESS_MESSAGE": "Message sent!", + "GO_TO_CONVERSATION": "View", + "ERROR_MESSAGE": "Couldn't send! try again" + } + }, + "CONTACTS_PAGE": { + "LIST": { + "TABLE_HEADER": { + "SOCIAL_PROFILES": "Social Profiles" + } + } + }, + "CUSTOM_ATTRIBUTES": { + "BUTTON": "Add custom attribute", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "SHOW_MORE": "Show all attributes", + "SHOW_LESS": "Show less attributes", + "ACTIONS": { + "COPY": "Copy attribute", + "DELETE": "Delete attribute", + "EDIT": "Edit attribute" + }, + "ADD": { + "TITLE": "Create custom attribute", + "DESC": "Add custom information to this contact." + }, + "FORM": { + "CREATE": "Add attribute", + "CANCEL": "Cancel", + "NAME": { + "LABEL": "Custom attribute name", + "PLACEHOLDER": "Eg: shopify id", + "ERROR": "Invalid custom attribute name" + }, + "VALUE": { + "LABEL": "Attribute value", + "PLACEHOLDER": "Eg: 11901 " + }, + "ADD": { + "TITLE": "Create new attribute ", + "SUCCESS": "Attribute added successfully", + "ERROR": "Unable to add attribute. Please try again later" + }, + "UPDATE": { + "SUCCESS": "Attribute updated successfully", + "ERROR": "Unable to update attribute. Please try again later" + }, + "DELETE": { + "SUCCESS": "Attribute deleted successfully", + "ERROR": "Unable to delete attribute. Please try again later" + }, + "ATTRIBUTE_SELECT": { + "TITLE": "Add attributes", + "PLACEHOLDER": "Search attributes", + "NO_RESULT": "No attributes found" + }, + "ATTRIBUTE_TYPE": { + "LIST": { + "PLACEHOLDER": "Select value", + "SEARCH_INPUT_PLACEHOLDER": "Search value", + "NO_RESULT": "No result found" + } + } + }, + "VALIDATIONS": { + "REQUIRED": "Valid value is required", + "INVALID_URL": "Invalid URL", + "INVALID_INPUT": "Invalid Input" + } + }, + "MERGE_CONTACTS": { + "TITLE": "Merge contacts", + "DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’s attributes will take precedence.", + "PRIMARY": { + "TITLE": "Primary contact", + "HELP_LABEL": "To be deleted" + }, + "PARENT": { + "TITLE": "Contact to merge", + "PLACEHOLDER": "Search for a contact", + "HELP_LABEL": "To be kept" + }, + "SUMMARY": { + "TITLE": "Summary", + "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.", + "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}." + }, + "SEARCH": { + "ERROR_MESSAGE": "Something went wrong. Please try again later." + }, + "FORM": { + "SUBMIT": " Merge contacts", + "CANCEL": "Cancel", + "CHILD_CONTACT": { + "ERROR": "Select a child contact to merge" + }, + "SUCCESS_MESSAGE": "Contact merged successfully", + "ERROR_MESSAGE": "Could not merge contacts, try again!" + }, + "DROPDOWN_ITEM": { + "ID": "(ID: {identifier})" + } + }, + "CONTACTS_LAYOUT": { + "HEADER": { + "TITLE": "Contacts", + "SEARCH_TITLE": "Search contacts", + "ACTIVE_TITLE": "Active contacts", + "SEARCH_PLACEHOLDER": "Search...", + "MESSAGE_BUTTON": "Message", + "SEND_MESSAGE": "Send message", + "BLOCK_CONTACT": "Block contact", + "UNBLOCK_CONTACT": "Unblock contact", + "BREADCRUMB": { + "CONTACTS": "Contacts" + }, + "ACTIONS": { + "CONTACT_CREATION": { + "ADD_CONTACT": "Add contact", + "EXPORT_CONTACT": "Export contacts", + "IMPORT_CONTACT": "Import contacts", + "SAVE_CONTACT": "Save contact", + "EMAIL_ADDRESS_DUPLICATE": "This email address is in use for another contact.", + "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.", + "SUCCESS_MESSAGE": "Contact saved successfully", + "ERROR_MESSAGE": "Unable to save contact. Please try again later." + }, + "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully", + "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.", + "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully", + "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.", + "IMPORT_CONTACT": { + "TITLE": "Import contacts", + "DESCRIPTION": "Import contacts through a CSV file.", + "DOWNLOAD_LABEL": "Download a sample csv.", + "LABEL": "CSV File:", + "CHOOSE_FILE": "Choose file", + "CHANGE": "Change", + "CANCEL": "Cancel", + "IMPORT": "Import", + "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "EXPORT_CONTACT": { + "TITLE": "Export contacts", + "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts", + "CONFIRM": "Export", + "SUCCESS_MESSAGE": "Export is in progress. You will be notified on email when the export file is ready to download.", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "SORT_BY": { + "LABEL": "Sort by", + "OPTIONS": { + "NAME": "Name", + "EMAIL": "Email", + "PHONE_NUMBER": "Phone number", + "COMPANY": "Company", + "COUNTRY": "Country", + "CITY": "City", + "LAST_ACTIVITY": "Last activity", + "CREATED_AT": "Created at" + } + }, + "ORDER": { + "LABEL": "Ordering", + "OPTIONS": { + "ASCENDING": "Ascending", + "DESCENDING": "Descending" + } + }, + "FILTERS": { + "CREATE_SEGMENT": { + "TITLE": "Do you want to save this filter?", + "CONFIRM": "Save filter", + "LABEL": "Name", + "PLACEHOLDER": "Enter the name of the filter", + "ERROR": "Enter a valid name", + "SUCCESS_MESSAGE": "Filter saved successfully", + "ERROR_MESSAGE": "Unable to save filter. Please try again later." + }, + "DELETE_SEGMENT": { + "TITLE": "Confirm Deletion", + "DESCRIPTION": "Are you sure you want to delete this filter?", + "CONFIRM": "Yes, Delete", + "CANCEL": "No, Cancel", + "SUCCESS_MESSAGE": "Filter deleted successfully", + "ERROR_MESSAGE": "Unable to delete filter. Please try again later." + } + } + } + }, + "PAGINATION_FOOTER": { + "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts" + }, + "FILTER": { + "NAME": "Name", + "EMAIL": "Email", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "COUNTRY": "Country", + "CITY": "City", + "CREATED_AT": "Created at", + "LAST_ACTIVITY": "Last activity", + "REFERER_LINK": "Referer link", + "BLOCKED": "Blocked", + "BLOCKED_TRUE": "True", + "BLOCKED_FALSE": "False", + "BUTTONS": { + "CLEAR_FILTERS": "Clear filters", + "UPDATE_SEGMENT": "Update segment", + "APPLY_FILTERS": "Apply filters", + "ADD_FILTER": "Add filter" + }, + "TITLE": "Filter contacts", + "EDIT_SEGMENT": "Edit segment", + "SEGMENT": { + "LABEL": "Segment name", + "INPUT_PLACEHOLDER": "Enter the name of the segment" + }, + "ACTIVE_FILTERS": { + "MORE_FILTERS": "+ {count} more filters", + "CLEAR_FILTERS": "Clear filters" + } + }, + "CARD": { + "OF": "of", + "VIEW_DETAILS": "View details", + "EDIT_DETAILS_FORM": { + "TITLE": "Edit contact details", + "FORM": { + "FIRST_NAME": { + "PLACEHOLDER": "Enter the first name" + }, + "LAST_NAME": { + "PLACEHOLDER": "Enter the last name" + }, + "EMAIL_ADDRESS": { + "PLACEHOLDER": "Enter the email address", + "DUPLICATE": "This email address is in use for another contact." + }, + "PHONE_NUMBER": { + "PLACEHOLDER": "Enter the phone number", + "DUPLICATE": "This phone number is in use for another contact." + }, + "CITY": { + "PLACEHOLDER": "Enter the city name" + }, + "COUNTRY": { + "PLACEHOLDER": "Select country" + }, + "BIO": { + "PLACEHOLDER": "Enter the bio" + }, + "COMPANY_NAME": { + "PLACEHOLDER": "Enter the company name" + } + }, + "UPDATE_BUTTON": "Update contact", + "SUCCESS_MESSAGE": "Contact updated successfully", + "ERROR_MESSAGE": "Unable to update contact. Please try again later." + }, + "SOCIAL_MEDIA": { + "TITLE": "Edit social links", + "FORM": { + "FACEBOOK": { + "PLACEHOLDER": "Add Facebook" + }, + "GITHUB": { + "PLACEHOLDER": "Add Github" + }, + "INSTAGRAM": { + "PLACEHOLDER": "Add Instagram" + }, + "LINKEDIN": { + "PLACEHOLDER": "Add LinkedIn" + }, + "TWITTER": { + "PLACEHOLDER": "Add Twitter" + } + } + }, + "DELETE_CONTACT": { + "MESSAGE": "This action is permanent and irreversible.", + "BUTTON": "Delete now" + } + }, + "DETAILS": { + "CREATED_AT": "Created {date}", + "LAST_ACTIVITY": "Last active {date}", + "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible", + "DELETE_CONTACT": "Delete contact", + "DELETE_DIALOG": { + "TITLE": "Confirm Deletion", + "DESCRIPTION": "Are you sure you want to delete this contact?", + "CONFIRM": "Yes, Delete", + "API": { + "SUCCESS_MESSAGE": "Contact deleted successfully", + "ERROR_MESSAGE": "Could not delete contact. Please try again later." + } + }, + "AVATAR": { + "UPLOAD": { + "ERROR_MESSAGE": "Could not upload avatar. Please try again later.", + "SUCCESS_MESSAGE": "Avatar uploaded successfully" + }, + "DELETE": { + "SUCCESS_MESSAGE": "Avatar deleted successfully", + "ERROR_MESSAGE": "Could not delete avatar. Please try again later." + } + } + }, + "SIDEBAR": { + "TABS": { + "ATTRIBUTES": "Attributes", + "HISTORY": "History", + "NOTES": "Notes", + "MERGE": "Merge" + }, + "HISTORY": { + "EMPTY_STATE": "There are no previous conversations associated to this contact" + }, + "ATTRIBUTES": { + "SEARCH_PLACEHOLDER": "Search for attributes", + "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes", + "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.", + "YES": "Yes", + "NO": "No", + "TRIGGER": { + "SELECT": "Select value", + "INPUT": "Enter value" + }, + "VALIDATIONS": { + "INVALID_NUMBER": "Invalid number", + "REQUIRED": "Valid value is required", + "INVALID_INPUT": "Invalid input", + "INVALID_URL": "Invalid URL", + "INVALID_DATE": "Invalid date" + }, + "NO_ATTRIBUTES": "No attributes found", + "API": { + "SUCCESS_MESSAGE": "Attribute updated successfully", + "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully", + "UPDATE_ERROR": "Unable to update attribute. Please try again later", + "DELETE_ERROR": "Unable to delete attribute. Please try again later" + } + }, + "MERGE": { + "TITLE": "Merge contact", + "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.", + "PRIMARY": "Primary contact", + "PRIMARY_HELP_LABEL": "To be saved", + "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding", + "PARENT": "To be merged", + "PARENT_HELP_LABEL": "To be deleted", + "EMPTY_STATE": "No contacts found", + "PLACEHOLDER": "Search for primary contact", + "SEARCH_PLACEHOLDER": "Search for a contact", + "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.", + "SUCCESS_MESSAGE": "Contact merged successfully", + "ERROR_MESSAGE": "Could not merge contacts, try again!", + "IS_SEARCHING": "Searching...", + "BUTTONS": { + "CANCEL": "Cancel", + "CONFIRM": "Merge contact" + } + }, + "NOTES": { + "PLACEHOLDER": "Add a note", + "WROTE": "wrote", + "YOU": "You", + "SAVE": "Save note", + "ADD_NOTE": "Add contact note", + "EXPAND": "Expand", + "COLLAPSE": "Collapse", + "NO_NOTES": "No notes, you can add notes from the contact details page.", + "EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above.", + "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one." + } + }, + "EMPTY_STATE": { + "TITLE": "No contacts found in this account", + "SUBTITLE": "Start adding new contacts by clicking on the button below", + "BUTTON_LABEL": "Add contact", + "SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍", + "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋", + "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙" + } + }, + "COMPOSE_NEW_CONVERSATION": { + "CONTACT_SEARCH": { + "ERROR_MESSAGE": "We couldn’t complete the search. Please try again." + }, + "FORM": { + "GO_TO_CONVERSATION": "View", + "SUCCESS_MESSAGE": "The message was sent successfully!", + "ERROR_MESSAGE": "An error occurred while creating the conversation. Please try again later.", + "NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.", + "CONTACT_SELECTOR": { + "LABEL": "To:", + "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number", + "CONTACT_CREATING": "Creating contact..." + }, + "INBOX_SELECTOR": { + "LABEL": "Via:", + "BUTTON": "Show inboxes" + }, + "EMAIL_OPTIONS": { + "SUBJECT_LABEL": "Subject :", + "SUBJECT_PLACEHOLDER": "Enter your email subject here", + "CC_LABEL": "Cc:", + "CC_PLACEHOLDER": "Search for a contact with their email address", + "BCC_LABEL": "Bcc:", + "BCC_PLACEHOLDER": "Search for a contact with their email address", + "BCC_BUTTON": "Bcc" + }, + "MESSAGE_EDITOR": { + "PLACEHOLDER": "Write your message here..." + }, + "WHATSAPP_OPTIONS": { + "LABEL": "Select template", + "SEARCH_PLACEHOLDER": "Search templates", + "EMPTY_STATE": "No templates found", + "TEMPLATE_PARSER": { + "TEMPLATE_NAME": "WhatsApp template: {templateName}", + "VARIABLES": "Variables", + "BACK": "Go back", + "SEND_MESSAGE": "Send message" + } + }, + "TWILIO_OPTIONS": { + "LABEL": "Select template", + "SEARCH_PLACEHOLDER": "Search templates", + "EMPTY_STATE": "No templates found", + "TEMPLATE_PARSER": { + "BACK": "Go back", + "SEND_MESSAGE": "Send message" + } + }, + "ACTION_BUTTONS": { + "DISCARD": "Discard", + "SEND": "Send ({keyCode})" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/contactFilters.json b/app/javascript/dashboard/i18n/locale/bn/contactFilters.json new file mode 100644 index 000000000..4c62f0789 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/contactFilters.json @@ -0,0 +1,60 @@ +{ + "CONTACTS_FILTER": { + "TITLE": "Filter Contacts", + "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.", + "EDIT_CUSTOM_SEGMENT": "Edit Segment", + "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.", + "ADD_NEW_FILTER": "Add Filter", + "CLEAR_ALL_FILTERS": "Clear All Filters", + "FILTER_DELETE_ERROR": "You should have atleast one filter to save", + "SUBMIT_BUTTON_LABEL": "Submit", + "UPDATE_BUTTON_LABEL": "Update Segment", + "CANCEL_BUTTON_LABEL": "Cancel", + "CLEAR_BUTTON_LABEL": "Clear Filters", + "EMPTY_VALUE_ERROR": "Value is required", + "SEGMENT_LABEL": "Segment Name", + "SEGMENT_QUERY_LABEL": "Segment Query", + "TOOLTIP_LABEL": "Filter contacts", + "QUERY_DROPDOWN_LABELS": { + "AND": "AND", + "OR": "OR" + }, + "OPERATOR_LABELS": { + "equal_to": "Equal to", + "not_equal_to": "Not equal to", + "contains": "Contains", + "does_not_contain": "Does not contain", + "is_present": "Is present", + "is_not_present": "Is not present", + "is_greater_than": "Is greater than", + "is_lesser_than": "Is lesser than", + "days_before": "Is x days before" + }, + "ERRORS": { + "VALUE_REQUIRED": "Value is required" + }, + "ATTRIBUTES": { + "NAME": "Name", + "EMAIL": "Email", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "CITY": "City", + "COUNTRY": "Country", + "CUSTOM_ATTRIBUTE_LIST": "List", + "CUSTOM_ATTRIBUTE_TEXT": "Text", + "CUSTOM_ATTRIBUTE_NUMBER": "Number", + "CUSTOM_ATTRIBUTE_LINK": "Link", + "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", + "CREATED_AT": "Created At", + "LAST_ACTIVITY": "Last Activity", + "REFERER_LINK": "Referrer link", + "BLOCKED": "Blocked", + "LABELS": "Labels" + }, + "GROUPS": { + "STANDARD_FILTERS": "Standard Filters", + "ADDITIONAL_FILTERS": "Additional Filters", + "CUSTOM_ATTRIBUTES": "Custom Attributes" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/contentTemplates.json b/app/javascript/dashboard/i18n/locale/bn/contentTemplates.json new file mode 100644 index 000000000..a9b1d54c4 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/contentTemplates.json @@ -0,0 +1,51 @@ +{ + "CONTENT_TEMPLATES": { + "MODAL": { + "TITLE": "Twilio Templates", + "SUBTITLE": "Select the Twilio template you want to send", + "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}" + }, + "PICKER": { + "SEARCH_PLACEHOLDER": "Search Templates", + "NO_TEMPLATES_FOUND": "No templates found for", + "NO_CONTENT": "No content", + "HEADER": "Header", + "BODY": "Body", + "FOOTER": "Footer", + "BUTTONS": "Buttons", + "CATEGORY": "Category", + "MEDIA_CONTENT": "Media Content", + "MEDIA_CONTENT_FALLBACK": "media content", + "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.", + "REFRESH_BUTTON": "Refresh templates", + "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.", + "REFRESH_ERROR": "Failed to refresh templates. Please try again.", + "LABELS": { + "LANGUAGE": "Language", + "TEMPLATE_BODY": "Template Body", + "CATEGORY": "Category" + }, + "TYPES": { + "MEDIA": "Media", + "QUICK_REPLY": "Quick Reply", + "TEXT": "Text" + } + }, + "PARSER": { + "VARIABLES_LABEL": "Variables", + "LANGUAGE": "Language", + "CATEGORY": "Category", + "VARIABLE_PLACEHOLDER": "Enter {variable} value", + "GO_BACK_LABEL": "Go Back", + "SEND_MESSAGE_LABEL": "Send Message", + "FORM_ERROR_MESSAGE": "Please fill all variables before sending", + "MEDIA_HEADER_LABEL": "{type} Header", + "MEDIA_URL_LABEL": "Enter full media URL", + "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg" + }, + "FORM": { + "BACK_BUTTON": "Back", + "SEND_MESSAGE_BUTTON": "Send Message" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/conversation.json b/app/javascript/dashboard/i18n/locale/bn/conversation.json new file mode 100644 index 000000000..79d5ebc66 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/conversation.json @@ -0,0 +1,429 @@ +{ + "CONVERSATION": { + "SELECT_A_CONVERSATION": "Please select a conversation from left pane", + "CSAT_REPLY_MESSAGE": "Please rate the conversation", + "404": "Sorry, we cannot find the conversation. Please try again", + "SWITCH_VIEW_LAYOUT": "Switch the layout", + "DASHBOARD_APP_TAB_MESSAGES": "Messages", + "UNVERIFIED_SESSION": "The identity of this user is not verified", + "NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.", + "NO_MESSAGE_2": " to send a message to your page!", + "NO_INBOX_1": "Hola! Looks like you haven't added any inboxes yet.", + "NO_INBOX_2": " to get started", + "NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator", + "SEARCH_MESSAGES": "Search for messages in conversations", + "VIEW_ORIGINAL": "View original", + "VIEW_TRANSLATED": "View translated", + "EMPTY_STATE": { + "CMD_BAR": "to open command menu", + "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts" + }, + "SEARCH": { + "TITLE": "Search messages", + "RESULT_TITLE": "Search Results", + "LOADING_MESSAGE": "Crunching data...", + "PLACEHOLDER": "Type any text to search messages", + "NO_MATCHING_RESULTS": "No results found." + }, + "UNREAD_MESSAGES": "Unread Messages", + "UNREAD_MESSAGE": "Unread Message", + "CLICK_HERE": "Click here", + "LOADING_INBOXES": "Loading inboxes", + "LOADING_CONVERSATIONS": "Loading Conversations", + "CANNOT_REPLY": "You cannot reply due to", + "24_HOURS_WINDOW": "24 hour message window restriction", + "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours", + "NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?", + "ASSIGN_TO_ME": "Assign to me", + "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.", + "BOT_HANDOFF_ACTION": "Mark open and assign to you", + "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open", + "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you", + "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.", + "TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to", + "TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction", + "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.", + "REPLYING_TO": "You are replying to:", + "REMOVE_SELECTION": "Remove Selection", + "DOWNLOAD": "Download", + "UNKNOWN_FILE_TYPE": "Unknown File", + "SAVE_CONTACT": "Save Contact", + "NO_CONTENT": "No content to display", + "SHARED_ATTACHMENT": { + "CONTACT": "{sender} has shared a contact", + "LOCATION": "{sender} has shared a location", + "FILE": "{sender} has shared a file", + "MEETING": "{sender} has started a meeting" + }, + "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "REPLIED_TO_STORY": "Replied to your story", + "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.", + "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.", + "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.", + "SUCCESS_DELETE_MESSAGE": "Message deleted successfully", + "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again", + "NO_RESPONSE": "No response", + "RESPONSE": "Response", + "RATING_TITLE": "Rating", + "FEEDBACK_TITLE": "Feedback", + "REPLY_MESSAGE_NOT_FOUND": "Message not available", + "CARD": { + "SHOW_LABELS": "Show labels", + "HIDE_LABELS": "Hide labels" + }, + "VOICE_CALL": { + "INCOMING_CALL": "Incoming call", + "OUTGOING_CALL": "Outgoing call", + "CALL_IN_PROGRESS": "Call in progress", + "NO_ANSWER": "No answer", + "MISSED_CALL": "Missed call", + "CALL_ENDED": "Call ended", + "NOT_ANSWERED_YET": "Not answered yet", + "THEY_ANSWERED": "They answered", + "YOU_ANSWERED": "You answered" + }, + "HEADER": { + "RESOLVE_ACTION": "Resolve", + "REOPEN_ACTION": "Reopen", + "OPEN_ACTION": "Open", + "MORE_ACTIONS": "More actions", + "OPEN": "More", + "CLOSE": "Close", + "DETAILS": "details", + "SNOOZED_UNTIL": "Snoozed until", + "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow", + "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week", + "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply", + "SLA_STATUS": { + "FRT": "FRT {status}", + "NRT": "NRT {status}", + "RT": "RT {status}", + "MISSED": "missed", + "DUE": "due" + } + }, + "RESOLVE_DROPDOWN": { + "MARK_PENDING": "Mark as pending", + "SNOOZE_UNTIL": "Snooze", + "SNOOZE": { + "TITLE": "Snooze until", + "NEXT_REPLY": "Next reply", + "TOMORROW": "Tomorrow", + "NEXT_WEEK": "Next week" + } + }, + "MENTION": { + "AGENTS": "Agents", + "TEAMS": "Teams" + }, + "CUSTOM_SNOOZE": { + "TITLE": "Snooze until", + "APPLY": "Snooze", + "CANCEL": "Cancel" + }, + "PRIORITY": { + "TITLE": "Priority", + "OPTIONS": { + "NONE": "None", + "URGENT": "Urgent", + "HIGH": "High", + "MEDIUM": "Medium", + "LOW": "Low" + }, + "CHANGE_PRIORITY": { + "SELECT_PLACEHOLDER": "None", + "INPUT_PLACEHOLDER": "Select priority", + "NO_RESULTS": "No results found", + "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}", + "FAILED": "Couldn't change priority. Please try again." + } + }, + "DELETE_CONVERSATION": { + "TITLE": "Delete conversation #{conversationId}", + "DESCRIPTION": "Are you sure you want to delete this conversation?", + "CONFIRM": "Delete" + }, + "CARD_CONTEXT_MENU": { + "PENDING": "Mark as pending", + "RESOLVED": "Mark as resolved", + "MARK_AS_UNREAD": "Mark as unread", + "MARK_AS_READ": "Mark as read", + "REOPEN": "Reopen conversation", + "SNOOZE": { + "TITLE": "Snooze", + "NEXT_REPLY": "Until next reply", + "TOMORROW": "Until tomorrow", + "NEXT_WEEK": "Until next week" + }, + "ASSIGN_AGENT": "Assign agent", + "ASSIGN_LABEL": "Assign label", + "AGENTS_LOADING": "Loading agents...", + "ASSIGN_TEAM": "Assign team", + "DELETE": "Delete conversation", + "OPEN_IN_NEW_TAB": "Open in new tab", + "COPY_LINK": "Copy conversation link", + "COPY_LINK_SUCCESS": "Conversation link copied to clipboard", + "API": { + "AGENT_ASSIGNMENT": { + "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"", + "FAILED": "Couldn't assign agent. Please try again." + }, + "LABEL_ASSIGNMENT": { + "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}", + "FAILED": "Couldn't assign label. Please try again." + }, + "TEAM_ASSIGNMENT": { + "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}", + "FAILED": "Couldn't assign team. Please try again." + } + } + }, + "FOOTER": { + "MESSAGE_SIGN_TOOLTIP": "Message signature", + "ENABLE_SIGN_TOOLTIP": "Enable signature", + "DISABLE_SIGN_TOOLTIP": "Disable signature", + "MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.", + "PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents", + "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.", + "CLICK_HERE": "Click here to update", + "WHATSAPP_TEMPLATES": "Whatsapp Templates" + }, + "REPLYBOX": { + "REPLY": "Reply", + "PRIVATE_NOTE": "Private Note", + "SEND": "Send", + "CREATE": "Add Note", + "INSERT_READ_MORE": "Read more", + "DISMISS_REPLY": "Dismiss reply", + "REPLYING_TO": "Replying to:", + "TIP_FORMAT_ICON": "Show rich text editor", + "TIP_EMOJI_ICON": "Show emoji selector", + "TIP_ATTACH_ICON": "Attach files", + "TIP_AUDIORECORDER_ICON": "Record audio", + "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio", + "TIP_AUDIORECORDER_ERROR": "Could not open the audio", + "DRAG_DROP": "Drag and drop here to attach", + "START_AUDIO_RECORDING": "Start audio recording", + "STOP_AUDIO_RECORDING": "Stop audio recording", + "": "", + "EMAIL_HEAD": { + "TO": "TO", + "ADD_BCC": "Add bcc", + "CC": { + "LABEL": "CC", + "PLACEHOLDER": "Emails separated by commas", + "ERROR": "Please enter valid email addresses" + }, + "BCC": { + "LABEL": "BCC", + "PLACEHOLDER": "Emails separated by commas", + "ERROR": "Please enter valid email addresses" + } + }, + "UNDEFINED_VARIABLES": { + "TITLE": "Undefined variables", + "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?", + "CONFIRM": { + "YES": "Send", + "CANCEL": "Cancel" + } + }, + "QUOTED_REPLY": { + "ENABLE_TOOLTIP": "Include quoted email thread", + "DISABLE_TOOLTIP": "Don't include quoted email thread", + "REMOVE_PREVIEW": "Remove quoted email thread", + "COLLAPSE": "Collapse preview", + "EXPAND": "Expand preview" + } + }, + "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", + "CHANGE_STATUS": "Conversation status changed", + "CHANGE_STATUS_FAILED": "Conversation status change failed", + "CHANGE_AGENT": "Conversation Assignee changed", + "CHANGE_AGENT_FAILED": "Assignee change failed", + "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully", + "ASSIGN_LABEL_FAILED": "Label assignment failed", + "CHANGE_TEAM": "Conversation team changed", + "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully", + "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again", + "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit", + "MESSAGE_ERROR": "Unable to send this message, please try again later", + "SENT_BY": "Sent by:", + "BOT": "Bot", + "SEND_FAILED": "Couldn't send message! Try again", + "TRY_AGAIN": "retry", + "ASSIGNMENT": { + "SELECT_AGENT": "Select Agent", + "REMOVE": "Remove", + "ASSIGN": "Assign" + }, + "CONTEXT_MENU": { + "COPY": "Copy", + "REPLY_TO": "Reply to this message", + "DELETE": "Delete", + "CREATE_A_CANNED_RESPONSE": "Add to canned responses", + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } + }, + "SIDEBAR": { + "CONTACT": "Contact", + "COPILOT": "Copilot" + } + }, + "EMAIL_TRANSCRIPT": { + "TITLE": "Send conversation transcript", + "DESC": "Send a copy of the conversation transcript to the specified email address", + "SUBMIT": "Submit", + "CANCEL": "Cancel", + "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully", + "SEND_EMAIL_ERROR": "There was an error, please try again", + "FORM": { + "SEND_TO_CONTACT": "Send the transcript to the customer", + "SEND_TO_AGENT": "Send the transcript to the assigned agent", + "SEND_TO_OTHER_EMAIL_ADDRESS": "Send the transcript to another email address", + "EMAIL": { + "PLACEHOLDER": "Enter an email address", + "ERROR": "Please enter a valid email address" + } + } + }, + "ONBOARDING": { + "TITLE": "Hey 👋, Welcome to {installationName}!", + "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.", + "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.", + "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.", + "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.", + "READ_LATEST_UPDATES": "Read our latest updates", + "ALL_CONVERSATION": { + "TITLE": "All your conversations in one place", + "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.", + "NEW_LINK": "Click here to create an inbox" + }, + "TEAM_MEMBERS": { + "TITLE": "Invite your team members", + "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.", + "NEW_LINK": "Click here to invite a team member" + }, + "LABELS": { + "TITLE": "Organize conversations with labels", + "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.", + "NEW_LINK": "Click here to create tags" + }, + "CANNED_RESPONSES": { + "TITLE": "Create canned responses", + "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.", + "NEW_LINK": "Click here to create a canned response" + } + }, + "CONVERSATION_SIDEBAR": { + "ASSIGNEE_LABEL": "Assigned Agent", + "SELF_ASSIGN": "Assign to me", + "TEAM_LABEL": "Assigned Team", + "SELECT": { + "PLACEHOLDER": "None" + }, + "ACCORDION": { + "CONTACT_DETAILS": "Contact Details", + "CONVERSATION_ACTIONS": "Conversation Actions", + "CONVERSATION_LABELS": "Conversation Labels", + "CONVERSATION_INFO": "Conversation Information", + "CONTACT_NOTES": "Contact Notes", + "CONTACT_ATTRIBUTES": "Contact Attributes", + "PREVIOUS_CONVERSATION": "Previous Conversations", + "MACROS": "Macros", + "LINEAR_ISSUES": "Linked Linear Issues", + "SHOPIFY_ORDERS": "Shopify Orders" + }, + "SHOPIFY": { + "ORDER_ID": "Order #{id}", + "ERROR": "Error loading orders", + "NO_SHOPIFY_ORDERS": "No orders found", + "FINANCIAL_STATUS": { + "PENDING": "Pending", + "AUTHORIZED": "Authorized", + "PARTIALLY_PAID": "Partially Paid", + "PAID": "Paid", + "PARTIALLY_REFUNDED": "Partially Refunded", + "REFUNDED": "Refunded", + "VOIDED": "Voided" + }, + "FULFILLMENT_STATUS": { + "FULFILLED": "Fulfilled", + "PARTIALLY_FULFILLED": "Partially Fulfilled", + "UNFULFILLED": "Unfulfilled" + } + } + }, + "CONVERSATION_CUSTOM_ATTRIBUTES": { + "ADD_BUTTON_TEXT": "Create attribute", + "NO_RECORDS_FOUND": "No attributes found", + "UPDATE": { + "SUCCESS": "Attribute updated successfully", + "ERROR": "Unable to update attribute. Please try again later" + }, + "ADD": { + "TITLE": "Add", + "SUCCESS": "Attribute added successfully", + "ERROR": "Unable to add attribute. Please try again later" + }, + "DELETE": { + "SUCCESS": "Attribute deleted successfully", + "ERROR": "Unable to delete attribute. Please try again later" + }, + "ATTRIBUTE_SELECT": { + "TITLE": "Add attributes", + "PLACEHOLDER": "Search attributes", + "NO_RESULT": "No attributes found" + } + }, + "EMAIL_HEADER": { + "FROM": "From", + "TO": "To", + "BCC": "Bcc", + "CC": "Cc", + "SUBJECT": "Subject", + "EXPAND": "Expand email" + }, + "CONVERSATION_PARTICIPANTS": { + "SIDEBAR_MENU_TITLE": "Participating", + "SIDEBAR_TITLE": "Conversation participants", + "NO_RECORDS_FOUND": "No results found", + "ADD_PARTICIPANTS": "Select participants", + "REMANING_PARTICIPANTS_TEXT": "+{count} others", + "REMANING_PARTICIPANT_TEXT": "+{count} other", + "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.", + "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.", + "NO_PARTICIPANTS_TEXT": "No one is participating!.", + "WATCH_CONVERSATION": "Join conversation", + "YOU_ARE_WATCHING": "You are participating", + "API": { + "ERROR_MESSAGE": "Could not update, try again!", + "SUCCESS_MESSAGE": "Participants updated!" + } + }, + "TRANSLATE_MODAL": { + "TITLE": "View translated content", + "DESC": "You can view the translated content in each langauge.", + "ORIGINAL_CONTENT": "Original Content", + "TRANSLATED_CONTENT": "Translated Content", + "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content" + }, + "TYPING": { + "ONE": "{user} is typing", + "TWO": "{user} and {secondUser} are typing", + "MULTIPLE": "{user} and {count} others are typing" + }, + "COPILOT": { + "TRY_THESE_PROMPTS": "Try these prompts" + }, + "GALLERY_VIEW": { + "ERROR_DOWNLOADING": "Unable to download attachment. Please try again" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/csatMgmt.json b/app/javascript/dashboard/i18n/locale/bn/csatMgmt.json new file mode 100644 index 000000000..9e16dc2b3 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/csatMgmt.json @@ -0,0 +1,13 @@ +{ + "CSAT": { + "TITLE": "Rate your conversation", + "PLACEHOLDER": "Tell us more...", + "RATINGS": { + "POOR": "😞 Poor", + "FAIR": "😑 Fair", + "AVERAGE": "😐 Average", + "GOOD": "😀 Good", + "EXCELLENT": "😍 Excellent" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/customRole.json b/app/javascript/dashboard/i18n/locale/bn/customRole.json new file mode 100644 index 000000000..b7b48b5e7 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/customRole.json @@ -0,0 +1,91 @@ +{ + "CUSTOM_ROLE": { + "HEADER": "Custom Roles", + "LEARN_MORE": "Learn more about custom roles", + "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.", + "HEADER_BTN_TXT": "Add custom role", + "LOADING": "Fetching custom roles...", + "SEARCH_404": "There are no items matching this query.", + "PAYWALL": { + "TITLE": "Upgrade to create custom roles", + "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.", + "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.", + "UPGRADE_NOW": "Upgrade now", + "CANCEL_ANYTIME": "You can change or cancel your plan anytime" + }, + "ENTERPRISE_PAYWALL": { + "AVAILABLE_ON": "The custom role feature is only available in the paid plans.", + "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.", + "ASK_ADMIN": "Please reach out to your administrator for the upgrade." + }, + "LIST": { + "404": "There are no custom roles available in this account.", + "TITLE": "Manage custom roles", + "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.", + "TABLE_HEADER": { + "NAME": "Name", + "DESCRIPTION": "Description", + "PERMISSIONS": "Permissions", + "ACTIONS": "Actions" + } + }, + "PERMISSIONS": { + "CONVERSATION_MANAGE": "Manage all conversations", + "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them", + "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them", + "CONTACT_MANAGE": "Manage contacts", + "REPORT_MANAGE": "Manage reports", + "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base" + }, + "FORM": { + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Please enter a name.", + "ERROR": "Name is required." + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Please enter a description.", + "ERROR": "Description is required." + }, + "PERMISSIONS": { + "LABEL": "Permissions", + "ERROR": "Permissions are required." + }, + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + } + }, + "ADD": { + "TITLE": "Add custom role", + "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.", + "SUBMIT": "Submit", + "API": { + "SUCCESS_MESSAGE": "Custom role added successfully." + } + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "TITLE": "Edit custom role", + "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.", + "SUBMIT": "Update", + "API": { + "SUCCESS_MESSAGE": "Custom role updated successfully." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Custom role deleted successfully.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "CONFIRM": { + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, delete ", + "NO": "No, keep " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/datePicker.json b/app/javascript/dashboard/i18n/locale/bn/datePicker.json new file mode 100644 index 000000000..c7ef06880 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/datePicker.json @@ -0,0 +1,19 @@ +{ + "DATE_PICKER": { + "APPLY_BUTTON": "Apply", + "CLEAR_BUTTON": "Clear", + "DATE_RANGE_INPUT": { + "START": "Start Date", + "END": "End Date" + }, + "DATE_RANGE_OPTIONS": { + "TITLE": "DATE RANGE", + "LAST_7_DAYS": "Last 7 days", + "LAST_30_DAYS": "Last 30 days", + "LAST_3_MONTHS": "Last 3 months", + "LAST_6_MONTHS": "Last 6 months", + "LAST_YEAR": "Last year", + "CUSTOM_RANGE": "Custom date range" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/emoji.json b/app/javascript/dashboard/i18n/locale/bn/emoji.json new file mode 100644 index 000000000..d5b96f0f9 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/emoji.json @@ -0,0 +1,7 @@ +{ + "EMOJI": { + "PLACEHOLDER": "Search emojis", + "NOT_FOUND": "No emoji match your search", + "REMOVE": "Remove" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/general.json b/app/javascript/dashboard/i18n/locale/bn/general.json new file mode 100644 index 000000000..283cf79c4 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/general.json @@ -0,0 +1,12 @@ +{ + "GENERAL": { + "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items", + "PHONE_INPUT": { + "PLACEHOLDER": "Search", + "EMPTY_STATE": "No results found" + }, + "CLOSE": "Close", + "BETA": "Beta", + "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it." + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/generalSettings.json b/app/javascript/dashboard/i18n/locale/bn/generalSettings.json new file mode 100644 index 000000000..d924bffbd --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/generalSettings.json @@ -0,0 +1,251 @@ +{ + "GENERAL_SETTINGS": { + "LIMIT_MESSAGES": { + "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.", + "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.", + "AGENTS": "You have exceeded the agent limit. Your plan only allows {allowedAgents} agents.", + "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features." + }, + "TITLE": "Account settings", + "SUBMIT": "Update settings", + "BACK": "Back", + "DISMISS": "Dismiss", + "UPDATE": { + "ERROR": "Could not update settings, try again!", + "SUCCESS": "Successfully updated account settings" + }, + "ACCOUNT_DELETE_SECTION": { + "TITLE": "Delete your Account", + "NOTE": "Once you delete your account, all your data will be deleted.", + "BUTTON_TEXT": "Delete Your Account", + "CONFIRM": { + "TITLE": "Delete Account", + "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.", + "BUTTON_TEXT": "Delete", + "DISMISS": "Cancel", + "PLACE_HOLDER": "Please type {accountName} to confirm" + }, + "SUCCESS": "Account marked for deletion", + "FAILURE": "Could not delete account, try again!", + "SCHEDULED_DELETION": { + "TITLE": "Account Scheduled for Deletion", + "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.", + "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.", + "CLEAR_BUTTON": "Cancel Scheduled Deletion" + } + }, + "FORM": { + "ERROR": "Please fix form errors", + "GENERAL_SECTION": { + "TITLE": "General settings", + "NOTE": "" + }, + "ACCOUNT_ID": { + "TITLE": "Account ID", + "NOTE": "This ID is required if you are building an API based integration" + }, + "AUTO_RESOLVE": { + "TITLE": "Auto-resolve conversations", + "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.", + "DURATION": { + "LABEL": "Inactivity duration", + "HELP": "Time period of inactivity after which conversation is auto-resolved", + "PLACEHOLDER": "30", + "ERROR": "Auto resolve duration should be between 10 minutes and 999 days", + "API": { + "SUCCESS": "Auto resolve settings updated successfully", + "ERROR": "Failed to update auto resolve settings" + } + }, + "MESSAGE": { + "LABEL": "Custom auto-resolution message", + "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity", + "HELP": "Message sent to the customer after conversation is auto-resolved" + }, + "PREFERENCES": "Preferences", + "LABEL": { + "LABEL": "Add label after auto-resolution", + "PLACEHOLDER": "Select a label" + }, + "IGNORE_WAITING": { + "LABEL": "Skip conversations waiting for agent’s reply" + }, + "UPDATE_BUTTON": "Save Changes" + }, + "NAME": { + "LABEL": "Account name", + "PLACEHOLDER": "Your account name", + "ERROR": "Please enter a valid account name" + }, + "LANGUAGE": { + "LABEL": "Site language", + "PLACEHOLDER": "Your account name", + "ERROR": "" + }, + "DOMAIN": { + "LABEL": "Incoming Email Domain", + "PLACEHOLDER": "The domain where you will receive the emails", + "ERROR": "" + }, + "SUPPORT_EMAIL": { + "LABEL": "Support Email", + "PLACEHOLDER": "Your company's support email", + "ERROR": "" + }, + "AUTO_RESOLVE_IGNORE_WAITING": { + "LABEL": "Exclude unattended conversations", + "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply." + }, + "AUDIO_TRANSCRIPTION": { + "TITLE": "Transcribe Audio Messages", + "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.", + "API": { + "SUCCESS": "Audio transcription setting updated successfully", + "ERROR": "Failed to update audio transcription setting" + } + }, + "AUTO_RESOLVE_DURATION": { + "LABEL": "Inactivity duration for resolution", + "HELP": "Duration after a conversation should auto resolve if there is no activity", + "PLACEHOLDER": "30", + "ERROR": "Auto resolve duration should be between 10 minutes and 999 days", + "API": { + "SUCCESS": "Auto resolve settings updated successfully", + "ERROR": "Failed to update auto resolve settings" + }, + "UPDATE_BUTTON": "Update", + "MESSAGE_LABEL": "Custom resolution message", + "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity", + "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity." + }, + "FEATURES": { + "INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.", + "CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now." + } + }, + "UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.", + "LEARN_MORE": "Learn more", + "PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot", + "UPGRADE": "Upgrade to continue using Chatwoot", + "LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot", + "OPEN_BILLING": "Open billing" + }, + "FORMS": { + "MULTISELECT": { + "ENTER_TO_SELECT": "Press enter to select", + "ENTER_TO_REMOVE": "Press enter to remove", + "NO_OPTIONS": "List is empty", + "SELECT_ONE": "Select one", + "SELECT": "Select" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "DELETE_TITLE": "deleted", + "UNREAD_NOTIFICATION": { + "TITLE": "Unread Notifications", + "ALL_NOTIFICATIONS": "View all notifications", + "LOADING_UNREAD_MESSAGE": "Loading unread notifications...", + "EMPTY_MESSAGE": "You have no unread notifications" + }, + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Name", + "Phone Number", + "Conversations", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "participating_conversation_new_message": "New Message", + "conversation_mention": "Mention", + "sla_missed_first_response": "SLA Missed", + "sla_missed_next_response": "SLA Missed", + "sla_missed_resolution": "SLA Missed" + } + }, + "NETWORK": { + "NOTIFICATION": { + "OFFLINE": "Offline", + "RECONNECTING": "Reconnecting...", + "RECONNECT_SUCCESS": "Reconnected" + }, + "BUTTON": { + "REFRESH": "Refresh" + } + }, + "COMMAND_BAR": { + "SEARCH_PLACEHOLDER": "Search or jump to", + "SECTIONS": { + "GENERAL": "General", + "REPORTS": "Reports", + "CONVERSATION": "Conversation", + "BULK_ACTIONS": "Bulk Actions", + "CHANGE_ASSIGNEE": "Change Assignee", + "CHANGE_PRIORITY": "Change Priority", + "CHANGE_TEAM": "Change Team", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "ADD_LABEL": "Add label to the conversation", + "REMOVE_LABEL": "Remove label from the conversation", + "SETTINGS": "Settings", + "AI_ASSIST": "AI Assist", + "APPEARANCE": "Appearance", + "SNOOZE_NOTIFICATION": "Snooze Notification" + }, + "COMMANDS": { + "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", + "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", + "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview", + "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports", + "GO_TO_AGENT_REPORTS": "Go to Agent Reports", + "GO_TO_LABEL_REPORTS": "Go to Label Reports", + "GO_TO_INBOX_REPORTS": "Go to Inbox Reports", + "GO_TO_TEAM_REPORTS": "Go to Team Reports", + "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings", + "GO_TO_SETTINGS_TEAMS": "Go to Team Settings", + "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings", + "GO_TO_SETTINGS_LABELS": "Go to Label Settings", + "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings", + "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings", + "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings", + "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings", + "GO_TO_NOTIFICATIONS": "Go to Notifications", + "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation", + "ASSIGN_AN_AGENT": "Assign an agent", + "AI_ASSIST": "AI Assist", + "ASSIGN_PRIORITY": "Assign priority", + "ASSIGN_A_TEAM": "Assign a team", + "MUTE_CONVERSATION": "Mute conversation", + "UNMUTE_CONVERSATION": "Unmute conversation", + "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation", + "REOPEN_CONVERSATION": "Reopen conversation", + "RESOLVE_CONVERSATION": "Resolve conversation", + "SEND_TRANSCRIPT": "Send an email transcript", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "UNTIL_NEXT_REPLY": "Until next reply", + "UNTIL_NEXT_WEEK": "Until next week", + "UNTIL_TOMORROW": "Until tomorrow", + "UNTIL_NEXT_MONTH": "Until next month", + "AN_HOUR_FROM_NOW": "Until an hour from now", + "UNTIL_CUSTOM_TIME": "Custom...", + "CHANGE_APPEARANCE": "Change Appearance", + "LIGHT_MODE": "Light", + "DARK_MODE": "Dark", + "SYSTEM_MODE": "System", + "SNOOZE_NOTIFICATION": "Snooze Notification" + } + }, + "DASHBOARD_APPS": { + "LOADING_MESSAGE": "Loading Dashboard App..." + }, + "COMMON": { + "OR": "Or", + "CLICK_HERE": "click here" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/helpCenter.json b/app/javascript/dashboard/i18n/locale/bn/helpCenter.json new file mode 100644 index 000000000..0ab8d62ff --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/helpCenter.json @@ -0,0 +1,865 @@ +{ + "HELP_CENTER": { + "TITLE": "Help Center", + "NEW_PAGE": { + "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.", + "CREATE_PORTAL_BUTTON": "Create Portal" + }, + "HEADER": { + "FILTER": "Filter by", + "SORT": "Sort by", + "LOCALE": "Locale", + "SETTINGS_BUTTON": "Settings", + "NEW_BUTTON": "New Article", + "DROPDOWN_OPTIONS": { + "PUBLISHED": "Published", + "DRAFT": "Draft", + "ARCHIVED": "Archived" + }, + "TITLES": { + "ALL_ARTICLES": "All Articles", + "MINE": "My Articles", + "DRAFT": "Draft Articles", + "ARCHIVED": "Archived Articles" + }, + "LOCALE_SELECT": { + "TITLE": "Select locale", + "PLACEHOLDER": "Select locale", + "NO_RESULT": "No locale found", + "SEARCH_PLACEHOLDER": "Search locale" + } + }, + "EDIT_HEADER": { + "ALL_ARTICLES": "All Articles", + "PUBLISH_BUTTON": "Publish", + "MOVE_TO_ARCHIVE_BUTTON": "Move to archived", + "PREVIEW": "Preview", + "ADD_TRANSLATION": "Add translation", + "OPEN_SIDEBAR": "Open sidebar", + "CLOSE_SIDEBAR": "Close sidebar", + "SAVING": "Saving...", + "SAVED": "Saved" + }, + "ARTICLE_EDITOR": { + "IMAGE_UPLOAD": { + "TITLE": "Upload image", + "UPLOADING": "Uploading...", + "SUCCESS": "Image uploaded successfully", + "ERROR": "Error while uploading image", + "UN_AUTHORIZED_ERROR": "You are not authorized to upload images", + "ERROR_FILE_SIZE": "Image size should be less than {size}MB", + "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png", + "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000" + } + }, + "ARTICLE_SETTINGS": { + "TITLE": "Article Settings", + "FORM": { + "CATEGORY": { + "LABEL": "Category", + "TITLE": "Select category", + "PLACEHOLDER": "Select category", + "NO_RESULT": "No category found", + "SEARCH_PLACEHOLDER": "Search category" + }, + "AUTHOR": { + "LABEL": "Author", + "TITLE": "Select author", + "PLACEHOLDER": "Select author", + "NO_RESULT": "No authors found", + "SEARCH_PLACEHOLDER": "Search author" + }, + "META_TITLE": { + "LABEL": "Meta title", + "PLACEHOLDER": "Add a meta title" + }, + "META_DESCRIPTION": { + "LABEL": "Meta description", + "PLACEHOLDER": "Add your meta description for better SEO results..." + }, + "META_TAGS": { + "LABEL": "Meta tags", + "PLACEHOLDER": "Add meta tags separated by comma..." + } + }, + "BUTTONS": { + "ARCHIVE": "Archive article", + "DELETE": "Delete article" + } + }, + "ARTICLE_SEARCH_RESULT": { + "UNCATEGORIZED": "Uncategorized", + "SEARCH_RESULTS": "Search results for {query}", + "EMPTY_TEXT": "Search for articles to insert into replies.", + "SEARCH_LOADER": "Searching...", + "INSERT_ARTICLE": "Insert", + "NO_RESULT": "No articles found", + "COPY_LINK": "Copy article link to clipboard", + "OPEN_LINK": "Open article in new tab", + "PREVIEW_LINK": "Preview article" + }, + "PORTAL": { + "HEADER": "Portals", + "DEFAULT": "Default", + "NEW_BUTTON": "New Portal", + "ACTIVE_BADGE": "active", + "CHOOSE_LOCALE_LABEL": "Choose a locale", + "LOADING_MESSAGE": "Loading portals...", + "ARTICLES_LABEL": "articles", + "NO_PORTALS_MESSAGE": "There are no available portals", + "ADD_NEW_LOCALE": "Add a new locale", + "POPOVER": { + "TITLE": "Portals", + "PORTAL_SETTINGS": "Portal settings", + "SUBTITLE": "You have multiple portals and can have different locales for each portal.", + "CANCEL_BUTTON_LABEL": "Cancel", + "CHOOSE_LOCALE_BUTTON": "Choose Locale" + }, + "PORTAL_SETTINGS": { + "LIST_ITEM": { + "HEADER": { + "COUNT_LABEL": "articles", + "ADD": "Add locale", + "VISIT": "Visit site", + "SETTINGS": "Settings", + "DELETE": "Delete" + }, + "PORTAL_CONFIG": { + "TITLE": "Portal Configurations", + "ITEMS": { + "NAME": "Name", + "DOMAIN": "Custom domain", + "SLUG": "Slug", + "TITLE": "Portal title", + "THEME": "Theme color", + "SUB_TEXT": "Portal sub text" + } + }, + "AVAILABLE_LOCALES": { + "TITLE": "Available locales", + "TABLE": { + "NAME": "Locale name", + "CODE": "Locale code", + "ARTICLE_COUNT": "No. of articles", + "CATEGORIES": "No. of categories", + "SWAP": "Swap", + "DELETE": "Delete", + "DEFAULT_LOCALE": "Default" + } + } + }, + "DELETE_PORTAL": { + "TITLE": "Delete portal", + "MESSAGE": "Are you sure you want to delete this portal", + "YES": "Yes, delete portal", + "NO": "No, keep portal", + "API": { + "DELETE_SUCCESS": "Portal deleted successfully", + "DELETE_ERROR": "Error while deleting portal" + } + }, + "SEND_CNAME_INSTRUCTIONS": { + "API": { + "SUCCESS_MESSAGE": "CNAME instructions sent successfully", + "ERROR_MESSAGE": "Error while sending CNAME instructions" + } + } + }, + "EDIT": { + "HEADER_TEXT": "Edit portal", + "TABS": { + "BASIC_SETTINGS": { + "TITLE": "Basic information" + }, + "CUSTOMIZATION_SETTINGS": { + "TITLE": "Portal customization" + }, + "CATEGORY_SETTINGS": { + "TITLE": "Categories" + }, + "LOCALE_SETTINGS": { + "TITLE": "Locales" + } + }, + "CATEGORIES": { + "TITLE": "Categories in", + "NEW_CATEGORY": "New category", + "TABLE": { + "NAME": "Name", + "DESCRIPTION": "Description", + "LOCALE": "Locale", + "ARTICLE_COUNT": "No. of articles", + "ACTION_BUTTON": { + "EDIT": "Edit category", + "DELETE": "Delete category" + }, + "EMPTY_TEXT": "No categories found" + } + }, + "EDIT_BASIC_INFO": { + "BUTTON_TEXT": "Update basic settings" + } + }, + "ADD": { + "CREATE_FLOW": { + "BASIC": { + "TITLE": "Help center information", + "BODY": "Basic information about portal" + }, + "CUSTOMIZATION": { + "TITLE": "Help center customization", + "BODY": "Customize portal" + }, + "FINISH": { + "TITLE": "Voila! 🎉", + "BODY": "You're all set!" + } + }, + "CREATE_FLOW_PAGE": { + "BACK_BUTTON": "Back", + "BASIC_SETTINGS_PAGE": { + "HEADER": "Create Portal", + "TITLE": "Help center information", + "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings" + }, + "CUSTOMIZATION_PAGE": { + "HEADER": "Portal customisation", + "TITLE": "Help center customization", + "UPDATE_PORTAL_BUTTON": "Update portal settings" + }, + "FINISH_PAGE": { + "TITLE": "Voila!🎉 You're all set up!", + "MESSAGE": "You can now see this created portal on your all portals page.", + "FINISH": "Go to all portals page" + } + }, + "LOGO": { + "LABEL": "Logo", + "UPLOAD_BUTTON": "Upload logo", + "HELP_TEXT": "This logo will be displayed on the portal header.", + "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully", + "IMAGE_UPLOAD_ERROR": "Logo deleted successfully", + "IMAGE_DELETE_ERROR": "Error while deleting logo" + }, + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Portal name", + "HELP_TEXT": "The name will be used in the public facing portal internally.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Portal slug for urls", + "ERROR": "Slug is required" + }, + "DOMAIN": { + "LABEL": "Custom Domain", + "PLACEHOLDER": "Portal custom domain", + "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}", + "ERROR": "Enter a valid domain URL" + }, + "HOME_PAGE_LINK": { + "LABEL": "Home Page Link", + "PLACEHOLDER": "Portal home page link", + "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}", + "ERROR": "Enter a valid home page URL" + }, + "THEME_COLOR": { + "LABEL": "Portal theme color", + "HELP_TEXT": "This color will show as the theme color for the portal." + }, + "PAGE_TITLE": { + "LABEL": "Page Title", + "PLACEHOLDER": "Portal page title", + "HELP_TEXT": "The page title will be used in the public facing portal.", + "ERROR": "Page title is required" + }, + "HEADER_TEXT": { + "LABEL": "Header Text", + "PLACEHOLDER": "Portal header text", + "HELP_TEXT": "The Portal header text will be used in the public facing portal.", + "ERROR": "Portal header text is required" + }, + "API": { + "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.", + "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.", + "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.", + "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again." + } + }, + "ADD_LOCALE": { + "TITLE": "Add a new locale", + "SUB_TITLE": "This adds a new locale to your available translation list.", + "PORTAL": "Portal", + "LOCALE": { + "LABEL": "Locale", + "PLACEHOLDER": "Choose a locale", + "ERROR": "Locale is required" + }, + "BUTTONS": { + "CREATE": "Create locale", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Locale added successfully", + "ERROR_MESSAGE": "Unable to add locale. Try again." + } + }, + "CHANGE_DEFAULT_LOCALE": { + "API": { + "SUCCESS_MESSAGE": "Default locale updated successfully", + "ERROR_MESSAGE": "Unable to update default locale. Try again." + } + }, + "DELETE_LOCALE": { + "API": { + "SUCCESS_MESSAGE": "Locale removed from portal successfully", + "ERROR_MESSAGE": "Unable to remove locale from portal. Try again." + } + } + }, + "TABLE": { + "LOADING_MESSAGE": "Loading articles...", + "404": "No articles matches your search 🔍", + "NO_ARTICLES": "There are no available articles", + "HEADERS": { + "TITLE": "Title", + "CATEGORY": "Category", + "READ_COUNT": "Views", + "STATUS": "Status", + "LAST_EDITED": "Last edited" + }, + "COLUMNS": { + "BY": "by", + "AUTHOR_NOT_AVAILABLE": "Author is not available" + } + }, + "EDIT_ARTICLE": { + "LOADING": "Loading article...", + "TITLE_PLACEHOLDER": "Article title goes here", + "CONTENT_PLACEHOLDER": "Write your article here", + "API": { + "ERROR": "Error while saving article" + } + }, + "PUBLISH_ARTICLE": { + "API": { + "ERROR": "Error while publishing article", + "SUCCESS": "Article published successfully" + } + }, + "ARCHIVE_ARTICLE": { + "API": { + "ERROR": "Error while archiving article", + "SUCCESS": "Article archived successfully" + } + }, + "DRAFT_ARTICLE": { + "API": { + "ERROR": "Error while drafting article", + "SUCCESS": "Article drafted successfully" + } + }, + "DELETE_ARTICLE": { + "MODAL": { + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete the article?", + "YES": "Yes, Delete", + "NO": "No, Keep it" + } + }, + "API": { + "SUCCESS_MESSAGE": "Article deleted successfully", + "ERROR_MESSAGE": "Error while deleting article" + } + }, + "CREATE_ARTICLE": { + "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings" + }, + "SIDEBAR": { + "SEARCH": { + "PLACEHOLDER": "Search for articles" + } + }, + "CATEGORY": { + "ADD": { + "TITLE": "Create a category", + "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.", + "PORTAL": "Portal", + "LOCALE": "Locale", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", + "ERROR": "Slug is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + }, + "BUTTONS": { + "CREATE": "Create category", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Category created successfully", + "ERROR_MESSAGE": "Unable to create category" + } + }, + "EDIT": { + "TITLE": "Edit a category", + "SUB_TITLE": "Editing a category will update the category in the public facing portal.", + "PORTAL": "Portal", + "LOCALE": "Locale", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", + "ERROR": "Slug is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + }, + "BUTTONS": { + "CREATE": "Update category", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Category updated successfully", + "ERROR_MESSAGE": "Unable to update category" + } + }, + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Category deleted successfully", + "ERROR_MESSAGE": "Unable to delete category" + } + } + }, + "ARTICLE_SEARCH": { + "TITLE": "Search articles", + "PLACEHOLDER": "Search articles", + "NO_RESULT": "No articles found", + "SEARCHING": "Searching...", + "SEARCH_BUTTON": "Search", + "INSERT_ARTICLE": "Insert link", + "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.", + "OPEN_ARTICLE_SEARCH": "Insert article from Help Center", + "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully", + "PREVIEW_LINK": "Preview article", + "CANCEL": "Close", + "BACK": "Back", + "BACK_RESULTS": "Back to results" + }, + "UPGRADE_PAGE": { + "TITLE": "Help Center", + "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.", + "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.", + "BUTTON": { + "LEARN_MORE": "Learn more", + "UPGRADE": "Upgrade" + }, + "FEATURES": { + "PORTALS": { + "TITLE": "Multiple portals", + "DESCRIPTION": "Create multiple help center portals for different products using the same account." + }, + "LOCALES": { + "TITLE": "Full support for locales", + "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article." + }, + "SEO": { + "TITLE": "SEO-friendly design", + "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages." + }, + "API": { + "TITLE": "Full API support", + "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs." + } + } + }, + "LOADING": "Loading...", + "ARTICLES_PAGE": { + "ARTICLE_CARD": { + "CARD": { + "VIEWS": "{count} view | {count} views", + "DROPDOWN_MENU": { + "PUBLISH": "Publish", + "DRAFT": "Draft", + "ARCHIVE": "Archive", + "DELETE": "Delete" + }, + "STATUS": { + "DRAFT": "Draft", + "PUBLISHED": "Published", + "ARCHIVED": "Archived" + }, + "CATEGORY": { + "UNCATEGORISED": "Uncategorised" + } + } + }, + "ARTICLES_HEADER": { + "TABS": { + "ALL": "All articles", + "MINE": "Mine", + "DRAFT": "Draft", + "PUBLISHED": "Published", + "ARCHIVED": "Archived" + }, + "CATEGORY": { + "ALL": "All categories" + }, + "LOCALE": { + "ALL": "All locales" + }, + "NEW_ARTICLE": "New article" + }, + "EMPTY_STATE": { + "ALL": { + "TITLE": "Write an article", + "SUBTITLE": "Write a rich article, let’s get started!", + "BUTTON_LABEL": "New article" + }, + "MINE": { + "TITLE": "You haven't written any articles here", + "SUBTITLE": "All articles written by you show up here for quick access." + }, + "DRAFT": { + "TITLE": "There are no articles in drafts", + "SUBTITLE": "Draft articles will appear here" + }, + "PUBLISHED": { + "TITLE": "There are no published articles", + "SUBTITLE": "Published articles will appear here" + }, + "ARCHIVED": { + "TITLE": "There are no articles in the archive", + "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages" + }, + "CATEGORY": { + "TITLE": "There are no articles in this category", + "SUBTITLE": "Articles in this category will appear here" + } + } + }, + "CATEGORY_PAGE": { + "CATEGORY_HEADER": { + "NEW_CATEGORY": "New category", + "EDIT_CATEGORY": "Edit category", + "CATEGORIES_COUNT": "{n} category | {n} categories", + "BREADCRUMB": { + "CATEGORY_LOCALE": "Categories ({localeCode})", + "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)" + } + }, + "CATEGORY_EMPTY_STATE": { + "TITLE": "No categories found", + "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button." + }, + "CATEGORY_CARD": { + "ARTICLES_COUNT": "{count} article | {count} articles" + }, + "CATEGORY_DIALOG": { + "CREATE": { + "API": { + "SUCCESS_MESSAGE": "Category created successfully", + "ERROR_MESSAGE": "Unable to create category" + } + }, + "EDIT": { + "API": { + "SUCCESS_MESSAGE": "Category updated successfully", + "ERROR_MESSAGE": "Unable to update category" + } + }, + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Category deleted successfully", + "ERROR_MESSAGE": "Unable to delete category" + } + }, + "HEADER": { + "CREATE": "Create category", + "EDIT": "Edit category", + "DESCRIPTION": "Editing a category will update the category in the public facing portal.", + "PORTAL": "Portal", + "LOCALE": "Locale" + }, + "FORM": { + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "ERROR": "Slug is required", + "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + } + }, + "BUTTONS": { + "CREATE": "Create", + "EDIT": "Update", + "CANCEL": "Cancel" + } + } + }, + "LOCALES_PAGE": { + "LOCALES_COUNT": "No locales available | {n} locale | {n} locales", + "NEW_LOCALE_BUTTON_TEXT": "New locale", + "LOCALE_CARD": { + "ARTICLES_COUNT": "{count} article | {count} articles", + "CATEGORIES_COUNT": "{count} category | {count} categories", + "DEFAULT": "Default", + "DROPDOWN_MENU": { + "MAKE_DEFAULT": "Make default", + "DELETE": "Delete" + } + }, + "ADD_LOCALE_DIALOG": { + "TITLE": "Add a new locale", + "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.", + "COMBOBOX": { + "PLACEHOLDER": "Select locale..." + }, + "API": { + "SUCCESS_MESSAGE": "Locale added successfully", + "ERROR_MESSAGE": "Unable to add locale. Try again." + } + } + }, + "EDIT_ARTICLE_PAGE": { + "HEADER": { + "STATUS": { + "SAVING": "Saving...", + "SAVED": "Saved" + }, + "PREVIEW": "Preview", + "PUBLISH": "Publish", + "DRAFT": "Draft", + "ARCHIVE": "Archive", + "BACK_TO_ARTICLES": "Back to articles" + }, + "EDIT_ARTICLE": { + "MORE_PROPERTIES": "More properties", + "UNCATEGORIZED": "Uncategorized", + "EDITOR_PLACEHOLDER": "Write something..." + }, + "ARTICLE_PROPERTIES": { + "ARTICLE_PROPERTIES": "Article properties", + "META_DESCRIPTION": "Meta description", + "META_DESCRIPTION_PLACEHOLDER": "Add meta description", + "META_TITLE": "Meta title", + "META_TITLE_PLACEHOLDER": "Add meta title", + "META_TAGS": "Meta tags", + "META_TAGS_PLACEHOLDER": "Add meta tags" + }, + "API": { + "ERROR": "Error while saving article" + } + }, + "PORTAL_SWITCHER": { + "NEW_PORTAL": "New portal", + "PORTALS": "Portals", + "CREATE_PORTAL": "Create and manage multiple portals", + "ARTICLES": "articles", + "DOMAIN": "domain", + "PORTAL_NAME": "Portal name" + }, + "CREATE_PORTAL_DIALOG": { + "TITLE": "Create new portal", + "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.", + "CONFIRM_BUTTON_LABEL": "Create", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "User Guide | Chatwoot", + "MESSAGE": "Choose an name for your portal.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "user-guide", + "ERROR": "Slug is required", + "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide" + } + }, + "PORTAL_SETTINGS": { + "FORM": { + "AVATAR": { + "LABEL": "Logo", + "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again", + "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo", + "IMAGE_DELETE_SUCCESS": "Logo deleted successfully", + "IMAGE_DELETE_ERROR": "Unable to delete logo", + "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB" + }, + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Portal name", + "ERROR": "Name is required" + }, + "HEADER_TEXT": { + "LABEL": "Header text", + "PLACEHOLDER": "Portal header text" + }, + "PAGE_TITLE": { + "LABEL": "Page title", + "PLACEHOLDER": "Portal page title" + }, + "HOME_PAGE_LINK": { + "LABEL": "Home page link", + "PLACEHOLDER": "Portal home page link", + "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'." + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Portal slug" + }, + "LIVE_CHAT_WIDGET": { + "LABEL": "Live chat widget", + "PLACEHOLDER": "Select live chat widget", + "HELP_TEXT": "Select a live chat widget that will appear on your help center", + "NONE_OPTION": "No widget" + }, + "BRAND_COLOR": { + "LABEL": "Brand color" + }, + "SAVE_CHANGES": "Save changes" + }, + "CONFIGURATION_FORM": { + "CUSTOM_DOMAIN": { + "HEADER": "Custom domain", + "LABEL": "Custom domain:", + "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.", + "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.", + "PLACEHOLDER": "Portal custom domain", + "EDIT_BUTTON": "Edit", + "ADD_BUTTON": "Add custom domain", + "STATUS": { + "LIVE": "Live", + "PENDING": "Awaiting verification", + "ERROR": "Verification failed" + }, + "DIALOG": { + "ADD_HEADER": "Add custom domain", + "EDIT_HEADER": "Edit custom domain", + "ADD_CONFIRM_BUTTON_LABEL": "Add domain", + "EDIT_CONFIRM_BUTTON_LABEL": "Update domain", + "LABEL": "Custom domain", + "PLACEHOLDER": "Portal custom domain", + "ERROR": "Custom domain is required", + "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com" + }, + "DNS_CONFIGURATION_DIALOG": { + "HEADER": "DNS configuration", + "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help", + "COPY": "Successfully copied CNAME", + "SEND_INSTRUCTIONS": { + "HEADER": "Send instructions", + "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.", + "PLACEHOLDER": "Enter their email", + "ERROR": "Enter a valid email address", + "SEND_BUTTON": "Send" + } + } + }, + "DELETE_PORTAL": { + "BUTTON": "Delete {portalName}", + "HEADER": "Delete portal", + "DESCRIPTION": "Permanently delete this portal. This action is irreversible", + "DIALOG": { + "HEADER": "Sure you want to delete {portalName}?", + "DESCRIPTION": "This is a permanent action that cannot be reversed.", + "CONFIRM_BUTTON_LABEL": "Delete" + } + }, + "EDIT_CONFIGURATION": "Edit configuration" + }, + "API": { + "CREATE_PORTAL": { + "SUCCESS_MESSAGE": "Portal created successfully", + "ERROR_MESSAGE": "Unable to create portal" + }, + "UPDATE_PORTAL": { + "SUCCESS_MESSAGE": "Portal updated successfully", + "ERROR_MESSAGE": "Unable to update portal" + } + } + }, + "PDF_UPLOAD": { + "TITLE": "Upload PDF Document", + "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI", + "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select", + "SELECT_FILE": "Select PDF File", + "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)", + "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...", + "UPLOADING": "Uploading...", + "UPLOAD": "Upload & Process", + "CANCEL": "Cancel", + "ERROR_INVALID_TYPE": "Please select a valid PDF file", + "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB", + "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again." + }, + "PDF_DOCUMENTS": { + "TITLE": "PDF Documents", + "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them", + "UPLOAD_PDF": "Upload PDF", + "UPLOAD_FIRST_PDF": "Upload your first PDF", + "UPLOADED_BY": "Uploaded by", + "GENERATE_FAQS": "Generate FAQs", + "GENERATING": "Generating...", + "CONFIRM_DELETE": "Are you sure you want to delete {filename}?", + "EMPTY_STATE": { + "TITLE": "No PDF documents yet", + "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI" + }, + "STATUS": { + "UPLOADED": "Ready", + "PROCESSING": "Processing", + "PROCESSED": "Completed", + "FAILED": "Failed" + } + }, + "CONTENT_GENERATION": { + "TITLE": "Content Generation", + "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI", + "UPLOAD_TITLE": "Upload PDF Document", + "DRAG_DROP": "Drag and drop your PDF file here, or click to select", + "SELECT_FILE": "Select PDF File", + "UPLOADING": "Processing document...", + "UPLOAD_SUCCESS": "Document processed successfully!", + "UPLOAD_ERROR": "Failed to upload document. Please try again.", + "INVALID_FILE_TYPE": "Please select a valid PDF file", + "FILE_TOO_LARGE": "File size must be less than 512MB", + "GENERATED_CONTENT": "Generated FAQ Content", + "PUBLISH_SELECTED": "Publish Selected", + "PUBLISHING": "Publishing...", + "FROM_DOCUMENT": "From document", + "NO_CONTENT": "No generated content available. Upload a PDF document to get started.", + "LOADING": "Loading generated content..." + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/inbox.json b/app/javascript/dashboard/i18n/locale/bn/inbox.json new file mode 100644 index 000000000..385e9e4ce --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/inbox.json @@ -0,0 +1,95 @@ +{ + "INBOX": { + "LIST": { + "TITLE": "My Inbox", + "DISPLAY_DROPDOWN": "Display", + "LOADING": "Fetching notifications", + "404": "There are no active notifications in this group.", + "NO_NOTIFICATIONS": "No notifications", + "NOTE": "Notifications from all subscribed inboxes", + "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages", + "SNOOZED_UNTIL": "Snoozed until", + "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow", + "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week" + }, + "ACTION_HEADER": { + "SNOOZE": "Snooze notification", + "DELETE": "Delete notification", + "BACK": "Back" + }, + "TYPES": { + "CONVERSATION_MENTION": "You have been mentioned in a conversation", + "CONVERSATION_CREATION": "New conversation created", + "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in", + "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation", + "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation", + "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation" + }, + "TYPES_NEXT": { + "CONVERSATION_MENTION": "Mentioned", + "CONVERSATION_ASSIGNMENT": "Assigned to you", + "CONVERSATION_CREATION": "New Conversation", + "SLA_MISSED_FIRST_RESPONSE": "SLA breach", + "SLA_MISSED_NEXT_RESPONSE": "SLA breach", + "SLA_MISSED_RESOLUTION": "SLA breach", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message", + "SNOOZED_UNTIL": "Snoozed for {time}", + "SNOOZED_ENDS": "Snooze ended" + }, + "NO_CONTENT": "No content available", + "MENU_ITEM": { + "MARK_AS_READ": "Mark as read", + "MARK_AS_UNREAD": "Mark as unread", + "SNOOZE": "Snooze", + "DELETE": "Delete", + "MARK_ALL_READ": "Mark all as read", + "DELETE_ALL": "Delete all", + "DELETE_ALL_READ": "Delete all read" + }, + "DISPLAY_MENU": { + "SORT": "Sort", + "DISPLAY": "Display :", + "SORT_OPTIONS": { + "NEWEST": "Newest", + "OLDEST": "Oldest", + "PRIORITY": "Priority" + }, + "DISPLAY_OPTIONS": { + "SNOOZED": "Snoozed", + "READ": "Read", + "LABELS": "Labels", + "CONVERSATION_ID": "Conversation ID" + } + }, + "ALERTS": { + "MARK_AS_READ": "Notification marked as read", + "MARK_AS_UNREAD": "Notification marked as unread", + "SNOOZE": "Notification snoozed", + "DELETE": "Notification deleted", + "MARK_ALL_READ": "All notifications marked as read", + "DELETE_ALL": "All notifications deleted", + "DELETE_ALL_READ": "All read notifications deleted" + }, + "REAUTHORIZE": { + "TITLE": "Reauthorization Required", + "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.", + "BUTTON_TEXT": "Reconnect WhatsApp", + "LOADING_FACEBOOK": "Loading Facebook SDK...", + "SUCCESS": "WhatsApp reconnected successfully", + "ERROR": "Failed to reconnect WhatsApp. Please try again.", + "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.", + "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.", + "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.", + "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.", + "TROUBLESHOOTING": { + "TITLE": "Troubleshooting", + "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site", + "COOKIES": "Third-party cookies must be enabled", + "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json new file mode 100644 index 000000000..87fe57564 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json @@ -0,0 +1,1010 @@ +{ + "INBOX_MGMT": { + "HEADER": "Inboxes", + "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.", + "LEARN_MORE": "Learn more about inboxes", + "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.", + "CLICK_TO_RECONNECT": "Click here to reconnect.", + "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.", + "COMPLETE_REGISTRATION": "Complete Registration", + "LIST": { + "404": "There are no inboxes attached to this account." + }, + "CREATE_FLOW": { + "CHANNEL": { + "TITLE": "Choose Channel", + "BODY": "Choose the provider you want to integrate with Chatwoot." + }, + "INBOX": { + "TITLE": "Create Inbox", + "BODY": "Authenticate your account and create an inbox." + }, + "AGENT": { + "TITLE": "Add Agents", + "BODY": "Add agents to the created inbox." + }, + "FINISH": { + "TITLE": "Voilà!", + "BODY": "You are all set to go!" + } + }, + "ADD": { + "CHANNEL_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)", + "ERROR": "Please enter a valid inbox name" + }, + "WEBSITE_NAME": { + "LABEL": "Website Name", + "PLACEHOLDER": "Enter your website name (eg: Acme Inc)" + }, + "FB": { + "HELP": "PS: By signing in, we only get access to your Page's messages. Your private messages can never be accessed by Chatwoot.", + "CHOOSE_PAGE": "Choose Page", + "CHOOSE_PLACEHOLDER": "Select a page from the list", + "INBOX_NAME": "Inbox Name", + "ADD_NAME": "Add a name for your inbox", + "PICK_NAME": "Pick a Name for your Inbox", + "PICK_A_VALUE": "Pick a value", + "CREATE_INBOX": "Create Inbox" + }, + "INSTAGRAM": { + "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram", + "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile", + "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ", + "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again", + "ERROR_AUTH": "There was an error connecting to Instagram, please try again", + "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.", + "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore." + }, + "TWITTER": { + "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ", + "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again", + "TWEETS": { + "ENABLE": "Create conversations from mentioned Tweets" + } + }, + "WEBSITE_CHANNEL": { + "TITLE": "Website channel", + "DESC": "Create a channel for your website and start supporting your customers via our website widget.", + "LOADING_MESSAGE": "Creating Website Support Channel", + "CHANNEL_AVATAR": { + "LABEL": "Channel Avatar" + }, + "CHANNEL_WEBHOOK_URL": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Please enter your Webhook URL", + "ERROR": "Please enter a valid URL" + }, + "CHANNEL_DOMAIN": { + "LABEL": "Website Domain", + "PLACEHOLDER": "Enter your website domain (eg: acme.com)" + }, + "CHANNEL_WELCOME_TITLE": { + "LABEL": "Welcome Heading", + "PLACEHOLDER": "Hi there !" + }, + "CHANNEL_WELCOME_TAGLINE": { + "LABEL": "Welcome Tagline", + "PLACEHOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback." + }, + "CHANNEL_GREETING_MESSAGE": { + "LABEL": "Channel greeting message", + "PLACEHOLDER": "Acme Inc typically replies in a few hours." + }, + "CHANNEL_GREETING_TOGGLE": { + "LABEL": "Enable channel greeting", + "HELP_TEXT": "Auto-send greeting messages when customers start a conversation and send their first message.", + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "REPLY_TIME": { + "TITLE": "Set Reply time", + "IN_A_FEW_MINUTES": "In a few minutes", + "IN_A_FEW_HOURS": "In a few hours", + "IN_A_DAY": "In a day", + "HELP_TEXT": "This reply time will be displayed on the live chat widget" + }, + "WIDGET_COLOR": { + "LABEL": "Widget Color", + "PLACEHOLDER": "Update the widget color used in widget" + }, + "SUBMIT_BUTTON": "Create inbox", + "API": { + "ERROR_MESSAGE": "We were not able to create a website channel, please try again" + } + }, + "TWILIO": { + "TITLE": "Twilio SMS/WhatsApp Channel", + "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.", + "ACCOUNT_SID": { + "LABEL": "Account SID", + "PLACEHOLDER": "Please enter your Twilio Account SID", + "ERROR": "This field is required" + }, + "API_KEY": { + "USE_API_KEY": "Use API Key Authentication", + "LABEL": "API Key SID", + "PLACEHOLDER": "Please enter your API Key SID", + "ERROR": "This field is required" + }, + "API_KEY_SECRET": { + "LABEL": "API Key Secret", + "PLACEHOLDER": "Please enter your API Key Secret", + "ERROR": "This field is required" + }, + "MESSAGING_SERVICE_SID": { + "LABEL": "Messaging Service SID", + "PLACEHOLDER": "Please enter your Twilio Messaging Service SID", + "ERROR": "This field is required", + "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service" + }, + "CHANNEL_TYPE": { + "LABEL": "Channel Type", + "ERROR": "Please select your Channel Type" + }, + "AUTH_TOKEN": { + "LABEL": "Auth Token", + "PLACEHOLDER": "Please enter your Twilio Auth Token", + "ERROR": "This field is required" + }, + "CHANNEL_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter a inbox name", + "ERROR": "This field is required" + }, + "PHONE_NUMBER": { + "LABEL": "Phone Number", + "PLACEHOLDER": "Please enter the phone number from which message will be sent.", + "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here." + }, + "SUBMIT_BUTTON": "Create Twilio Channel", + "API": { + "ERROR_MESSAGE": "We were not able to authenticate Twilio credentials, please try again" + } + }, + "SMS": { + "TITLE": "SMS Channel", + "DESC": "Start supporting your customers via SMS.", + "PROVIDERS": { + "LABEL": "API Provider", + "TWILIO": "Twilio", + "BANDWIDTH": "Bandwidth" + }, + "API": { + "ERROR_MESSAGE": "We were not able to save the SMS channel" + }, + "BANDWIDTH": { + "ACCOUNT_ID": { + "LABEL": "Account ID", + "PLACEHOLDER": "Please enter your Bandwidth Account ID", + "ERROR": "This field is required" + }, + "API_KEY": { + "LABEL": "API Key", + "PLACEHOLDER": "Please enter your Bandwidth API Key", + "ERROR": "This field is required" + }, + "API_SECRET": { + "LABEL": "API Secret", + "PLACEHOLDER": "Please enter your Bandwidth API Secret", + "ERROR": "This field is required" + }, + "APPLICATION_ID": { + "LABEL": "Application ID", + "PLACEHOLDER": "Please enter your Bandwidth Application ID", + "ERROR": "This field is required" + }, + "INBOX_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter a inbox name", + "ERROR": "This field is required" + }, + "PHONE_NUMBER": { + "LABEL": "Phone number", + "PLACEHOLDER": "Please enter the phone number from which message will be sent.", + "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "SUBMIT_BUTTON": "Create Bandwidth Channel", + "API": { + "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again" + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here." + } + } + }, + "WHATSAPP": { + "TITLE": "WhatsApp Channel", + "DESC": "Start supporting your customers via WhatsApp.", + "PROVIDERS": { + "LABEL": "API Provider", + "WHATSAPP_EMBEDDED": "WhatsApp Business", + "TWILIO": "Twilio", + "WHATSAPP_CLOUD": "WhatsApp Cloud", + "WHATSAPP_CLOUD_DESC": "Quick setup through Meta", + "TWILIO_DESC": "Connect via Twilio credentials", + "360_DIALOG": "360Dialog" + }, + "SELECT_PROVIDER": { + "TITLE": "Select your API provider", + "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials." + }, + "INBOX_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter an inbox name", + "ERROR": "This field is required" + }, + "PHONE_NUMBER": { + "LABEL": "Phone number", + "PLACEHOLDER": "Please enter the phone number from which message will be sent.", + "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "PHONE_NUMBER_ID": { + "LABEL": "Phone number ID", + "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.", + "ERROR": "Please enter a valid value." + }, + "BUSINESS_ACCOUNT_ID": { + "LABEL": "Business Account ID", + "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.", + "ERROR": "Please enter a valid value." + }, + "WEBHOOK_VERIFY_TOKEN": { + "LABEL": "Webhook Verify Token", + "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.", + "ERROR": "Please enter a valid value." + }, + "API_KEY": { + "LABEL": "API key", + "SUBTITLE": "Configure the WhatsApp API key.", + "PLACEHOLDER": "API key", + "ERROR": "Please enter a valid value." + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.", + "WEBHOOK_URL": "Webhook URL", + "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token" + }, + "SUBMIT_BUTTON": "Create WhatsApp Channel", + "EMBEDDED_SIGNUP": { + "TITLE": "Quick setup with Meta", + "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.", + "BENEFITS": { + "TITLE": "Benefits of Embedded Signup:", + "EASY_SETUP": "No manual configuration required", + "SECURE_AUTH": "Secure OAuth based authentication", + "AUTO_CONFIG": "Automatic webhook and phone number configuration" + }, + "LEARN_MORE": { + "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.", + "LINK_TEXT": "this link" + }, + "SUBMIT_BUTTON": "Connect with WhatsApp Business", + "AUTH_PROCESSING": "Authenticating with Meta", + "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...", + "PROCESSING": "Setting up your WhatsApp Business Account", + "LOADING_SDK": "Loading Facebook SDK...", + "CANCELLED": "WhatsApp Signup was cancelled", + "SUCCESS_TITLE": "WhatsApp Business Account Connected!", + "WAITING_FOR_AUTH": "Waiting for authentication...", + "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.", + "SIGNUP_ERROR": "Signup error occurred", + "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.", + "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured", + "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow", + "MANUAL_LINK_TEXT": "manual setup flow" + }, + "API": { + "ERROR_MESSAGE": "We were not able to save the WhatsApp channel" + } + }, + "VOICE": { + "TITLE": "Voice Channel", + "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.", + "PHONE_NUMBER": { + "LABEL": "Phone Number", + "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)", + "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)" + }, + "TWILIO": { + "ACCOUNT_SID": { + "LABEL": "Account SID", + "PLACEHOLDER": "Enter your Twilio Account SID", + "REQUIRED": "Account SID is required" + }, + "AUTH_TOKEN": { + "LABEL": "Auth Token", + "PLACEHOLDER": "Enter your Twilio Auth Token", + "REQUIRED": "Auth Token is required" + }, + "API_KEY_SID": { + "LABEL": "API Key SID", + "PLACEHOLDER": "Enter your Twilio API Key SID", + "REQUIRED": "API Key SID is required" + }, + "API_KEY_SECRET": { + "LABEL": "API Key Secret", + "PLACEHOLDER": "Enter your Twilio API Key Secret", + "REQUIRED": "API Key Secret is required" + } + }, + "CONFIGURATION": { + "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL", + "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.", + "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL", + "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number." + }, + "SUBMIT_BUTTON": "Create Voice Channel", + "API": { + "ERROR_MESSAGE": "We were not able to create the voice channel" + } + }, + "API_CHANNEL": { + "TITLE": "API Channel", + "DESC": "Integrate with API channel and start supporting your customers.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "WEBHOOK_URL": { + "LABEL": "Webhook URL", + "SUBTITLE": "Configure the URL where you want to receive callbacks on events.", + "PLACEHOLDER": "Webhook URL" + }, + "SUBMIT_BUTTON": "Create API Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the api channel" + } + }, + "EMAIL_CHANNEL": { + "TITLE": "Email Channel", + "DESC": "Integrate your email inbox.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "EMAIL": { + "LABEL": "Email", + "SUBTITLE": "Provide the email address where your customers send support requests.", + "PLACEHOLDER": "Email" + }, + "SUBMIT_BUTTON": "Create Email Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the email channel" + }, + "FINISH_MESSAGE": "Start forwarding your emails to the following email address." + }, + "LINE_CHANNEL": { + "TITLE": "LINE Channel", + "DESC": "Integrate with LINE channel and start supporting your customers.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "LINE_CHANNEL_ID": { + "LABEL": "LINE Channel ID", + "PLACEHOLDER": "LINE Channel ID" + }, + "LINE_CHANNEL_SECRET": { + "LABEL": "LINE Channel Secret", + "PLACEHOLDER": "LINE Channel Secret" + }, + "LINE_CHANNEL_TOKEN": { + "LABEL": "LINE Channel Token", + "PLACEHOLDER": "LINE Channel Token" + }, + "SUBMIT_BUTTON": "Create LINE Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the LINE channel" + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here." + } + }, + "TELEGRAM_CHANNEL": { + "TITLE": "Telegram Channel", + "DESC": "Integrate with Telegram channel and start supporting your customers.", + "BOT_TOKEN": { + "LABEL": "Bot Token", + "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.", + "PLACEHOLDER": "Bot Token" + }, + "SUBMIT_BUTTON": "Create Telegram Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the telegram channel" + } + }, + "AUTH": { + "TITLE": "Choose a channel", + "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.", + "TITLE_NEXT": "Complete the setup", + "TITLE_FINISH": "Voilà!", + "CHANNEL": { + "WEBSITE": { + "TITLE": "Website", + "DESCRIPTION": "Create a live-chat widget" + }, + "FACEBOOK": { + "TITLE": "Facebook", + "DESCRIPTION": "Connect your Facebook page" + }, + "WHATSAPP": { + "TITLE": "WhatsApp", + "DESCRIPTION": "Support your customers on WhatsApp" + }, + "EMAIL": { + "TITLE": "Email", + "DESCRIPTION": "Connect with Gmail, Outlook, or other providers" + }, + "SMS": { + "TITLE": "SMS", + "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth" + }, + "API": { + "TITLE": "API", + "DESCRIPTION": "Make a custom channel using our API" + }, + "TELEGRAM": { + "TITLE": "Telegram", + "DESCRIPTION": "Configure Telegram channel using Bot token" + }, + "LINE": { + "TITLE": "Line", + "DESCRIPTION": "Integrate your Line channel" + }, + "INSTAGRAM": { + "TITLE": "Instagram", + "DESCRIPTION": "Connect your instagram account" + }, + "VOICE": { + "TITLE": "Voice", + "DESCRIPTION": "Integrate with Twilio Voice" + } + } + }, + "AGENTS": { + "TITLE": "Agents", + "DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.", + "VALIDATION_ERROR": "Add at least one agent to your new Inbox", + "PICK_AGENTS": "Pick agents for the inbox" + }, + "DETAILS": { + "TITLE": "Inbox Details", + "DESC": "From the dropdown below, select the Facebook Page you want to connect to Chatwoot. You can also give a custom name to your inbox for better identification." + }, + "FINISH": { + "TITLE": "Nailed It!", + "DESC": "You have successfully finished integrating your Facebook Page with Chatwoot. Next time a customer messages your Page, the conversation will automatically appear on your inbox.
We are also providing you with a widget script that you can easily add to your website. Once this is live on your website, customers can message you right from your website without the help of any external tool and the conversation will appear right here, on Chatwoot.
Cool, huh? Well, we sure try to be :)" + }, + "EMAIL_PROVIDER": { + "TITLE": "Select your email provider", + "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials." + }, + "MICROSOFT": { + "TITLE": "Microsoft Email", + "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.", + "EMAIL_PLACEHOLDER": "Enter email address", + "SIGN_IN": "Sign in with Microsoft", + "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again" + }, + "GOOGLE": { + "TITLE": "Google Email", + "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.", + "SIGN_IN": "Sign in with Google", + "EMAIL_PLACEHOLDER": "Enter email address", + "ERROR_MESSAGE": "There was an error connecting to Google, please try again" + } + }, + "DETAILS": { + "LOADING_FB": "Authenticating you with Facebook...", + "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.", + "ERROR_FB_AUTH": "Something went wrong, Please refresh page...", + "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ", + "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.", + "CREATING_CHANNEL": "Creating your Inbox...", + "TITLE": "Configure Inbox Details", + "DESC": "" + }, + "AGENTS": { + "BUTTON_TEXT": "Add agents", + "ADD_AGENTS": "Adding Agents to your Inbox..." + }, + "FINISH": { + "TITLE": "Your Inbox is ready!", + "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting", + "BUTTON_TEXT": "Take me there", + "MORE_SETTINGS": "More settings", + "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox.", + "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox", + "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox", + "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox" + }, + "REAUTH": "Reauthorize", + "VIEW": "View", + "EDIT": { + "API": { + "SUCCESS_MESSAGE": "Inbox settings updated successfully", + "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully", + "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later." + }, + "EMAIL_COLLECT_BOX": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_CSAT": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "SENDER_NAME_SECTION": { + "TITLE": "Sender name", + "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.", + "FOR_EG": "For eg:", + "FRIENDLY": { + "TITLE": "Friendly", + "FROM": "from", + "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly." + }, + "PROFESSIONAL": { + "TITLE": "Professional", + "SUBTITLE": "Use only the configured business name as the sender name in the email header." + }, + "BUSINESS_NAME": { + "BUTTON_TEXT": "+ Configure your business name", + "PLACEHOLDER": "Enter your business name", + "SAVE_BUTTON_TEXT": "Save" + } + }, + "ALLOW_MESSAGES_AFTER_RESOLVED": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_CONTINUITY_VIA_EMAIL": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "LOCK_TO_SINGLE_CONVERSATION": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_HMAC": { + "LABEL": "Enable" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "PLACE_HOLDER": "Please type {inboxName} to confirm", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Inbox deleted successfully", + "ERROR_MESSAGE": "Could not delete inbox. Please try again later.", + "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully", + "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later." + } + }, + "TABS": { + "SETTINGS": "Settings", + "COLLABORATORS": "Collaborators", + "CONFIGURATION": "Configuration", + "CAMPAIGN": "Campaigns", + "PRE_CHAT_FORM": "Pre Chat Form", + "BUSINESS_HOURS": "Business Hours", + "WIDGET_BUILDER": "Widget Builder", + "BOT_CONFIGURATION": "Bot Configuration", + "ACCOUNT_HEALTH": "Account Health", + "CSAT": "CSAT" + }, + "ACCOUNT_HEALTH": { + "TITLE": "Manage your WhatsApp account", + "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed", + "GO_TO_SETTINGS": "Go to Meta Business Manager", + "NO_DATA": "Health data is not available", + "FIELDS": { + "DISPLAY_PHONE_NUMBER": { + "LABEL": "Display phone number", + "TOOLTIP": "Phone number displayed to customers" + }, + "VERIFIED_NAME": { + "LABEL": "Business name", + "TOOLTIP": "Business name verified by WhatsApp" + }, + "DISPLAY_NAME_STATUS": { + "LABEL": "Display name status", + "TOOLTIP": "Status of your business name verification" + }, + "QUALITY_RATING": { + "LABEL": "Quality rating", + "TOOLTIP": "WhatsApp quality rating for your account" + }, + "MESSAGING_LIMIT_TIER": { + "LABEL": "Messaging limit tier", + "TOOLTIP": "Daily messaging limit for your account" + }, + "ACCOUNT_MODE": { + "LABEL": "Account mode", + "TOOLTIP": "Current operating mode of your WhatsApp account" + } + }, + "VALUES": { + "TIERS": { + "TIER_250": "250 customers per 24h", + "TIER_1000": "1K customers per 24h", + "TIER_1K": "1K customers per 24h", + "TIER_10K": "10K customers per 24h", + "TIER_100K": "100K customers per 24h", + "TIER_UNLIMITED": "Unlimited customers per 24h", + "UNKNOWN": "Rating not available" + }, + "STATUSES": { + "APPROVED": "Approved", + "PENDING_REVIEW": "Pending Review", + "AVAILABLE_WITHOUT_REVIEW": "Available Without Review", + "REJECTED": "Rejected", + "DECLINED": "Declined", + "NON_EXISTS": "Non exists" + }, + "MODES": { + "SANDBOX": "Sandbox", + "LIVE": "Live" + } + } + }, + "SETTINGS": "Settings", + "FEATURES": { + "LABEL": "Features", + "DISPLAY_FILE_PICKER": "Display file picker on the widget", + "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" + }, + "SETTINGS_POPUP": { + "MESSENGER_HEADING": "Messenger Script", + "MESSENGER_SUB_HEAD": "Place this button inside your body tag", + "ALLOWED_DOMAINS": { + "TITLE": "Allowed Domains", + "SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.", + "PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)" + }, + "INBOX_AGENTS": "Agents", + "INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox", + "AGENT_ASSIGNMENT": "Conversation Assignment", + "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings", + "UPDATE": "Update", + "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box", + "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation", + "AUTO_ASSIGNMENT": "Enable auto assignment", + "SENDER_NAME_SECTION": "Enable Agent Name in Email", + "SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name", + "ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email", + "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.", + "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation", + "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox", + "INBOX_UPDATE_TITLE": "Inbox Settings", + "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings", + "AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.", + "HMAC_VERIFICATION": "User Identity Validation", + "HMAC_DESCRIPTION": "With this key you can generate a secret token that can be used to verify the identity of your users.", + "HMAC_LINK_TO_DOCS": "You can read more here.", + "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation", + "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests that cannot be verified will be rejected.", + "INBOX_IDENTIFIER": "Inbox Identifier", + "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.", + "FORWARD_EMAIL_TITLE": "Forward to Email", + "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.", + "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved", + "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.", + "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_TITLE": "API Key", + "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key", + "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", + "WHATSAPP_SECTION_UPDATE_BUTTON": "Update", + "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup", + "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.", + "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.", + "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure", + "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business", + "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.", + "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.", + "WHATSAPP_CONNECT_BUTTON": "Connect", + "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!", + "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.", + "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!", + "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.", + "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.", + "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.", + "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.", + "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token", + "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.", + "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates", + "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.", + "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates", + "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.", + "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings" + }, + "HELP_CENTER": { + "LABEL": "Help Center", + "PLACEHOLDER": "Select Help Center", + "SELECT_PLACEHOLDER": "Select Help Center", + "REMOVE": "Remove Help Center", + "SUB_TEXT": "Attach a Help Center with the inbox" + }, + "AUTO_ASSIGNMENT": { + "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit", + "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0", + "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent" + }, + "FACEBOOK_REAUTHORIZE": { + "TITLE": "Reauthorize", + "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", + "MESSAGE_SUCCESS": "Reconnection successful", + "MESSAGE_ERROR": "There was an error, please try again" + }, + "PRE_CHAT_FORM": { + "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.", + "SET_FIELDS": "Pre chat form fields", + "SET_FIELDS_HEADER": { + "FIELDS": "Fields", + "LABEL": "Label", + "PLACE_HOLDER": "Placeholder", + "KEY": "Key", + "TYPE": "Type", + "REQUIRED": "Required" + }, + "ENABLE": { + "LABEL": "Enable pre chat form", + "OPTIONS": { + "ENABLED": "Yes", + "DISABLED": "No" + } + }, + "PRE_CHAT_MESSAGE": { + "LABEL": "Pre chat message", + "PLACEHOLDER": "This message would be visible to the users along with the form" + }, + "REQUIRE_EMAIL": { + "LABEL": "Visitors should provide their name and email address before starting the chat" + } + }, + "CSAT": { + "TITLE": "Enable CSAT", + "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.", + "DISPLAY_TYPE": { + "LABEL": "Display type" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter a message to show users with the form" + }, + "SURVEY_RULE": { + "LABEL": "Survey rule", + "DESCRIPTION_PREFIX": "Send the survey if the conversation", + "DESCRIPTION_SUFFIX": "any of the labels", + "OPERATOR": { + "CONTAINS": "contains", + "DOES_NOT_CONTAINS": "does not contain" + }, + "SELECT_PLACEHOLDER": "select labels" + }, + "NOTE": "Note: CSAT surveys are sent only once per conversation", + "API": { + "SUCCESS_MESSAGE": "CSAT settings updated successfully", + "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later." + } + }, + "BUSINESS_HOURS": { + "TITLE": "Set your availability", + "SUBTITLE": "Set your availability on your livechat widget", + "WEEKLY_TITLE": "Set your weekly hours", + "TIMEZONE_LABEL": "Select timezone", + "UPDATE": "Update business hours settings", + "TOGGLE_AVAILABILITY": "Enable business availability for this inbox", + "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors", + "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.", + "DAY": { + "ENABLE": "Enable availability for this day", + "UNAVAILABLE": "Unavailable", + "HOURS": "hours", + "VALIDATION_ERROR": "Starting time should be before closing time.", + "CHOOSE": "Choose" + }, + "ALL_DAY": "All-Day" + }, + "IMAP": { + "TITLE": "IMAP", + "SUBTITLE": "Set your IMAP details", + "NOTE_TEXT": "To enable SMTP, please configure IMAP.", + "UPDATE": "Update IMAP settings", + "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox", + "TOGGLE_HELP": "Enabling IMAP will help the user to receive email", + "EDIT": { + "SUCCESS_MESSAGE": "IMAP settings updated successfully", + "ERROR_MESSAGE": "Unable to update IMAP settings" + }, + "ADDRESS": { + "LABEL": "Address", + "PLACE_HOLDER": "Address (Eg: imap.gmail.com)" + }, + "PORT": { + "LABEL": "Port", + "PLACE_HOLDER": "Port" + }, + "LOGIN": { + "LABEL": "Login", + "PLACE_HOLDER": "Login" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACE_HOLDER": "Password" + }, + "ENABLE_SSL": "Enable SSL" + }, + "MICROSOFT": { + "TITLE": "Microsoft", + "SUBTITLE": "Reauthorize your MICROSOFT account" + }, + "SMTP": { + "TITLE": "SMTP", + "SUBTITLE": "Set your SMTP details", + "UPDATE": "Update SMTP settings", + "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox", + "TOGGLE_HELP": "Enabling SMTP will help the user to send email", + "EDIT": { + "SUCCESS_MESSAGE": "SMTP settings updated successfully", + "ERROR_MESSAGE": "Unable to update SMTP settings" + }, + "ADDRESS": { + "LABEL": "Address", + "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)" + }, + "PORT": { + "LABEL": "Port", + "PLACE_HOLDER": "Port" + }, + "LOGIN": { + "LABEL": "Login", + "PLACE_HOLDER": "Login" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACE_HOLDER": "Password" + }, + "DOMAIN": { + "LABEL": "Domain", + "PLACE_HOLDER": "Domain" + }, + "ENCRYPTION": "Encryption", + "SSL_TLS": "SSL/TLS", + "START_TLS": "STARTTLS", + "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode", + "AUTH_MECHANISM": "Authentication" + }, + "NOTE": "Note: ", + "WIDGET_BUILDER": { + "WIDGET_OPTIONS": { + "AVATAR": { + "LABEL": "Website Avatar", + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Avatar deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + } + }, + "WEBSITE_NAME": { + "LABEL": "Website Name", + "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)", + "ERROR": "Please enter a valid website name" + }, + "WELCOME_HEADING": { + "LABEL": "Welcome Heading", + "PLACE_HOLDER": "Hi there!" + }, + "WELCOME_TAGLINE": { + "LABEL": "Welcome Tagline", + "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback." + }, + "REPLY_TIME": { + "LABEL": "Reply Time", + "IN_A_FEW_MINUTES": "In a few minutes", + "IN_A_FEW_HOURS": "In a few hours", + "IN_A_DAY": "In a day" + }, + "WIDGET_COLOR_LABEL": "Widget Color", + "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position", + "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type", + "WIDGET_BUBBLE_LAUNCHER_TITLE": { + "DEFAULT": "Chat with us", + "LABEL": "Widget Bubble Launcher Title", + "PLACE_HOLDER": "Chat with us" + }, + "UPDATE": { + "BUTTON_TEXT": "Update Widget Settings", + "API": { + "SUCCESS_MESSAGE": "Widget settings updated successfully", + "ERROR_MESSAGE": "Unable to update widget settings" + } + }, + "WIDGET_VIEW_OPTION": { + "PREVIEW": "Preview", + "SCRIPT": "Script" + }, + "WIDGET_BUBBLE_POSITION": { + "LEFT": "Left", + "RIGHT": "Right" + }, + "WIDGET_BUBBLE_TYPE": { + "STANDARD": "Standard", + "EXPANDED_BUBBLE": "Expanded Bubble" + } + }, + "WIDGET_SCREEN": { + "DEFAULT": "Default", + "CHAT": "Chat" + }, + "REPLY_TIME": { + "IN_A_FEW_MINUTES": "Typically replies in a few minutes", + "IN_A_FEW_HOURS": "Typically replies in a few hours", + "IN_A_DAY": "Typically replies in a day" + }, + "FOOTER": { + "START_CONVERSATION_BUTTON_TEXT": "Start Conversation", + "CHAT_INPUT_PLACEHOLDER": "Type your message" + }, + "BODY": { + "TEAM_AVAILABILITY": { + "ONLINE": "We are Online", + "OFFLINE": "We are away at the moment" + }, + "USER_MESSAGE": "Hi", + "AGENT_MESSAGE": "Hello" + }, + "BRANDING_TEXT": "Powered by Chatwoot", + "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};" + }, + "EMAIL_PROVIDERS": { + "MICROSOFT": { + "TITLE": "Microsoft", + "DESCRIPTION": "Connect with Microsoft" + }, + "GOOGLE": { + "TITLE": "Google", + "DESCRIPTION": "Connect with Google" + }, + "OTHER_PROVIDERS": { + "TITLE": "Other Providers", + "DESCRIPTION": "Connect with Other Providers" + } + }, + "CHANNELS": { + "MESSENGER": "Messenger", + "WEB_WIDGET": "Website", + "TWITTER_PROFILE": "Twitter", + "TWILIO_SMS": "Twilio SMS", + "WHATSAPP": "WhatsApp", + "SMS": "SMS", + "EMAIL": "Email", + "TELEGRAM": "Telegram", + "LINE": "Line", + "API": "API Channel", + "INSTAGRAM": "Instagram", + "VOICE": "Voice" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/integrationApps.json b/app/javascript/dashboard/i18n/locale/bn/integrationApps.json new file mode 100644 index 000000000..b91b434f7 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/integrationApps.json @@ -0,0 +1,62 @@ +{ + "INTEGRATION_APPS": { + "FETCHING": "Fetching Integrations", + "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.", + "HEADER": "Applications", + "STATUS": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "CONFIGURE": "Configure", + "ADD_BUTTON": "Add a new hook", + "DELETE": { + "TITLE": { + "INBOX": "Confirm deletion", + "ACCOUNT": "Disconnect" + }, + "MESSAGE": { + "INBOX": "Are you sure to delete?", + "ACCOUNT": "Are you sure to disconnect?" + }, + "CONFIRM_BUTTON_TEXT": { + "INBOX": "Yes, Delete", + "ACCOUNT": "Yes, Disconnect" + }, + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Hook deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "LIST": { + "FETCHING": "Fetching integration hooks", + "INBOX": "Inbox", + "DELETE": { + "BUTTON_TEXT": "Delete" + } + }, + "ADD": { + "FORM": { + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox" + }, + "SUBMIT": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Integration hook added successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + }, + "DISCONNECT": { + "BUTTON_TEXT": "Disconnect" + }, + "SIDEBAR_DESCRIPTION": { + "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/integrations.json b/app/javascript/dashboard/i18n/locale/bn/integrations.json new file mode 100644 index 000000000..6c1c9e484 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/integrations.json @@ -0,0 +1,980 @@ +{ + "INTEGRATION_SETTINGS": { + "SHOPIFY": { + "DELETE": { + "TITLE": "Delete Shopify Integration", + "MESSAGE": "Are you sure you want to delete the Shopify integration?" + }, + "STORE_URL": { + "TITLE": "Connect Shopify Store", + "LABEL": "Store URL", + "PLACEHOLDER": "your-store.myshopify.com", + "HELP": "Enter your Shopify store's myshopify.com URL", + "CANCEL": "Cancel", + "SUBMIT": "Connect Store" + }, + "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists." + }, + "HEADER": "Integrations", + "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.", + "LEARN_MORE": "Learn more about integrations", + "LOADING": "Fetching integrations", + "CAPTAIN": { + "DISABLED": "Captain is not enabled on your account.", + "CLICK_HERE_TO_CONFIGURE": "Click here to configure", + "LOADING_CONSOLE": "Loading Captain Console...", + "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again." + }, + "WEBHOOK": { + "SUBSCRIBED_EVENTS": "Subscribed Events", + "LEARN_MORE": "Learn more about webhooks", + "FORM": { + "CANCEL": "Cancel", + "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.", + "SUBSCRIPTIONS": { + "LABEL": "Events", + "EVENTS": { + "CONVERSATION_CREATED": "Conversation Created", + "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed", + "CONVERSATION_UPDATED": "Conversation Updated", + "MESSAGE_CREATED": "Message created", + "MESSAGE_UPDATED": "Message updated", + "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user", + "CONTACT_CREATED": "Contact created", + "CONTACT_UPDATED": "Contact updated", + "CONVERSATION_TYPING_ON": "Conversation Typing On", + "CONVERSATION_TYPING_OFF": "Conversation Typing Off" + } + }, + "END_POINT": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Example: {webhookExampleURL}", + "ERROR": "Please enter a valid URL" + }, + "EDIT_SUBMIT": "Update webhook", + "ADD_SUBMIT": "Create webhook" + }, + "TITLE": "Webhook", + "CONFIGURE": "Configure", + "HEADER": "Webhook settings", + "HEADER_BTN_TXT": "Add new webhook", + "LOADING": "Fetching attached webhooks", + "SEARCH_404": "There are no items matching this query", + "SIDEBAR_TXT": "

Webhooks

Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.

For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.

", + "LIST": { + "404": "There are no webhooks configured for this account.", + "TITLE": "Manage webhooks", + "TABLE_HEADER": { + "WEBHOOK_ENDPOINT": "Webhook endpoint", + "ACTIONS": "Actions" + } + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "TITLE": "Edit webhook", + "API": { + "SUCCESS_MESSAGE": "Webhook configuration updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "ADD": { + "CANCEL": "Cancel", + "TITLE": "Add new webhook", + "API": { + "SUCCESS_MESSAGE": "Webhook configuration added successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Webhook deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})", + "YES": "Yes, Delete ", + "NO": "No, Keep it" + } + } + }, + "SLACK": { + "DELETE": "Delete", + "DELETE_CONFIRMATION": { + "TITLE": "Delete the integration", + "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace." + }, + "HELP_TEXT": { + "TITLE": "How to use the Slack Integration?", + "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.", + "SELECTED": "selected" + }, + "SELECT_CHANNEL": { + "OPTION_LABEL": "Select a channel", + "UPDATE": "Update", + "BUTTON_TEXT": "Connect channel", + "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.", + "ATTENTION_REQUIRED": "Attention required", + "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again." + }, + "UPDATE_ERROR": "There was an error updating the integration, please try again", + "UPDATE_SUCCESS": "The channel is connected successfully", + "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again" + }, + "DYTE": { + "CLICK_HERE_TO_JOIN": "Click here to join", + "LEAVE_THE_ROOM": "Leave the room", + "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer", + "JOIN_ERROR": "There was an error joining the call, please try again", + "CREATE_ERROR": "There was an error creating a meeting link, please try again" + }, + "OPEN_AI": { + "AI_ASSIST": "AI Assist", + "WITH_AI": " {option} with AI ", + "OPTIONS": { + "REPLY_SUGGESTION": "Reply Suggestion", + "SUMMARIZE": "Summarize", + "REPHRASE": "Improve Writing", + "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar", + "SHORTEN": "Shorten", + "EXPAND": "Expand", + "MAKE_FRIENDLY": "Change message tone to friendly", + "MAKE_FORMAL": "Use formal tone", + "SIMPLIFY": "Simplify" + }, + "ASSISTANCE_MODAL": { + "DRAFT_TITLE": "Draft content", + "GENERATED_TITLE": "Generated content", + "AI_WRITING": "AI is writing", + "BUTTONS": { + "APPLY": "Use this suggestion", + "CANCEL": "Cancel" + } + }, + "CTA_MODAL": { + "TITLE": "Integrate with OpenAI", + "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.", + "KEY_PLACEHOLDER": "Enter your OpenAI API key", + "BUTTONS": { + "NEED_HELP": "Need help?", + "DISMISS": "Dismiss", + "FINISH": "Finish Setup" + }, + "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.", + "SUCCESS_MESSAGE": "OpenAI integration setup successfully" + }, + "TITLE": "Improve With AI", + "SUMMARY_TITLE": "Summary with AI", + "REPLY_TITLE": "Reply suggestion with AI", + "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.", + "TONE": { + "TITLE": "Tone", + "OPTIONS": { + "PROFESSIONAL": "Professional", + "FRIENDLY": "Friendly" + } + }, + "BUTTONS": { + "GENERATE": "Generate", + "GENERATING": "Generating...", + "CANCEL": "Cancel" + }, + "GENERATE_ERROR": "There was an error processing the content, please verify your OpenAI API key and try again" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Integration deleted successfully" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + }, + "DASHBOARD_APPS": { + "TITLE": "Dashboard Apps", + "HEADER_BTN_TXT": "Add a new dashboard app", + "SIDEBAR_TXT": "

Dashboard Apps

Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.

When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.

To add a new dashboard app, click on the button 'Add a new dashboard app'.

", + "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.", + "LEARN_MORE": "Learn more about Dashboard Apps", + "LIST": { + "404": "There are no dashboard apps configured on this account yet", + "LOADING": "Fetching dashboard apps...", + "TABLE_HEADER": { + "NAME": "Name", + "ENDPOINT": "Endpoint" + }, + "EDIT_TOOLTIP": "Edit app", + "DELETE_TOOLTIP": "Delete app" + }, + "FORM": { + "TITLE_LABEL": "Name", + "TITLE_PLACEHOLDER": "Enter a name for your dashboard app", + "TITLE_ERROR": "A name for the dashboard app is required", + "URL_LABEL": "Endpoint", + "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted", + "URL_ERROR": "A valid URL is required" + }, + "CREATE": { + "HEADER": "Add a new dashboard app", + "FORM_SUBMIT": "Submit", + "FORM_CANCEL": "Cancel", + "API_SUCCESS": "Dashboard app configured successfully", + "API_ERROR": "We couldn't create an app. Please try again later" + }, + "UPDATE": { + "HEADER": "Edit dashboard app", + "FORM_SUBMIT": "Update", + "FORM_CANCEL": "Cancel", + "API_SUCCESS": "Dashboard app updated successfully", + "API_ERROR": "We couldn't update the app. Please try again later" + }, + "DELETE": { + "CONFIRM_YES": "Yes, delete it", + "CONFIRM_NO": "No, keep it", + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete the app - {appName}?", + "API_SUCCESS": "Dashboard app deleted successfully", + "API_ERROR": "We couldn't delete the app. Please try again later" + } + }, + "LINEAR": { + "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue", + "LOADING": "Fetching linear issues...", + "LOADING_ERROR": "There was an error fetching the linear issues, please try again", + "CREATE": "Create", + "LINK": { + "SEARCH": "Search issues", + "SELECT": "Select issue", + "TITLE": "Link", + "EMPTY_LIST": "No linear issues found", + "LOADING": "Loading", + "ERROR": "There was an error fetching the linear issues, please try again", + "LINK_SUCCESS": "Issue linked successfully", + "LINK_ERROR": "There was an error linking the issue, please try again", + "LINK_TITLE": "Conversation (#{conversationId}) with {name}" + }, + "ADD_OR_LINK": { + "TITLE": "Create/link linear issue", + "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Enter title", + "REQUIRED_ERROR": "Title is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Enter description" + }, + "TEAM": { + "LABEL": "Team", + "PLACEHOLDER": "Select team", + "SEARCH": "Search team", + "REQUIRED_ERROR": "Team is required" + }, + "ASSIGNEE": { + "LABEL": "Assignee", + "PLACEHOLDER": "Select assignee", + "SEARCH": "Search assignee" + }, + "PRIORITY": { + "LABEL": "Priority", + "PLACEHOLDER": "Select priority", + "SEARCH": "Search priority" + }, + "LABEL": { + "LABEL": "Label", + "PLACEHOLDER": "Select label", + "SEARCH": "Search label" + }, + "STATUS": { + "LABEL": "Status", + "PLACEHOLDER": "Select status", + "SEARCH": "Search status" + }, + "PROJECT": { + "LABEL": "Project", + "PLACEHOLDER": "Select project", + "SEARCH": "Search project" + } + }, + "CREATE": "Create", + "CANCEL": "Cancel", + "CREATE_SUCCESS": "Issue created successfully", + "CREATE_ERROR": "There was an error creating the issue, please try again", + "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again", + "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again" + }, + "ISSUE": { + "STATUS": "Status", + "PRIORITY": "Priority", + "ASSIGNEE": "Assignee", + "LABELS": "Labels", + "CREATED_AT": "Created at {createdAt}" + }, + "UNLINK": { + "TITLE": "Unlink", + "SUCCESS": "Issue unlinked successfully", + "ERROR": "There was an error unlinking the issue, please try again" + }, + "NO_LINKED_ISSUES": "No linked issues found", + "DELETE": { + "TITLE": "Are you sure you want to delete the integration?", + "MESSAGE": "Are you sure you want to delete the integration?", + "CONFIRM": "Yes, delete", + "CANCEL": "Cancel" + }, + "CTA": { + "TITLE": "Connect to Linear", + "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.", + "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.", + "BUTTON_TEXT": "Connect Linear workspace" + } + }, + "NOTION": { + "DELETE": { + "TITLE": "Are you sure you want to delete the Notion integration?", + "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.", + "CONFIRM": "Yes, delete", + "CANCEL": "Cancel" + } + } + }, + "CAPTAIN": { + "NAME": "Captain", + "HEADER_KNOW_MORE": "Know more", + "COPILOT": { + "TITLE": "Copilot", + "TRY_THESE_PROMPTS": "Try these prompts", + "PANEL_TITLE": "Get started with Copilot", + "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.", + "SEND_MESSAGE": "Send message...", + "EMPTY_MESSAGE": "There was an error generating the response. Please try again.", + "LOADER": "Captain is thinking", + "YOU": "You", + "USE": "Use this", + "RESET": "Reset", + "SHOW_STEPS": "Show steps", + "SELECT_ASSISTANT": "Select Assistant", + "PROMPTS": { + "SUMMARIZE": { + "LABEL": "Summarize this conversation", + "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent" + }, + "SUGGEST": { + "LABEL": "Suggest an answer", + "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information." + }, + "RATE": { + "LABEL": "Rate this conversation", + "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness." + }, + "HIGH_PRIORITY": { + "LABEL": "High priority conversations", + "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant." + }, + "LIST_CONTACTS": { + "LABEL": "List contacts", + "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)." + } + } + }, + "PLAYGROUND": { + "USER": "You", + "ASSISTANT": "Assistant", + "MESSAGE_PLACEHOLDER": "Type your message...", + "HEADER": "Playground", + "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.", + "CREDIT_NOTE": "Messages sent here will count toward your Captain credits." + }, + "PAYWALL": { + "TITLE": "Upgrade to use Captain AI", + "AVAILABLE_ON": "Captain is not available on the free plan.", + "UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.", + "UPGRADE_NOW": "Upgrade now", + "CANCEL_ANYTIME": "You can change or cancel your plan anytime" + }, + "ENTERPRISE_PAYWALL": { + "UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.", + "ASK_ADMIN": "Please reach out to your administrator for the upgrade." + }, + "BANNER": { + "RESPONSES": "You've used over 80% of your response limit. To continue using Captain AI, please upgrade.", + "DOCUMENTS": "Document limit reached. Upgrade to continue using Captain AI." + }, + "FORM": { + "CANCEL": "Cancel", + "CREATE": "Create", + "EDIT": "Update" + }, + "ASSISTANTS": { + "HEADER": "Assistants", + "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.", + "ADD_NEW": "Create a new assistant", + "DELETE": { + "TITLE": "Are you sure to delete the assistant?", + "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "The assistant has been successfully deleted", + "ERROR_MESSAGE": "There was an error deleting the assistant, please try again." + }, + "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.", + "CREATE": { + "TITLE": "Create an assistant", + "SUCCESS_MESSAGE": "The assistant has been successfully created", + "ERROR_MESSAGE": "There was an error creating the assistant, please try again." + }, + "FORM": { + "UPDATE": "Update", + "SECTIONS": { + "BASIC_INFO": "Basic Information", + "SYSTEM_MESSAGES": "System Messages", + "INSTRUCTIONS": "Instructions", + "FEATURES": "Features", + "TOOLS": "Tools " + }, + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Enter assistant name", + "ERROR": "The name is required" + }, + "TEMPERATURE": { + "LABEL": "Response Temperature", + "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs." + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Enter assistant description", + "ERROR": "The description is required" + }, + "PRODUCT_NAME": { + "LABEL": "Product Name", + "PLACEHOLDER": "Enter product name", + "ERROR": "The product name is required" + }, + "WELCOME_MESSAGE": { + "LABEL": "Welcome Message", + "PLACEHOLDER": "Enter welcome message" + }, + "HANDOFF_MESSAGE": { + "LABEL": "Handoff Message", + "PLACEHOLDER": "Enter handoff message" + }, + "RESOLUTION_MESSAGE": { + "LABEL": "Resolution Message", + "PLACEHOLDER": "Enter resolution message" + }, + "INSTRUCTIONS": { + "LABEL": "Instructions", + "PLACEHOLDER": "Enter instructions for the assistant" + }, + "FEATURES": { + "TITLE": "Features", + "ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations", + "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.", + "ALLOW_CITATIONS": "Include source citations in responses" + } + }, + "EDIT": { + "TITLE": "Update the assistant", + "SUCCESS_MESSAGE": "The assistant has been successfully updated", + "ERROR_MESSAGE": "There was an error updating the assistant, please try again.", + "NOT_FOUND": "Could not find the assistant. Please try again." + }, + "SETTINGS": { + "BREADCRUMB": { + "ASSISTANT": "Assistant" + }, + "BASIC_SETTINGS": { + "TITLE": "Basic settings", + "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human." + }, + "SYSTEM_SETTINGS": { + "TITLE": "System settings", + "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human." + }, + "CONTROL_ITEMS": { + "TITLE": "The Fun Stuff", + "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.", + "OPTIONS": { + "GUARDRAILS": { + "TITLE": "Guardrails", + "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic." + }, + "SCENARIOS": { + "TITLE": "Scenarios", + "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”" + }, + "RESPONSE_GUIDELINES": { + "TITLE": "Response guidelines", + "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?" + } + } + } + }, + "OPTIONS": { + "EDIT_ASSISTANT": "Edit Assistant", + "DELETE_ASSISTANT": "Delete Assistant", + "VIEW_CONNECTED_INBOXES": "View connected inboxes" + }, + "EMPTY_STATE": { + "TITLE": "No assistants available", + "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.", + "FEATURE_SPOTLIGHT": { + "TITLE": "Captain Assistant", + "NOTE": "Captain Assistant engages directly with customers, learns from your help docs and past conversations, and delivers instant, accurate responses. It handles the initial queries, providing quick resolutions before transferring to an agent when needed." + } + }, + "GUARDRAILS": { + "TITLE": "Guardrails", + "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.", + "BREADCRUMB": { + "TITLE": "Guardrails" + }, + "BULK_ACTION": { + "SELECTED": "{count} item selected | {count} items selected", + "SELECT_ALL": "Select all ({count})", + "UNSELECT_ALL": "Unselect all ({count})", + "BULK_DELETE_BUTTON": "Delete" + }, + "ADD": { + "SUGGESTED": { + "TITLE": "Example guardrails", + "ADD": "Add all", + "ADD_SINGLE": "Add this", + "SAVE": "Add and save (↵)", + "PLACEHOLDER": "Type in another guardrail..." + }, + "NEW": { + "TITLE": "Add a guardrail", + "CREATE": "Create", + "CANCEL": "Cancel", + "PLACEHOLDER": "Type in another guardrail...", + "TEST_ALL": "Test all" + } + }, + "LIST": { + "SEARCH_PLACEHOLDER": "Search..." + }, + "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.", + "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.", + "API": { + "ADD": { + "SUCCESS": "Guardrails added successfully", + "ERROR": "There was an error adding guardrails, please try again." + }, + "UPDATE": { + "SUCCESS": "Guardrails updated successfully", + "ERROR": "There was an error updating guardrails, please try again." + }, + "DELETE": { + "SUCCESS": "Guardrails deleted successfully", + "ERROR": "There was an error deleting guardrails, please try again." + } + } + }, + "RESPONSE_GUIDELINES": { + "TITLE": "Response Guidelines", + "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?", + "BREADCRUMB": { + "TITLE": "Response Guidelines" + }, + "BULK_ACTION": { + "SELECTED": "{count} item selected | {count} items selected", + "SELECT_ALL": "Select all ({count})", + "UNSELECT_ALL": "Unselect all ({count})", + "BULK_DELETE_BUTTON": "Delete" + }, + "ADD": { + "SUGGESTED": { + "TITLE": "Example response guidelines", + "ADD": "Add all", + "ADD_SINGLE": "Add this", + "SAVE": "Add and save (↵)", + "PLACEHOLDER": "Type in another response guideline..." + }, + "NEW": { + "TITLE": "Add a response guideline", + "CREATE": "Create", + "CANCEL": "Cancel", + "PLACEHOLDER": "Type in another response guideline...", + "TEST_ALL": "Test all" + } + }, + "LIST": { + "SEARCH_PLACEHOLDER": "Search..." + }, + "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.", + "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.", + "API": { + "ADD": { + "SUCCESS": "Response Guidelines added successfully", + "ERROR": "There was an error adding response guidelines, please try again." + }, + "UPDATE": { + "SUCCESS": "Response Guidelines updated successfully", + "ERROR": "There was an error updating response guidelines, please try again." + }, + "DELETE": { + "SUCCESS": "Response Guidelines deleted successfully", + "ERROR": "There was an error deleting response guidelines, please try again." + } + } + }, + "SCENARIOS": { + "TITLE": "Scenarios", + "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”", + "BREADCRUMB": { + "TITLE": "Scenarios" + }, + "BULK_ACTION": { + "SELECTED": "{count} item selected | {count} items selected", + "SELECT_ALL": "Select all ({count})", + "UNSELECT_ALL": "Unselect all ({count})", + "BULK_DELETE_BUTTON": "Delete" + }, + "ADD": { + "SUGGESTED": { + "TITLE": "Example scenarios", + "ADD": "Add all", + "ADD_SINGLE": "Add this", + "TOOLS_USED": "Tools used :" + }, + "NEW": { + "CREATE": "Add a scenario", + "TITLE": "Create a scenario", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Enter a name for the scenario", + "ERROR": "Scenario name is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Describe how and where this scenario will be used", + "ERROR": "Scenario description is required" + }, + "INSTRUCTION": { + "LABEL": "How to handle", + "PLACEHOLDER": "Describe how and where this scenario will be handled", + "ERROR": "Scenario content is required" + }, + "CREATE": "Create", + "CANCEL": "Cancel" + } + } + }, + "UPDATE": { + "CANCEL": "Cancel", + "UPDATE": "Update changes" + }, + "LIST": { + "SEARCH_PLACEHOLDER": "Search..." + }, + "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.", + "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.", + "API": { + "ADD": { + "SUCCESS": "Scenarios added successfully", + "ERROR": "There was an error adding scenarios, please try again." + }, + "UPDATE": { + "SUCCESS": "Scenarios updated successfully", + "ERROR": "There was an error updating scenarios, please try again." + }, + "DELETE": { + "SUCCESS": "Scenarios deleted successfully", + "ERROR": "There was an error deleting scenarios, please try again." + } + } + } + }, + "DOCUMENTS": { + "HEADER": "Documents", + "ADD_NEW": "Create a new document", + "RELATED_RESPONSES": { + "TITLE": "Related FAQs", + "DESCRIPTION": "These FAQs are generated directly from the document." + }, + "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.", + "CREATE": { + "TITLE": "Add a document", + "SUCCESS_MESSAGE": "The document has been successfully created", + "ERROR_MESSAGE": "There was an error creating the document, please try again." + }, + "FORM": { + "TYPE": { + "LABEL": "Document Type", + "URL": "URL", + "PDF": "PDF File" + }, + "URL": { + "LABEL": "URL", + "PLACEHOLDER": "Enter the URL of the document", + "ERROR": "Please provide a valid URL for the document" + }, + "PDF_FILE": { + "LABEL": "PDF File", + "CHOOSE_FILE": "Choose PDF file", + "ERROR": "Please select a PDF file", + "HELP_TEXT": "Maximum file size: 10MB", + "INVALID_TYPE": "Please select a valid PDF file", + "TOO_LARGE": "File size exceeds 10MB limit" + }, + "NAME": { + "LABEL": "Document Name (Optional)", + "PLACEHOLDER": "Enter a name for the document" + }, + "ASSISTANT": { + "LABEL": "Assistant", + "PLACEHOLDER": "Select the assistant", + "ERROR": "The assistant field is required" + } + }, + "DELETE": { + "TITLE": "Are you sure to delete the document?", + "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "The document has been successfully deleted", + "ERROR_MESSAGE": "There was an error deleting the document, please try again." + }, + "OPTIONS": { + "VIEW_RELATED_RESPONSES": "View Related Responses", + "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.", + "FEATURE_SPOTLIGHT": { + "TITLE": "Captain Document", + "NOTE": "A document in Captain serves as a knowledge resource for the assistant. By connecting your help center or guides, Captain can analyze the content and provide accurate responses for customer inquiries." + } + } + }, + "CUSTOM_TOOLS": { + "HEADER": "Tools", + "ADD_NEW": "Create a new tool", + "EMPTY_STATE": { + "TITLE": "No custom tools available", + "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.", + "FEATURE_SPOTLIGHT": { + "TITLE": "Custom Tools", + "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities." + } + }, + "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs", + "OPTIONS": { + "EDIT_TOOL": "Edit tool", + "DELETE_TOOL": "Delete tool" + }, + "CREATE": { + "TITLE": "Create Custom Tool", + "SUCCESS_MESSAGE": "Custom tool created successfully", + "ERROR_MESSAGE": "Failed to create custom tool" + }, + "EDIT": { + "TITLE": "Edit Custom Tool", + "SUCCESS_MESSAGE": "Custom tool updated successfully", + "ERROR_MESSAGE": "Failed to update custom tool" + }, + "DELETE": { + "TITLE": "Delete Custom Tool", + "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "Custom tool deleted successfully", + "ERROR_MESSAGE": "Failed to delete custom tool" + }, + "FORM": { + "TITLE": { + "LABEL": "Tool Name", + "PLACEHOLDER": "Order Lookup", + "ERROR": "Tool name is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Looks up order details by order ID" + }, + "HTTP_METHOD": { + "LABEL": "Method" + }, + "ENDPOINT_URL": { + "LABEL": "Endpoint URL", + "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}", + "ERROR": "Valid URL is required" + }, + "AUTH_TYPE": { + "LABEL": "Authentication Type" + }, + "AUTH_TYPES": { + "NONE": "None", + "BEARER": "Bearer Token", + "BASIC": "Basic Auth", + "API_KEY": "API Key" + }, + "AUTH_CONFIG": { + "BEARER_TOKEN": "Bearer Token", + "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token", + "USERNAME": "Username", + "USERNAME_PLACEHOLDER": "Enter username", + "PASSWORD": "Password", + "PASSWORD_PLACEHOLDER": "Enter password", + "API_KEY": "Header Name", + "API_KEY_PLACEHOLDER": "X-API-Key", + "API_VALUE": "Header Value", + "API_VALUE_PLACEHOLDER": "Enter API key value" + }, + "PARAMETERS": { + "LABEL": "Parameters", + "HELP_TEXT": "Define the parameters that will be extracted from user queries" + }, + "ADD_PARAMETER": "Add Parameter", + "PARAM_NAME": { + "PLACEHOLDER": "Parameter name (e.g., order_id)" + }, + "PARAM_TYPE": { + "PLACEHOLDER": "Type" + }, + "PARAM_TYPES": { + "STRING": "String", + "NUMBER": "Number", + "BOOLEAN": "Boolean", + "ARRAY": "Array", + "OBJECT": "Object" + }, + "PARAM_DESCRIPTION": { + "PLACEHOLDER": "Description of the parameter" + }, + "PARAM_REQUIRED": { + "LABEL": "Required" + }, + "REQUEST_TEMPLATE": { + "LABEL": "Request Body Template (Optional)", + "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}" + }, + "RESPONSE_TEMPLATE": { + "LABEL": "Response Template (Optional)", + "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}" + }, + "ERRORS": { + "PARAM_NAME_REQUIRED": "Parameter name is required" + } + } + }, + "RESPONSES": { + "HEADER": "FAQs", + "ADD_NEW": "Create new FAQ", + "DOCUMENTABLE": { + "CONVERSATION": "Conversation #{id}" + }, + "SELECTED": "{count} selected", + "SELECT_ALL": "Select all ({count})", + "UNSELECT_ALL": "Unselect all ({count})", + "SEARCH_PLACEHOLDER": "Search FAQs...", + "BULK_APPROVE_BUTTON": "Approve", + "BULK_DELETE_BUTTON": "Delete", + "BULK_APPROVE": { + "SUCCESS_MESSAGE": "FAQs approved successfully", + "ERROR_MESSAGE": "There was an error approving the FAQs, please try again." + }, + "BULK_DELETE": { + "TITLE": "Delete FAQs?", + "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.", + "CONFIRM": "Yes, delete all", + "SUCCESS_MESSAGE": "FAQs deleted successfully", + "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again." + }, + "DELETE": { + "TITLE": "Are you sure to delete the FAQ?", + "DESCRIPTION": "", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "FAQ deleted successfully", + "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again." + }, + "FILTER": { + "ASSISTANT": "Assistant: {selected}", + "STATUS": "Status: {selected}", + "ALL_ASSISTANTS": "All" + }, + "STATUS": { + "TITLE": "Status", + "PENDING": "Pending", + "APPROVED": "Approved", + "ALL": "All" + }, + "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.", + "CREATE": { + "TITLE": "Add an FAQ", + "SUCCESS_MESSAGE": "The response has been added successfully.", + "ERROR_MESSAGE": "An error occurred while adding the response. Please try again." + }, + "FORM": { + "QUESTION": { + "LABEL": "Question", + "PLACEHOLDER": "Enter the question here", + "ERROR": "Please provide a valid question." + }, + "ANSWER": { + "LABEL": "Answer", + "PLACEHOLDER": "Enter the answer here", + "ERROR": "Please provide a valid answer." + }, + "ASSISTANT": { + "LABEL": "Assistant", + "PLACEHOLDER": "Select an assistant", + "ERROR": "Please select an assistant." + } + }, + "EDIT": { + "TITLE": "Update the FAQ", + "SUCCESS_MESSAGE": "The FAQ has been successfully updated", + "ERROR_MESSAGE": "There was an error updating the FAQ, please try again", + "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved" + }, + "OPTIONS": { + "APPROVE": "Mark as approved", + "EDIT_RESPONSE": "Edit FAQ", + "DELETE_RESPONSE": "Delete FAQ" + }, + "EMPTY_STATE": { + "TITLE": "No FAQs Found", + "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.", + "FEATURE_SPOTLIGHT": { + "TITLE": "Captain FAQ", + "NOTE": "Captain FAQs detects common customer questions—whether missing from your knowledge base or frequently asked—and generates relevant FAQs to improve support. You can review each suggestion and decide whether to approve or reject it." + } + } + }, + "INBOXES": { + "HEADER": "Connected Inboxes", + "ADD_NEW": "Connect a new inbox", + "OPTIONS": { + "DISCONNECT": "Disconnect" + }, + "DELETE": { + "TITLE": "Are you sure to disconnect the inbox?", + "DESCRIPTION": "", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "The inbox was successfully disconnected.", + "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again." + }, + "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.", + "CREATE": { + "TITLE": "Connect an Inbox", + "SUCCESS_MESSAGE": "The inbox was successfully connected.", + "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again." + }, + "FORM": { + "INBOX": { + "LABEL": "Inbox", + "PLACEHOLDER": "Choose the inbox to deploy the assistant.", + "ERROR": "An inbox selection is required." + } + }, + "EMPTY_STATE": { + "TITLE": "No Connected Inboxes", + "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you." + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json new file mode 100644 index 000000000..705b18d0e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json @@ -0,0 +1,85 @@ +{ + "LABEL_MGMT": { + "HEADER": "Labels", + "HEADER_BTN_TXT": "Add label", + "LOADING": "Fetching labels", + "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.", + "LEARN_MORE": "Learn more about labels", + "SEARCH_404": "There are no items matching this query", + "LIST": { + "404": "There are no labels available in this account.", + "TITLE": "Manage labels", + "DESC": "Labels let you group the conversations together.", + "TABLE_HEADER": { + "NAME": "Name", + "DESCRIPTION": "Description", + "COLOR": "Color" + } + }, + "FORM": { + "NAME": { + "LABEL": "Label Name", + "PLACEHOLDER": "Label name", + "REQUIRED_ERROR": "Label name is required", + "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required", + "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Label Description" + }, + "COLOR": { + "LABEL": "Color" + }, + "SHOW_ON_SIDEBAR": { + "LABEL": "Show label on sidebar" + }, + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel" + }, + "SUGGESTIONS": { + "TOOLTIP": { + "SINGLE_SUGGESTION": "Add label to conversation", + "MULTIPLE_SUGGESTION": "Select this label", + "DESELECT": "Deselect label", + "DISMISS": "Dismiss suggestion" + }, + "POWERED_BY": "Chatwoot AI", + "DISMISS": "Dismiss", + "ADD_SELECTED_LABELS": "Add selected labels", + "ADD_SELECTED_LABEL": "Add selected label", + "ADD_ALL_LABELS": "Add all labels", + "SUGGESTED_LABELS": "Suggested labels" + }, + "ADD": { + "TITLE": "Add label", + "DESC": "Labels let you group the conversations together.", + "API": { + "SUCCESS_MESSAGE": "Label added successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "EDIT": { + "TITLE": "Edit label", + "API": { + "SUCCESS_MESSAGE": "Label updated successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Label deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/login.json b/app/javascript/dashboard/i18n/locale/bn/login.json new file mode 100644 index 000000000..061284247 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/login.json @@ -0,0 +1,41 @@ +{ + "LOGIN": { + "TITLE": "Login to Chatwoot", + "EMAIL": { + "LABEL": "Email", + "PLACEHOLDER": "example{'@'}companyname.com", + "ERROR": "Please enter a valid email address" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password" + }, + "API": { + "SUCCESS_MESSAGE": "Login successful", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again.", + "UNAUTH": "Username or password is incorrect. Please try again." + }, + "OAUTH": { + "GOOGLE_LOGIN": "Login with Google", + "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login", + "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address." + }, + "FORGOT_PASSWORD": "Forgot your password?", + "CREATE_NEW_ACCOUNT": "Create a new account", + "SUBMIT": "Login", + "SAML": { + "LABEL": "Login via SSO", + "TITLE": "Initiate Single Sign-on (SSO)", + "SUBTITLE": "Enter your work email to access your organization", + "BACK_TO_LOGIN": "Login via Password", + "WORK_EMAIL": { + "LABEL": "Work Email", + "PLACEHOLDER": "Enter your work email" + }, + "SUBMIT": "Continue with SSO", + "API": { + "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again." + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/macros.json b/app/javascript/dashboard/i18n/locale/bn/macros.json new file mode 100644 index 000000000..fcb409f34 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/macros.json @@ -0,0 +1,111 @@ +{ + "MACROS": { + "HEADER": "Macros", + "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.", + "LEARN_MORE": "Learn more about macros", + "HEADER_BTN_TXT": "Add a new macro", + "HEADER_BTN_TXT_SAVE": "Save macro", + "LOADING": "Fetching macros", + "ERROR": "Something went wrong. Please try again", + "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.", + "ADD": { + "FORM": { + "NAME": { + "LABEL": "Macro name", + "PLACEHOLDER": "Enter a name for your macro", + "ERROR": "Name is required for creating a macro" + }, + "ACTIONS": { + "LABEL": "Actions" + } + }, + "API": { + "SUCCESS_MESSAGE": "Macro added successfully", + "ERROR_MESSAGE": "Unable to create macro, Please try again later" + } + }, + "LIST": { + "TABLE_HEADER": { + "NAME": "Name", + "CREATED BY": "Created by", + "LAST_UPDATED_BY": "Last updated by", + "VISIBILITY": "Visibility" + }, + "404": "No macros found" + }, + "DELETE": { + "TOOLTIP": "Delete macro", + "CONFIRM": { + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete", + "NO": "No" + }, + "API": { + "SUCCESS_MESSAGE": "Macro deleted successfully", + "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later" + } + }, + "EDIT": { + "TOOLTIP": "Edit macro", + "API": { + "SUCCESS_MESSAGE": "Macro updated successfully", + "ERROR_MESSAGE": "Could not update Macro, Please try again later" + } + }, + "EDITOR": { + "START_FLOW": "Start Flow", + "END_FLOW": "End Flow", + "LOADING": "Fetching macro", + "ADD_BTN_TOOLTIP": "Add new action", + "DELETE_BTN_TOOLTIP": "Delete Action", + "VISIBILITY": { + "LABEL": "Macro Visibility", + "GLOBAL": { + "LABEL": "Public", + "DESCRIPTION": "This macro is available publicly for all agents in this account." + }, + "PERSONAL": { + "LABEL": "Private", + "DESCRIPTION": "This macro will be private to you and not be available to others." + } + } + }, + "EXECUTE": { + "BUTTON_TOOLTIP": "Execute", + "PREVIEW": "Preview Macro", + "EXECUTED_SUCCESSFULLY": "Macro executed successfully" + }, + "ERRORS": { + "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", + "FILTER_OPERATOR_REQUIRED": "Filter operator is required", + "VALUE_REQUIRED": "Value is required", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998", + "ACTION_PARAMETERS_REQUIRED": "Action parameters are required", + "ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required", + "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" + }, + "ACTIONS": { + "ASSIGN_TEAM": "Assign a Team", + "ASSIGN_AGENT": "Assign an Agent", + "ADD_LABEL": "Add a Label", + "REMOVE_LABEL": "Remove a Label", + "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team", + "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript", + "MUTE_CONVERSATION": "Mute Conversation", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "RESOLVE_CONVERSATION": "Resolve Conversation", + "SEND_ATTACHMENT": "Send Attachment", + "SEND_MESSAGE": "Send a Message", + "CHANGE_PRIORITY": "Change Priority", + "ADD_PRIVATE_NOTE": "Add a Private Note", + "SEND_WEBHOOK_EVENT": "Send Webhook Event" + }, + "PRIORITY_TYPES": { + "NONE": "None", + "LOW": "Low", + "MEDIUM": "Medium", + "HIGH": "High", + "URGENT": "Urgent" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/mfa.json b/app/javascript/dashboard/i18n/locale/bn/mfa.json new file mode 100644 index 000000000..f7556fdcf --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/mfa.json @@ -0,0 +1,106 @@ +{ + "MFA_SETTINGS": { + "TITLE": "Two-Factor Authentication", + "SUBTITLE": "Secure your account with TOTP-based authentication", + "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)", + "STATUS_TITLE": "Authentication Status", + "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes", + "ENABLED": "Enabled", + "DISABLED": "Disabled", + "STATUS_ENABLED": "Two-factor authentication is active", + "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security", + "ENABLE_BUTTON": "Enable Two-Factor Authentication", + "ENHANCE_SECURITY": "Enhance Your Account Security", + "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.", + "SETUP": { + "STEP_NUMBER_1": "1", + "STEP_NUMBER_2": "2", + "STEP1_TITLE": "Scan QR Code with Your Authenticator App", + "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app", + "LOADING_QR": "Loading...", + "MANUAL_ENTRY": "Can't scan? Enter code manually", + "SECRET_KEY": "Secret Key", + "COPY": "Copy", + "ENTER_CODE": "Enter the 6-digit code from your authenticator app", + "ENTER_CODE_PLACEHOLDER": "000000", + "VERIFY_BUTTON": "Verify & Continue", + "CANCEL": "Cancel", + "ERROR_STARTING": "MFA not enabled. Please contact administrator.", + "INVALID_CODE": "Invalid verification code", + "SECRET_COPIED": "Secret key copied to clipboard", + "SUCCESS": "Two-factor authentication has been enabled successfully" + }, + "BACKUP": { + "TITLE": "Save Your Backup Codes", + "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator", + "IMPORTANT": "Important:", + "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.", + "DOWNLOAD": "Download", + "COPY_ALL": "Copy All", + "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again", + "COMPLETE_SETUP": "Complete Setup", + "CODES_COPIED": "Backup codes copied to clipboard" + }, + "MANAGEMENT": { + "BACKUP_CODES": "Backup Codes", + "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones", + "REGENERATE": "Regenerate Backup Codes", + "DISABLE_MFA": "Disable 2FA", + "DISABLE_MFA_DESC": "Remove two-factor authentication from your account", + "DISABLE_BUTTON": "Disable Two-Factor Authentication" + }, + "DISABLE": { + "TITLE": "Disable Two-Factor Authentication", + "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.", + "PASSWORD": "Password", + "OTP_CODE": "Verification Code", + "OTP_CODE_PLACEHOLDER": "000000", + "CONFIRM": "Disable 2FA", + "CANCEL": "Cancel", + "SUCCESS": "Two-factor authentication has been disabled", + "ERROR": "Failed to disable MFA. Please check your credentials." + }, + "REGENERATE": { + "TITLE": "Regenerate Backup Codes", + "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.", + "OTP_CODE": "Verification Code", + "OTP_CODE_PLACEHOLDER": "000000", + "CONFIRM": "Generate New Codes", + "CANCEL": "Cancel", + "NEW_CODES_TITLE": "New Backup Codes Generated", + "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.", + "CODES_IMPORTANT": "Important:", + "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.", + "DOWNLOAD_CODES": "Download Codes", + "COPY_ALL_CODES": "Copy All Codes", + "CODES_SAVED": "I've Saved My Codes", + "SUCCESS": "New backup codes have been generated", + "ERROR": "Failed to regenerate backup codes" + } + }, + "MFA_VERIFICATION": { + "TITLE": "Two-Factor Authentication", + "DESCRIPTION": "Enter your verification code to continue", + "AUTHENTICATOR_APP": "Authenticator App", + "BACKUP_CODE": "Backup Code", + "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app", + "ENTER_BACKUP_CODE": "Enter one of your backup codes", + "BACKUP_CODE_PLACEHOLDER": "000000", + "VERIFY_BUTTON": "Verify", + "TRY_ANOTHER_METHOD": "Try another verification method", + "CANCEL_LOGIN": "Cancel and return to login", + "HELP_TEXT": "Having trouble signing in?", + "LEARN_MORE": "Learn more about 2FA", + "HELP_MODAL": { + "TITLE": "Two-Factor Authentication Help", + "AUTHENTICATOR_TITLE": "Using an Authenticator App", + "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.", + "BACKUP_TITLE": "Using a Backup Code", + "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.", + "CONTACT_TITLE": "Need More Help?", + "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.", + "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance." + }, + "VERIFICATION_FAILED": "Verification failed. Please try again." + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/report.json b/app/javascript/dashboard/i18n/locale/bn/report.json new file mode 100644 index 000000000..c622170b0 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/report.json @@ -0,0 +1,580 @@ +{ + "REPORT": { + "HEADER": "Conversations", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.", + "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Messages received", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Messages sent", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + }, + "BOT_RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + }, + "BOT_HANDOFF_COUNT": { + "NAME": "Handoff Count", + "DESC": "( Total )" + }, + "REPLY_TIME": { + "NAME": "Customer waiting time", + "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)", + "DESC": "" + } + }, + "DATE_RANGE_OPTIONS": { + "LAST_7_DAYS": "Last 7 days", + "LAST_14_DAYS": "Last 14 days", + "LAST_30_DAYS": "Last 30 days", + "LAST_3_MONTHS": "Last 3 months", + "LAST_6_MONTHS": "Last 6 months", + "LAST_YEAR": "Last year", + "CUSTOM_DATE_RANGE": "Custom date range" + }, + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + }, + "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By", + "DURATION_FILTER_LABEL": "Duration", + "GROUPING_OPTIONS": { + "DAY": "Day", + "WEEK": "Week", + "MONTH": "Month", + "YEAR": "Year" + }, + "GROUP_BY_DAY_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + } + ], + "GROUP_BY_WEEK_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + } + ], + "GROUP_BY_MONTH_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + }, + { + "id": 3, + "groupBy": "Month" + } + ], + "GROUP_BY_YEAR_OPTIONS": [ + { + "id": 2, + "groupBy": "Week" + }, + { + "id": 3, + "groupBy": "Month" + }, + { + "id": 4, + "groupBy": "Year" + } + ], + "BUSINESS_HOURS": "Business Hours", + "FILTER_ACTIONS": { + "CLEAR_FILTER": "Clear filter", + "EMPTY_LIST": "No results found" + }, + "PAGINATION": { + "RESULTS": "Showing {start} to {end} of {total} results", + "PER_PAGE_TEMPLATE": "{size} / page" + } + }, + "AGENT_REPORTS": { + "HEADER": "Agents Overview", + "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "FILTER_DROPDOWN_LABEL": "Select Agent", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "LABEL_REPORTS": { + "HEADER": "Labels Overview", + "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_LABEL_REPORTS": "Download label reports", + "FILTER_DROPDOWN_LABEL": "Select Label", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "INBOX_REPORTS": { + "HEADER": "Inbox Overview", + "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_INBOX_REPORTS": "Download inbox reports", + "FILTER_DROPDOWN_LABEL": "Select Inbox", + "ALL_INBOXES": "All Inboxes", + "SEARCH_INBOX": "Search Inbox", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "TEAM_REPORTS": { + "HEADER": "Team Overview", + "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_TEAM_REPORTS": "Download team reports", + "FILTER_DROPDOWN_LABEL": "Select Team", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "CSAT_REPORTS": { + "HEADER": "CSAT Reports", + "NO_RECORDS": "There are no CSAT survey responses available.", + "DOWNLOAD": "Download CSAT Reports", + "DOWNLOAD_FAILED": "Failed to download CSAT Reports", + "FILTERS": { + "AGENTS": { + "PLACEHOLDER": "Choose Agents" + } + }, + "TABLE": { + "HEADER": { + "CONTACT_NAME": "Contact", + "AGENT_NAME": "Assigned agent", + "RATING": "Rating", + "FEEDBACK_TEXT": "Feedback comment" + } + }, + "METRIC": { + "TOTAL_RESPONSES": { + "LABEL": "Total responses", + "TOOLTIP": "Total number of responses collected" + }, + "SATISFACTION_SCORE": { + "LABEL": "Satisfaction score", + "TOOLTIP": "Total number of positive responses / Total number of responses * 100" + }, + "RESPONSE_RATE": { + "LABEL": "Response rate", + "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100" + } + } + }, + "BOT_REPORTS": { + "HEADER": "Bot Reports", + "METRIC": { + "TOTAL_CONVERSATIONS": { + "LABEL": "No. of Conversations", + "TOOLTIP": "Total number of conversations handled by the bot" + }, + "TOTAL_RESPONSES": { + "LABEL": "Total Responses", + "TOOLTIP": "Total number of responses sent by the bot" + }, + "RESOLUTION_RATE": { + "LABEL": "Resolution Rate", + "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100" + }, + "HANDOFF_RATE": { + "LABEL": "Handoff Rate", + "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100" + } + } + }, + "OVERVIEW_REPORTS": { + "HEADER": "Overview", + "LIVE": "Live", + "ACCOUNT_CONVERSATIONS": { + "HEADER": "Open Conversations", + "LOADING_MESSAGE": "Loading conversation metrics...", + "OPEN": "Open", + "UNATTENDED": "Unattended", + "UNASSIGNED": "Unassigned", + "PENDING": "Pending" + }, + "CONVERSATION_HEATMAP": { + "HEADER": "Conversation Traffic", + "NO_CONVERSATIONS": "No conversations", + "CONVERSATION": "{count} conversation", + "CONVERSATIONS": "{count} conversations", + "DOWNLOAD_REPORT": "Download report" + }, + "RESOLUTION_HEATMAP": { + "HEADER": "Resolutions", + "NO_CONVERSATIONS": "No conversations", + "CONVERSATION": "{count} conversation", + "CONVERSATIONS": "{count} conversations", + "DOWNLOAD_REPORT": "Download report" + }, + "AGENT_CONVERSATIONS": { + "HEADER": "Conversations by agents", + "LOADING_MESSAGE": "Loading agent metrics...", + "NO_AGENTS": "There are no conversations by agents", + "TABLE_HEADER": { + "AGENT": "Agent", + "OPEN": "Open", + "UNATTENDED": "Unattended", + "STATUS": "Status" + } + }, + "TEAM_CONVERSATIONS": { + "ALL_TEAMS": "All Teams", + "HEADER": "Conversations by teams", + "LOADING_MESSAGE": "Loading team metrics...", + "NO_TEAMS": "There is no data available", + "TABLE_HEADER": { + "TEAM": "Team", + "OPEN": "Open", + "UNATTENDED": "Unattended", + "STATUS": "Status" + } + }, + "AGENT_STATUS": { + "HEADER": "Agent status", + "ONLINE": "Online", + "BUSY": "Busy", + "OFFLINE": "Offline" + } + }, + "DAYS_OF_WEEK": { + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday" + }, + "SLA_REPORTS": { + "HEADER": "SLA Reports", + "NO_RECORDS": "SLA applied conversations are not available.", + "LOADING": "Loading SLA data...", + "DOWNLOAD_SLA_REPORTS": "Download SLA reports", + "DOWNLOAD_FAILED": "Failed to download SLA Reports", + "DROPDOWN": { + "ADD_FIlTER": "Add filter", + "CLEAR_ALL": "Clear all", + "CLEAR_FILTER": "Clear filter", + "EMPTY_LIST": "No results found", + "NO_FILTER": "No filters available", + "SEARCH": "Search filter", + "INPUT_PLACEHOLDER": { + "SLA": "SLA name", + "AGENTS": "Agent name", + "INBOXES": "Inbox name", + "LABELS": "Label name", + "TEAMS": "Team name" + }, + "SLA": "SLA Policy", + "INBOXES": "Inbox", + "AGENTS": "Agent", + "LABELS": "Label", + "TEAMS": "Team" + }, + "WITH": "with", + "METRICS": { + "HIT_RATE": { + "LABEL": "Hit Rate", + "TOOLTIP": "Percentage of SLAs created were completed successfully" + }, + "NO_OF_MISSES": { + "LABEL": "Number of Misses", + "TOOLTIP": "Total SLA misses in a certain period" + }, + "NO_OF_CONVERSATIONS": { + "LABEL": "Number of Conversations", + "TOOLTIP": "Total number of conversations with SLA" + } + }, + "TABLE": { + "HEADER": { + "POLICY": "Policy", + "CONVERSATION": "Conversation", + "AGENT": "Agent" + }, + "VIEW_DETAILS": "View Details" + } + }, + "SUMMARY_REPORTS": { + "INBOX": "Inbox", + "AGENT": "Agent", + "TEAM": "Team", + "LABEL": "Label", + "AVG_RESOLUTION_TIME": "Avg. Resolution Time", + "AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time", + "AVG_REPLY_TIME": "Avg. Customer Waiting Time", + "RESOLUTION_COUNT": "Resolution Count", + "CONVERSATIONS": "No. of conversations" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/resetPassword.json b/app/javascript/dashboard/i18n/locale/bn/resetPassword.json new file mode 100644 index 000000000..955696b0c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/resetPassword.json @@ -0,0 +1,17 @@ +{ + "RESET_PASSWORD": { + "TITLE": "Reset password", + "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.", + "GO_BACK_TO_LOGIN": "If you want to go back to the login page,", + "EMAIL": { + "LABEL": "Email", + "PLACEHOLDER": "Please enter your email.", + "ERROR": "Please enter a valid email." + }, + "API": { + "SUCCESS_MESSAGE": "Password reset link has been sent to your email.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "SUBMIT": "Submit" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/search.json b/app/javascript/dashboard/i18n/locale/bn/search.json new file mode 100644 index 000000000..e8510ab97 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/search.json @@ -0,0 +1,32 @@ +{ + "SEARCH": { + "TABS": { + "ALL": "All", + "CONTACTS": "Contacts", + "CONVERSATIONS": "Conversations", + "MESSAGES": "Messages", + "ARTICLES": "Articles" + }, + "SECTION": { + "CONTACTS": "Contacts", + "CONVERSATIONS": "Conversations", + "MESSAGES": "Messages", + "ARTICLES": "Articles" + }, + "VIEW_MORE": "View more", + "LOAD_MORE": "Load more", + "SEARCHING_DATA": "Searching", + "LOADING_DATA": "Loading", + "EMPTY_STATE": "No {item} found for query '{query}'", + "EMPTY_STATE_FULL": "No results found for query '{query}'", + "PLACEHOLDER_KEYBINDING": "/ to focus", + "INPUT_PLACEHOLDER": "Type 3 or more characters to search", + "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ", + "BOT_LABEL": "Bot", + "READ_MORE": "Read more", + "WROTE": "wrote:", + "FROM": "from", + "EMAIL": "email", + "EMAIL_SUBJECT": "subject" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/setNewPassword.json b/app/javascript/dashboard/i18n/locale/bn/setNewPassword.json new file mode 100644 index 000000000..4908dad02 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/setNewPassword.json @@ -0,0 +1,23 @@ +{ + "SET_NEW_PASSWORD": { + "TITLE": "Set new password", + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password", + "ERROR": "Password is too short." + }, + "CONFIRM_PASSWORD": { + "LABEL": "Confirm password", + "PLACEHOLDER": "Confirm Password", + "ERROR": "Passwords do not match." + }, + "API": { + "SUCCESS_MESSAGE": "Successfully changed the password.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "CAPTCHA": { + "ERROR": "Verification expired. Please solve captcha again." + }, + "SUBMIT": "Submit" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/settings.json b/app/javascript/dashboard/i18n/locale/bn/settings.json new file mode 100644 index 000000000..812b0cd8b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/settings.json @@ -0,0 +1,758 @@ +{ + "PROFILE_SETTINGS": { + "LINK": "Profile Settings", + "TITLE": "Profile Settings", + "BTN_TEXT": "Update Profile", + "DELETE_AVATAR": "Delete Avatar", + "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully", + "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again", + "UPDATE_SUCCESS": "Your profile has been updated successfully", + "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully", + "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed", + "FORM": { + "PICTURE": "Profile Picture", + "AVATAR": "Profile Image", + "ERROR": "Please fix form errors", + "REMOVE_IMAGE": "Remove", + "UPLOAD_IMAGE": "Upload image", + "UPDATE_IMAGE": "Update image", + "PROFILE_SECTION": { + "TITLE": "Profile", + "NOTE": "Your email address is your identity and is used to log in." + }, + "SEND_MESSAGE": { + "TITLE": "Hotkey to send messages", + "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.", + "UPDATE_SUCCESS": "Your settings have been updated successfully", + "CARD": { + "ENTER_KEY": { + "HEADING": "Enter (↵)", + "CONTENT": "Send messages by pressing Enter key instead of clicking the send button." + }, + "CMD_ENTER_KEY": { + "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)", + "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button." + } + } + }, + "INTERFACE_SECTION": { + "TITLE": "Interface", + "NOTE": "Customize the look and feel of your Chatwoot dashboard.", + "FONT_SIZE": { + "TITLE": "Font size", + "NOTE": "Adjust the text size across the dashboard based on your preference.", + "UPDATE_SUCCESS": "Your font settings have been updated successfully", + "UPDATE_ERROR": "There is an error while updating the font settings, please try again", + "OPTIONS": { + "SMALLER": "Smaller", + "SMALL": "Small", + "DEFAULT": "Default", + "LARGE": "Large", + "LARGER": "Larger", + "EXTRA_LARGE": "Extra Large" + } + }, + "LANGUAGE": { + "TITLE": "Preferred Language", + "NOTE": "Choose the language you want to use.", + "UPDATE_SUCCESS": "Your Language settings have been updated successfully", + "UPDATE_ERROR": "There is an error while updating the language settings, please try again", + "USE_ACCOUNT_DEFAULT": "Use account default" + } + }, + "MESSAGE_SIGNATURE_SECTION": { + "TITLE": "Personal message signature", + "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.", + "BTN_TEXT": "Save message signature", + "API_ERROR": "Couldn't save signature! Try again", + "API_SUCCESS": "Signature saved successfully", + "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again", + "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature", + "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB" + }, + "MESSAGE_SIGNATURE": { + "LABEL": "Message Signature", + "ERROR": "Message Signature cannot be empty", + "PLACEHOLDER": "Insert your personal message signature here." + }, + "PASSWORD_SECTION": { + "TITLE": "Password", + "NOTE": "Updating your password would reset your logins in multiple devices.", + "BTN_TEXT": "Change password" + }, + "SECURITY_SECTION": { + "TITLE": "Security", + "NOTE": "Manage additional security features for your account.", + "MFA_BUTTON": "Manage Two-Factor Authentication" + }, + "ACCESS_TOKEN": { + "TITLE": "Access Token", + "NOTE": "This token can be used if you are building an API based integration", + "COPY": "Copy", + "RESET": "Reset", + "CONFIRM_RESET": "Are you sure?", + "CONFIRM_HINT": "Click again to confirm", + "RESET_SUCCESS": "Access token regenerated successfully", + "RESET_ERROR": "Unable to regenerate access token. Please try again" + }, + "AUDIO_NOTIFICATIONS_SECTION": { + "TITLE": "Audio Alerts", + "NOTE": "Enable audio alerts in dashboard for new messages and conversations.", + "PLAY": "Play sound", + "ALERT_TYPES": { + "NONE": "None", + "MINE": "Assigned", + "ALL": "All", + "ASSIGNED": "My assigned conversations", + "UNASSIGNED": "Unassigned conversations", + "NOTME": "Open conversations assigned to others" + }, + "ALERT_COMBINATIONS": { + "NONE": "You haven't selected any options, you won't receive any audio alerts.", + "ASSIGNED": "You'll receive alerts for conversations assigned to you.", + "UNASSIGNED": "You'll receive alerts for any unassigned conversations.", + "NOTME": "You'll receive alerts for conversations assigned to others.", + "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.", + "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.", + "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.", + "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations." + }, + "ALERT_TYPE": { + "TITLE": "Alert events for conversations", + "NONE": "None", + "ASSIGNED": "Assigned Conversations", + "ALL_CONVERSATIONS": "All Conversations" + }, + "DEFAULT_TONE": { + "TITLE": "Alert tone:" + }, + "CONDITIONS": { + "TITLE": "Alert conditions:", + "CONDITION_ONE": "Send audio alerts only if the browser window is not active", + "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read" + }, + "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.", + "READ_MORE": "Read more" + }, + "EMAIL_NOTIFICATIONS_SECTION": { + "TITLE": "Email Notifications", + "NOTE": "Update your email notification preferences here", + "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me", + "CONVERSATION_CREATION": "Send email notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation", + "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA", + "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA", + "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA" + }, + "NOTIFICATIONS": { + "TITLE": "Notification preferences", + "TYPE_TITLE": "Notification type", + "EMAIL": "Email", + "PUSH": "Push notification", + "TYPES": { + "CONVERSATION_CREATED": "A new conversation is created", + "CONVERSATION_ASSIGNED": "A conversation is assigned to you", + "CONVERSATION_MENTION": "You are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation", + "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA", + "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA", + "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA" + }, + "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them" + }, + "API": { + "UPDATE_SUCCESS": "Your notification preferences are updated successfully", + "UPDATE_ERROR": "There is an error while updating the preferences, please try again" + }, + "PUSH_NOTIFICATIONS_SECTION": { + "TITLE": "Push Notifications", + "NOTE": "Update your push notification preferences here", + "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", + "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation", + "HAS_ENABLED_PUSH": "You have enabled push for this browser.", + "REQUEST_PUSH": "Enable push notifications", + "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA", + "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA", + "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA" + }, + "PROFILE_IMAGE": { + "LABEL": "Profile Image" + }, + "NAME": { + "LABEL": "Your full name", + "ERROR": "Please enter a valid full name", + "PLACEHOLDER": "Please enter your full name" + }, + "DISPLAY_NAME": { + "LABEL": "Display name", + "ERROR": "Please enter a valid display name", + "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations" + }, + "AVAILABILITY": { + "LABEL": "Availability", + "STATUS": { + "ONLINE": "Online", + "BUSY": "Busy", + "OFFLINE": "Offline" + }, + "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully", + "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again", + "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user" + }, + "EMAIL": { + "LABEL": "Your email address", + "ERROR": "Please enter a valid email address", + "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations" + }, + "CURRENT_PASSWORD": { + "LABEL": "Current password", + "ERROR": "Please enter the current password", + "PLACEHOLDER": "Please enter the current password" + }, + "PASSWORD": { + "LABEL": "New password", + "ERROR": "Please enter a password of length 6 or more", + "PLACEHOLDER": "Please enter a new password" + }, + "PASSWORD_CONFIRMATION": { + "LABEL": "Confirm new password", + "ERROR": "Confirm password should match the password", + "PLACEHOLDER": "Please re-enter your new password" + } + } + }, + "SIDEBAR_ITEMS": { + "CHANGE_AVAILABILITY_STATUS": "Change", + "CHANGE_ACCOUNTS": "Switch account", + "SWITCH_ACCOUNT": "Switch account", + "CONTACT_SUPPORT": "Contact support", + "SELECTOR_SUBTITLE": "Select an account from the following list", + "PROFILE_SETTINGS": "Profile settings", + "KEYBOARD_SHORTCUTS": "Keyboard shortcuts", + "APPEARANCE": "Change appearance", + "SUPER_ADMIN_CONSOLE": "SuperAdmin console", + "DOCS": "Read documentation", + "CHANGELOG": "Changelog", + "LOGOUT": "Log out" + }, + "APP_GLOBAL": { + "TRIAL_MESSAGE": "days trial remaining.", + "TRAIL_BUTTON": "Buy Now", + "DELETED_USER": "Deleted User", + "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.", + "RESEND_VERIFICATION_MAIL": "Resend verification email", + "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.", + "ACCOUNT_SUSPENDED": { + "TITLE": "Account Suspended", + "MESSAGE": "Your account is suspended. Please reach out to the support team for more information." + } + }, + "COMPONENTS": { + "CODE": { + "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", + "COPY_SUCCESSFUL": "Copied to clipboard" + }, + "SHOW_MORE_BLOCK": { + "SHOW_MORE": "Show More", + "SHOW_LESS": "Show Less" + }, + "FILE_BUBBLE": { + "DOWNLOAD": "Download", + "UPLOADING": "Uploading...", + "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available." + }, + "LOCATION_BUBBLE": { + "SEE_ON_MAP": "See on map" + }, + "FORM_BUBBLE": { + "SUBMIT": "Submit" + }, + "MEDIA": { + "IMAGE_UNAVAILABLE": "This image is no longer available.", + "LOADING_FAILED": "Loading failed" + } + }, + "CONFIRM_EMAIL": "Verifying...", + "SETTINGS": { + "INBOXES": { + "NEW_INBOX": "Add Inbox" + } + }, + "SIDEBAR": { + "NO_ITEMS": "No items", + "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:", + "SWITCH": "Switch", + "INBOX_VIEW": "Inbox View", + "CONVERSATIONS": "Conversations", + "INBOX": "My Inbox", + "ALL_CONVERSATIONS": "All Conversations", + "MENTIONED_CONVERSATIONS": "Mentions", + "PARTICIPATING_CONVERSATIONS": "Participating", + "UNATTENDED_CONVERSATIONS": "Unattended", + "REPORTS": "Reports", + "SETTINGS": "Settings", + "CONTACTS": "Contacts", + "ACTIVE": "Active", + "CAPTAIN": "Captain", + "CAPTAIN_ASSISTANTS": "Assistants", + "CAPTAIN_DOCUMENTS": "Documents", + "CAPTAIN_RESPONSES": "FAQs", + "CAPTAIN_TOOLS": "Tools", + "HOME": "Home", + "AGENTS": "Agents", + "AGENT_BOTS": "Bots", + "AUDIT_LOGS": "Audit Logs", + "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", + "CANNED_RESPONSES": "Canned Responses", + "INTEGRATIONS": "Integrations", + "PROFILE_SETTINGS": "Profile Settings", + "ACCOUNT_SETTINGS": "Account Settings", + "APPLICATIONS": "Applications", + "LABELS": "Labels", + "CUSTOM_ATTRIBUTES": "Custom Attributes", + "AUTOMATION": "Automation", + "MACROS": "Macros", + "TEAMS": "Teams", + "BILLING": "Billing", + "CUSTOM_VIEWS_FOLDER": "Folders", + "CUSTOM_VIEWS_SEGMENTS": "Segments", + "ALL_CONTACTS": "All Contacts", + "TAGGED_WITH": "Tagged with", + "NEW_LABEL": "New label", + "NEW_TEAM": "New team", + "NEW_INBOX": "New inbox", + "REPORTS_CONVERSATION": "Conversations", + "CSAT": "CSAT", + "LIVE_CHAT": "Live Chat", + "SMS": "SMS", + "WHATSAPP": "WhatsApp", + "CAMPAIGNS": "Campaigns", + "ONGOING": "Ongoing", + "ONE_OFF": "One off", + "REPORTS_SLA": "SLA", + "REPORTS_BOT": "Bot", + "REPORTS_AGENT": "Agents", + "REPORTS_LABEL": "Labels", + "REPORTS_INBOX": "Inbox", + "REPORTS_TEAM": "Team", + "AGENT_ASSIGNMENT": "Agent Assignment", + "SET_AVAILABILITY_TITLE": "Set yourself as", + "SET_YOUR_AVAILABILITY": "Set your availability", + "SLA": "SLA", + "CUSTOM_ROLES": "Custom Roles", + "BETA": "Beta", + "REPORTS_OVERVIEW": "Overview", + "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages", + "HELP_CENTER": { + "TITLE": "Help Center", + "ARTICLES": "Articles", + "CATEGORIES": "Categories", + "LOCALES": "Locales", + "SETTINGS": "Settings" + }, + "CHANNELS": "Channels", + "SET_AUTO_OFFLINE": { + "TEXT": "Mark offline automatically", + "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.", + "INFO_SHORT": "Automatically mark offline when you aren't using the app." + }, + "DOCS": "Read docs", + "SECURITY": "Security" + }, + "BILLING_SETTINGS": { + "TITLE": "Billing", + "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.", + "CURRENT_PLAN": { + "TITLE": "Current Plan", + "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses", + "SEAT_COUNT": "Number of seats", + "RENEWS_ON": "Renews on" + }, + "VIEW_PRICING": "View Pricing", + "MANAGE_SUBSCRIPTION": { + "TITLE": "Manage your subscription", + "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.", + "BUTTON_TXT": "Go to the billing portal" + }, + "CAPTAIN": { + "TITLE": "Captain", + "DESCRIPTION": "Manage usage and credits for Captain AI.", + "BUTTON_TXT": "Buy more credits", + "DOCUMENTS": "Documents", + "RESPONSES": "Responses", + "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more." + }, + "CHAT_WITH_US": { + "TITLE": "Need help?", + "DESCRIPTION": "Do you face any issues in billing? We are here to help.", + "BUTTON_TXT": "Chat with us" + }, + "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again." + }, + "SECURITY_SETTINGS": { + "TITLE": "Security", + "DESCRIPTION": "Manage your account security settings.", + "LINK_TEXT": "Learn more about SAML SSO", + "SAML": { + "TITLE": "SAML SSO", + "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.", + "ACS_URL": { + "LABEL": "ACS URL", + "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses" + }, + "SSO_URL": { + "LABEL": "SSO URL", + "HELP": "The URL where SAML authentication requests will be sent", + "PLACEHOLDER": "https://your-idp.com/saml/sso" + }, + "CERTIFICATE": { + "LABEL": "Signing certificate in PEM format", + "HELP": "The public certificate from your identity provider used to verify SAML responses", + "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..." + }, + "FINGERPRINT": { + "LABEL": "Fingerprint", + "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration" + }, + "COPY_SUCCESS": "Copied to clipboard", + "SP_ENTITY_ID": { + "LABEL": "SP Entity ID", + "HELP": "Unique identifier for this application as a service provider (auto-generated).", + "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings" + }, + "IDP_ENTITY_ID": { + "LABEL": "Identity Provider Entity ID", + "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)", + "PLACEHOLDER": "https://your-idp.com/saml" + }, + "UPDATE_BUTTON": "Update SAML Settings", + "API": { + "SUCCESS": "SAML settings updated successfully", + "ERROR": "Failed to update SAML settings", + "ERROR_LOADING": "Failed to load SAML settings", + "DISABLED": "SAML settings disabled successfully" + }, + "VALIDATION": { + "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields", + "SSO_URL_ERROR": "Please enter a valid SSO URL", + "CERTIFICATE_ERROR": "Certificate is required", + "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required" + }, + "ENTERPRISE_PAYWALL": { + "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.", + "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.", + "ASK_ADMIN": "Please reach out to your administrator for the upgrade." + }, + "PAYWALL": { + "TITLE": "Upgrade to enable SAML SSO", + "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.", + "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.", + "UPGRADE_NOW": "Upgrade now", + "CANCEL_ANYTIME": "You can change or cancel your plan anytime" + }, + "ATTRIBUTE_MAPPING": { + "TITLE": "SAML Attribute Setup", + "DESCRIPTION": "The following attribute mappings must be configured in your identity provider" + }, + "INFO_SECTION": { + "TITLE": "Service Provider Information", + "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection" + } + } + }, + "CREATE_ACCOUNT": { + "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.", + "NEW_ACCOUNT": "New Account", + "SELECTOR_SUBTITLE": "Create a new account", + "API": { + "SUCCESS_MESSAGE": "Account created successfully", + "EXIST_MESSAGE": "Account already exists", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "FORM": { + "NAME": { + "LABEL": "Company Name", + "PLACEHOLDER": "Wayne Enterprises" + }, + "SUBMIT": "Submit", + "CANCEL": "Cancel" + } + }, + "KEYBOARD_SHORTCUTS": { + "TOGGLE_MODAL": "View all shortcuts", + "TITLE": { + "OPEN_CONVERSATION": "Open conversation", + "RESOLVE_AND_NEXT": "Resolve and move to next", + "NAVIGATE_DROPDOWN": "Navigate dropdown items", + "RESOLVE_CONVERSATION": "Resolve Conversation", + "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", + "ADD_ATTACHMENT": "Add Attachment", + "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", + "TOGGLE_SIDEBAR": "Toggle Sidebar", + "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar", + "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list", + "GO_TO_SETTINGS": "Go to Settings", + "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note", + "SWITCH_TO_REPLY": "Switch to Reply", + "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown" + } + }, + "ASSIGNMENT_POLICY": { + "INDEX": { + "HEADER": { + "TITLE": "Agent assignment", + "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here" + }, + "ASSIGNMENT_POLICY": { + "TITLE": "Assignment policy", + "DESCRIPTION": "Manage how conversations get assigned in inboxes.", + "FEATURES": [ + "Assign by conversations evenly or by available capacity", + "Add fair distribution rules to avoid overloading any agent", + "Add inboxes to a policy - one policy per inbox" + ] + }, + "AGENT_CAPACITY_POLICY": { + "TITLE": "Agent capacity policy", + "DESCRIPTION": "Manage workload for agents.", + "FEATURES": [ + "Define maximum conversations per inbox", + "Create exceptions based on labels and time", + "Add agents to a policy - one policy per agent" + ] + } + }, + "AGENT_ASSIGNMENT_POLICY": { + "INDEX": { + "HEADER": { + "TITLE": "Assignment policy", + "CREATE_POLICY": "New policy" + }, + "CARD": { + "ORDER": "Order", + "PRIORITY": "Priority", + "ACTIVE": "Active", + "INACTIVE": "Inactive", + "POPOVER": "Added inboxes", + "EDIT": "Edit" + }, + "NO_RECORDS_FOUND": "No assignment policies found" + }, + "CREATE": { + "HEADER": { + "TITLE": "Create assignment policy" + }, + "CREATE_BUTTON": "Create policy", + "API": { + "SUCCESS_MESSAGE": "Assignment policy created successfully", + "ERROR_MESSAGE": "Failed to create assignment policy" + } + }, + "EDIT": { + "HEADER": { + "TITLE": "Edit assignment policy" + }, + "EDIT_BUTTON": "Update policy", + "CONFIRM_ADD_INBOX_DIALOG": { + "TITLE": "Add inbox", + "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.", + "CONFIRM_BUTTON_LABEL": "Continue", + "CANCEL_BUTTON_LABEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Assignment policy updated successfully", + "ERROR_MESSAGE": "Failed to update assignment policy" + }, + "INBOX_API": { + "ADD": { + "SUCCESS_MESSAGE": "Inbox added to policy successfully", + "ERROR_MESSAGE": "Failed to add inbox to policy" + }, + "REMOVE": { + "SUCCESS_MESSAGE": "Inbox removed from policy successfully", + "ERROR_MESSAGE": "Failed to remove inbox from policy" + } + } + }, + "FORM": { + "NAME": { + "LABEL": "Policy name:", + "PLACEHOLDER": "Enter policy name" + }, + "DESCRIPTION": { + "LABEL": "Description:", + "PLACEHOLDER": "Enter description" + }, + "STATUS": { + "LABEL": "Status:", + "PLACEHOLDER": "Select status", + "ACTIVE": "Policy is active", + "INACTIVE": "Policy is inactive" + }, + "ASSIGNMENT_ORDER": { + "LABEL": "Assignment order", + "ROUND_ROBIN": { + "LABEL": "Round robin", + "DESCRIPTION": "Assign conversations evenly among agents." + }, + "BALANCED": { + "LABEL": "Balanced", + "DESCRIPTION": "Assign conversations based on available capacity." + } + }, + "ASSIGNMENT_PRIORITY": { + "LABEL": "Assignment priority", + "EARLIEST_CREATED": { + "LABEL": "Earliest created", + "DESCRIPTION": "The conversation that was created first gets assigned first." + }, + "LONGEST_WAITING": { + "LABEL": "Longest waiting", + "DESCRIPTION": "The conversation waiting the longest gets assigned first." + } + }, + "FAIR_DISTRIBUTION": { + "LABEL": "Fair distribution policy", + "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.", + "INPUT_MAX": "Assign max", + "DURATION": "Conversations per agent in every" + }, + "INBOXES": { + "LABEL": "Added inboxes", + "DESCRIPTION": "Add inboxes for which this policy will be applicable.", + "ADD_BUTTON": "Add inbox", + "DROPDOWN": { + "SEARCH_PLACEHOLDER": "Search and select inboxes to add", + "ADD_BUTTON": "Add" + }, + "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started", + "API": { + "SUCCESS_MESSAGE": "Inbox successfully added to policy", + "ERROR_MESSAGE": "Failed to add inbox to policy" + } + } + }, + "DELETE_POLICY": { + "SUCCESS_MESSAGE": "Assignment policy deleted successfully", + "ERROR_MESSAGE": "Failed to delete assignment policy" + } + }, + "AGENT_CAPACITY_POLICY": { + "INDEX": { + "HEADER": { + "TITLE": "Agent capacity", + "CREATE_POLICY": "New policy" + }, + "CARD": { + "POPOVER": "Added agents", + "EDIT": "Edit" + }, + "NO_RECORDS_FOUND": "No agent capacity policies found" + }, + "CREATE": { + "HEADER": { + "TITLE": "Create agent capacity policy" + }, + "CREATE_BUTTON": "Create policy", + "API": { + "SUCCESS_MESSAGE": "Agent capacity policy created successfully", + "ERROR_MESSAGE": "Failed to create agent capacity policy" + } + }, + "EDIT": { + "HEADER": { + "TITLE": "Edit agent capacity policy" + }, + "EDIT_BUTTON": "Update policy", + "CONFIRM_ADD_AGENT_DIALOG": { + "TITLE": "Add agent", + "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.", + "CONFIRM_BUTTON_LABEL": "Continue", + "CANCEL_BUTTON_LABEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Agent capacity policy updated successfully", + "ERROR_MESSAGE": "Failed to update agent capacity policy" + }, + "AGENT_API": { + "ADD": { + "SUCCESS_MESSAGE": "Agent added to policy successfully", + "ERROR_MESSAGE": "Failed to add agent to policy" + }, + "REMOVE": { + "SUCCESS_MESSAGE": "Agent removed from policy successfully", + "ERROR_MESSAGE": "Failed to remove agent from policy" + } + } + }, + "FORM": { + "NAME": { + "LABEL": "Policy name:", + "PLACEHOLDER": "Enter policy name" + }, + "DESCRIPTION": { + "LABEL": "Description:", + "PLACEHOLDER": "Enter description" + }, + "INBOX_CAPACITY_LIMIT": { + "LABEL": "Inbox capacity limits", + "ADD_BUTTON": "Add inbox", + "FIELD": { + "SELECT_INBOX": "Select inbox", + "MAX_CONVERSATIONS": "Max conversations", + "SET_LIMIT": "Set limit" + }, + "EMPTY_STATE": "No inbox limit set" + }, + "EXCLUSION_RULES": { + "LABEL": "Exclusion rules", + "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity", + "TAGS": { + "LABEL": "Exclude conversations tagged with specific labels", + "ADD_TAG": "add tag", + "DROPDOWN": { + "SEARCH_PLACEHOLDER": "Search and select tags to add" + }, + "EMPTY_STATE": "No tags added to this policy." + }, + "DURATION": { + "LABEL": "Exclude conversations older than a specified duration", + "PLACEHOLDER": "Set time" + } + }, + "USERS": { + "LABEL": "Assigned agents", + "DESCRIPTION": "Add agents for which this policy will be applicable.", + "ADD_BUTTON": "Add agent", + "DROPDOWN": { + "SEARCH_PLACEHOLDER": "Search and select agents to add", + "ADD_BUTTON": "Add" + }, + "EMPTY_STATE": "No agents added", + "API": { + "SUCCESS_MESSAGE": "Agent successfully added to policy", + "ERROR_MESSAGE": "Failed to add agent to policy" + } + } + }, + "DELETE_POLICY": { + "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully", + "ERROR_MESSAGE": "Failed to delete agent capacity policy" + } + }, + "DELETE_POLICY": { + "TITLE": "Delete policy", + "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.", + "CONFIRM_BUTTON_LABEL": "Delete", + "CANCEL_BUTTON_LABEL": "Cancel" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/signup.json b/app/javascript/dashboard/i18n/locale/bn/signup.json new file mode 100644 index 000000000..b0e5f5d27 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/signup.json @@ -0,0 +1,49 @@ +{ + "REGISTER": { + "TRY_WOOT": "Create an account", + "TITLE": "Register", + "TESTIMONIAL_HEADER": "All it takes is one step to move forward", + "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.", + "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy", + "OAUTH": { + "GOOGLE_SIGNUP": "Sign up with Google" + }, + "COMPANY_NAME": { + "LABEL": "Company name", + "PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises", + "ERROR": "Company name is too short." + }, + "FULL_NAME": { + "LABEL": "Full name", + "PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne", + "ERROR": "Full name is too short." + }, + "EMAIL": { + "LABEL": "Work email", + "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises", + "ERROR": "Please enter a valid work email address." + }, + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password", + "ERROR": "Password is too short.", + "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character.", + "REQUIREMENTS_LENGTH": "At least 6 characters long", + "REQUIREMENTS_UPPERCASE": "At least one uppercase letter", + "REQUIREMENTS_LOWERCASE": "At least one lowercase letter", + "REQUIREMENTS_NUMBER": "At least one number", + "REQUIREMENTS_SPECIAL": "At least one special character" + }, + "CONFIRM_PASSWORD": { + "LABEL": "Confirm password", + "PLACEHOLDER": "Confirm password", + "ERROR": "Passwords do not match." + }, + "API": { + "SUCCESS_MESSAGE": "Registration Successful", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "SUBMIT": "Create account", + "HAVE_AN_ACCOUNT": "Already have an account?" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/sla.json b/app/javascript/dashboard/i18n/locale/bn/sla.json new file mode 100644 index 000000000..0da7873be --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/sla.json @@ -0,0 +1,108 @@ +{ + "SLA": { + "HEADER": "Service Level Agreements", + "ADD_ACTION": "Add SLA", + "ADD_ACTION_LONG": "Create a new SLA Policy", + "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.", + "LEARN_MORE": "Learn more about SLA", + "LOADING": "Fetching SLAs", + "PAYWALL": { + "TITLE": "Upgrade to create SLAs", + "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.", + "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.", + "UPGRADE_NOW": "Upgrade now", + "CANCEL_ANYTIME": "You can change or cancel your plan anytime" + }, + "ENTERPRISE_PAYWALL": { + "AVAILABLE_ON": "The SLA feature is only available in the paid plans.", + "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.", + "ASK_ADMIN": "Please reach out to your administrator for the upgrade." + }, + "LIST": { + "404": "There are no SLAs available in this account.", + "EMPTY": { + "TITLE_1": "Enterprise P0", + "DESC_1": "Issues raised by enterprise customers, that require immediate attention.", + "TITLE_2": "Enterprise P1", + "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly." + }, + "BUSINESS_HOURS_ON": "Business hours on", + "BUSINESS_HOURS_OFF": "Business hours off", + "RESPONSE_TYPES": { + "FRT": "First response time threshold", + "NRT": "Next response time threshold", + "RT": "Resolution time threshold", + "SHORT_HAND": { + "FRT": "FRT", + "NRT": "NRT", + "RT": "RT" + } + } + }, + "FORM": { + "NAME": { + "LABEL": "SLA Name", + "PLACEHOLDER": "SLA Name", + "REQUIRED_ERROR": "SLA name is required", + "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required", + "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "SLA for premium customers" + }, + "FIRST_RESPONSE_TIME": { + "LABEL": "First Response Time", + "PLACEHOLDER": "5" + }, + "NEXT_RESPONSE_TIME": { + "LABEL": "Next Response Time", + "PLACEHOLDER": "5" + }, + "RESOLUTION_TIME": { + "LABEL": "Resolution Time", + "PLACEHOLDER": "60" + }, + "BUSINESS_HOURS": { + "LABEL": "Business Hours", + "PLACEHOLDER": "Only during business hours" + }, + "THRESHOLD_TIME": { + "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero" + }, + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel" + }, + "ADD": { + "TITLE": "Add SLA", + "DESC": "Friendly promises for great service!", + "API": { + "SUCCESS_MESSAGE": "SLA added successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "DELETE": { + "TITLE": "Delete SLA", + "API": { + "SUCCESS_MESSAGE": "SLA deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure you want to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + }, + "EVENTS": { + "TITLE": "SLA Misses", + "FRT": "First response time", + "NRT": "Next response time", + "RT": "Resolution time", + "SHOW_MORE": "{count} more", + "HIDE": "Hide {count} rows" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json b/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json new file mode 100644 index 000000000..f0a950fd1 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json @@ -0,0 +1,121 @@ +{ + "TEAMS_SETTINGS": { + "NEW_TEAM": "Create new team", + "HEADER": "Teams", + "LOADING": "Fetching teams", + "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.", + "LEARN_MORE": "Learn more about teams", + "LIST": { + "404": "There are no teams created on this account.", + "EDIT_TEAM": "Edit team", + "NONE": "None" + }, + "CREATE_FLOW": { + "CREATE": { + "TITLE": "Create a new team", + "DESC": "Add a title and description to your new team." + }, + "AGENTS": { + "BUTTON_TEXT": "Add agents to team", + "TITLE": "Add agents to team - {teamName}", + "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation." + }, + "WIZARD_CREATE": { + "TITLE": "Create", + "BODY": "Create a new team of agents." + }, + "WIZARD_ADD_AGENTS": { + "TITLE": "Add Agents", + "BODY": "Add agents to the team." + }, + "WIZARD_FINISH": { + "TITLE": "Finish", + "BODY": "You are all set to go!" + } + }, + "EDIT_FLOW": { + "CREATE": { + "TITLE": "Edit your team details", + "DESC": "Edit title and description to your team.", + "BUTTON_TEXT": "Update team" + }, + "AGENTS": { + "BUTTON_TEXT": "Update agents in team", + "TITLE": "Add agents to team - {teamName}", + "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team." + }, + "EDIT_WIZARD_DETAILS": { + "TITLE": "Team details", + "ROUTE": "settings_teams_edit", + "BODY": "Change name, description and other details." + }, + "EDIT_WIZARD_AGENTS": { + "TITLE": "Edit Agents", + "ROUTE": "settings_teams_edit_members", + "BODY": "Edit agents in your team." + }, + "EDIT_WIZARD_FINISH": { + "TITLE": "Finish", + "ROUTE": "settings_teams_edit_finish", + "BODY": "You are all set to go!" + } + }, + "TEAM_FORM": { + "ERROR_MESSAGE": "Couldn't save the team details. Try again." + }, + "AGENTS": { + "AGENT": "AGENT", + "EMAIL": "EMAIL", + "BUTTON_TEXT": "Add agents", + "ADD_AGENTS": "Adding Agents to your Team...", + "SELECT": "select", + "SELECT_ALL": "select all agents", + "SELECTED_COUNT": "{selected} out of {total} agents selected." + }, + "ADD": { + "TITLE": "Add agents to team - {teamName}", + "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.", + "SELECT": "select", + "SELECT_ALL": "select all agents", + "SELECTED_COUNT": "{selected} out of {total} agents selected.", + "BUTTON_TEXT": "Add agents", + "AGENT_VALIDATION_ERROR": "Select at least one agent." + }, + "FINISH": { + "TITLE": "Your team is ready!", + "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ", + "BUTTON_TEXT": "Finish" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Team deleted successfully.", + "ERROR_MESSAGE": "Couldn't delete the team. Try again." + }, + "CONFIRM": { + "TITLE": "Are you sure you want to delete the team?", + "PLACE_HOLDER": "Please type {teamName} to confirm", + "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.", + "YES": "Delete ", + "NO": "Cancel" + } + }, + "SETTINGS": "Settings", + "FORM": { + "UPDATE": "Update team", + "CREATE": "Create team", + "NAME": { + "LABEL": "Team name", + "PLACEHOLDER": "Example: Sales, Customer Support" + }, + "DESCRIPTION": { + "LABEL": "Team Description", + "PLACEHOLDER": "Short description about this team." + }, + "AUTO_ASSIGN": { + "LABEL": "Allow auto assign for this team." + }, + "SUBMIT_CREATE": "Create team" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/webhooks.json b/app/javascript/dashboard/i18n/locale/bn/webhooks.json new file mode 100644 index 000000000..347c96893 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/webhooks.json @@ -0,0 +1,5 @@ +{ + "WEBHOOKS_SETTINGS": { + "HEADER": "Webhook Settings" + } +} diff --git a/app/javascript/dashboard/i18n/locale/bn/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/bn/whatsappTemplates.json new file mode 100644 index 000000000..cf28312dc --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/bn/whatsappTemplates.json @@ -0,0 +1,47 @@ +{ + "WHATSAPP_TEMPLATES": { + "MODAL": { + "TITLE": "Whatsapp Templates", + "SUBTITLE": "Select the whatsapp template you want to send", + "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}" + }, + "PICKER": { + "SEARCH_PLACEHOLDER": "Search Templates", + "NO_TEMPLATES_FOUND": "No templates found for", + "HEADER": "Header", + "BODY": "Body", + "FOOTER": "Footer", + "BUTTONS": "Buttons", + "CATEGORY": "Category", + "MEDIA_CONTENT": "Media Content", + "MEDIA_CONTENT_FALLBACK": "media content", + "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.", + "REFRESH_BUTTON": "Refresh templates", + "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.", + "REFRESH_ERROR": "Failed to refresh templates. Please try again.", + "LABELS": { + "LANGUAGE": "Language", + "TEMPLATE_BODY": "Template Body", + "CATEGORY": "Category" + } + }, + "PARSER": { + "VARIABLES_LABEL": "Variables", + "LANGUAGE": "Language", + "CATEGORY": "Category", + "VARIABLE_PLACEHOLDER": "Enter {variable} value", + "GO_BACK_LABEL": "Go Back", + "SEND_MESSAGE_LABEL": "Send Message", + "FORM_ERROR_MESSAGE": "Please fill all variables before sending", + "MEDIA_HEADER_LABEL": "{type} Header", + "OTP_CODE": "Enter 4-8 digit OTP", + "EXPIRY_MINUTES": "Enter expiry minutes", + "BUTTON_PARAMETERS": "Button Parameters", + "BUTTON_LABEL": "Button {index}", + "COUPON_CODE": "Enter coupon code (max 15 chars)", + "MEDIA_URL_LABEL": "Enter {type} URL", + "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)", + "BUTTON_PARAMETER": "Enter button parameter" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/advancedFilters.json b/app/javascript/dashboard/i18n/locale/et/advancedFilters.json new file mode 100644 index 000000000..a991cb25b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/advancedFilters.json @@ -0,0 +1,119 @@ +{ + "FILTER": { + "TITLE": "Filter conversations", + "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.", + "EDIT_CUSTOM_FILTER": "Edit Folder", + "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.", + "ADD_NEW_FILTER": "Add filter", + "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.", + "SUBMIT_BUTTON_LABEL": "Apply filters", + "UPDATE_BUTTON_LABEL": "Update folder", + "CANCEL_BUTTON_LABEL": "Cancel", + "CLEAR_BUTTON_LABEL": "Clear filters", + "FOLDER_LABEL": "Folder Name", + "FOLDER_QUERY_LABEL": "Folder Query", + "EMPTY_VALUE_ERROR": "Value is required.", + "TOOLTIP_LABEL": "Filter conversations", + "QUERY_DROPDOWN_LABELS": { + "AND": "AND", + "OR": "OR" + }, + "INPUT_PLACEHOLDER": "Enter value", + "OPERATOR_LABELS": { + "equal_to": "Equal to", + "not_equal_to": "Not equal to", + "does_not_contain": "Does not contain", + "is_present": "Is present", + "is_not_present": "Is not present", + "is_greater_than": "Is greater than", + "is_less_than": "Is lesser than", + "days_before": "Is x days before", + "starts_with": "Starts with", + "equalTo": "Equal to", + "notEqualTo": "Not equal to", + "contains": "Contains", + "doesNotContain": "Does not contain", + "isPresent": "Is present", + "isNotPresent": "Is not present", + "isGreaterThan": "Is greater than", + "isLessThan": "Is lesser than", + "daysBefore": "Is x days before", + "startsWith": "Starts with" + }, + "ATTRIBUTE_LABELS": { + "TRUE": "True", + "FALSE": "False" + }, + "ATTRIBUTES": { + "STATUS": "Status", + "ASSIGNEE_NAME": "Assignee name", + "INBOX_NAME": "Inbox name", + "TEAM_NAME": "Team name", + "CONVERSATION_IDENTIFIER": "Conversation identifier", + "CAMPAIGN_NAME": "Campaign name", + "LABELS": "Labels", + "BROWSER_LANGUAGE": "Browser language", + "PRIORITY": "Priority", + "COUNTRY_NAME": "Country name", + "REFERER_LINK": "Referer link", + "CUSTOM_ATTRIBUTE_LIST": "List", + "CUSTOM_ATTRIBUTE_TEXT": "Text", + "CUSTOM_ATTRIBUTE_NUMBER": "Number", + "CUSTOM_ATTRIBUTE_LINK": "Link", + "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", + "CREATED_AT": "Created at", + "LAST_ACTIVITY": "Last activity" + }, + "ERRORS": { + "VALUE_REQUIRED": "Value is required", + "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", + "FILTER_OPERATOR_REQUIRED": "Filter operator is required", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998" + }, + "GROUPS": { + "STANDARD_FILTERS": "Standard filters", + "ADDITIONAL_FILTERS": "Additional filters", + "CUSTOM_ATTRIBUTES": "Custom attributes" + }, + "CUSTOM_VIEWS": { + "ADD": { + "TITLE": "Do you want to save this filter?", + "LABEL": "Name this filter", + "PLACEHOLDER": "Name your filter to refer it later.", + "ERROR_MESSAGE": "Name is required.", + "SAVE_BUTTON": "Save filter", + "CANCEL_BUTTON": "Cancel", + "API_FOLDERS": { + "SUCCESS_MESSAGE": "Folder created successfully.", + "ERROR_MESSAGE": "Error while creating folder." + }, + "API_SEGMENTS": { + "SUCCESS_MESSAGE": "Segment created successfully.", + "ERROR_MESSAGE": "Error while creating segment." + } + }, + "EDIT": { + "EDIT_BUTTON": "Edit folder" + }, + "DELETE": { + "DELETE_BUTTON": "Delete filter", + "MODAL": { + "CONFIRM": { + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete the filter ", + "YES": "Yes, delete", + "NO": "No, keep it" + } + }, + "API_FOLDERS": { + "SUCCESS_MESSAGE": "Folder deleted successfully.", + "ERROR_MESSAGE": "Error while deleting folder." + }, + "API_SEGMENTS": { + "SUCCESS_MESSAGE": "Segment deleted successfully.", + "ERROR_MESSAGE": "Error while deleting segment." + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/agentBots.json b/app/javascript/dashboard/i18n/locale/et/agentBots.json new file mode 100644 index 000000000..d3a0bb991 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/agentBots.json @@ -0,0 +1,103 @@ +{ + "AGENT_BOTS": { + "HEADER": "Bots", + "LOADING_EDITOR": "Loading editor...", + "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.", + "LEARN_MORE": "Learn about agent bots", + "GLOBAL_BOT": "System bot", + "GLOBAL_BOT_BADGE": "System", + "AVATAR": { + "SUCCESS_DELETE": "Bot avatar deleted successfully", + "ERROR_DELETE": "Error deleting bot avatar, please try again" + }, + "BOT_CONFIGURATION": { + "TITLE": "Select an agent bot", + "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.", + "SUBMIT": "Update", + "DISCONNECT": "Disconnect bot", + "SUCCESS_MESSAGE": "Successfully updated the agent bot.", + "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.", + "ERROR_MESSAGE": "Could not update the agent bot. Please try again.", + "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.", + "SELECT_PLACEHOLDER": "Select bot" + }, + "ADD": { + "TITLE": "Add Bot", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Bot added successfully.", + "ERROR_MESSAGE": "Could not add bot. Please try again later." + } + }, + "LIST": { + "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.", + "LOADING": "Fetching bots...", + "TABLE_HEADER": { + "DETAILS": "Bot Details", + "URL": "Webhook URL" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "TITLE": "Delete bot", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure you want to delete {name}?", + "YES": "Yes, Delete", + "NO": "No, Keep" + }, + "API": { + "SUCCESS_MESSAGE": "Bot deleted successfully.", + "ERROR_MESSAGE": "Could not delete bot. Please try again." + } + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "TITLE": "Edit bot", + "API": { + "SUCCESS_MESSAGE": "Bot updated successfully.", + "ERROR_MESSAGE": "Could not update bot. Please try again." + } + }, + "ACCESS_TOKEN": { + "TITLE": "Access Token", + "DESCRIPTION": "Copy the access token and save it securely", + "COPY_SUCCESSFUL": "Access token copied to clipboard", + "RESET_SUCCESS": "Access token regenerated successfully", + "RESET_ERROR": "Unable to regenerate access token. Please try again" + }, + "FORM": { + "AVATAR": { + "LABEL": "Bot avatar" + }, + "NAME": { + "LABEL": "Bot name", + "PLACEHOLDER": "Enter bot name", + "REQUIRED": "Bot name is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "What does this bot do?" + }, + "WEBHOOK_URL": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "https://example.com/webhook", + "REQUIRED": "Webhook URL is required" + }, + "ERRORS": { + "NAME": "Bot name is required", + "URL": "Webhook URL is required", + "VALID_URL": "Please enter a valid URL starting with http:// or https://" + }, + "CANCEL": "Cancel", + "CREATE": "Create Bot", + "UPDATE": "Update Bot" + }, + "WEBHOOK": { + "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them." + }, + "TYPES": { + "WEBHOOK": "Webhook bot" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/agentMgmt.json b/app/javascript/dashboard/i18n/locale/et/agentMgmt.json new file mode 100644 index 000000000..448994e69 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/agentMgmt.json @@ -0,0 +1,124 @@ +{ + "AGENT_MGMT": { + "HEADER": "Agents", + "HEADER_BTN_TXT": "Add Agent", + "LOADING": "Fetching Agent List", + "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.", + "LEARN_MORE": "Learn about user roles", + "AGENT_TYPES": { + "ADMINISTRATOR": "Administrator", + "AGENT": "Agent" + }, + "LIST": { + "404": "There are no agents associated to this account", + "TITLE": "Manage agents in your team", + "DESC": "You can add/remove agents to/in your team.", + "NAME": "Name", + "EMAIL": "EMAIL", + "STATUS": "Status", + "ACTIONS": "Actions", + "VERIFIED": "Verified", + "VERIFICATION_PENDING": "Verification Pending", + "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions" + }, + "ADD": { + "TITLE": "Add agent to your team", + "DESC": "You can add people who will be able to handle support for your inboxes.", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Agent Name", + "PLACEHOLDER": "Please enter a name of the agent" + }, + "AGENT_TYPE": { + "LABEL": "Role", + "PLACEHOLDER": "Please select a role", + "ERROR": "Role is required" + }, + "EMAIL": { + "LABEL": "Email Address", + "PLACEHOLDER": "Please enter an email address of the agent" + }, + "SUBMIT": "Add Agent" + }, + "API": { + "SUCCESS_MESSAGE": "Agent added successfully", + "EXIST_MESSAGE": "Agent email already in use, Please try another email address", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Agent deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + }, + "EDIT": { + "TITLE": "Edit agent", + "FORM": { + "NAME": { + "LABEL": "Agent Name", + "PLACEHOLDER": "Please enter a name of the agent" + }, + "AGENT_TYPE": { + "LABEL": "Role", + "PLACEHOLDER": "Please select a role", + "ERROR": "Role is required" + }, + "EMAIL": { + "LABEL": "Email Address", + "PLACEHOLDER": "Please enter an email address of the agent" + }, + "AGENT_AVAILABILITY": { + "LABEL": "Availability", + "PLACEHOLDER": "Please select an availability status", + "ERROR": "Availability is required" + }, + "SUBMIT": "Edit Agent" + }, + "BUTTON_TEXT": "Edit", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Agent updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "PASSWORD_RESET": { + "ADMIN_RESET_BUTTON": "Reset Password", + "ADMIN_SUCCESS_MESSAGE": "An email with reset password instructions has been sent to the agent", + "SUCCESS_MESSAGE": "Agent password reset successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "SEARCH": { + "NO_RESULTS": "No results found." + }, + "MULTI_SELECTOR": { + "PLACEHOLDER": "None", + "TITLE": { + "AGENT": "Select agent", + "TEAM": "Select team" + }, + "LIST": { + "NONE": "None" + }, + "SEARCH": { + "NO_RESULTS": { + "AGENT": "No agents found", + "TEAM": "No teams found" + }, + "PLACEHOLDER": { + "AGENT": "Search agents", + "TEAM": "Search teams", + "INPUT": "Search for agents" + } + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json new file mode 100644 index 000000000..cea6359de --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json @@ -0,0 +1,134 @@ +{ + "ATTRIBUTES_MGMT": { + "HEADER": "Custom Attributes", + "HEADER_BTN_TXT": "Add Custom Attribute", + "LOADING": "Fetching custom attributes", + "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.", + "LEARN_MORE": "Learn more about custom attributes", + "ATTRIBUTE_MODELS": { + "CONVERSATION": "Conversation", + "CONTACT": "Contact" + }, + "ATTRIBUTE_TYPES": { + "TEXT": "Text", + "NUMBER": "Number", + "LINK": "Link", + "DATE": "Date", + "LIST": "List", + "CHECKBOX": "Checkbox" + }, + "ADD": { + "TITLE": "Add Custom Attribute", + "SUBMIT": "Create", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Display Name", + "PLACEHOLDER": "Enter custom attribute display name", + "ERROR": "Name is required" + }, + "DESC": { + "LABEL": "Description", + "PLACEHOLDER": "Enter custom attribute description", + "ERROR": "Description is required" + }, + "MODEL": { + "LABEL": "Applies to", + "PLACEHOLDER": "Please select one", + "ERROR": "Model is required" + }, + "TYPE": { + "LABEL": "Type", + "PLACEHOLDER": "Please select a type", + "ERROR": "Type is required", + "LIST": { + "LABEL": "List Values", + "PLACEHOLDER": "Please enter value and press enter key", + "ERROR": "Must have at least one value" + } + }, + "KEY": { + "LABEL": "Key", + "PLACEHOLDER": "Enter custom attribute key", + "ERROR": "Key is required", + "IN_VALID": "Invalid key" + }, + "REGEX_PATTERN": { + "LABEL": "Regex Pattern", + "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)" + }, + "REGEX_CUE": { + "LABEL": "Regex Cue", + "PLACEHOLDER": "Please enter regex pattern hint. (Optional)" + }, + "ENABLE_REGEX": { + "LABEL": "Enable regex validation" + } + }, + "API": { + "SUCCESS_MESSAGE": "Custom Attribute added successfully!", + "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.", + "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again." + }, + "CONFIRM": { + "TITLE": "Are you sure want to delete - {attributeName}", + "PLACE_HOLDER": "Please type {attributeName} to confirm", + "MESSAGE": "Deleting will remove the custom attribute", + "YES": "Delete ", + "NO": "Cancel" + } + }, + "EDIT": { + "TITLE": "Edit Custom Attribute", + "UPDATE_BUTTON_TEXT": "Update", + "TYPE": { + "LIST": { + "LABEL": "List Values", + "PLACEHOLDER": "Please enter values and press enter key" + } + }, + "API": { + "SUCCESS_MESSAGE": "Custom Attribute updated successfully", + "ERROR_MESSAGE": "There was an error updating custom attribute, please try again" + } + }, + "TABS": { + "HEADER": "Custom Attributes", + "CONVERSATION": "Conversation", + "CONTACT": "Contact" + }, + "LIST": { + "TABLE_HEADER": { + "NAME": "Name", + "DESCRIPTION": "Description", + "TYPE": "Type", + "KEY": "Key" + }, + "BUTTONS": { + "EDIT": "Edit", + "DELETE": "Delete" + }, + "EMPTY_RESULT": { + "404": "There are no custom attributes created", + "NOT_FOUND": "There are no custom attributes configured" + }, + "REGEX_PATTERN": { + "LABEL": "Regex Pattern", + "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)" + }, + "REGEX_CUE": { + "LABEL": "Regex Cue", + "PLACEHOLDER": "Please enter regex pattern hint. (Optional)" + }, + "ENABLE_REGEX": { + "LABEL": "Enable regex validation" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/auditLogs.json b/app/javascript/dashboard/i18n/locale/et/auditLogs.json new file mode 100644 index 000000000..f85ad2a3e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/auditLogs.json @@ -0,0 +1,77 @@ +{ + "AUDIT_LOGS": { + "HEADER": "Audit Logs", + "HEADER_BTN_TXT": "Add Audit Logs", + "LOADING": "Fetching Audit Logs", + "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.", + "LEARN_MORE": "Learn more about audit logs", + "SEARCH_404": "There are no items matching this query", + "SIDEBAR_TXT": "

Audit Logs

Audit Logs are trails for events and actions in a Chatwoot System.

", + "LIST": { + "404": "There are no Audit Logs available in this account.", + "TITLE": "Manage Audit Logs", + "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.", + "TABLE_HEADER": { + "ACTIVITY": "Activity", + "TIME": "Time", + "IP_ADDRESS": "IP Address" + } + }, + "API": { + "SUCCESS_MESSAGE": "AuditLogs retrieved successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "DEFAULT_USER": "System", + "AUTOMATION_RULE": { + "ADD": "{agentName} created a new automation rule (#{id})", + "EDIT": "{agentName} updated an automation rule (#{id})", + "DELETE": "{agentName} deleted an automation rule (#{id})" + }, + "ACCOUNT_USER": { + "ADD": "{agentName} invited {invitee} to the account as an {role}", + "EDIT": { + "SELF": "{agentName} changed their {attributes} to {values}", + "OTHER": "{agentName} changed {attributes} of {user} to {values}", + "DELETED": "{agentName} changed {attributes} of a deleted user to {values}" + } + }, + "INBOX": { + "ADD": "{agentName} created a new inbox (#{id})", + "EDIT": "{agentName} updated an inbox (#{id})", + "DELETE": "{agentName} deleted an inbox (#{id})" + }, + "WEBHOOK": { + "ADD": "{agentName} created a new webhook (#{id})", + "EDIT": "{agentName} updated a webhook (#{id})", + "DELETE": "{agentName} deleted a webhook (#{id})" + }, + "USER_ACTION": { + "SIGN_IN": "{agentName} signed in", + "SIGN_OUT": "{agentName} signed out" + }, + "TEAM": { + "ADD": "{agentName} created a new team (#{id})", + "EDIT": "{agentName} updated a team (#{id})", + "DELETE": "{agentName} deleted a team (#{id})" + }, + "MACRO": { + "ADD": "{agentName} created a new macro (#{id})", + "EDIT": "{agentName} updated a macro (#{id})", + "DELETE": "{agentName} deleted a macro (#{id})" + }, + "INBOX_MEMBER": { + "ADD": "{agentName} added {user} to the inbox(#{inbox_id})", + "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})" + }, + "TEAM_MEMBER": { + "ADD": "{agentName} added {user} to the team(#{team_id})", + "REMOVE": "{agentName} removed {user} from the team(#{team_id})" + }, + "ACCOUNT": { + "EDIT": "{agentName} updated the account configuration (#{id})" + }, + "CONVERSATION": { + "DELETE": "{agentName} deleted conversation #{id}" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/automation.json b/app/javascript/dashboard/i18n/locale/et/automation.json new file mode 100644 index 000000000..43245a1d5 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/automation.json @@ -0,0 +1,184 @@ +{ + "AUTOMATION": { + "HEADER": "Automation", + "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.", + "LEARN_MORE": "Learn more about automation", + "HEADER_BTN_TXT": "Add Automation Rule", + "LOADING": "Fetching automation rules", + "ADD": { + "TITLE": "Add Automation Rule", + "SUBMIT": "Create", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "NAME": { + "LABEL": "Rule Name", + "PLACEHOLDER": "Enter rule name", + "ERROR": "Name is required" + }, + "DESC": { + "LABEL": "Description", + "PLACEHOLDER": "Enter rule description", + "ERROR": "Description is required" + }, + "EVENT": { + "LABEL": "Event", + "PLACEHOLDER": "Please select one", + "ERROR": "Event is required" + }, + "CONDITIONS": { + "LABEL": "Conditions" + }, + "ACTIONS": { + "LABEL": "Actions" + } + }, + "CONDITION_BUTTON_LABEL": "Add Condition", + "ACTION_BUTTON_LABEL": "Add Action", + "API": { + "SUCCESS_MESSAGE": "Automation rule added successfully", + "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later" + } + }, + "LIST": { + "TABLE_HEADER": { + "NAME": "Name", + "DESCRIPTION": "Description", + "ACTIVE": "Active", + "CREATED_ON": "Created on" + }, + "404": "No automation rules found" + }, + "DELETE": { + "TITLE": "Delete Automation Rule", + "SUBMIT": "Delete", + "CANCEL_BUTTON_TEXT": "Cancel", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Automation rule deleted successfully", + "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later" + } + }, + "EDIT": { + "TITLE": "Edit Automation Rule", + "SUBMIT": "Update", + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Automation rule updated successfully", + "ERROR_MESSAGE": "Could not update automation rule, Please try again later" + } + }, + "CLONE": { + "TOOLTIP": "Clone", + "API": { + "SUCCESS_MESSAGE": "Automation cloned successfully", + "ERROR_MESSAGE": "Could not clone automation rule, Please try again later" + } + }, + "FORM": { + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel", + "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below" + }, + "CONDITION": { + "DELETE_MESSAGE": "You need to have atleast one condition to save", + "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes", + "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes" + }, + "ACTION": { + "DELETE_MESSAGE": "You need to have atleast one action to save", + "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here", + "TEAM_DROPDOWN_PLACEHOLDER": "Select teams", + "EMAIL_INPUT_PLACEHOLDER": "Enter email", + "URL_INPUT_PLACEHOLDER": "Enter URL" + }, + "TOGGLE": { + "ACTIVATION_TITLE": "Activate Automation Rule", + "DEACTIVATION_TITLE": "Deactivate Automation Rule", + "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?", + "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?", + "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully", + "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully", + "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later", + "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later", + "CONFIRMATION_LABEL": "Yes", + "CANCEL_LABEL": "No" + }, + "ATTACHMENT": { + "UPLOAD_ERROR": "Could not upload attachment, Please try again", + "LABEL_IDLE": "Upload Attachment", + "LABEL_UPLOADING": "Uploading...", + "LABEL_UPLOADED": "Successfully Uploaded", + "LABEL_UPLOAD_FAILED": "Upload Failed" + }, + "ERRORS": { + "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", + "FILTER_OPERATOR_REQUIRED": "Filter operator is required", + "VALUE_REQUIRED": "Value is required", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998", + "ACTION_PARAMETERS_REQUIRED": "Action parameters are required", + "ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required", + "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" + }, + "NONE_OPTION": "None", + "EVENTS": { + "CONVERSATION_CREATED": "Conversation Created", + "CONVERSATION_UPDATED": "Conversation Updated", + "MESSAGE_CREATED": "Message Created", + "CONVERSATION_RESOLVED": "Conversation Resolved", + "CONVERSATION_OPENED": "Conversation Opened" + }, + "ACTIONS": { + "ASSIGN_AGENT": "Assign to Agent", + "ASSIGN_TEAM": "Assign a Team", + "ADD_LABEL": "Add a Label", + "REMOVE_LABEL": "Remove a Label", + "SEND_EMAIL_TO_TEAM": "Send an Email to Team", + "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript", + "MUTE_CONVERSATION": "Mute Conversation", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "RESOLVE_CONVERSATION": "Resolve Conversation", + "SEND_WEBHOOK_EVENT": "Send Webhook Event", + "SEND_ATTACHMENT": "Send Attachment", + "SEND_MESSAGE": "Send a Message", + "ADD_PRIVATE_NOTE": "Add a Private Note", + "CHANGE_PRIORITY": "Change Priority", + "ADD_SLA": "Add SLA", + "OPEN_CONVERSATION": "Open conversation" + }, + "MESSAGE_TYPES": { + "INCOMING": "Incoming Message", + "OUTGOING": "Outgoing Message" + }, + "PRIORITY_TYPES": { + "NONE": "None", + "LOW": "Low", + "MEDIUM": "Medium", + "HIGH": "High", + "URGENT": "Urgent" + }, + "ATTRIBUTES": { + "MESSAGE_TYPE": "Message Type", + "MESSAGE_CONTAINS": "Message Contains", + "EMAIL": "Email", + "INBOX": "Inbox", + "CONVERSATION_LANGUAGE": "Conversation Language", + "PHONE_NUMBER": "Phone Number", + "STATUS": "Status", + "BROWSER_LANGUAGE": "Browser Language", + "MAIL_SUBJECT": "Email Subject", + "COUNTRY_NAME": "Country", + "REFERER_LINK": "Referrer Link", + "ASSIGNEE_NAME": "Assignee", + "TEAM_NAME": "Team", + "PRIORITY": "Priority", + "LABELS": "Labels" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/bulkActions.json b/app/javascript/dashboard/i18n/locale/et/bulkActions.json new file mode 100644 index 000000000..d64d9d38c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/bulkActions.json @@ -0,0 +1,41 @@ +{ + "BULK_ACTION": { + "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected", + "AGENT_SELECT_LABEL": "Select agent", + "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign {conversationCount} {conversationLabel} to", + "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", + "GO_BACK_LABEL": "Go back", + "ASSIGN_LABEL": "Assign", + "YES": "Yes", + "SEARCH_INPUT_PLACEHOLDER": "Search", + "ASSIGN_AGENT_TOOLTIP": "Assign agent", + "ASSIGN_TEAM_TOOLTIP": "Assign team", + "ASSIGN_SUCCESFUL": "Conversations assigned successfully.", + "ASSIGN_FAILED": "Failed to assign conversations. Please try again.", + "RESOLVE_SUCCESFUL": "Conversations resolved successfully.", + "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.", + "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.", + "AGENT_LIST_LOADING": "Loading agents", + "UPDATE": { + "CHANGE_STATUS": "Change status", + "SNOOZE_UNTIL": "Snooze", + "UPDATE_SUCCESFUL": "Conversation status updated successfully.", + "UPDATE_FAILED": "Failed to update conversations. Please try again." + }, + "LABELS": { + "ASSIGN_LABELS": "Assign labels", + "NO_LABELS_FOUND": "No labels found for", + "ASSIGN_SELECTED_LABELS": "Assign selected labels", + "ASSIGN_SUCCESFUL": "Labels assigned successfully.", + "ASSIGN_FAILED": "Failed to assign labels. Please try again." + }, + "TEAMS": { + "TEAM_SELECT_LABEL": "Select team", + "NONE": "None", + "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", + "ASSIGN_SELECTED_TEAMS": "Assign selected team.", + "ASSIGN_SUCCESFUL": "Teams assigned successfully.", + "ASSIGN_FAILED": "Failed to assign team. Please try again." + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/campaign.json b/app/javascript/dashboard/i18n/locale/et/campaign.json new file mode 100644 index 000000000..10366e79e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/campaign.json @@ -0,0 +1,214 @@ +{ + "CAMPAIGN": { + "LIVE_CHAT": { + "HEADER_TITLE": "Live chat campaigns", + "NEW_CAMPAIGN": "Create campaign", + "CARD": { + "STATUS": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "CAMPAIGN_DETAILS": { + "SENT_BY": "Sent by", + "BOT": "Bot", + "FROM": "from", + "URL": "URL:" + } + }, + "EMPTY_STATE": { + "TITLE": "No live chat campaigns are available", + "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started." + }, + "CREATE": { + "TITLE": "Create a live chat campaign", + "CANCEL_BUTTON_TEXT": "Cancel", + "CREATE_BUTTON_TEXT": "Create", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Please enter the title of campaign", + "ERROR": "Title is required" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter the message of campaign", + "ERROR": "Message is required" + }, + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox", + "ERROR": "Inbox is required" + }, + "SENT_BY": { + "LABEL": "Sent by", + "PLACEHOLDER": "Please select sender", + "ERROR": "Sender is required" + }, + "END_POINT": { + "LABEL": "URL", + "PLACEHOLDER": "Please enter the URL", + "ERROR": "Please enter a valid URL" + }, + "TIME_ON_PAGE": { + "LABEL": "Time on page(Seconds)", + "PLACEHOLDER": "Please enter the time", + "ERROR": "Time on page is required" + }, + "OTHER_PREFERENCES": { + "TITLE": "Other preferences", + "ENABLED": "Enable campaign", + "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours" + }, + "BUTTONS": { + "CREATE": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Live chat campaign created successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + }, + "EDIT": { + "TITLE": "Edit live chat campaign", + "FORM": { + "API": { + "SUCCESS_MESSAGE": "Live chat campaign updated successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + } + }, + "SMS": { + "HEADER_TITLE": "SMS campaigns", + "NEW_CAMPAIGN": "Create campaign", + "EMPTY_STATE": { + "TITLE": "No SMS campaigns are available", + "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started." + }, + "CARD": { + "STATUS": { + "COMPLETED": "Completed", + "SCHEDULED": "Scheduled" + }, + "CAMPAIGN_DETAILS": { + "SENT_FROM": "Sent from", + "ON": "on" + } + }, + "CREATE": { + "TITLE": "Create SMS campaign", + "CANCEL_BUTTON_TEXT": "Cancel", + "CREATE_BUTTON_TEXT": "Create", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Please enter the title of campaign", + "ERROR": "Title is required" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter the message of campaign", + "ERROR": "Message is required" + }, + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox", + "ERROR": "Inbox is required" + }, + "AUDIENCE": { + "LABEL": "Audience", + "PLACEHOLDER": "Select the customer labels", + "ERROR": "Audience is required" + }, + "SCHEDULED_AT": { + "LABEL": "Scheduled time", + "PLACEHOLDER": "Please select the time", + "ERROR": "Scheduled time is required" + }, + "BUTTONS": { + "CREATE": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "SMS campaign created successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + } + }, + "WHATSAPP": { + "HEADER_TITLE": "WhatsApp campaigns", + "NEW_CAMPAIGN": "Create campaign", + "EMPTY_STATE": { + "TITLE": "No WhatsApp campaigns are available", + "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started." + }, + "CARD": { + "STATUS": { + "COMPLETED": "Completed", + "SCHEDULED": "Scheduled" + }, + "CAMPAIGN_DETAILS": { + "SENT_FROM": "Sent from", + "ON": "on" + } + }, + "CREATE": { + "TITLE": "Create WhatsApp campaign", + "CANCEL_BUTTON_TEXT": "Cancel", + "CREATE_BUTTON_TEXT": "Create", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Please enter the title of campaign", + "ERROR": "Title is required" + }, + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox", + "ERROR": "Inbox is required" + }, + "TEMPLATE": { + "LABEL": "WhatsApp Template", + "PLACEHOLDER": "Select a template", + "INFO": "Select a template to use for this campaign.", + "ERROR": "Template is required", + "PREVIEW_TITLE": "Process {templateName}", + "LANGUAGE": "Language", + "CATEGORY": "Category", + "VARIABLES_LABEL": "Variables", + "VARIABLE_PLACEHOLDER": "Enter value for {variable}" + }, + "AUDIENCE": { + "LABEL": "Audience", + "PLACEHOLDER": "Select the customer labels", + "ERROR": "Audience is required" + }, + "SCHEDULED_AT": { + "LABEL": "Scheduled time", + "PLACEHOLDER": "Please select the time", + "ERROR": "Scheduled time is required" + }, + "BUTTONS": { + "CREATE": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "WhatsApp campaign created successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + } + }, + "CONFIRM_DELETE": { + "TITLE": "Are you sure to delete?", + "DESCRIPTION": "The delete action is permanent and cannot be reversed.", + "CONFIRM": "Delete", + "API": { + "SUCCESS_MESSAGE": "Campaign deleted successfully", + "ERROR_MESSAGE": "There was an error. Please try again." + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json new file mode 100644 index 000000000..3ff246f06 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json @@ -0,0 +1,77 @@ +{ + "CANNED_MGMT": { + "HEADER": "Canned Responses", + "LEARN_MORE": "Learn more about canned responses", + "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ", + "HEADER_BTN_TXT": "Add canned response", + "LOADING": "Fetching canned responses...", + "SEARCH_404": "There are no items matching this query.", + "LIST": { + "404": "There are no canned responses available in this account.", + "TITLE": "Manage canned responses", + "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.", + "TABLE_HEADER": { + "SHORT_CODE": "Short code", + "CONTENT": "Content", + "ACTIONS": "Actions" + } + }, + "ADD": { + "TITLE": "Add canned response", + "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "SHORT_CODE": { + "LABEL": "Short code", + "PLACEHOLDER": "Please enter a short code.", + "ERROR": "Short Code is required." + }, + "CONTENT": { + "LABEL": "Message", + "PLACEHOLDER": "Please write the message you want to save as a template to use later.", + "ERROR": "Message is required." + }, + "SUBMIT": "Submit" + }, + "API": { + "SUCCESS_MESSAGE": "Canned response added successfully.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + } + }, + "EDIT": { + "TITLE": "Edit canned response", + "CANCEL_BUTTON_TEXT": "Cancel", + "FORM": { + "SHORT_CODE": { + "LABEL": "Short code", + "PLACEHOLDER": "Please enter a shortcode.", + "ERROR": "Short code is required." + }, + "CONTENT": { + "LABEL": "Message", + "PLACEHOLDER": "Please write the message you want to save as a template to use later.", + "ERROR": "Message is required." + }, + "SUBMIT": "Submit" + }, + "BUTTON_TEXT": "Edit", + "API": { + "SUCCESS_MESSAGE": "Canned response is updated successfully.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Canned response deleted successfully.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "CONFIRM": { + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, delete ", + "NO": "No, keep " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/chatlist.json b/app/javascript/dashboard/i18n/locale/et/chatlist.json new file mode 100644 index 000000000..ec416f6cb --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/chatlist.json @@ -0,0 +1,139 @@ +{ + "CHAT_LIST": { + "LOADING": "Fetching conversations", + "LOAD_MORE_CONVERSATIONS": "Load more conversations", + "EOF": "All conversations loaded 🎉", + "LIST": { + "404": "There are no active conversations in this group." + }, + "FAILED_TO_SEND": "Failed to send", + "TAB_HEADING": "Conversations", + "MENTION_HEADING": "Mentions", + "UNATTENDED_HEADING": "Unattended", + "SEARCH": { + "INPUT": "Search for People, Chats, Saved Replies .." + }, + "FILTER_ALL": "All", + "ASSIGNEE_TYPE_TABS": { + "me": "Mine", + "unassigned": "Unassigned", + "all": "All" + }, + "CHAT_STATUS_FILTER_ITEMS": { + "open": { + "TEXT": "Open" + }, + "resolved": { + "TEXT": "Resolved" + }, + "pending": { + "TEXT": "Pending" + }, + "snoozed": { + "TEXT": "Snoozed" + }, + "all": { + "TEXT": "All" + } + }, + "VIEW_FILTER": "View", + "SORT_TOOLTIP_LABEL": "Sort conversations", + "CHAT_SORT": { + "STATUS": "Status", + "ORDER_BY": "Order by" + }, + "CHAT_TIME_STAMP": { + "CREATED": { + "LATEST": "Created", + "OLDEST": "Created at:" + }, + "LAST_ACTIVITY": { + "NOT_ACTIVE": "Last activity:", + "ACTIVE": "Last activity" + } + }, + "SORT_ORDER_ITEMS": { + "last_activity_at_asc": { + "TEXT": "Last activity: Oldest first" + }, + "last_activity_at_desc": { + "TEXT": "Last activity: Newest first" + }, + "created_at_desc": { + "TEXT": "Created at: Newest first" + }, + "created_at_asc": { + "TEXT": "Created at: Oldest first" + }, + "priority_desc": { + "TEXT": "Priority: Highest first" + }, + "priority_asc": { + "TEXT": "Priority: Lowest first" + }, + "waiting_since_asc": { + "TEXT": "Pending Response: Longest first" + }, + "waiting_since_desc": { + "TEXT": "Pending Response: Shortest first" + } + }, + "ATTACHMENTS": { + "image": { + "CONTENT": "Picture message" + }, + "audio": { + "CONTENT": "Audio message" + }, + "video": { + "CONTENT": "Video message" + }, + "file": { + "CONTENT": "File Attachment" + }, + "location": { + "CONTENT": "Location" + }, + "ig_reel": { + "CONTENT": "Instagram Reel" + }, + "fallback": { + "CONTENT": "has shared a url" + }, + "contact": { + "CONTENT": "Shared contact" + } + }, + "CHAT_SORT_BY_FILTER": { + "TITLE": "Sort conversation", + "DROPDOWN_TITLE": "Sort by", + "ITEMS": { + "LATEST": { + "NAME": "Last activity at", + "LABEL": "Last activity" + }, + "CREATED_AT": { + "NAME": "Created at", + "LABEL": "Created at" + }, + "LAST_USER_MESSAGE_AT": { + "NAME": "Last user message at", + "LABEL": "Last message" + } + } + }, + "RECEIVED_VIA_EMAIL": "Received via email", + "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter", + "REPLY_TO_TWEET": "Reply to this tweet", + "LINK_TO_STORY": "Go to instagram story", + "SENT": "Sent successfully", + "READ": "Read successfully", + "DELIVERED": "Delivered successfully", + "NO_MESSAGES": "No Messages", + "NO_CONTENT": "No content available", + "HIDE_QUOTED_TEXT": "Hide Quoted Text", + "SHOW_QUOTED_TEXT": "Show Quoted Text", + "MESSAGE_READ": "Read", + "SENDING": "Sending" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/components.json b/app/javascript/dashboard/i18n/locale/et/components.json new file mode 100644 index 000000000..0a2542a84 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/components.json @@ -0,0 +1,56 @@ +{ + "PAGINATION_FOOTER": { + "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items", + "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages" + }, + "COMBOBOX": { + "PLACEHOLDER": "Select an option...", + "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`", + "EMPTY_STATE": "No results found.", + "SEARCH_PLACEHOLDER": "Search...", + "MORE": "+{count} more" + }, + "DROPDOWN_MENU": { + "SEARCH_PLACEHOLDER": "Search...", + "EMPTY_STATE": "No results found.", + "SEARCHING": "Searching..." + }, + "DIALOG": { + "BUTTONS": { + "CANCEL": "Cancel", + "CONFIRM": "Confirm" + } + }, + "PHONE_INPUT": { + "SEARCH_PLACEHOLDER": "Search country", + "ERROR": "Phone number should be empty or in E.164 format", + "DIAL_CODE_ERROR": "Please select a dial code from the list" + }, + "THUMBNAIL": { + "AUTHOR": { + "NOT_AVAILABLE": "Author is not available" + } + }, + "BREADCRUMB": { + "ARIA_LABEL": "Breadcrumb" + }, + "SWITCH": { + "TOGGLE": "Toggle switch" + }, + "LABEL": { + "TAG_BUTTON": "tag" + }, + "FEATURE_SPOTLIGHT": { + "LEARN_MORE": "Learn more", + "WATCH_VIDEO": "Watch video" + }, + "DURATION_INPUT": { + "MINUTES": "Minutes", + "HOURS": "Hours", + "DAYS": "Days", + "PLACEHOLDER": "Enter duration" + }, + "CHANNEL_SELECTOR": { + "COMING_SOON": "Coming Soon!" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/contact.json b/app/javascript/dashboard/i18n/locale/et/contact.json new file mode 100644 index 000000000..54d783efc --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/contact.json @@ -0,0 +1,630 @@ +{ + "CONTACT_PANEL": { + "NOT_AVAILABLE": "Not Available", + "EMAIL_ADDRESS": "Email Address", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "COMPANY": "Company", + "LOCATION": "Location", + "BROWSER_LANGUAGE": "Browser Language", + "CONVERSATION_TITLE": "Conversation Details", + "VIEW_PROFILE": "View Profile", + "BROWSER": "Browser", + "OS": "Operating System", + "INITIATED_FROM": "Initiated from", + "INITIATED_AT": "Initiated at", + "IP_ADDRESS": "IP Address", + "CREATED_AT_LABEL": "Created", + "NEW_MESSAGE": "New message", + "CALL": "Call", + "CALL_UNDER_DEVELOPMENT": "Calling is under development", + "VOICE_INBOX_PICKER": { + "TITLE": "Choose a voice inbox" + }, + "CONVERSATIONS": { + "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.", + "TITLE": "Previous Conversations" + }, + "LABELS": { + "CONTACT": { + "TITLE": "Contact Labels", + "ERROR": "Couldn't update labels" + }, + "CONVERSATION": { + "TITLE": "Conversation Labels", + "ADD_BUTTON": "Add Labels" + }, + "LABEL_SELECT": { + "TITLE": "Add Labels", + "PLACEHOLDER": "Search labels", + "NO_RESULT": "No labels found", + "CREATE_LABEL": "Create new label" + } + }, + "MERGE_CONTACT": "Merge contact", + "CONTACT_ACTIONS": "Contact actions", + "MUTE_CONTACT": "Block Contact", + "UNMUTE_CONTACT": "Unblock Contact", + "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.", + "UNMUTED_SUCCESS": "This contact is unblocked successfully.", + "SEND_TRANSCRIPT": "Send Transcript", + "EDIT_LABEL": "Edit", + "SIDEBAR_SECTIONS": { + "CUSTOM_ATTRIBUTES": "Custom Attributes", + "CONTACT_LABELS": "Contact Labels", + "PREVIOUS_CONVERSATIONS": "Previous Conversations", + "NO_RECORDS_FOUND": "No attributes found" + } + }, + "EDIT_CONTACT": { + "BUTTON_LABEL": "Edit Contact", + "TITLE": "Edit contact", + "DESC": "Edit contact details" + }, + "DELETE_CONTACT": { + "BUTTON_LABEL": "Delete Contact", + "TITLE": "Delete contact", + "DESC": "Delete contact details", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete", + "NO": "No, Keep" + }, + "API": { + "SUCCESS_MESSAGE": "Contact deleted successfully", + "ERROR_MESSAGE": "Could not delete contact. Please try again later." + } + }, + "CONTACT_FORM": { + "FORM": { + "SUBMIT": "Submit", + "CANCEL": "Cancel", + "AVATAR": { + "LABEL": "Contact Avatar" + }, + "NAME": { + "PLACEHOLDER": "Enter the full name of the contact", + "LABEL": "Full Name" + }, + "BIO": { + "PLACEHOLDER": "Enter the bio of the contact", + "LABEL": "Bio" + }, + "EMAIL_ADDRESS": { + "PLACEHOLDER": "Enter the email address of the contact", + "LABEL": "Email Address", + "DUPLICATE": "This email address is in use for another contact.", + "ERROR": "Please enter a valid email address." + }, + "PHONE_NUMBER": { + "PLACEHOLDER": "Enter the phone number of the contact", + "LABEL": "Phone Number", + "HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.", + "ERROR": "Phone number should be either empty or of E.164 format", + "DIAL_CODE_ERROR": "Please select a dial code from the list", + "DUPLICATE": "This phone number is in use for another contact." + }, + "LOCATION": { + "PLACEHOLDER": "Enter the location of the contact", + "LABEL": "Location" + }, + "COMPANY_NAME": { + "PLACEHOLDER": "Enter the company name", + "LABEL": "Company Name" + }, + "COUNTRY": { + "PLACEHOLDER": "Enter the country name", + "LABEL": "Country Name", + "SELECT_PLACEHOLDER": "Select", + "REMOVE": "Remove", + "SELECT_COUNTRY": "Select Country" + }, + "CITY": { + "PLACEHOLDER": "Enter the city name", + "LABEL": "City Name" + }, + "SOCIAL_PROFILES": { + "FACEBOOK": { + "PLACEHOLDER": "Enter the Facebook username", + "LABEL": "Facebook" + }, + "TWITTER": { + "PLACEHOLDER": "Enter the Twitter username", + "LABEL": "Twitter" + }, + "LINKEDIN": { + "PLACEHOLDER": "Enter the LinkedIn username", + "LABEL": "LinkedIn" + }, + "GITHUB": { + "PLACEHOLDER": "Enter the Github username", + "LABEL": "Github" + } + } + }, + "DELETE_AVATAR": { + "API": { + "SUCCESS_MESSAGE": "Contact avatar deleted successfully", + "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later." + } + }, + "SUCCESS_MESSAGE": "Contact saved successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "NEW_CONVERSATION": { + "BUTTON_LABEL": "Start conversation", + "TITLE": "New conversation", + "DESC": "Start a new conversation by sending a new message.", + "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.", + "FORM": { + "TO": { + "LABEL": "To" + }, + "INBOX": { + "LABEL": "Via Inbox", + "PLACEHOLDER": "Choose source inbox", + "ERROR": "Select an inbox" + }, + "SUBJECT": { + "LABEL": "Subject", + "PLACEHOLDER": "Subject", + "ERROR": "Subject can't be empty" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Write your message here", + "ERROR": "Message can't be empty" + }, + "ATTACHMENTS": { + "SELECT": "Choose files", + "HELP_TEXT": "Drag and drop files here or choose files to attach" + }, + "SUBMIT": "Send message", + "CANCEL": "Cancel", + "SUCCESS_MESSAGE": "Message sent!", + "GO_TO_CONVERSATION": "View", + "ERROR_MESSAGE": "Couldn't send! try again" + } + }, + "CONTACTS_PAGE": { + "LIST": { + "TABLE_HEADER": { + "SOCIAL_PROFILES": "Social Profiles" + } + } + }, + "CUSTOM_ATTRIBUTES": { + "BUTTON": "Add custom attribute", + "COPY_SUCCESSFUL": "Copied to clipboard successfully", + "SHOW_MORE": "Show all attributes", + "SHOW_LESS": "Show less attributes", + "ACTIONS": { + "COPY": "Copy attribute", + "DELETE": "Delete attribute", + "EDIT": "Edit attribute" + }, + "ADD": { + "TITLE": "Create custom attribute", + "DESC": "Add custom information to this contact." + }, + "FORM": { + "CREATE": "Add attribute", + "CANCEL": "Cancel", + "NAME": { + "LABEL": "Custom attribute name", + "PLACEHOLDER": "Eg: shopify id", + "ERROR": "Invalid custom attribute name" + }, + "VALUE": { + "LABEL": "Attribute value", + "PLACEHOLDER": "Eg: 11901 " + }, + "ADD": { + "TITLE": "Create new attribute ", + "SUCCESS": "Attribute added successfully", + "ERROR": "Unable to add attribute. Please try again later" + }, + "UPDATE": { + "SUCCESS": "Attribute updated successfully", + "ERROR": "Unable to update attribute. Please try again later" + }, + "DELETE": { + "SUCCESS": "Attribute deleted successfully", + "ERROR": "Unable to delete attribute. Please try again later" + }, + "ATTRIBUTE_SELECT": { + "TITLE": "Add attributes", + "PLACEHOLDER": "Search attributes", + "NO_RESULT": "No attributes found" + }, + "ATTRIBUTE_TYPE": { + "LIST": { + "PLACEHOLDER": "Select value", + "SEARCH_INPUT_PLACEHOLDER": "Search value", + "NO_RESULT": "No result found" + } + } + }, + "VALIDATIONS": { + "REQUIRED": "Valid value is required", + "INVALID_URL": "Invalid URL", + "INVALID_INPUT": "Invalid Input" + } + }, + "MERGE_CONTACTS": { + "TITLE": "Merge contacts", + "DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’s attributes will take precedence.", + "PRIMARY": { + "TITLE": "Primary contact", + "HELP_LABEL": "To be deleted" + }, + "PARENT": { + "TITLE": "Contact to merge", + "PLACEHOLDER": "Search for a contact", + "HELP_LABEL": "To be kept" + }, + "SUMMARY": { + "TITLE": "Summary", + "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.", + "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}." + }, + "SEARCH": { + "ERROR_MESSAGE": "Something went wrong. Please try again later." + }, + "FORM": { + "SUBMIT": " Merge contacts", + "CANCEL": "Cancel", + "CHILD_CONTACT": { + "ERROR": "Select a child contact to merge" + }, + "SUCCESS_MESSAGE": "Contact merged successfully", + "ERROR_MESSAGE": "Could not merge contacts, try again!" + }, + "DROPDOWN_ITEM": { + "ID": "(ID: {identifier})" + } + }, + "CONTACTS_LAYOUT": { + "HEADER": { + "TITLE": "Contacts", + "SEARCH_TITLE": "Search contacts", + "ACTIVE_TITLE": "Active contacts", + "SEARCH_PLACEHOLDER": "Search...", + "MESSAGE_BUTTON": "Message", + "SEND_MESSAGE": "Send message", + "BLOCK_CONTACT": "Block contact", + "UNBLOCK_CONTACT": "Unblock contact", + "BREADCRUMB": { + "CONTACTS": "Contacts" + }, + "ACTIONS": { + "CONTACT_CREATION": { + "ADD_CONTACT": "Add contact", + "EXPORT_CONTACT": "Export contacts", + "IMPORT_CONTACT": "Import contacts", + "SAVE_CONTACT": "Save contact", + "EMAIL_ADDRESS_DUPLICATE": "This email address is in use for another contact.", + "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.", + "SUCCESS_MESSAGE": "Contact saved successfully", + "ERROR_MESSAGE": "Unable to save contact. Please try again later." + }, + "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully", + "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.", + "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully", + "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.", + "IMPORT_CONTACT": { + "TITLE": "Import contacts", + "DESCRIPTION": "Import contacts through a CSV file.", + "DOWNLOAD_LABEL": "Download a sample csv.", + "LABEL": "CSV File:", + "CHOOSE_FILE": "Choose file", + "CHANGE": "Change", + "CANCEL": "Cancel", + "IMPORT": "Import", + "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "EXPORT_CONTACT": { + "TITLE": "Export contacts", + "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts", + "CONFIRM": "Export", + "SUCCESS_MESSAGE": "Export is in progress. You will be notified on email when the export file is ready to download.", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "SORT_BY": { + "LABEL": "Sort by", + "OPTIONS": { + "NAME": "Name", + "EMAIL": "Email", + "PHONE_NUMBER": "Phone number", + "COMPANY": "Company", + "COUNTRY": "Country", + "CITY": "City", + "LAST_ACTIVITY": "Last activity", + "CREATED_AT": "Created at" + } + }, + "ORDER": { + "LABEL": "Ordering", + "OPTIONS": { + "ASCENDING": "Ascending", + "DESCENDING": "Descending" + } + }, + "FILTERS": { + "CREATE_SEGMENT": { + "TITLE": "Do you want to save this filter?", + "CONFIRM": "Save filter", + "LABEL": "Name", + "PLACEHOLDER": "Enter the name of the filter", + "ERROR": "Enter a valid name", + "SUCCESS_MESSAGE": "Filter saved successfully", + "ERROR_MESSAGE": "Unable to save filter. Please try again later." + }, + "DELETE_SEGMENT": { + "TITLE": "Confirm Deletion", + "DESCRIPTION": "Are you sure you want to delete this filter?", + "CONFIRM": "Yes, Delete", + "CANCEL": "No, Cancel", + "SUCCESS_MESSAGE": "Filter deleted successfully", + "ERROR_MESSAGE": "Unable to delete filter. Please try again later." + } + } + } + }, + "PAGINATION_FOOTER": { + "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts" + }, + "FILTER": { + "NAME": "Name", + "EMAIL": "Email", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "COUNTRY": "Country", + "CITY": "City", + "CREATED_AT": "Created at", + "LAST_ACTIVITY": "Last activity", + "REFERER_LINK": "Referer link", + "BLOCKED": "Blocked", + "BLOCKED_TRUE": "True", + "BLOCKED_FALSE": "False", + "BUTTONS": { + "CLEAR_FILTERS": "Clear filters", + "UPDATE_SEGMENT": "Update segment", + "APPLY_FILTERS": "Apply filters", + "ADD_FILTER": "Add filter" + }, + "TITLE": "Filter contacts", + "EDIT_SEGMENT": "Edit segment", + "SEGMENT": { + "LABEL": "Segment name", + "INPUT_PLACEHOLDER": "Enter the name of the segment" + }, + "ACTIVE_FILTERS": { + "MORE_FILTERS": "+ {count} more filters", + "CLEAR_FILTERS": "Clear filters" + } + }, + "CARD": { + "OF": "of", + "VIEW_DETAILS": "View details", + "EDIT_DETAILS_FORM": { + "TITLE": "Edit contact details", + "FORM": { + "FIRST_NAME": { + "PLACEHOLDER": "Enter the first name" + }, + "LAST_NAME": { + "PLACEHOLDER": "Enter the last name" + }, + "EMAIL_ADDRESS": { + "PLACEHOLDER": "Enter the email address", + "DUPLICATE": "This email address is in use for another contact." + }, + "PHONE_NUMBER": { + "PLACEHOLDER": "Enter the phone number", + "DUPLICATE": "This phone number is in use for another contact." + }, + "CITY": { + "PLACEHOLDER": "Enter the city name" + }, + "COUNTRY": { + "PLACEHOLDER": "Select country" + }, + "BIO": { + "PLACEHOLDER": "Enter the bio" + }, + "COMPANY_NAME": { + "PLACEHOLDER": "Enter the company name" + } + }, + "UPDATE_BUTTON": "Update contact", + "SUCCESS_MESSAGE": "Contact updated successfully", + "ERROR_MESSAGE": "Unable to update contact. Please try again later." + }, + "SOCIAL_MEDIA": { + "TITLE": "Edit social links", + "FORM": { + "FACEBOOK": { + "PLACEHOLDER": "Add Facebook" + }, + "GITHUB": { + "PLACEHOLDER": "Add Github" + }, + "INSTAGRAM": { + "PLACEHOLDER": "Add Instagram" + }, + "LINKEDIN": { + "PLACEHOLDER": "Add LinkedIn" + }, + "TWITTER": { + "PLACEHOLDER": "Add Twitter" + } + } + }, + "DELETE_CONTACT": { + "MESSAGE": "This action is permanent and irreversible.", + "BUTTON": "Delete now" + } + }, + "DETAILS": { + "CREATED_AT": "Created {date}", + "LAST_ACTIVITY": "Last active {date}", + "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible", + "DELETE_CONTACT": "Delete contact", + "DELETE_DIALOG": { + "TITLE": "Confirm Deletion", + "DESCRIPTION": "Are you sure you want to delete this contact?", + "CONFIRM": "Yes, Delete", + "API": { + "SUCCESS_MESSAGE": "Contact deleted successfully", + "ERROR_MESSAGE": "Could not delete contact. Please try again later." + } + }, + "AVATAR": { + "UPLOAD": { + "ERROR_MESSAGE": "Could not upload avatar. Please try again later.", + "SUCCESS_MESSAGE": "Avatar uploaded successfully" + }, + "DELETE": { + "SUCCESS_MESSAGE": "Avatar deleted successfully", + "ERROR_MESSAGE": "Could not delete avatar. Please try again later." + } + } + }, + "SIDEBAR": { + "TABS": { + "ATTRIBUTES": "Attributes", + "HISTORY": "History", + "NOTES": "Notes", + "MERGE": "Merge" + }, + "HISTORY": { + "EMPTY_STATE": "There are no previous conversations associated to this contact" + }, + "ATTRIBUTES": { + "SEARCH_PLACEHOLDER": "Search for attributes", + "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes", + "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.", + "YES": "Yes", + "NO": "No", + "TRIGGER": { + "SELECT": "Select value", + "INPUT": "Enter value" + }, + "VALIDATIONS": { + "INVALID_NUMBER": "Invalid number", + "REQUIRED": "Valid value is required", + "INVALID_INPUT": "Invalid input", + "INVALID_URL": "Invalid URL", + "INVALID_DATE": "Invalid date" + }, + "NO_ATTRIBUTES": "No attributes found", + "API": { + "SUCCESS_MESSAGE": "Attribute updated successfully", + "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully", + "UPDATE_ERROR": "Unable to update attribute. Please try again later", + "DELETE_ERROR": "Unable to delete attribute. Please try again later" + } + }, + "MERGE": { + "TITLE": "Merge contact", + "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.", + "PRIMARY": "Primary contact", + "PRIMARY_HELP_LABEL": "To be saved", + "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding", + "PARENT": "To be merged", + "PARENT_HELP_LABEL": "To be deleted", + "EMPTY_STATE": "No contacts found", + "PLACEHOLDER": "Search for primary contact", + "SEARCH_PLACEHOLDER": "Search for a contact", + "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.", + "SUCCESS_MESSAGE": "Contact merged successfully", + "ERROR_MESSAGE": "Could not merge contacts, try again!", + "IS_SEARCHING": "Searching...", + "BUTTONS": { + "CANCEL": "Cancel", + "CONFIRM": "Merge contact" + } + }, + "NOTES": { + "PLACEHOLDER": "Add a note", + "WROTE": "wrote", + "YOU": "You", + "SAVE": "Save note", + "ADD_NOTE": "Add contact note", + "EXPAND": "Expand", + "COLLAPSE": "Collapse", + "NO_NOTES": "No notes, you can add notes from the contact details page.", + "EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above.", + "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one." + } + }, + "EMPTY_STATE": { + "TITLE": "No contacts found in this account", + "SUBTITLE": "Start adding new contacts by clicking on the button below", + "BUTTON_LABEL": "Add contact", + "SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍", + "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋", + "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙" + } + }, + "COMPOSE_NEW_CONVERSATION": { + "CONTACT_SEARCH": { + "ERROR_MESSAGE": "We couldn’t complete the search. Please try again." + }, + "FORM": { + "GO_TO_CONVERSATION": "View", + "SUCCESS_MESSAGE": "The message was sent successfully!", + "ERROR_MESSAGE": "An error occurred while creating the conversation. Please try again later.", + "NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.", + "CONTACT_SELECTOR": { + "LABEL": "To:", + "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number", + "CONTACT_CREATING": "Creating contact..." + }, + "INBOX_SELECTOR": { + "LABEL": "Via:", + "BUTTON": "Show inboxes" + }, + "EMAIL_OPTIONS": { + "SUBJECT_LABEL": "Subject :", + "SUBJECT_PLACEHOLDER": "Enter your email subject here", + "CC_LABEL": "Cc:", + "CC_PLACEHOLDER": "Search for a contact with their email address", + "BCC_LABEL": "Bcc:", + "BCC_PLACEHOLDER": "Search for a contact with their email address", + "BCC_BUTTON": "Bcc" + }, + "MESSAGE_EDITOR": { + "PLACEHOLDER": "Write your message here..." + }, + "WHATSAPP_OPTIONS": { + "LABEL": "Select template", + "SEARCH_PLACEHOLDER": "Search templates", + "EMPTY_STATE": "No templates found", + "TEMPLATE_PARSER": { + "TEMPLATE_NAME": "WhatsApp template: {templateName}", + "VARIABLES": "Variables", + "BACK": "Go back", + "SEND_MESSAGE": "Send message" + } + }, + "TWILIO_OPTIONS": { + "LABEL": "Select template", + "SEARCH_PLACEHOLDER": "Search templates", + "EMPTY_STATE": "No templates found", + "TEMPLATE_PARSER": { + "BACK": "Go back", + "SEND_MESSAGE": "Send message" + } + }, + "ACTION_BUTTONS": { + "DISCARD": "Discard", + "SEND": "Send ({keyCode})" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/contactFilters.json b/app/javascript/dashboard/i18n/locale/et/contactFilters.json new file mode 100644 index 000000000..4c62f0789 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/contactFilters.json @@ -0,0 +1,60 @@ +{ + "CONTACTS_FILTER": { + "TITLE": "Filter Contacts", + "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.", + "EDIT_CUSTOM_SEGMENT": "Edit Segment", + "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.", + "ADD_NEW_FILTER": "Add Filter", + "CLEAR_ALL_FILTERS": "Clear All Filters", + "FILTER_DELETE_ERROR": "You should have atleast one filter to save", + "SUBMIT_BUTTON_LABEL": "Submit", + "UPDATE_BUTTON_LABEL": "Update Segment", + "CANCEL_BUTTON_LABEL": "Cancel", + "CLEAR_BUTTON_LABEL": "Clear Filters", + "EMPTY_VALUE_ERROR": "Value is required", + "SEGMENT_LABEL": "Segment Name", + "SEGMENT_QUERY_LABEL": "Segment Query", + "TOOLTIP_LABEL": "Filter contacts", + "QUERY_DROPDOWN_LABELS": { + "AND": "AND", + "OR": "OR" + }, + "OPERATOR_LABELS": { + "equal_to": "Equal to", + "not_equal_to": "Not equal to", + "contains": "Contains", + "does_not_contain": "Does not contain", + "is_present": "Is present", + "is_not_present": "Is not present", + "is_greater_than": "Is greater than", + "is_lesser_than": "Is lesser than", + "days_before": "Is x days before" + }, + "ERRORS": { + "VALUE_REQUIRED": "Value is required" + }, + "ATTRIBUTES": { + "NAME": "Name", + "EMAIL": "Email", + "PHONE_NUMBER": "Phone number", + "IDENTIFIER": "Identifier", + "CITY": "City", + "COUNTRY": "Country", + "CUSTOM_ATTRIBUTE_LIST": "List", + "CUSTOM_ATTRIBUTE_TEXT": "Text", + "CUSTOM_ATTRIBUTE_NUMBER": "Number", + "CUSTOM_ATTRIBUTE_LINK": "Link", + "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", + "CREATED_AT": "Created At", + "LAST_ACTIVITY": "Last Activity", + "REFERER_LINK": "Referrer link", + "BLOCKED": "Blocked", + "LABELS": "Labels" + }, + "GROUPS": { + "STANDARD_FILTERS": "Standard Filters", + "ADDITIONAL_FILTERS": "Additional Filters", + "CUSTOM_ATTRIBUTES": "Custom Attributes" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/contentTemplates.json b/app/javascript/dashboard/i18n/locale/et/contentTemplates.json new file mode 100644 index 000000000..a9b1d54c4 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/contentTemplates.json @@ -0,0 +1,51 @@ +{ + "CONTENT_TEMPLATES": { + "MODAL": { + "TITLE": "Twilio Templates", + "SUBTITLE": "Select the Twilio template you want to send", + "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}" + }, + "PICKER": { + "SEARCH_PLACEHOLDER": "Search Templates", + "NO_TEMPLATES_FOUND": "No templates found for", + "NO_CONTENT": "No content", + "HEADER": "Header", + "BODY": "Body", + "FOOTER": "Footer", + "BUTTONS": "Buttons", + "CATEGORY": "Category", + "MEDIA_CONTENT": "Media Content", + "MEDIA_CONTENT_FALLBACK": "media content", + "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.", + "REFRESH_BUTTON": "Refresh templates", + "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.", + "REFRESH_ERROR": "Failed to refresh templates. Please try again.", + "LABELS": { + "LANGUAGE": "Language", + "TEMPLATE_BODY": "Template Body", + "CATEGORY": "Category" + }, + "TYPES": { + "MEDIA": "Media", + "QUICK_REPLY": "Quick Reply", + "TEXT": "Text" + } + }, + "PARSER": { + "VARIABLES_LABEL": "Variables", + "LANGUAGE": "Language", + "CATEGORY": "Category", + "VARIABLE_PLACEHOLDER": "Enter {variable} value", + "GO_BACK_LABEL": "Go Back", + "SEND_MESSAGE_LABEL": "Send Message", + "FORM_ERROR_MESSAGE": "Please fill all variables before sending", + "MEDIA_HEADER_LABEL": "{type} Header", + "MEDIA_URL_LABEL": "Enter full media URL", + "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg" + }, + "FORM": { + "BACK_BUTTON": "Back", + "SEND_MESSAGE_BUTTON": "Send Message" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/conversation.json b/app/javascript/dashboard/i18n/locale/et/conversation.json new file mode 100644 index 000000000..79d5ebc66 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/conversation.json @@ -0,0 +1,429 @@ +{ + "CONVERSATION": { + "SELECT_A_CONVERSATION": "Please select a conversation from left pane", + "CSAT_REPLY_MESSAGE": "Please rate the conversation", + "404": "Sorry, we cannot find the conversation. Please try again", + "SWITCH_VIEW_LAYOUT": "Switch the layout", + "DASHBOARD_APP_TAB_MESSAGES": "Messages", + "UNVERIFIED_SESSION": "The identity of this user is not verified", + "NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.", + "NO_MESSAGE_2": " to send a message to your page!", + "NO_INBOX_1": "Hola! Looks like you haven't added any inboxes yet.", + "NO_INBOX_2": " to get started", + "NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator", + "SEARCH_MESSAGES": "Search for messages in conversations", + "VIEW_ORIGINAL": "View original", + "VIEW_TRANSLATED": "View translated", + "EMPTY_STATE": { + "CMD_BAR": "to open command menu", + "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts" + }, + "SEARCH": { + "TITLE": "Search messages", + "RESULT_TITLE": "Search Results", + "LOADING_MESSAGE": "Crunching data...", + "PLACEHOLDER": "Type any text to search messages", + "NO_MATCHING_RESULTS": "No results found." + }, + "UNREAD_MESSAGES": "Unread Messages", + "UNREAD_MESSAGE": "Unread Message", + "CLICK_HERE": "Click here", + "LOADING_INBOXES": "Loading inboxes", + "LOADING_CONVERSATIONS": "Loading Conversations", + "CANNOT_REPLY": "You cannot reply due to", + "24_HOURS_WINDOW": "24 hour message window restriction", + "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours", + "NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?", + "ASSIGN_TO_ME": "Assign to me", + "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.", + "BOT_HANDOFF_ACTION": "Mark open and assign to you", + "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open", + "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you", + "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.", + "TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to", + "TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction", + "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.", + "REPLYING_TO": "You are replying to:", + "REMOVE_SELECTION": "Remove Selection", + "DOWNLOAD": "Download", + "UNKNOWN_FILE_TYPE": "Unknown File", + "SAVE_CONTACT": "Save Contact", + "NO_CONTENT": "No content to display", + "SHARED_ATTACHMENT": { + "CONTACT": "{sender} has shared a contact", + "LOCATION": "{sender} has shared a location", + "FILE": "{sender} has shared a file", + "MEETING": "{sender} has started a meeting" + }, + "UPLOADING_ATTACHMENTS": "Uploading attachments...", + "REPLIED_TO_STORY": "Replied to your story", + "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.", + "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.", + "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.", + "SUCCESS_DELETE_MESSAGE": "Message deleted successfully", + "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again", + "NO_RESPONSE": "No response", + "RESPONSE": "Response", + "RATING_TITLE": "Rating", + "FEEDBACK_TITLE": "Feedback", + "REPLY_MESSAGE_NOT_FOUND": "Message not available", + "CARD": { + "SHOW_LABELS": "Show labels", + "HIDE_LABELS": "Hide labels" + }, + "VOICE_CALL": { + "INCOMING_CALL": "Incoming call", + "OUTGOING_CALL": "Outgoing call", + "CALL_IN_PROGRESS": "Call in progress", + "NO_ANSWER": "No answer", + "MISSED_CALL": "Missed call", + "CALL_ENDED": "Call ended", + "NOT_ANSWERED_YET": "Not answered yet", + "THEY_ANSWERED": "They answered", + "YOU_ANSWERED": "You answered" + }, + "HEADER": { + "RESOLVE_ACTION": "Resolve", + "REOPEN_ACTION": "Reopen", + "OPEN_ACTION": "Open", + "MORE_ACTIONS": "More actions", + "OPEN": "More", + "CLOSE": "Close", + "DETAILS": "details", + "SNOOZED_UNTIL": "Snoozed until", + "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow", + "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week", + "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply", + "SLA_STATUS": { + "FRT": "FRT {status}", + "NRT": "NRT {status}", + "RT": "RT {status}", + "MISSED": "missed", + "DUE": "due" + } + }, + "RESOLVE_DROPDOWN": { + "MARK_PENDING": "Mark as pending", + "SNOOZE_UNTIL": "Snooze", + "SNOOZE": { + "TITLE": "Snooze until", + "NEXT_REPLY": "Next reply", + "TOMORROW": "Tomorrow", + "NEXT_WEEK": "Next week" + } + }, + "MENTION": { + "AGENTS": "Agents", + "TEAMS": "Teams" + }, + "CUSTOM_SNOOZE": { + "TITLE": "Snooze until", + "APPLY": "Snooze", + "CANCEL": "Cancel" + }, + "PRIORITY": { + "TITLE": "Priority", + "OPTIONS": { + "NONE": "None", + "URGENT": "Urgent", + "HIGH": "High", + "MEDIUM": "Medium", + "LOW": "Low" + }, + "CHANGE_PRIORITY": { + "SELECT_PLACEHOLDER": "None", + "INPUT_PLACEHOLDER": "Select priority", + "NO_RESULTS": "No results found", + "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}", + "FAILED": "Couldn't change priority. Please try again." + } + }, + "DELETE_CONVERSATION": { + "TITLE": "Delete conversation #{conversationId}", + "DESCRIPTION": "Are you sure you want to delete this conversation?", + "CONFIRM": "Delete" + }, + "CARD_CONTEXT_MENU": { + "PENDING": "Mark as pending", + "RESOLVED": "Mark as resolved", + "MARK_AS_UNREAD": "Mark as unread", + "MARK_AS_READ": "Mark as read", + "REOPEN": "Reopen conversation", + "SNOOZE": { + "TITLE": "Snooze", + "NEXT_REPLY": "Until next reply", + "TOMORROW": "Until tomorrow", + "NEXT_WEEK": "Until next week" + }, + "ASSIGN_AGENT": "Assign agent", + "ASSIGN_LABEL": "Assign label", + "AGENTS_LOADING": "Loading agents...", + "ASSIGN_TEAM": "Assign team", + "DELETE": "Delete conversation", + "OPEN_IN_NEW_TAB": "Open in new tab", + "COPY_LINK": "Copy conversation link", + "COPY_LINK_SUCCESS": "Conversation link copied to clipboard", + "API": { + "AGENT_ASSIGNMENT": { + "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"", + "FAILED": "Couldn't assign agent. Please try again." + }, + "LABEL_ASSIGNMENT": { + "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}", + "FAILED": "Couldn't assign label. Please try again." + }, + "TEAM_ASSIGNMENT": { + "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}", + "FAILED": "Couldn't assign team. Please try again." + } + } + }, + "FOOTER": { + "MESSAGE_SIGN_TOOLTIP": "Message signature", + "ENABLE_SIGN_TOOLTIP": "Enable signature", + "DISABLE_SIGN_TOOLTIP": "Disable signature", + "MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.", + "PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents", + "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.", + "CLICK_HERE": "Click here to update", + "WHATSAPP_TEMPLATES": "Whatsapp Templates" + }, + "REPLYBOX": { + "REPLY": "Reply", + "PRIVATE_NOTE": "Private Note", + "SEND": "Send", + "CREATE": "Add Note", + "INSERT_READ_MORE": "Read more", + "DISMISS_REPLY": "Dismiss reply", + "REPLYING_TO": "Replying to:", + "TIP_FORMAT_ICON": "Show rich text editor", + "TIP_EMOJI_ICON": "Show emoji selector", + "TIP_ATTACH_ICON": "Attach files", + "TIP_AUDIORECORDER_ICON": "Record audio", + "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio", + "TIP_AUDIORECORDER_ERROR": "Could not open the audio", + "DRAG_DROP": "Drag and drop here to attach", + "START_AUDIO_RECORDING": "Start audio recording", + "STOP_AUDIO_RECORDING": "Stop audio recording", + "": "", + "EMAIL_HEAD": { + "TO": "TO", + "ADD_BCC": "Add bcc", + "CC": { + "LABEL": "CC", + "PLACEHOLDER": "Emails separated by commas", + "ERROR": "Please enter valid email addresses" + }, + "BCC": { + "LABEL": "BCC", + "PLACEHOLDER": "Emails separated by commas", + "ERROR": "Please enter valid email addresses" + } + }, + "UNDEFINED_VARIABLES": { + "TITLE": "Undefined variables", + "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?", + "CONFIRM": { + "YES": "Send", + "CANCEL": "Cancel" + } + }, + "QUOTED_REPLY": { + "ENABLE_TOOLTIP": "Include quoted email thread", + "DISABLE_TOOLTIP": "Don't include quoted email thread", + "REMOVE_PREVIEW": "Remove quoted email thread", + "COLLAPSE": "Collapse preview", + "EXPAND": "Expand preview" + } + }, + "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team", + "CHANGE_STATUS": "Conversation status changed", + "CHANGE_STATUS_FAILED": "Conversation status change failed", + "CHANGE_AGENT": "Conversation Assignee changed", + "CHANGE_AGENT_FAILED": "Assignee change failed", + "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully", + "ASSIGN_LABEL_FAILED": "Label assignment failed", + "CHANGE_TEAM": "Conversation team changed", + "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully", + "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again", + "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit", + "MESSAGE_ERROR": "Unable to send this message, please try again later", + "SENT_BY": "Sent by:", + "BOT": "Bot", + "SEND_FAILED": "Couldn't send message! Try again", + "TRY_AGAIN": "retry", + "ASSIGNMENT": { + "SELECT_AGENT": "Select Agent", + "REMOVE": "Remove", + "ASSIGN": "Assign" + }, + "CONTEXT_MENU": { + "COPY": "Copy", + "REPLY_TO": "Reply to this message", + "DELETE": "Delete", + "CREATE_A_CANNED_RESPONSE": "Add to canned responses", + "TRANSLATE": "Translate", + "COPY_PERMALINK": "Copy link to the message", + "LINK_COPIED": "Message URL copied to the clipboard", + "DELETE_CONFIRMATION": { + "TITLE": "Are you sure you want to delete this message?", + "MESSAGE": "You cannot undo this action", + "DELETE": "Delete", + "CANCEL": "Cancel" + } + }, + "SIDEBAR": { + "CONTACT": "Contact", + "COPILOT": "Copilot" + } + }, + "EMAIL_TRANSCRIPT": { + "TITLE": "Send conversation transcript", + "DESC": "Send a copy of the conversation transcript to the specified email address", + "SUBMIT": "Submit", + "CANCEL": "Cancel", + "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully", + "SEND_EMAIL_ERROR": "There was an error, please try again", + "FORM": { + "SEND_TO_CONTACT": "Send the transcript to the customer", + "SEND_TO_AGENT": "Send the transcript to the assigned agent", + "SEND_TO_OTHER_EMAIL_ADDRESS": "Send the transcript to another email address", + "EMAIL": { + "PLACEHOLDER": "Enter an email address", + "ERROR": "Please enter a valid email address" + } + } + }, + "ONBOARDING": { + "TITLE": "Hey 👋, Welcome to {installationName}!", + "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.", + "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.", + "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.", + "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.", + "READ_LATEST_UPDATES": "Read our latest updates", + "ALL_CONVERSATION": { + "TITLE": "All your conversations in one place", + "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.", + "NEW_LINK": "Click here to create an inbox" + }, + "TEAM_MEMBERS": { + "TITLE": "Invite your team members", + "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.", + "NEW_LINK": "Click here to invite a team member" + }, + "LABELS": { + "TITLE": "Organize conversations with labels", + "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.", + "NEW_LINK": "Click here to create tags" + }, + "CANNED_RESPONSES": { + "TITLE": "Create canned responses", + "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.", + "NEW_LINK": "Click here to create a canned response" + } + }, + "CONVERSATION_SIDEBAR": { + "ASSIGNEE_LABEL": "Assigned Agent", + "SELF_ASSIGN": "Assign to me", + "TEAM_LABEL": "Assigned Team", + "SELECT": { + "PLACEHOLDER": "None" + }, + "ACCORDION": { + "CONTACT_DETAILS": "Contact Details", + "CONVERSATION_ACTIONS": "Conversation Actions", + "CONVERSATION_LABELS": "Conversation Labels", + "CONVERSATION_INFO": "Conversation Information", + "CONTACT_NOTES": "Contact Notes", + "CONTACT_ATTRIBUTES": "Contact Attributes", + "PREVIOUS_CONVERSATION": "Previous Conversations", + "MACROS": "Macros", + "LINEAR_ISSUES": "Linked Linear Issues", + "SHOPIFY_ORDERS": "Shopify Orders" + }, + "SHOPIFY": { + "ORDER_ID": "Order #{id}", + "ERROR": "Error loading orders", + "NO_SHOPIFY_ORDERS": "No orders found", + "FINANCIAL_STATUS": { + "PENDING": "Pending", + "AUTHORIZED": "Authorized", + "PARTIALLY_PAID": "Partially Paid", + "PAID": "Paid", + "PARTIALLY_REFUNDED": "Partially Refunded", + "REFUNDED": "Refunded", + "VOIDED": "Voided" + }, + "FULFILLMENT_STATUS": { + "FULFILLED": "Fulfilled", + "PARTIALLY_FULFILLED": "Partially Fulfilled", + "UNFULFILLED": "Unfulfilled" + } + } + }, + "CONVERSATION_CUSTOM_ATTRIBUTES": { + "ADD_BUTTON_TEXT": "Create attribute", + "NO_RECORDS_FOUND": "No attributes found", + "UPDATE": { + "SUCCESS": "Attribute updated successfully", + "ERROR": "Unable to update attribute. Please try again later" + }, + "ADD": { + "TITLE": "Add", + "SUCCESS": "Attribute added successfully", + "ERROR": "Unable to add attribute. Please try again later" + }, + "DELETE": { + "SUCCESS": "Attribute deleted successfully", + "ERROR": "Unable to delete attribute. Please try again later" + }, + "ATTRIBUTE_SELECT": { + "TITLE": "Add attributes", + "PLACEHOLDER": "Search attributes", + "NO_RESULT": "No attributes found" + } + }, + "EMAIL_HEADER": { + "FROM": "From", + "TO": "To", + "BCC": "Bcc", + "CC": "Cc", + "SUBJECT": "Subject", + "EXPAND": "Expand email" + }, + "CONVERSATION_PARTICIPANTS": { + "SIDEBAR_MENU_TITLE": "Participating", + "SIDEBAR_TITLE": "Conversation participants", + "NO_RECORDS_FOUND": "No results found", + "ADD_PARTICIPANTS": "Select participants", + "REMANING_PARTICIPANTS_TEXT": "+{count} others", + "REMANING_PARTICIPANT_TEXT": "+{count} other", + "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.", + "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.", + "NO_PARTICIPANTS_TEXT": "No one is participating!.", + "WATCH_CONVERSATION": "Join conversation", + "YOU_ARE_WATCHING": "You are participating", + "API": { + "ERROR_MESSAGE": "Could not update, try again!", + "SUCCESS_MESSAGE": "Participants updated!" + } + }, + "TRANSLATE_MODAL": { + "TITLE": "View translated content", + "DESC": "You can view the translated content in each langauge.", + "ORIGINAL_CONTENT": "Original Content", + "TRANSLATED_CONTENT": "Translated Content", + "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content" + }, + "TYPING": { + "ONE": "{user} is typing", + "TWO": "{user} and {secondUser} are typing", + "MULTIPLE": "{user} and {count} others are typing" + }, + "COPILOT": { + "TRY_THESE_PROMPTS": "Try these prompts" + }, + "GALLERY_VIEW": { + "ERROR_DOWNLOADING": "Unable to download attachment. Please try again" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/csatMgmt.json b/app/javascript/dashboard/i18n/locale/et/csatMgmt.json new file mode 100644 index 000000000..9e16dc2b3 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/csatMgmt.json @@ -0,0 +1,13 @@ +{ + "CSAT": { + "TITLE": "Rate your conversation", + "PLACEHOLDER": "Tell us more...", + "RATINGS": { + "POOR": "😞 Poor", + "FAIR": "😑 Fair", + "AVERAGE": "😐 Average", + "GOOD": "😀 Good", + "EXCELLENT": "😍 Excellent" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/customRole.json b/app/javascript/dashboard/i18n/locale/et/customRole.json new file mode 100644 index 000000000..b7b48b5e7 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/customRole.json @@ -0,0 +1,91 @@ +{ + "CUSTOM_ROLE": { + "HEADER": "Custom Roles", + "LEARN_MORE": "Learn more about custom roles", + "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.", + "HEADER_BTN_TXT": "Add custom role", + "LOADING": "Fetching custom roles...", + "SEARCH_404": "There are no items matching this query.", + "PAYWALL": { + "TITLE": "Upgrade to create custom roles", + "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.", + "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.", + "UPGRADE_NOW": "Upgrade now", + "CANCEL_ANYTIME": "You can change or cancel your plan anytime" + }, + "ENTERPRISE_PAYWALL": { + "AVAILABLE_ON": "The custom role feature is only available in the paid plans.", + "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.", + "ASK_ADMIN": "Please reach out to your administrator for the upgrade." + }, + "LIST": { + "404": "There are no custom roles available in this account.", + "TITLE": "Manage custom roles", + "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.", + "TABLE_HEADER": { + "NAME": "Name", + "DESCRIPTION": "Description", + "PERMISSIONS": "Permissions", + "ACTIONS": "Actions" + } + }, + "PERMISSIONS": { + "CONVERSATION_MANAGE": "Manage all conversations", + "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them", + "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them", + "CONTACT_MANAGE": "Manage contacts", + "REPORT_MANAGE": "Manage reports", + "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base" + }, + "FORM": { + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Please enter a name.", + "ERROR": "Name is required." + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Please enter a description.", + "ERROR": "Description is required." + }, + "PERMISSIONS": { + "LABEL": "Permissions", + "ERROR": "Permissions are required." + }, + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + } + }, + "ADD": { + "TITLE": "Add custom role", + "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.", + "SUBMIT": "Submit", + "API": { + "SUCCESS_MESSAGE": "Custom role added successfully." + } + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "TITLE": "Edit custom role", + "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.", + "SUBMIT": "Update", + "API": { + "SUCCESS_MESSAGE": "Custom role updated successfully." + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Custom role deleted successfully.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "CONFIRM": { + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, delete ", + "NO": "No, keep " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/datePicker.json b/app/javascript/dashboard/i18n/locale/et/datePicker.json new file mode 100644 index 000000000..c7ef06880 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/datePicker.json @@ -0,0 +1,19 @@ +{ + "DATE_PICKER": { + "APPLY_BUTTON": "Apply", + "CLEAR_BUTTON": "Clear", + "DATE_RANGE_INPUT": { + "START": "Start Date", + "END": "End Date" + }, + "DATE_RANGE_OPTIONS": { + "TITLE": "DATE RANGE", + "LAST_7_DAYS": "Last 7 days", + "LAST_30_DAYS": "Last 30 days", + "LAST_3_MONTHS": "Last 3 months", + "LAST_6_MONTHS": "Last 6 months", + "LAST_YEAR": "Last year", + "CUSTOM_RANGE": "Custom date range" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/emoji.json b/app/javascript/dashboard/i18n/locale/et/emoji.json new file mode 100644 index 000000000..d5b96f0f9 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/emoji.json @@ -0,0 +1,7 @@ +{ + "EMOJI": { + "PLACEHOLDER": "Search emojis", + "NOT_FOUND": "No emoji match your search", + "REMOVE": "Remove" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/general.json b/app/javascript/dashboard/i18n/locale/et/general.json new file mode 100644 index 000000000..283cf79c4 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/general.json @@ -0,0 +1,12 @@ +{ + "GENERAL": { + "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items", + "PHONE_INPUT": { + "PLACEHOLDER": "Search", + "EMPTY_STATE": "No results found" + }, + "CLOSE": "Close", + "BETA": "Beta", + "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it." + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/generalSettings.json b/app/javascript/dashboard/i18n/locale/et/generalSettings.json new file mode 100644 index 000000000..d924bffbd --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/generalSettings.json @@ -0,0 +1,251 @@ +{ + "GENERAL_SETTINGS": { + "LIMIT_MESSAGES": { + "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.", + "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.", + "AGENTS": "You have exceeded the agent limit. Your plan only allows {allowedAgents} agents.", + "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features." + }, + "TITLE": "Account settings", + "SUBMIT": "Update settings", + "BACK": "Back", + "DISMISS": "Dismiss", + "UPDATE": { + "ERROR": "Could not update settings, try again!", + "SUCCESS": "Successfully updated account settings" + }, + "ACCOUNT_DELETE_SECTION": { + "TITLE": "Delete your Account", + "NOTE": "Once you delete your account, all your data will be deleted.", + "BUTTON_TEXT": "Delete Your Account", + "CONFIRM": { + "TITLE": "Delete Account", + "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.", + "BUTTON_TEXT": "Delete", + "DISMISS": "Cancel", + "PLACE_HOLDER": "Please type {accountName} to confirm" + }, + "SUCCESS": "Account marked for deletion", + "FAILURE": "Could not delete account, try again!", + "SCHEDULED_DELETION": { + "TITLE": "Account Scheduled for Deletion", + "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.", + "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.", + "CLEAR_BUTTON": "Cancel Scheduled Deletion" + } + }, + "FORM": { + "ERROR": "Please fix form errors", + "GENERAL_SECTION": { + "TITLE": "General settings", + "NOTE": "" + }, + "ACCOUNT_ID": { + "TITLE": "Account ID", + "NOTE": "This ID is required if you are building an API based integration" + }, + "AUTO_RESOLVE": { + "TITLE": "Auto-resolve conversations", + "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.", + "DURATION": { + "LABEL": "Inactivity duration", + "HELP": "Time period of inactivity after which conversation is auto-resolved", + "PLACEHOLDER": "30", + "ERROR": "Auto resolve duration should be between 10 minutes and 999 days", + "API": { + "SUCCESS": "Auto resolve settings updated successfully", + "ERROR": "Failed to update auto resolve settings" + } + }, + "MESSAGE": { + "LABEL": "Custom auto-resolution message", + "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity", + "HELP": "Message sent to the customer after conversation is auto-resolved" + }, + "PREFERENCES": "Preferences", + "LABEL": { + "LABEL": "Add label after auto-resolution", + "PLACEHOLDER": "Select a label" + }, + "IGNORE_WAITING": { + "LABEL": "Skip conversations waiting for agent’s reply" + }, + "UPDATE_BUTTON": "Save Changes" + }, + "NAME": { + "LABEL": "Account name", + "PLACEHOLDER": "Your account name", + "ERROR": "Please enter a valid account name" + }, + "LANGUAGE": { + "LABEL": "Site language", + "PLACEHOLDER": "Your account name", + "ERROR": "" + }, + "DOMAIN": { + "LABEL": "Incoming Email Domain", + "PLACEHOLDER": "The domain where you will receive the emails", + "ERROR": "" + }, + "SUPPORT_EMAIL": { + "LABEL": "Support Email", + "PLACEHOLDER": "Your company's support email", + "ERROR": "" + }, + "AUTO_RESOLVE_IGNORE_WAITING": { + "LABEL": "Exclude unattended conversations", + "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply." + }, + "AUDIO_TRANSCRIPTION": { + "TITLE": "Transcribe Audio Messages", + "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.", + "API": { + "SUCCESS": "Audio transcription setting updated successfully", + "ERROR": "Failed to update audio transcription setting" + } + }, + "AUTO_RESOLVE_DURATION": { + "LABEL": "Inactivity duration for resolution", + "HELP": "Duration after a conversation should auto resolve if there is no activity", + "PLACEHOLDER": "30", + "ERROR": "Auto resolve duration should be between 10 minutes and 999 days", + "API": { + "SUCCESS": "Auto resolve settings updated successfully", + "ERROR": "Failed to update auto resolve settings" + }, + "UPDATE_BUTTON": "Update", + "MESSAGE_LABEL": "Custom resolution message", + "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity", + "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity." + }, + "FEATURES": { + "INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.", + "CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now." + } + }, + "UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.", + "LEARN_MORE": "Learn more", + "PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot", + "UPGRADE": "Upgrade to continue using Chatwoot", + "LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot", + "OPEN_BILLING": "Open billing" + }, + "FORMS": { + "MULTISELECT": { + "ENTER_TO_SELECT": "Press enter to select", + "ENTER_TO_REMOVE": "Press enter to remove", + "NO_OPTIONS": "List is empty", + "SELECT_ONE": "Select one", + "SELECT": "Select" + } + }, + "NOTIFICATIONS_PAGE": { + "HEADER": "Notifications", + "MARK_ALL_DONE": "Mark All Done", + "DELETE_TITLE": "deleted", + "UNREAD_NOTIFICATION": { + "TITLE": "Unread Notifications", + "ALL_NOTIFICATIONS": "View all notifications", + "LOADING_UNREAD_MESSAGE": "Loading unread notifications...", + "EMPTY_MESSAGE": "You have no unread notifications" + }, + "LIST": { + "LOADING_MESSAGE": "Loading notifications...", + "404": "No Notifications", + "TABLE_HEADER": [ + "Name", + "Phone Number", + "Conversations", + "Last Contacted" + ] + }, + "TYPE_LABEL": { + "conversation_creation": "New conversation", + "conversation_assignment": "Conversation Assigned", + "assigned_conversation_new_message": "New Message", + "participating_conversation_new_message": "New Message", + "conversation_mention": "Mention", + "sla_missed_first_response": "SLA Missed", + "sla_missed_next_response": "SLA Missed", + "sla_missed_resolution": "SLA Missed" + } + }, + "NETWORK": { + "NOTIFICATION": { + "OFFLINE": "Offline", + "RECONNECTING": "Reconnecting...", + "RECONNECT_SUCCESS": "Reconnected" + }, + "BUTTON": { + "REFRESH": "Refresh" + } + }, + "COMMAND_BAR": { + "SEARCH_PLACEHOLDER": "Search or jump to", + "SECTIONS": { + "GENERAL": "General", + "REPORTS": "Reports", + "CONVERSATION": "Conversation", + "BULK_ACTIONS": "Bulk Actions", + "CHANGE_ASSIGNEE": "Change Assignee", + "CHANGE_PRIORITY": "Change Priority", + "CHANGE_TEAM": "Change Team", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "ADD_LABEL": "Add label to the conversation", + "REMOVE_LABEL": "Remove label from the conversation", + "SETTINGS": "Settings", + "AI_ASSIST": "AI Assist", + "APPEARANCE": "Appearance", + "SNOOZE_NOTIFICATION": "Snooze Notification" + }, + "COMMANDS": { + "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", + "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", + "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview", + "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports", + "GO_TO_AGENT_REPORTS": "Go to Agent Reports", + "GO_TO_LABEL_REPORTS": "Go to Label Reports", + "GO_TO_INBOX_REPORTS": "Go to Inbox Reports", + "GO_TO_TEAM_REPORTS": "Go to Team Reports", + "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings", + "GO_TO_SETTINGS_TEAMS": "Go to Team Settings", + "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings", + "GO_TO_SETTINGS_LABELS": "Go to Label Settings", + "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings", + "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings", + "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings", + "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings", + "GO_TO_NOTIFICATIONS": "Go to Notifications", + "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation", + "ASSIGN_AN_AGENT": "Assign an agent", + "AI_ASSIST": "AI Assist", + "ASSIGN_PRIORITY": "Assign priority", + "ASSIGN_A_TEAM": "Assign a team", + "MUTE_CONVERSATION": "Mute conversation", + "UNMUTE_CONVERSATION": "Unmute conversation", + "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation", + "REOPEN_CONVERSATION": "Reopen conversation", + "RESOLVE_CONVERSATION": "Resolve conversation", + "SEND_TRANSCRIPT": "Send an email transcript", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "UNTIL_NEXT_REPLY": "Until next reply", + "UNTIL_NEXT_WEEK": "Until next week", + "UNTIL_TOMORROW": "Until tomorrow", + "UNTIL_NEXT_MONTH": "Until next month", + "AN_HOUR_FROM_NOW": "Until an hour from now", + "UNTIL_CUSTOM_TIME": "Custom...", + "CHANGE_APPEARANCE": "Change Appearance", + "LIGHT_MODE": "Light", + "DARK_MODE": "Dark", + "SYSTEM_MODE": "System", + "SNOOZE_NOTIFICATION": "Snooze Notification" + } + }, + "DASHBOARD_APPS": { + "LOADING_MESSAGE": "Loading Dashboard App..." + }, + "COMMON": { + "OR": "Or", + "CLICK_HERE": "click here" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/helpCenter.json b/app/javascript/dashboard/i18n/locale/et/helpCenter.json new file mode 100644 index 000000000..0ab8d62ff --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/helpCenter.json @@ -0,0 +1,865 @@ +{ + "HELP_CENTER": { + "TITLE": "Help Center", + "NEW_PAGE": { + "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.", + "CREATE_PORTAL_BUTTON": "Create Portal" + }, + "HEADER": { + "FILTER": "Filter by", + "SORT": "Sort by", + "LOCALE": "Locale", + "SETTINGS_BUTTON": "Settings", + "NEW_BUTTON": "New Article", + "DROPDOWN_OPTIONS": { + "PUBLISHED": "Published", + "DRAFT": "Draft", + "ARCHIVED": "Archived" + }, + "TITLES": { + "ALL_ARTICLES": "All Articles", + "MINE": "My Articles", + "DRAFT": "Draft Articles", + "ARCHIVED": "Archived Articles" + }, + "LOCALE_SELECT": { + "TITLE": "Select locale", + "PLACEHOLDER": "Select locale", + "NO_RESULT": "No locale found", + "SEARCH_PLACEHOLDER": "Search locale" + } + }, + "EDIT_HEADER": { + "ALL_ARTICLES": "All Articles", + "PUBLISH_BUTTON": "Publish", + "MOVE_TO_ARCHIVE_BUTTON": "Move to archived", + "PREVIEW": "Preview", + "ADD_TRANSLATION": "Add translation", + "OPEN_SIDEBAR": "Open sidebar", + "CLOSE_SIDEBAR": "Close sidebar", + "SAVING": "Saving...", + "SAVED": "Saved" + }, + "ARTICLE_EDITOR": { + "IMAGE_UPLOAD": { + "TITLE": "Upload image", + "UPLOADING": "Uploading...", + "SUCCESS": "Image uploaded successfully", + "ERROR": "Error while uploading image", + "UN_AUTHORIZED_ERROR": "You are not authorized to upload images", + "ERROR_FILE_SIZE": "Image size should be less than {size}MB", + "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png", + "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000" + } + }, + "ARTICLE_SETTINGS": { + "TITLE": "Article Settings", + "FORM": { + "CATEGORY": { + "LABEL": "Category", + "TITLE": "Select category", + "PLACEHOLDER": "Select category", + "NO_RESULT": "No category found", + "SEARCH_PLACEHOLDER": "Search category" + }, + "AUTHOR": { + "LABEL": "Author", + "TITLE": "Select author", + "PLACEHOLDER": "Select author", + "NO_RESULT": "No authors found", + "SEARCH_PLACEHOLDER": "Search author" + }, + "META_TITLE": { + "LABEL": "Meta title", + "PLACEHOLDER": "Add a meta title" + }, + "META_DESCRIPTION": { + "LABEL": "Meta description", + "PLACEHOLDER": "Add your meta description for better SEO results..." + }, + "META_TAGS": { + "LABEL": "Meta tags", + "PLACEHOLDER": "Add meta tags separated by comma..." + } + }, + "BUTTONS": { + "ARCHIVE": "Archive article", + "DELETE": "Delete article" + } + }, + "ARTICLE_SEARCH_RESULT": { + "UNCATEGORIZED": "Uncategorized", + "SEARCH_RESULTS": "Search results for {query}", + "EMPTY_TEXT": "Search for articles to insert into replies.", + "SEARCH_LOADER": "Searching...", + "INSERT_ARTICLE": "Insert", + "NO_RESULT": "No articles found", + "COPY_LINK": "Copy article link to clipboard", + "OPEN_LINK": "Open article in new tab", + "PREVIEW_LINK": "Preview article" + }, + "PORTAL": { + "HEADER": "Portals", + "DEFAULT": "Default", + "NEW_BUTTON": "New Portal", + "ACTIVE_BADGE": "active", + "CHOOSE_LOCALE_LABEL": "Choose a locale", + "LOADING_MESSAGE": "Loading portals...", + "ARTICLES_LABEL": "articles", + "NO_PORTALS_MESSAGE": "There are no available portals", + "ADD_NEW_LOCALE": "Add a new locale", + "POPOVER": { + "TITLE": "Portals", + "PORTAL_SETTINGS": "Portal settings", + "SUBTITLE": "You have multiple portals and can have different locales for each portal.", + "CANCEL_BUTTON_LABEL": "Cancel", + "CHOOSE_LOCALE_BUTTON": "Choose Locale" + }, + "PORTAL_SETTINGS": { + "LIST_ITEM": { + "HEADER": { + "COUNT_LABEL": "articles", + "ADD": "Add locale", + "VISIT": "Visit site", + "SETTINGS": "Settings", + "DELETE": "Delete" + }, + "PORTAL_CONFIG": { + "TITLE": "Portal Configurations", + "ITEMS": { + "NAME": "Name", + "DOMAIN": "Custom domain", + "SLUG": "Slug", + "TITLE": "Portal title", + "THEME": "Theme color", + "SUB_TEXT": "Portal sub text" + } + }, + "AVAILABLE_LOCALES": { + "TITLE": "Available locales", + "TABLE": { + "NAME": "Locale name", + "CODE": "Locale code", + "ARTICLE_COUNT": "No. of articles", + "CATEGORIES": "No. of categories", + "SWAP": "Swap", + "DELETE": "Delete", + "DEFAULT_LOCALE": "Default" + } + } + }, + "DELETE_PORTAL": { + "TITLE": "Delete portal", + "MESSAGE": "Are you sure you want to delete this portal", + "YES": "Yes, delete portal", + "NO": "No, keep portal", + "API": { + "DELETE_SUCCESS": "Portal deleted successfully", + "DELETE_ERROR": "Error while deleting portal" + } + }, + "SEND_CNAME_INSTRUCTIONS": { + "API": { + "SUCCESS_MESSAGE": "CNAME instructions sent successfully", + "ERROR_MESSAGE": "Error while sending CNAME instructions" + } + } + }, + "EDIT": { + "HEADER_TEXT": "Edit portal", + "TABS": { + "BASIC_SETTINGS": { + "TITLE": "Basic information" + }, + "CUSTOMIZATION_SETTINGS": { + "TITLE": "Portal customization" + }, + "CATEGORY_SETTINGS": { + "TITLE": "Categories" + }, + "LOCALE_SETTINGS": { + "TITLE": "Locales" + } + }, + "CATEGORIES": { + "TITLE": "Categories in", + "NEW_CATEGORY": "New category", + "TABLE": { + "NAME": "Name", + "DESCRIPTION": "Description", + "LOCALE": "Locale", + "ARTICLE_COUNT": "No. of articles", + "ACTION_BUTTON": { + "EDIT": "Edit category", + "DELETE": "Delete category" + }, + "EMPTY_TEXT": "No categories found" + } + }, + "EDIT_BASIC_INFO": { + "BUTTON_TEXT": "Update basic settings" + } + }, + "ADD": { + "CREATE_FLOW": { + "BASIC": { + "TITLE": "Help center information", + "BODY": "Basic information about portal" + }, + "CUSTOMIZATION": { + "TITLE": "Help center customization", + "BODY": "Customize portal" + }, + "FINISH": { + "TITLE": "Voila! 🎉", + "BODY": "You're all set!" + } + }, + "CREATE_FLOW_PAGE": { + "BACK_BUTTON": "Back", + "BASIC_SETTINGS_PAGE": { + "HEADER": "Create Portal", + "TITLE": "Help center information", + "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings" + }, + "CUSTOMIZATION_PAGE": { + "HEADER": "Portal customisation", + "TITLE": "Help center customization", + "UPDATE_PORTAL_BUTTON": "Update portal settings" + }, + "FINISH_PAGE": { + "TITLE": "Voila!🎉 You're all set up!", + "MESSAGE": "You can now see this created portal on your all portals page.", + "FINISH": "Go to all portals page" + } + }, + "LOGO": { + "LABEL": "Logo", + "UPLOAD_BUTTON": "Upload logo", + "HELP_TEXT": "This logo will be displayed on the portal header.", + "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully", + "IMAGE_UPLOAD_ERROR": "Logo deleted successfully", + "IMAGE_DELETE_ERROR": "Error while deleting logo" + }, + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Portal name", + "HELP_TEXT": "The name will be used in the public facing portal internally.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Portal slug for urls", + "ERROR": "Slug is required" + }, + "DOMAIN": { + "LABEL": "Custom Domain", + "PLACEHOLDER": "Portal custom domain", + "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}", + "ERROR": "Enter a valid domain URL" + }, + "HOME_PAGE_LINK": { + "LABEL": "Home Page Link", + "PLACEHOLDER": "Portal home page link", + "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}", + "ERROR": "Enter a valid home page URL" + }, + "THEME_COLOR": { + "LABEL": "Portal theme color", + "HELP_TEXT": "This color will show as the theme color for the portal." + }, + "PAGE_TITLE": { + "LABEL": "Page Title", + "PLACEHOLDER": "Portal page title", + "HELP_TEXT": "The page title will be used in the public facing portal.", + "ERROR": "Page title is required" + }, + "HEADER_TEXT": { + "LABEL": "Header Text", + "PLACEHOLDER": "Portal header text", + "HELP_TEXT": "The Portal header text will be used in the public facing portal.", + "ERROR": "Portal header text is required" + }, + "API": { + "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.", + "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.", + "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.", + "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again." + } + }, + "ADD_LOCALE": { + "TITLE": "Add a new locale", + "SUB_TITLE": "This adds a new locale to your available translation list.", + "PORTAL": "Portal", + "LOCALE": { + "LABEL": "Locale", + "PLACEHOLDER": "Choose a locale", + "ERROR": "Locale is required" + }, + "BUTTONS": { + "CREATE": "Create locale", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Locale added successfully", + "ERROR_MESSAGE": "Unable to add locale. Try again." + } + }, + "CHANGE_DEFAULT_LOCALE": { + "API": { + "SUCCESS_MESSAGE": "Default locale updated successfully", + "ERROR_MESSAGE": "Unable to update default locale. Try again." + } + }, + "DELETE_LOCALE": { + "API": { + "SUCCESS_MESSAGE": "Locale removed from portal successfully", + "ERROR_MESSAGE": "Unable to remove locale from portal. Try again." + } + } + }, + "TABLE": { + "LOADING_MESSAGE": "Loading articles...", + "404": "No articles matches your search 🔍", + "NO_ARTICLES": "There are no available articles", + "HEADERS": { + "TITLE": "Title", + "CATEGORY": "Category", + "READ_COUNT": "Views", + "STATUS": "Status", + "LAST_EDITED": "Last edited" + }, + "COLUMNS": { + "BY": "by", + "AUTHOR_NOT_AVAILABLE": "Author is not available" + } + }, + "EDIT_ARTICLE": { + "LOADING": "Loading article...", + "TITLE_PLACEHOLDER": "Article title goes here", + "CONTENT_PLACEHOLDER": "Write your article here", + "API": { + "ERROR": "Error while saving article" + } + }, + "PUBLISH_ARTICLE": { + "API": { + "ERROR": "Error while publishing article", + "SUCCESS": "Article published successfully" + } + }, + "ARCHIVE_ARTICLE": { + "API": { + "ERROR": "Error while archiving article", + "SUCCESS": "Article archived successfully" + } + }, + "DRAFT_ARTICLE": { + "API": { + "ERROR": "Error while drafting article", + "SUCCESS": "Article drafted successfully" + } + }, + "DELETE_ARTICLE": { + "MODAL": { + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete the article?", + "YES": "Yes, Delete", + "NO": "No, Keep it" + } + }, + "API": { + "SUCCESS_MESSAGE": "Article deleted successfully", + "ERROR_MESSAGE": "Error while deleting article" + } + }, + "CREATE_ARTICLE": { + "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings" + }, + "SIDEBAR": { + "SEARCH": { + "PLACEHOLDER": "Search for articles" + } + }, + "CATEGORY": { + "ADD": { + "TITLE": "Create a category", + "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.", + "PORTAL": "Portal", + "LOCALE": "Locale", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", + "ERROR": "Slug is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + }, + "BUTTONS": { + "CREATE": "Create category", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Category created successfully", + "ERROR_MESSAGE": "Unable to create category" + } + }, + "EDIT": { + "TITLE": "Edit a category", + "SUB_TITLE": "Editing a category will update the category in the public facing portal.", + "PORTAL": "Portal", + "LOCALE": "Locale", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug", + "ERROR": "Slug is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + }, + "BUTTONS": { + "CREATE": "Update category", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Category updated successfully", + "ERROR_MESSAGE": "Unable to update category" + } + }, + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Category deleted successfully", + "ERROR_MESSAGE": "Unable to delete category" + } + } + }, + "ARTICLE_SEARCH": { + "TITLE": "Search articles", + "PLACEHOLDER": "Search articles", + "NO_RESULT": "No articles found", + "SEARCHING": "Searching...", + "SEARCH_BUTTON": "Search", + "INSERT_ARTICLE": "Insert link", + "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.", + "OPEN_ARTICLE_SEARCH": "Insert article from Help Center", + "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully", + "PREVIEW_LINK": "Preview article", + "CANCEL": "Close", + "BACK": "Back", + "BACK_RESULTS": "Back to results" + }, + "UPGRADE_PAGE": { + "TITLE": "Help Center", + "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.", + "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.", + "BUTTON": { + "LEARN_MORE": "Learn more", + "UPGRADE": "Upgrade" + }, + "FEATURES": { + "PORTALS": { + "TITLE": "Multiple portals", + "DESCRIPTION": "Create multiple help center portals for different products using the same account." + }, + "LOCALES": { + "TITLE": "Full support for locales", + "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article." + }, + "SEO": { + "TITLE": "SEO-friendly design", + "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages." + }, + "API": { + "TITLE": "Full API support", + "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs." + } + } + }, + "LOADING": "Loading...", + "ARTICLES_PAGE": { + "ARTICLE_CARD": { + "CARD": { + "VIEWS": "{count} view | {count} views", + "DROPDOWN_MENU": { + "PUBLISH": "Publish", + "DRAFT": "Draft", + "ARCHIVE": "Archive", + "DELETE": "Delete" + }, + "STATUS": { + "DRAFT": "Draft", + "PUBLISHED": "Published", + "ARCHIVED": "Archived" + }, + "CATEGORY": { + "UNCATEGORISED": "Uncategorised" + } + } + }, + "ARTICLES_HEADER": { + "TABS": { + "ALL": "All articles", + "MINE": "Mine", + "DRAFT": "Draft", + "PUBLISHED": "Published", + "ARCHIVED": "Archived" + }, + "CATEGORY": { + "ALL": "All categories" + }, + "LOCALE": { + "ALL": "All locales" + }, + "NEW_ARTICLE": "New article" + }, + "EMPTY_STATE": { + "ALL": { + "TITLE": "Write an article", + "SUBTITLE": "Write a rich article, let’s get started!", + "BUTTON_LABEL": "New article" + }, + "MINE": { + "TITLE": "You haven't written any articles here", + "SUBTITLE": "All articles written by you show up here for quick access." + }, + "DRAFT": { + "TITLE": "There are no articles in drafts", + "SUBTITLE": "Draft articles will appear here" + }, + "PUBLISHED": { + "TITLE": "There are no published articles", + "SUBTITLE": "Published articles will appear here" + }, + "ARCHIVED": { + "TITLE": "There are no articles in the archive", + "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages" + }, + "CATEGORY": { + "TITLE": "There are no articles in this category", + "SUBTITLE": "Articles in this category will appear here" + } + } + }, + "CATEGORY_PAGE": { + "CATEGORY_HEADER": { + "NEW_CATEGORY": "New category", + "EDIT_CATEGORY": "Edit category", + "CATEGORIES_COUNT": "{n} category | {n} categories", + "BREADCRUMB": { + "CATEGORY_LOCALE": "Categories ({localeCode})", + "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)" + } + }, + "CATEGORY_EMPTY_STATE": { + "TITLE": "No categories found", + "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button." + }, + "CATEGORY_CARD": { + "ARTICLES_COUNT": "{count} article | {count} articles" + }, + "CATEGORY_DIALOG": { + "CREATE": { + "API": { + "SUCCESS_MESSAGE": "Category created successfully", + "ERROR_MESSAGE": "Unable to create category" + } + }, + "EDIT": { + "API": { + "SUCCESS_MESSAGE": "Category updated successfully", + "ERROR_MESSAGE": "Unable to update category" + } + }, + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Category deleted successfully", + "ERROR_MESSAGE": "Unable to delete category" + } + }, + "HEADER": { + "CREATE": "Create category", + "EDIT": "Edit category", + "DESCRIPTION": "Editing a category will update the category in the public facing portal.", + "PORTAL": "Portal", + "LOCALE": "Locale" + }, + "FORM": { + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Category name", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Category slug for urls", + "ERROR": "Slug is required", + "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Give a short description about the category.", + "ERROR": "Description is required" + } + }, + "BUTTONS": { + "CREATE": "Create", + "EDIT": "Update", + "CANCEL": "Cancel" + } + } + }, + "LOCALES_PAGE": { + "LOCALES_COUNT": "No locales available | {n} locale | {n} locales", + "NEW_LOCALE_BUTTON_TEXT": "New locale", + "LOCALE_CARD": { + "ARTICLES_COUNT": "{count} article | {count} articles", + "CATEGORIES_COUNT": "{count} category | {count} categories", + "DEFAULT": "Default", + "DROPDOWN_MENU": { + "MAKE_DEFAULT": "Make default", + "DELETE": "Delete" + } + }, + "ADD_LOCALE_DIALOG": { + "TITLE": "Add a new locale", + "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.", + "COMBOBOX": { + "PLACEHOLDER": "Select locale..." + }, + "API": { + "SUCCESS_MESSAGE": "Locale added successfully", + "ERROR_MESSAGE": "Unable to add locale. Try again." + } + } + }, + "EDIT_ARTICLE_PAGE": { + "HEADER": { + "STATUS": { + "SAVING": "Saving...", + "SAVED": "Saved" + }, + "PREVIEW": "Preview", + "PUBLISH": "Publish", + "DRAFT": "Draft", + "ARCHIVE": "Archive", + "BACK_TO_ARTICLES": "Back to articles" + }, + "EDIT_ARTICLE": { + "MORE_PROPERTIES": "More properties", + "UNCATEGORIZED": "Uncategorized", + "EDITOR_PLACEHOLDER": "Write something..." + }, + "ARTICLE_PROPERTIES": { + "ARTICLE_PROPERTIES": "Article properties", + "META_DESCRIPTION": "Meta description", + "META_DESCRIPTION_PLACEHOLDER": "Add meta description", + "META_TITLE": "Meta title", + "META_TITLE_PLACEHOLDER": "Add meta title", + "META_TAGS": "Meta tags", + "META_TAGS_PLACEHOLDER": "Add meta tags" + }, + "API": { + "ERROR": "Error while saving article" + } + }, + "PORTAL_SWITCHER": { + "NEW_PORTAL": "New portal", + "PORTALS": "Portals", + "CREATE_PORTAL": "Create and manage multiple portals", + "ARTICLES": "articles", + "DOMAIN": "domain", + "PORTAL_NAME": "Portal name" + }, + "CREATE_PORTAL_DIALOG": { + "TITLE": "Create new portal", + "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.", + "CONFIRM_BUTTON_LABEL": "Create", + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "User Guide | Chatwoot", + "MESSAGE": "Choose an name for your portal.", + "ERROR": "Name is required" + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "user-guide", + "ERROR": "Slug is required", + "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide" + } + }, + "PORTAL_SETTINGS": { + "FORM": { + "AVATAR": { + "LABEL": "Logo", + "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again", + "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo", + "IMAGE_DELETE_SUCCESS": "Logo deleted successfully", + "IMAGE_DELETE_ERROR": "Unable to delete logo", + "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB" + }, + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Portal name", + "ERROR": "Name is required" + }, + "HEADER_TEXT": { + "LABEL": "Header text", + "PLACEHOLDER": "Portal header text" + }, + "PAGE_TITLE": { + "LABEL": "Page title", + "PLACEHOLDER": "Portal page title" + }, + "HOME_PAGE_LINK": { + "LABEL": "Home page link", + "PLACEHOLDER": "Portal home page link", + "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'." + }, + "SLUG": { + "LABEL": "Slug", + "PLACEHOLDER": "Portal slug" + }, + "LIVE_CHAT_WIDGET": { + "LABEL": "Live chat widget", + "PLACEHOLDER": "Select live chat widget", + "HELP_TEXT": "Select a live chat widget that will appear on your help center", + "NONE_OPTION": "No widget" + }, + "BRAND_COLOR": { + "LABEL": "Brand color" + }, + "SAVE_CHANGES": "Save changes" + }, + "CONFIGURATION_FORM": { + "CUSTOM_DOMAIN": { + "HEADER": "Custom domain", + "LABEL": "Custom domain:", + "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.", + "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.", + "PLACEHOLDER": "Portal custom domain", + "EDIT_BUTTON": "Edit", + "ADD_BUTTON": "Add custom domain", + "STATUS": { + "LIVE": "Live", + "PENDING": "Awaiting verification", + "ERROR": "Verification failed" + }, + "DIALOG": { + "ADD_HEADER": "Add custom domain", + "EDIT_HEADER": "Edit custom domain", + "ADD_CONFIRM_BUTTON_LABEL": "Add domain", + "EDIT_CONFIRM_BUTTON_LABEL": "Update domain", + "LABEL": "Custom domain", + "PLACEHOLDER": "Portal custom domain", + "ERROR": "Custom domain is required", + "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com" + }, + "DNS_CONFIGURATION_DIALOG": { + "HEADER": "DNS configuration", + "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help", + "COPY": "Successfully copied CNAME", + "SEND_INSTRUCTIONS": { + "HEADER": "Send instructions", + "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.", + "PLACEHOLDER": "Enter their email", + "ERROR": "Enter a valid email address", + "SEND_BUTTON": "Send" + } + } + }, + "DELETE_PORTAL": { + "BUTTON": "Delete {portalName}", + "HEADER": "Delete portal", + "DESCRIPTION": "Permanently delete this portal. This action is irreversible", + "DIALOG": { + "HEADER": "Sure you want to delete {portalName}?", + "DESCRIPTION": "This is a permanent action that cannot be reversed.", + "CONFIRM_BUTTON_LABEL": "Delete" + } + }, + "EDIT_CONFIGURATION": "Edit configuration" + }, + "API": { + "CREATE_PORTAL": { + "SUCCESS_MESSAGE": "Portal created successfully", + "ERROR_MESSAGE": "Unable to create portal" + }, + "UPDATE_PORTAL": { + "SUCCESS_MESSAGE": "Portal updated successfully", + "ERROR_MESSAGE": "Unable to update portal" + } + } + }, + "PDF_UPLOAD": { + "TITLE": "Upload PDF Document", + "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI", + "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select", + "SELECT_FILE": "Select PDF File", + "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)", + "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...", + "UPLOADING": "Uploading...", + "UPLOAD": "Upload & Process", + "CANCEL": "Cancel", + "ERROR_INVALID_TYPE": "Please select a valid PDF file", + "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB", + "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again." + }, + "PDF_DOCUMENTS": { + "TITLE": "PDF Documents", + "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them", + "UPLOAD_PDF": "Upload PDF", + "UPLOAD_FIRST_PDF": "Upload your first PDF", + "UPLOADED_BY": "Uploaded by", + "GENERATE_FAQS": "Generate FAQs", + "GENERATING": "Generating...", + "CONFIRM_DELETE": "Are you sure you want to delete {filename}?", + "EMPTY_STATE": { + "TITLE": "No PDF documents yet", + "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI" + }, + "STATUS": { + "UPLOADED": "Ready", + "PROCESSING": "Processing", + "PROCESSED": "Completed", + "FAILED": "Failed" + } + }, + "CONTENT_GENERATION": { + "TITLE": "Content Generation", + "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI", + "UPLOAD_TITLE": "Upload PDF Document", + "DRAG_DROP": "Drag and drop your PDF file here, or click to select", + "SELECT_FILE": "Select PDF File", + "UPLOADING": "Processing document...", + "UPLOAD_SUCCESS": "Document processed successfully!", + "UPLOAD_ERROR": "Failed to upload document. Please try again.", + "INVALID_FILE_TYPE": "Please select a valid PDF file", + "FILE_TOO_LARGE": "File size must be less than 512MB", + "GENERATED_CONTENT": "Generated FAQ Content", + "PUBLISH_SELECTED": "Publish Selected", + "PUBLISHING": "Publishing...", + "FROM_DOCUMENT": "From document", + "NO_CONTENT": "No generated content available. Upload a PDF document to get started.", + "LOADING": "Loading generated content..." + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/inbox.json b/app/javascript/dashboard/i18n/locale/et/inbox.json new file mode 100644 index 000000000..385e9e4ce --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/inbox.json @@ -0,0 +1,95 @@ +{ + "INBOX": { + "LIST": { + "TITLE": "My Inbox", + "DISPLAY_DROPDOWN": "Display", + "LOADING": "Fetching notifications", + "404": "There are no active notifications in this group.", + "NO_NOTIFICATIONS": "No notifications", + "NOTE": "Notifications from all subscribed inboxes", + "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages", + "SNOOZED_UNTIL": "Snoozed until", + "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow", + "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week" + }, + "ACTION_HEADER": { + "SNOOZE": "Snooze notification", + "DELETE": "Delete notification", + "BACK": "Back" + }, + "TYPES": { + "CONVERSATION_MENTION": "You have been mentioned in a conversation", + "CONVERSATION_CREATION": "New conversation created", + "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in", + "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation", + "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation", + "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation" + }, + "TYPES_NEXT": { + "CONVERSATION_MENTION": "Mentioned", + "CONVERSATION_ASSIGNMENT": "Assigned to you", + "CONVERSATION_CREATION": "New Conversation", + "SLA_MISSED_FIRST_RESPONSE": "SLA breach", + "SLA_MISSED_NEXT_RESPONSE": "SLA breach", + "SLA_MISSED_RESOLUTION": "SLA breach", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message", + "SNOOZED_UNTIL": "Snoozed for {time}", + "SNOOZED_ENDS": "Snooze ended" + }, + "NO_CONTENT": "No content available", + "MENU_ITEM": { + "MARK_AS_READ": "Mark as read", + "MARK_AS_UNREAD": "Mark as unread", + "SNOOZE": "Snooze", + "DELETE": "Delete", + "MARK_ALL_READ": "Mark all as read", + "DELETE_ALL": "Delete all", + "DELETE_ALL_READ": "Delete all read" + }, + "DISPLAY_MENU": { + "SORT": "Sort", + "DISPLAY": "Display :", + "SORT_OPTIONS": { + "NEWEST": "Newest", + "OLDEST": "Oldest", + "PRIORITY": "Priority" + }, + "DISPLAY_OPTIONS": { + "SNOOZED": "Snoozed", + "READ": "Read", + "LABELS": "Labels", + "CONVERSATION_ID": "Conversation ID" + } + }, + "ALERTS": { + "MARK_AS_READ": "Notification marked as read", + "MARK_AS_UNREAD": "Notification marked as unread", + "SNOOZE": "Notification snoozed", + "DELETE": "Notification deleted", + "MARK_ALL_READ": "All notifications marked as read", + "DELETE_ALL": "All notifications deleted", + "DELETE_ALL_READ": "All read notifications deleted" + }, + "REAUTHORIZE": { + "TITLE": "Reauthorization Required", + "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.", + "BUTTON_TEXT": "Reconnect WhatsApp", + "LOADING_FACEBOOK": "Loading Facebook SDK...", + "SUCCESS": "WhatsApp reconnected successfully", + "ERROR": "Failed to reconnect WhatsApp. Please try again.", + "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.", + "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.", + "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.", + "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.", + "TROUBLESHOOTING": { + "TITLE": "Troubleshooting", + "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site", + "COOKIES": "Third-party cookies must be enabled", + "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account" + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json new file mode 100644 index 000000000..87fe57564 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json @@ -0,0 +1,1010 @@ +{ + "INBOX_MGMT": { + "HEADER": "Inboxes", + "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.", + "LEARN_MORE": "Learn more about inboxes", + "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.", + "CLICK_TO_RECONNECT": "Click here to reconnect.", + "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.", + "COMPLETE_REGISTRATION": "Complete Registration", + "LIST": { + "404": "There are no inboxes attached to this account." + }, + "CREATE_FLOW": { + "CHANNEL": { + "TITLE": "Choose Channel", + "BODY": "Choose the provider you want to integrate with Chatwoot." + }, + "INBOX": { + "TITLE": "Create Inbox", + "BODY": "Authenticate your account and create an inbox." + }, + "AGENT": { + "TITLE": "Add Agents", + "BODY": "Add agents to the created inbox." + }, + "FINISH": { + "TITLE": "Voilà!", + "BODY": "You are all set to go!" + } + }, + "ADD": { + "CHANNEL_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)", + "ERROR": "Please enter a valid inbox name" + }, + "WEBSITE_NAME": { + "LABEL": "Website Name", + "PLACEHOLDER": "Enter your website name (eg: Acme Inc)" + }, + "FB": { + "HELP": "PS: By signing in, we only get access to your Page's messages. Your private messages can never be accessed by Chatwoot.", + "CHOOSE_PAGE": "Choose Page", + "CHOOSE_PLACEHOLDER": "Select a page from the list", + "INBOX_NAME": "Inbox Name", + "ADD_NAME": "Add a name for your inbox", + "PICK_NAME": "Pick a Name for your Inbox", + "PICK_A_VALUE": "Pick a value", + "CREATE_INBOX": "Create Inbox" + }, + "INSTAGRAM": { + "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram", + "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile", + "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ", + "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again", + "ERROR_AUTH": "There was an error connecting to Instagram, please try again", + "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.", + "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore." + }, + "TWITTER": { + "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ", + "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again", + "TWEETS": { + "ENABLE": "Create conversations from mentioned Tweets" + } + }, + "WEBSITE_CHANNEL": { + "TITLE": "Website channel", + "DESC": "Create a channel for your website and start supporting your customers via our website widget.", + "LOADING_MESSAGE": "Creating Website Support Channel", + "CHANNEL_AVATAR": { + "LABEL": "Channel Avatar" + }, + "CHANNEL_WEBHOOK_URL": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Please enter your Webhook URL", + "ERROR": "Please enter a valid URL" + }, + "CHANNEL_DOMAIN": { + "LABEL": "Website Domain", + "PLACEHOLDER": "Enter your website domain (eg: acme.com)" + }, + "CHANNEL_WELCOME_TITLE": { + "LABEL": "Welcome Heading", + "PLACEHOLDER": "Hi there !" + }, + "CHANNEL_WELCOME_TAGLINE": { + "LABEL": "Welcome Tagline", + "PLACEHOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback." + }, + "CHANNEL_GREETING_MESSAGE": { + "LABEL": "Channel greeting message", + "PLACEHOLDER": "Acme Inc typically replies in a few hours." + }, + "CHANNEL_GREETING_TOGGLE": { + "LABEL": "Enable channel greeting", + "HELP_TEXT": "Auto-send greeting messages when customers start a conversation and send their first message.", + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "REPLY_TIME": { + "TITLE": "Set Reply time", + "IN_A_FEW_MINUTES": "In a few minutes", + "IN_A_FEW_HOURS": "In a few hours", + "IN_A_DAY": "In a day", + "HELP_TEXT": "This reply time will be displayed on the live chat widget" + }, + "WIDGET_COLOR": { + "LABEL": "Widget Color", + "PLACEHOLDER": "Update the widget color used in widget" + }, + "SUBMIT_BUTTON": "Create inbox", + "API": { + "ERROR_MESSAGE": "We were not able to create a website channel, please try again" + } + }, + "TWILIO": { + "TITLE": "Twilio SMS/WhatsApp Channel", + "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.", + "ACCOUNT_SID": { + "LABEL": "Account SID", + "PLACEHOLDER": "Please enter your Twilio Account SID", + "ERROR": "This field is required" + }, + "API_KEY": { + "USE_API_KEY": "Use API Key Authentication", + "LABEL": "API Key SID", + "PLACEHOLDER": "Please enter your API Key SID", + "ERROR": "This field is required" + }, + "API_KEY_SECRET": { + "LABEL": "API Key Secret", + "PLACEHOLDER": "Please enter your API Key Secret", + "ERROR": "This field is required" + }, + "MESSAGING_SERVICE_SID": { + "LABEL": "Messaging Service SID", + "PLACEHOLDER": "Please enter your Twilio Messaging Service SID", + "ERROR": "This field is required", + "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service" + }, + "CHANNEL_TYPE": { + "LABEL": "Channel Type", + "ERROR": "Please select your Channel Type" + }, + "AUTH_TOKEN": { + "LABEL": "Auth Token", + "PLACEHOLDER": "Please enter your Twilio Auth Token", + "ERROR": "This field is required" + }, + "CHANNEL_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter a inbox name", + "ERROR": "This field is required" + }, + "PHONE_NUMBER": { + "LABEL": "Phone Number", + "PLACEHOLDER": "Please enter the phone number from which message will be sent.", + "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here." + }, + "SUBMIT_BUTTON": "Create Twilio Channel", + "API": { + "ERROR_MESSAGE": "We were not able to authenticate Twilio credentials, please try again" + } + }, + "SMS": { + "TITLE": "SMS Channel", + "DESC": "Start supporting your customers via SMS.", + "PROVIDERS": { + "LABEL": "API Provider", + "TWILIO": "Twilio", + "BANDWIDTH": "Bandwidth" + }, + "API": { + "ERROR_MESSAGE": "We were not able to save the SMS channel" + }, + "BANDWIDTH": { + "ACCOUNT_ID": { + "LABEL": "Account ID", + "PLACEHOLDER": "Please enter your Bandwidth Account ID", + "ERROR": "This field is required" + }, + "API_KEY": { + "LABEL": "API Key", + "PLACEHOLDER": "Please enter your Bandwidth API Key", + "ERROR": "This field is required" + }, + "API_SECRET": { + "LABEL": "API Secret", + "PLACEHOLDER": "Please enter your Bandwidth API Secret", + "ERROR": "This field is required" + }, + "APPLICATION_ID": { + "LABEL": "Application ID", + "PLACEHOLDER": "Please enter your Bandwidth Application ID", + "ERROR": "This field is required" + }, + "INBOX_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter a inbox name", + "ERROR": "This field is required" + }, + "PHONE_NUMBER": { + "LABEL": "Phone number", + "PLACEHOLDER": "Please enter the phone number from which message will be sent.", + "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "SUBMIT_BUTTON": "Create Bandwidth Channel", + "API": { + "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again" + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here." + } + } + }, + "WHATSAPP": { + "TITLE": "WhatsApp Channel", + "DESC": "Start supporting your customers via WhatsApp.", + "PROVIDERS": { + "LABEL": "API Provider", + "WHATSAPP_EMBEDDED": "WhatsApp Business", + "TWILIO": "Twilio", + "WHATSAPP_CLOUD": "WhatsApp Cloud", + "WHATSAPP_CLOUD_DESC": "Quick setup through Meta", + "TWILIO_DESC": "Connect via Twilio credentials", + "360_DIALOG": "360Dialog" + }, + "SELECT_PROVIDER": { + "TITLE": "Select your API provider", + "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials." + }, + "INBOX_NAME": { + "LABEL": "Inbox Name", + "PLACEHOLDER": "Please enter an inbox name", + "ERROR": "This field is required" + }, + "PHONE_NUMBER": { + "LABEL": "Phone number", + "PLACEHOLDER": "Please enter the phone number from which message will be sent.", + "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces." + }, + "PHONE_NUMBER_ID": { + "LABEL": "Phone number ID", + "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.", + "ERROR": "Please enter a valid value." + }, + "BUSINESS_ACCOUNT_ID": { + "LABEL": "Business Account ID", + "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.", + "ERROR": "Please enter a valid value." + }, + "WEBHOOK_VERIFY_TOKEN": { + "LABEL": "Webhook Verify Token", + "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.", + "ERROR": "Please enter a valid value." + }, + "API_KEY": { + "LABEL": "API key", + "SUBTITLE": "Configure the WhatsApp API key.", + "PLACEHOLDER": "API key", + "ERROR": "Please enter a valid value." + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.", + "WEBHOOK_URL": "Webhook URL", + "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token" + }, + "SUBMIT_BUTTON": "Create WhatsApp Channel", + "EMBEDDED_SIGNUP": { + "TITLE": "Quick setup with Meta", + "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.", + "BENEFITS": { + "TITLE": "Benefits of Embedded Signup:", + "EASY_SETUP": "No manual configuration required", + "SECURE_AUTH": "Secure OAuth based authentication", + "AUTO_CONFIG": "Automatic webhook and phone number configuration" + }, + "LEARN_MORE": { + "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.", + "LINK_TEXT": "this link" + }, + "SUBMIT_BUTTON": "Connect with WhatsApp Business", + "AUTH_PROCESSING": "Authenticating with Meta", + "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...", + "PROCESSING": "Setting up your WhatsApp Business Account", + "LOADING_SDK": "Loading Facebook SDK...", + "CANCELLED": "WhatsApp Signup was cancelled", + "SUCCESS_TITLE": "WhatsApp Business Account Connected!", + "WAITING_FOR_AUTH": "Waiting for authentication...", + "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.", + "SIGNUP_ERROR": "Signup error occurred", + "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.", + "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured", + "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow", + "MANUAL_LINK_TEXT": "manual setup flow" + }, + "API": { + "ERROR_MESSAGE": "We were not able to save the WhatsApp channel" + } + }, + "VOICE": { + "TITLE": "Voice Channel", + "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.", + "PHONE_NUMBER": { + "LABEL": "Phone Number", + "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)", + "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)" + }, + "TWILIO": { + "ACCOUNT_SID": { + "LABEL": "Account SID", + "PLACEHOLDER": "Enter your Twilio Account SID", + "REQUIRED": "Account SID is required" + }, + "AUTH_TOKEN": { + "LABEL": "Auth Token", + "PLACEHOLDER": "Enter your Twilio Auth Token", + "REQUIRED": "Auth Token is required" + }, + "API_KEY_SID": { + "LABEL": "API Key SID", + "PLACEHOLDER": "Enter your Twilio API Key SID", + "REQUIRED": "API Key SID is required" + }, + "API_KEY_SECRET": { + "LABEL": "API Key Secret", + "PLACEHOLDER": "Enter your Twilio API Key Secret", + "REQUIRED": "API Key Secret is required" + } + }, + "CONFIGURATION": { + "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL", + "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.", + "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL", + "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number." + }, + "SUBMIT_BUTTON": "Create Voice Channel", + "API": { + "ERROR_MESSAGE": "We were not able to create the voice channel" + } + }, + "API_CHANNEL": { + "TITLE": "API Channel", + "DESC": "Integrate with API channel and start supporting your customers.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "WEBHOOK_URL": { + "LABEL": "Webhook URL", + "SUBTITLE": "Configure the URL where you want to receive callbacks on events.", + "PLACEHOLDER": "Webhook URL" + }, + "SUBMIT_BUTTON": "Create API Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the api channel" + } + }, + "EMAIL_CHANNEL": { + "TITLE": "Email Channel", + "DESC": "Integrate your email inbox.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "EMAIL": { + "LABEL": "Email", + "SUBTITLE": "Provide the email address where your customers send support requests.", + "PLACEHOLDER": "Email" + }, + "SUBMIT_BUTTON": "Create Email Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the email channel" + }, + "FINISH_MESSAGE": "Start forwarding your emails to the following email address." + }, + "LINE_CHANNEL": { + "TITLE": "LINE Channel", + "DESC": "Integrate with LINE channel and start supporting your customers.", + "CHANNEL_NAME": { + "LABEL": "Channel Name", + "PLACEHOLDER": "Please enter a channel name", + "ERROR": "This field is required" + }, + "LINE_CHANNEL_ID": { + "LABEL": "LINE Channel ID", + "PLACEHOLDER": "LINE Channel ID" + }, + "LINE_CHANNEL_SECRET": { + "LABEL": "LINE Channel Secret", + "PLACEHOLDER": "LINE Channel Secret" + }, + "LINE_CHANNEL_TOKEN": { + "LABEL": "LINE Channel Token", + "PLACEHOLDER": "LINE Channel Token" + }, + "SUBMIT_BUTTON": "Create LINE Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the LINE channel" + }, + "API_CALLBACK": { + "TITLE": "Callback URL", + "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here." + } + }, + "TELEGRAM_CHANNEL": { + "TITLE": "Telegram Channel", + "DESC": "Integrate with Telegram channel and start supporting your customers.", + "BOT_TOKEN": { + "LABEL": "Bot Token", + "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.", + "PLACEHOLDER": "Bot Token" + }, + "SUBMIT_BUTTON": "Create Telegram Channel", + "API": { + "ERROR_MESSAGE": "We were not able to save the telegram channel" + } + }, + "AUTH": { + "TITLE": "Choose a channel", + "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.", + "TITLE_NEXT": "Complete the setup", + "TITLE_FINISH": "Voilà!", + "CHANNEL": { + "WEBSITE": { + "TITLE": "Website", + "DESCRIPTION": "Create a live-chat widget" + }, + "FACEBOOK": { + "TITLE": "Facebook", + "DESCRIPTION": "Connect your Facebook page" + }, + "WHATSAPP": { + "TITLE": "WhatsApp", + "DESCRIPTION": "Support your customers on WhatsApp" + }, + "EMAIL": { + "TITLE": "Email", + "DESCRIPTION": "Connect with Gmail, Outlook, or other providers" + }, + "SMS": { + "TITLE": "SMS", + "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth" + }, + "API": { + "TITLE": "API", + "DESCRIPTION": "Make a custom channel using our API" + }, + "TELEGRAM": { + "TITLE": "Telegram", + "DESCRIPTION": "Configure Telegram channel using Bot token" + }, + "LINE": { + "TITLE": "Line", + "DESCRIPTION": "Integrate your Line channel" + }, + "INSTAGRAM": { + "TITLE": "Instagram", + "DESCRIPTION": "Connect your instagram account" + }, + "VOICE": { + "TITLE": "Voice", + "DESCRIPTION": "Integrate with Twilio Voice" + } + } + }, + "AGENTS": { + "TITLE": "Agents", + "DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.", + "VALIDATION_ERROR": "Add at least one agent to your new Inbox", + "PICK_AGENTS": "Pick agents for the inbox" + }, + "DETAILS": { + "TITLE": "Inbox Details", + "DESC": "From the dropdown below, select the Facebook Page you want to connect to Chatwoot. You can also give a custom name to your inbox for better identification." + }, + "FINISH": { + "TITLE": "Nailed It!", + "DESC": "You have successfully finished integrating your Facebook Page with Chatwoot. Next time a customer messages your Page, the conversation will automatically appear on your inbox.
We are also providing you with a widget script that you can easily add to your website. Once this is live on your website, customers can message you right from your website without the help of any external tool and the conversation will appear right here, on Chatwoot.
Cool, huh? Well, we sure try to be :)" + }, + "EMAIL_PROVIDER": { + "TITLE": "Select your email provider", + "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials." + }, + "MICROSOFT": { + "TITLE": "Microsoft Email", + "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.", + "EMAIL_PLACEHOLDER": "Enter email address", + "SIGN_IN": "Sign in with Microsoft", + "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again" + }, + "GOOGLE": { + "TITLE": "Google Email", + "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.", + "SIGN_IN": "Sign in with Google", + "EMAIL_PLACEHOLDER": "Enter email address", + "ERROR_MESSAGE": "There was an error connecting to Google, please try again" + } + }, + "DETAILS": { + "LOADING_FB": "Authenticating you with Facebook...", + "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.", + "ERROR_FB_AUTH": "Something went wrong, Please refresh page...", + "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ", + "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.", + "CREATING_CHANNEL": "Creating your Inbox...", + "TITLE": "Configure Inbox Details", + "DESC": "" + }, + "AGENTS": { + "BUTTON_TEXT": "Add agents", + "ADD_AGENTS": "Adding Agents to your Inbox..." + }, + "FINISH": { + "TITLE": "Your Inbox is ready!", + "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting", + "BUTTON_TEXT": "Take me there", + "MORE_SETTINGS": "More settings", + "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox.", + "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox", + "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox", + "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox" + }, + "REAUTH": "Reauthorize", + "VIEW": "View", + "EDIT": { + "API": { + "SUCCESS_MESSAGE": "Inbox settings updated successfully", + "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully", + "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later." + }, + "EMAIL_COLLECT_BOX": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_CSAT": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "SENDER_NAME_SECTION": { + "TITLE": "Sender name", + "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.", + "FOR_EG": "For eg:", + "FRIENDLY": { + "TITLE": "Friendly", + "FROM": "from", + "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly." + }, + "PROFESSIONAL": { + "TITLE": "Professional", + "SUBTITLE": "Use only the configured business name as the sender name in the email header." + }, + "BUSINESS_NAME": { + "BUTTON_TEXT": "+ Configure your business name", + "PLACEHOLDER": "Enter your business name", + "SAVE_BUTTON_TEXT": "Save" + } + }, + "ALLOW_MESSAGES_AFTER_RESOLVED": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_CONTINUITY_VIA_EMAIL": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "LOCK_TO_SINGLE_CONVERSATION": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "ENABLE_HMAC": { + "LABEL": "Enable" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar", + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "PLACE_HOLDER": "Please type {inboxName} to confirm", + "YES": "Yes, Delete ", + "NO": "No, Keep " + }, + "API": { + "SUCCESS_MESSAGE": "Inbox deleted successfully", + "ERROR_MESSAGE": "Could not delete inbox. Please try again later.", + "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully", + "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later." + } + }, + "TABS": { + "SETTINGS": "Settings", + "COLLABORATORS": "Collaborators", + "CONFIGURATION": "Configuration", + "CAMPAIGN": "Campaigns", + "PRE_CHAT_FORM": "Pre Chat Form", + "BUSINESS_HOURS": "Business Hours", + "WIDGET_BUILDER": "Widget Builder", + "BOT_CONFIGURATION": "Bot Configuration", + "ACCOUNT_HEALTH": "Account Health", + "CSAT": "CSAT" + }, + "ACCOUNT_HEALTH": { + "TITLE": "Manage your WhatsApp account", + "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed", + "GO_TO_SETTINGS": "Go to Meta Business Manager", + "NO_DATA": "Health data is not available", + "FIELDS": { + "DISPLAY_PHONE_NUMBER": { + "LABEL": "Display phone number", + "TOOLTIP": "Phone number displayed to customers" + }, + "VERIFIED_NAME": { + "LABEL": "Business name", + "TOOLTIP": "Business name verified by WhatsApp" + }, + "DISPLAY_NAME_STATUS": { + "LABEL": "Display name status", + "TOOLTIP": "Status of your business name verification" + }, + "QUALITY_RATING": { + "LABEL": "Quality rating", + "TOOLTIP": "WhatsApp quality rating for your account" + }, + "MESSAGING_LIMIT_TIER": { + "LABEL": "Messaging limit tier", + "TOOLTIP": "Daily messaging limit for your account" + }, + "ACCOUNT_MODE": { + "LABEL": "Account mode", + "TOOLTIP": "Current operating mode of your WhatsApp account" + } + }, + "VALUES": { + "TIERS": { + "TIER_250": "250 customers per 24h", + "TIER_1000": "1K customers per 24h", + "TIER_1K": "1K customers per 24h", + "TIER_10K": "10K customers per 24h", + "TIER_100K": "100K customers per 24h", + "TIER_UNLIMITED": "Unlimited customers per 24h", + "UNKNOWN": "Rating not available" + }, + "STATUSES": { + "APPROVED": "Approved", + "PENDING_REVIEW": "Pending Review", + "AVAILABLE_WITHOUT_REVIEW": "Available Without Review", + "REJECTED": "Rejected", + "DECLINED": "Declined", + "NON_EXISTS": "Non exists" + }, + "MODES": { + "SANDBOX": "Sandbox", + "LIVE": "Live" + } + } + }, + "SETTINGS": "Settings", + "FEATURES": { + "LABEL": "Features", + "DISPLAY_FILE_PICKER": "Display file picker on the widget", + "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget", + "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget", + "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot" + }, + "SETTINGS_POPUP": { + "MESSENGER_HEADING": "Messenger Script", + "MESSENGER_SUB_HEAD": "Place this button inside your body tag", + "ALLOWED_DOMAINS": { + "TITLE": "Allowed Domains", + "SUBTITLE": "Add wildcard or regular domains separated by commas (leave blank to allow all), e.g. *.chatwoot.dev, chatwoot.com.", + "PLACEHOLDER": "Enter domains separated by commas (eg: *.chatwoot.dev, chatwoot.com)" + }, + "INBOX_AGENTS": "Agents", + "INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox", + "AGENT_ASSIGNMENT": "Conversation Assignment", + "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings", + "UPDATE": "Update", + "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box", + "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation", + "AUTO_ASSIGNMENT": "Enable auto assignment", + "SENDER_NAME_SECTION": "Enable Agent Name in Email", + "SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name", + "ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email", + "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.", + "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation", + "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox", + "INBOX_UPDATE_TITLE": "Inbox Settings", + "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings", + "AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.", + "HMAC_VERIFICATION": "User Identity Validation", + "HMAC_DESCRIPTION": "With this key you can generate a secret token that can be used to verify the identity of your users.", + "HMAC_LINK_TO_DOCS": "You can read more here.", + "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation", + "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests that cannot be verified will be rejected.", + "INBOX_IDENTIFIER": "Inbox Identifier", + "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.", + "FORWARD_EMAIL_TITLE": "Forward to Email", + "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.", + "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved", + "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.", + "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.", + "WHATSAPP_SECTION_TITLE": "API Key", + "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key", + "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", + "WHATSAPP_SECTION_UPDATE_BUTTON": "Update", + "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup", + "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.", + "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.", + "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure", + "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business", + "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.", + "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.", + "WHATSAPP_CONNECT_BUTTON": "Connect", + "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!", + "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.", + "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!", + "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.", + "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.", + "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.", + "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.", + "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token", + "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.", + "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates", + "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.", + "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates", + "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.", + "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings" + }, + "HELP_CENTER": { + "LABEL": "Help Center", + "PLACEHOLDER": "Select Help Center", + "SELECT_PLACEHOLDER": "Select Help Center", + "REMOVE": "Remove Help Center", + "SUB_TEXT": "Attach a Help Center with the inbox" + }, + "AUTO_ASSIGNMENT": { + "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit", + "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0", + "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent" + }, + "FACEBOOK_REAUTHORIZE": { + "TITLE": "Reauthorize", + "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services", + "MESSAGE_SUCCESS": "Reconnection successful", + "MESSAGE_ERROR": "There was an error, please try again" + }, + "PRE_CHAT_FORM": { + "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.", + "SET_FIELDS": "Pre chat form fields", + "SET_FIELDS_HEADER": { + "FIELDS": "Fields", + "LABEL": "Label", + "PLACE_HOLDER": "Placeholder", + "KEY": "Key", + "TYPE": "Type", + "REQUIRED": "Required" + }, + "ENABLE": { + "LABEL": "Enable pre chat form", + "OPTIONS": { + "ENABLED": "Yes", + "DISABLED": "No" + } + }, + "PRE_CHAT_MESSAGE": { + "LABEL": "Pre chat message", + "PLACEHOLDER": "This message would be visible to the users along with the form" + }, + "REQUIRE_EMAIL": { + "LABEL": "Visitors should provide their name and email address before starting the chat" + } + }, + "CSAT": { + "TITLE": "Enable CSAT", + "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.", + "DISPLAY_TYPE": { + "LABEL": "Display type" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter a message to show users with the form" + }, + "SURVEY_RULE": { + "LABEL": "Survey rule", + "DESCRIPTION_PREFIX": "Send the survey if the conversation", + "DESCRIPTION_SUFFIX": "any of the labels", + "OPERATOR": { + "CONTAINS": "contains", + "DOES_NOT_CONTAINS": "does not contain" + }, + "SELECT_PLACEHOLDER": "select labels" + }, + "NOTE": "Note: CSAT surveys are sent only once per conversation", + "API": { + "SUCCESS_MESSAGE": "CSAT settings updated successfully", + "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later." + } + }, + "BUSINESS_HOURS": { + "TITLE": "Set your availability", + "SUBTITLE": "Set your availability on your livechat widget", + "WEEKLY_TITLE": "Set your weekly hours", + "TIMEZONE_LABEL": "Select timezone", + "UPDATE": "Update business hours settings", + "TOGGLE_AVAILABILITY": "Enable business availability for this inbox", + "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors", + "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.", + "DAY": { + "ENABLE": "Enable availability for this day", + "UNAVAILABLE": "Unavailable", + "HOURS": "hours", + "VALIDATION_ERROR": "Starting time should be before closing time.", + "CHOOSE": "Choose" + }, + "ALL_DAY": "All-Day" + }, + "IMAP": { + "TITLE": "IMAP", + "SUBTITLE": "Set your IMAP details", + "NOTE_TEXT": "To enable SMTP, please configure IMAP.", + "UPDATE": "Update IMAP settings", + "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox", + "TOGGLE_HELP": "Enabling IMAP will help the user to receive email", + "EDIT": { + "SUCCESS_MESSAGE": "IMAP settings updated successfully", + "ERROR_MESSAGE": "Unable to update IMAP settings" + }, + "ADDRESS": { + "LABEL": "Address", + "PLACE_HOLDER": "Address (Eg: imap.gmail.com)" + }, + "PORT": { + "LABEL": "Port", + "PLACE_HOLDER": "Port" + }, + "LOGIN": { + "LABEL": "Login", + "PLACE_HOLDER": "Login" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACE_HOLDER": "Password" + }, + "ENABLE_SSL": "Enable SSL" + }, + "MICROSOFT": { + "TITLE": "Microsoft", + "SUBTITLE": "Reauthorize your MICROSOFT account" + }, + "SMTP": { + "TITLE": "SMTP", + "SUBTITLE": "Set your SMTP details", + "UPDATE": "Update SMTP settings", + "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox", + "TOGGLE_HELP": "Enabling SMTP will help the user to send email", + "EDIT": { + "SUCCESS_MESSAGE": "SMTP settings updated successfully", + "ERROR_MESSAGE": "Unable to update SMTP settings" + }, + "ADDRESS": { + "LABEL": "Address", + "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)" + }, + "PORT": { + "LABEL": "Port", + "PLACE_HOLDER": "Port" + }, + "LOGIN": { + "LABEL": "Login", + "PLACE_HOLDER": "Login" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACE_HOLDER": "Password" + }, + "DOMAIN": { + "LABEL": "Domain", + "PLACE_HOLDER": "Domain" + }, + "ENCRYPTION": "Encryption", + "SSL_TLS": "SSL/TLS", + "START_TLS": "STARTTLS", + "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode", + "AUTH_MECHANISM": "Authentication" + }, + "NOTE": "Note: ", + "WIDGET_BUILDER": { + "WIDGET_OPTIONS": { + "AVATAR": { + "LABEL": "Website Avatar", + "DELETE": { + "API": { + "SUCCESS_MESSAGE": "Avatar deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + } + }, + "WEBSITE_NAME": { + "LABEL": "Website Name", + "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)", + "ERROR": "Please enter a valid website name" + }, + "WELCOME_HEADING": { + "LABEL": "Welcome Heading", + "PLACE_HOLDER": "Hi there!" + }, + "WELCOME_TAGLINE": { + "LABEL": "Welcome Tagline", + "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback." + }, + "REPLY_TIME": { + "LABEL": "Reply Time", + "IN_A_FEW_MINUTES": "In a few minutes", + "IN_A_FEW_HOURS": "In a few hours", + "IN_A_DAY": "In a day" + }, + "WIDGET_COLOR_LABEL": "Widget Color", + "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position", + "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type", + "WIDGET_BUBBLE_LAUNCHER_TITLE": { + "DEFAULT": "Chat with us", + "LABEL": "Widget Bubble Launcher Title", + "PLACE_HOLDER": "Chat with us" + }, + "UPDATE": { + "BUTTON_TEXT": "Update Widget Settings", + "API": { + "SUCCESS_MESSAGE": "Widget settings updated successfully", + "ERROR_MESSAGE": "Unable to update widget settings" + } + }, + "WIDGET_VIEW_OPTION": { + "PREVIEW": "Preview", + "SCRIPT": "Script" + }, + "WIDGET_BUBBLE_POSITION": { + "LEFT": "Left", + "RIGHT": "Right" + }, + "WIDGET_BUBBLE_TYPE": { + "STANDARD": "Standard", + "EXPANDED_BUBBLE": "Expanded Bubble" + } + }, + "WIDGET_SCREEN": { + "DEFAULT": "Default", + "CHAT": "Chat" + }, + "REPLY_TIME": { + "IN_A_FEW_MINUTES": "Typically replies in a few minutes", + "IN_A_FEW_HOURS": "Typically replies in a few hours", + "IN_A_DAY": "Typically replies in a day" + }, + "FOOTER": { + "START_CONVERSATION_BUTTON_TEXT": "Start Conversation", + "CHAT_INPUT_PLACEHOLDER": "Type your message" + }, + "BODY": { + "TEAM_AVAILABILITY": { + "ONLINE": "We are Online", + "OFFLINE": "We are away at the moment" + }, + "USER_MESSAGE": "Hi", + "AGENT_MESSAGE": "Hello" + }, + "BRANDING_TEXT": "Powered by Chatwoot", + "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};" + }, + "EMAIL_PROVIDERS": { + "MICROSOFT": { + "TITLE": "Microsoft", + "DESCRIPTION": "Connect with Microsoft" + }, + "GOOGLE": { + "TITLE": "Google", + "DESCRIPTION": "Connect with Google" + }, + "OTHER_PROVIDERS": { + "TITLE": "Other Providers", + "DESCRIPTION": "Connect with Other Providers" + } + }, + "CHANNELS": { + "MESSENGER": "Messenger", + "WEB_WIDGET": "Website", + "TWITTER_PROFILE": "Twitter", + "TWILIO_SMS": "Twilio SMS", + "WHATSAPP": "WhatsApp", + "SMS": "SMS", + "EMAIL": "Email", + "TELEGRAM": "Telegram", + "LINE": "Line", + "API": "API Channel", + "INSTAGRAM": "Instagram", + "VOICE": "Voice" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/integrationApps.json b/app/javascript/dashboard/i18n/locale/et/integrationApps.json new file mode 100644 index 000000000..b91b434f7 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/integrationApps.json @@ -0,0 +1,62 @@ +{ + "INTEGRATION_APPS": { + "FETCHING": "Fetching Integrations", + "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.", + "HEADER": "Applications", + "STATUS": { + "ENABLED": "Enabled", + "DISABLED": "Disabled" + }, + "CONFIGURE": "Configure", + "ADD_BUTTON": "Add a new hook", + "DELETE": { + "TITLE": { + "INBOX": "Confirm deletion", + "ACCOUNT": "Disconnect" + }, + "MESSAGE": { + "INBOX": "Are you sure to delete?", + "ACCOUNT": "Are you sure to disconnect?" + }, + "CONFIRM_BUTTON_TEXT": { + "INBOX": "Yes, Delete", + "ACCOUNT": "Yes, Disconnect" + }, + "CANCEL_BUTTON_TEXT": "Cancel", + "API": { + "SUCCESS_MESSAGE": "Hook deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "LIST": { + "FETCHING": "Fetching integration hooks", + "INBOX": "Inbox", + "DELETE": { + "BUTTON_TEXT": "Delete" + } + }, + "ADD": { + "FORM": { + "INBOX": { + "LABEL": "Select Inbox", + "PLACEHOLDER": "Select Inbox" + }, + "SUBMIT": "Create", + "CANCEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Integration hook added successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + }, + "DISCONNECT": { + "BUTTON_TEXT": "Disconnect" + }, + "SIDEBAR_DESCRIPTION": { + "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/integrations.json b/app/javascript/dashboard/i18n/locale/et/integrations.json new file mode 100644 index 000000000..6c1c9e484 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/integrations.json @@ -0,0 +1,980 @@ +{ + "INTEGRATION_SETTINGS": { + "SHOPIFY": { + "DELETE": { + "TITLE": "Delete Shopify Integration", + "MESSAGE": "Are you sure you want to delete the Shopify integration?" + }, + "STORE_URL": { + "TITLE": "Connect Shopify Store", + "LABEL": "Store URL", + "PLACEHOLDER": "your-store.myshopify.com", + "HELP": "Enter your Shopify store's myshopify.com URL", + "CANCEL": "Cancel", + "SUBMIT": "Connect Store" + }, + "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists." + }, + "HEADER": "Integrations", + "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.", + "LEARN_MORE": "Learn more about integrations", + "LOADING": "Fetching integrations", + "CAPTAIN": { + "DISABLED": "Captain is not enabled on your account.", + "CLICK_HERE_TO_CONFIGURE": "Click here to configure", + "LOADING_CONSOLE": "Loading Captain Console...", + "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again." + }, + "WEBHOOK": { + "SUBSCRIBED_EVENTS": "Subscribed Events", + "LEARN_MORE": "Learn more about webhooks", + "FORM": { + "CANCEL": "Cancel", + "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.", + "SUBSCRIPTIONS": { + "LABEL": "Events", + "EVENTS": { + "CONVERSATION_CREATED": "Conversation Created", + "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed", + "CONVERSATION_UPDATED": "Conversation Updated", + "MESSAGE_CREATED": "Message created", + "MESSAGE_UPDATED": "Message updated", + "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user", + "CONTACT_CREATED": "Contact created", + "CONTACT_UPDATED": "Contact updated", + "CONVERSATION_TYPING_ON": "Conversation Typing On", + "CONVERSATION_TYPING_OFF": "Conversation Typing Off" + } + }, + "END_POINT": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "Example: {webhookExampleURL}", + "ERROR": "Please enter a valid URL" + }, + "EDIT_SUBMIT": "Update webhook", + "ADD_SUBMIT": "Create webhook" + }, + "TITLE": "Webhook", + "CONFIGURE": "Configure", + "HEADER": "Webhook settings", + "HEADER_BTN_TXT": "Add new webhook", + "LOADING": "Fetching attached webhooks", + "SEARCH_404": "There are no items matching this query", + "SIDEBAR_TXT": "

Webhooks

Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.

For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.

", + "LIST": { + "404": "There are no webhooks configured for this account.", + "TITLE": "Manage webhooks", + "TABLE_HEADER": { + "WEBHOOK_ENDPOINT": "Webhook endpoint", + "ACTIONS": "Actions" + } + }, + "EDIT": { + "BUTTON_TEXT": "Edit", + "TITLE": "Edit webhook", + "API": { + "SUCCESS_MESSAGE": "Webhook configuration updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "ADD": { + "CANCEL": "Cancel", + "TITLE": "Add new webhook", + "API": { + "SUCCESS_MESSAGE": "Webhook configuration added successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Webhook deleted successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})", + "YES": "Yes, Delete ", + "NO": "No, Keep it" + } + } + }, + "SLACK": { + "DELETE": "Delete", + "DELETE_CONFIRMATION": { + "TITLE": "Delete the integration", + "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace." + }, + "HELP_TEXT": { + "TITLE": "How to use the Slack Integration?", + "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.", + "SELECTED": "selected" + }, + "SELECT_CHANNEL": { + "OPTION_LABEL": "Select a channel", + "UPDATE": "Update", + "BUTTON_TEXT": "Connect channel", + "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.", + "ATTENTION_REQUIRED": "Attention required", + "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again." + }, + "UPDATE_ERROR": "There was an error updating the integration, please try again", + "UPDATE_SUCCESS": "The channel is connected successfully", + "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again" + }, + "DYTE": { + "CLICK_HERE_TO_JOIN": "Click here to join", + "LEAVE_THE_ROOM": "Leave the room", + "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer", + "JOIN_ERROR": "There was an error joining the call, please try again", + "CREATE_ERROR": "There was an error creating a meeting link, please try again" + }, + "OPEN_AI": { + "AI_ASSIST": "AI Assist", + "WITH_AI": " {option} with AI ", + "OPTIONS": { + "REPLY_SUGGESTION": "Reply Suggestion", + "SUMMARIZE": "Summarize", + "REPHRASE": "Improve Writing", + "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar", + "SHORTEN": "Shorten", + "EXPAND": "Expand", + "MAKE_FRIENDLY": "Change message tone to friendly", + "MAKE_FORMAL": "Use formal tone", + "SIMPLIFY": "Simplify" + }, + "ASSISTANCE_MODAL": { + "DRAFT_TITLE": "Draft content", + "GENERATED_TITLE": "Generated content", + "AI_WRITING": "AI is writing", + "BUTTONS": { + "APPLY": "Use this suggestion", + "CANCEL": "Cancel" + } + }, + "CTA_MODAL": { + "TITLE": "Integrate with OpenAI", + "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.", + "KEY_PLACEHOLDER": "Enter your OpenAI API key", + "BUTTONS": { + "NEED_HELP": "Need help?", + "DISMISS": "Dismiss", + "FINISH": "Finish Setup" + }, + "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.", + "SUCCESS_MESSAGE": "OpenAI integration setup successfully" + }, + "TITLE": "Improve With AI", + "SUMMARY_TITLE": "Summary with AI", + "REPLY_TITLE": "Reply suggestion with AI", + "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.", + "TONE": { + "TITLE": "Tone", + "OPTIONS": { + "PROFESSIONAL": "Professional", + "FRIENDLY": "Friendly" + } + }, + "BUTTONS": { + "GENERATE": "Generate", + "GENERATING": "Generating...", + "CANCEL": "Cancel" + }, + "GENERATE_ERROR": "There was an error processing the content, please verify your OpenAI API key and try again" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Integration deleted successfully" + } + }, + "CONNECT": { + "BUTTON_TEXT": "Connect" + }, + "DASHBOARD_APPS": { + "TITLE": "Dashboard Apps", + "HEADER_BTN_TXT": "Add a new dashboard app", + "SIDEBAR_TXT": "

Dashboard Apps

Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.

When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.

To add a new dashboard app, click on the button 'Add a new dashboard app'.

", + "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.", + "LEARN_MORE": "Learn more about Dashboard Apps", + "LIST": { + "404": "There are no dashboard apps configured on this account yet", + "LOADING": "Fetching dashboard apps...", + "TABLE_HEADER": { + "NAME": "Name", + "ENDPOINT": "Endpoint" + }, + "EDIT_TOOLTIP": "Edit app", + "DELETE_TOOLTIP": "Delete app" + }, + "FORM": { + "TITLE_LABEL": "Name", + "TITLE_PLACEHOLDER": "Enter a name for your dashboard app", + "TITLE_ERROR": "A name for the dashboard app is required", + "URL_LABEL": "Endpoint", + "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted", + "URL_ERROR": "A valid URL is required" + }, + "CREATE": { + "HEADER": "Add a new dashboard app", + "FORM_SUBMIT": "Submit", + "FORM_CANCEL": "Cancel", + "API_SUCCESS": "Dashboard app configured successfully", + "API_ERROR": "We couldn't create an app. Please try again later" + }, + "UPDATE": { + "HEADER": "Edit dashboard app", + "FORM_SUBMIT": "Update", + "FORM_CANCEL": "Cancel", + "API_SUCCESS": "Dashboard app updated successfully", + "API_ERROR": "We couldn't update the app. Please try again later" + }, + "DELETE": { + "CONFIRM_YES": "Yes, delete it", + "CONFIRM_NO": "No, keep it", + "TITLE": "Confirm deletion", + "MESSAGE": "Are you sure to delete the app - {appName}?", + "API_SUCCESS": "Dashboard app deleted successfully", + "API_ERROR": "We couldn't delete the app. Please try again later" + } + }, + "LINEAR": { + "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue", + "LOADING": "Fetching linear issues...", + "LOADING_ERROR": "There was an error fetching the linear issues, please try again", + "CREATE": "Create", + "LINK": { + "SEARCH": "Search issues", + "SELECT": "Select issue", + "TITLE": "Link", + "EMPTY_LIST": "No linear issues found", + "LOADING": "Loading", + "ERROR": "There was an error fetching the linear issues, please try again", + "LINK_SUCCESS": "Issue linked successfully", + "LINK_ERROR": "There was an error linking the issue, please try again", + "LINK_TITLE": "Conversation (#{conversationId}) with {name}" + }, + "ADD_OR_LINK": { + "TITLE": "Create/link linear issue", + "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Enter title", + "REQUIRED_ERROR": "Title is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Enter description" + }, + "TEAM": { + "LABEL": "Team", + "PLACEHOLDER": "Select team", + "SEARCH": "Search team", + "REQUIRED_ERROR": "Team is required" + }, + "ASSIGNEE": { + "LABEL": "Assignee", + "PLACEHOLDER": "Select assignee", + "SEARCH": "Search assignee" + }, + "PRIORITY": { + "LABEL": "Priority", + "PLACEHOLDER": "Select priority", + "SEARCH": "Search priority" + }, + "LABEL": { + "LABEL": "Label", + "PLACEHOLDER": "Select label", + "SEARCH": "Search label" + }, + "STATUS": { + "LABEL": "Status", + "PLACEHOLDER": "Select status", + "SEARCH": "Search status" + }, + "PROJECT": { + "LABEL": "Project", + "PLACEHOLDER": "Select project", + "SEARCH": "Search project" + } + }, + "CREATE": "Create", + "CANCEL": "Cancel", + "CREATE_SUCCESS": "Issue created successfully", + "CREATE_ERROR": "There was an error creating the issue, please try again", + "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again", + "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again" + }, + "ISSUE": { + "STATUS": "Status", + "PRIORITY": "Priority", + "ASSIGNEE": "Assignee", + "LABELS": "Labels", + "CREATED_AT": "Created at {createdAt}" + }, + "UNLINK": { + "TITLE": "Unlink", + "SUCCESS": "Issue unlinked successfully", + "ERROR": "There was an error unlinking the issue, please try again" + }, + "NO_LINKED_ISSUES": "No linked issues found", + "DELETE": { + "TITLE": "Are you sure you want to delete the integration?", + "MESSAGE": "Are you sure you want to delete the integration?", + "CONFIRM": "Yes, delete", + "CANCEL": "Cancel" + }, + "CTA": { + "TITLE": "Connect to Linear", + "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.", + "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.", + "BUTTON_TEXT": "Connect Linear workspace" + } + }, + "NOTION": { + "DELETE": { + "TITLE": "Are you sure you want to delete the Notion integration?", + "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.", + "CONFIRM": "Yes, delete", + "CANCEL": "Cancel" + } + } + }, + "CAPTAIN": { + "NAME": "Captain", + "HEADER_KNOW_MORE": "Know more", + "COPILOT": { + "TITLE": "Copilot", + "TRY_THESE_PROMPTS": "Try these prompts", + "PANEL_TITLE": "Get started with Copilot", + "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.", + "SEND_MESSAGE": "Send message...", + "EMPTY_MESSAGE": "There was an error generating the response. Please try again.", + "LOADER": "Captain is thinking", + "YOU": "You", + "USE": "Use this", + "RESET": "Reset", + "SHOW_STEPS": "Show steps", + "SELECT_ASSISTANT": "Select Assistant", + "PROMPTS": { + "SUMMARIZE": { + "LABEL": "Summarize this conversation", + "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent" + }, + "SUGGEST": { + "LABEL": "Suggest an answer", + "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information." + }, + "RATE": { + "LABEL": "Rate this conversation", + "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness." + }, + "HIGH_PRIORITY": { + "LABEL": "High priority conversations", + "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant." + }, + "LIST_CONTACTS": { + "LABEL": "List contacts", + "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)." + } + } + }, + "PLAYGROUND": { + "USER": "You", + "ASSISTANT": "Assistant", + "MESSAGE_PLACEHOLDER": "Type your message...", + "HEADER": "Playground", + "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.", + "CREDIT_NOTE": "Messages sent here will count toward your Captain credits." + }, + "PAYWALL": { + "TITLE": "Upgrade to use Captain AI", + "AVAILABLE_ON": "Captain is not available on the free plan.", + "UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.", + "UPGRADE_NOW": "Upgrade now", + "CANCEL_ANYTIME": "You can change or cancel your plan anytime" + }, + "ENTERPRISE_PAYWALL": { + "UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.", + "ASK_ADMIN": "Please reach out to your administrator for the upgrade." + }, + "BANNER": { + "RESPONSES": "You've used over 80% of your response limit. To continue using Captain AI, please upgrade.", + "DOCUMENTS": "Document limit reached. Upgrade to continue using Captain AI." + }, + "FORM": { + "CANCEL": "Cancel", + "CREATE": "Create", + "EDIT": "Update" + }, + "ASSISTANTS": { + "HEADER": "Assistants", + "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.", + "ADD_NEW": "Create a new assistant", + "DELETE": { + "TITLE": "Are you sure to delete the assistant?", + "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "The assistant has been successfully deleted", + "ERROR_MESSAGE": "There was an error deleting the assistant, please try again." + }, + "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.", + "CREATE": { + "TITLE": "Create an assistant", + "SUCCESS_MESSAGE": "The assistant has been successfully created", + "ERROR_MESSAGE": "There was an error creating the assistant, please try again." + }, + "FORM": { + "UPDATE": "Update", + "SECTIONS": { + "BASIC_INFO": "Basic Information", + "SYSTEM_MESSAGES": "System Messages", + "INSTRUCTIONS": "Instructions", + "FEATURES": "Features", + "TOOLS": "Tools " + }, + "NAME": { + "LABEL": "Name", + "PLACEHOLDER": "Enter assistant name", + "ERROR": "The name is required" + }, + "TEMPERATURE": { + "LABEL": "Response Temperature", + "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs." + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Enter assistant description", + "ERROR": "The description is required" + }, + "PRODUCT_NAME": { + "LABEL": "Product Name", + "PLACEHOLDER": "Enter product name", + "ERROR": "The product name is required" + }, + "WELCOME_MESSAGE": { + "LABEL": "Welcome Message", + "PLACEHOLDER": "Enter welcome message" + }, + "HANDOFF_MESSAGE": { + "LABEL": "Handoff Message", + "PLACEHOLDER": "Enter handoff message" + }, + "RESOLUTION_MESSAGE": { + "LABEL": "Resolution Message", + "PLACEHOLDER": "Enter resolution message" + }, + "INSTRUCTIONS": { + "LABEL": "Instructions", + "PLACEHOLDER": "Enter instructions for the assistant" + }, + "FEATURES": { + "TITLE": "Features", + "ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations", + "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.", + "ALLOW_CITATIONS": "Include source citations in responses" + } + }, + "EDIT": { + "TITLE": "Update the assistant", + "SUCCESS_MESSAGE": "The assistant has been successfully updated", + "ERROR_MESSAGE": "There was an error updating the assistant, please try again.", + "NOT_FOUND": "Could not find the assistant. Please try again." + }, + "SETTINGS": { + "BREADCRUMB": { + "ASSISTANT": "Assistant" + }, + "BASIC_SETTINGS": { + "TITLE": "Basic settings", + "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human." + }, + "SYSTEM_SETTINGS": { + "TITLE": "System settings", + "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human." + }, + "CONTROL_ITEMS": { + "TITLE": "The Fun Stuff", + "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.", + "OPTIONS": { + "GUARDRAILS": { + "TITLE": "Guardrails", + "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic." + }, + "SCENARIOS": { + "TITLE": "Scenarios", + "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”" + }, + "RESPONSE_GUIDELINES": { + "TITLE": "Response guidelines", + "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?" + } + } + } + }, + "OPTIONS": { + "EDIT_ASSISTANT": "Edit Assistant", + "DELETE_ASSISTANT": "Delete Assistant", + "VIEW_CONNECTED_INBOXES": "View connected inboxes" + }, + "EMPTY_STATE": { + "TITLE": "No assistants available", + "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.", + "FEATURE_SPOTLIGHT": { + "TITLE": "Captain Assistant", + "NOTE": "Captain Assistant engages directly with customers, learns from your help docs and past conversations, and delivers instant, accurate responses. It handles the initial queries, providing quick resolutions before transferring to an agent when needed." + } + }, + "GUARDRAILS": { + "TITLE": "Guardrails", + "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.", + "BREADCRUMB": { + "TITLE": "Guardrails" + }, + "BULK_ACTION": { + "SELECTED": "{count} item selected | {count} items selected", + "SELECT_ALL": "Select all ({count})", + "UNSELECT_ALL": "Unselect all ({count})", + "BULK_DELETE_BUTTON": "Delete" + }, + "ADD": { + "SUGGESTED": { + "TITLE": "Example guardrails", + "ADD": "Add all", + "ADD_SINGLE": "Add this", + "SAVE": "Add and save (↵)", + "PLACEHOLDER": "Type in another guardrail..." + }, + "NEW": { + "TITLE": "Add a guardrail", + "CREATE": "Create", + "CANCEL": "Cancel", + "PLACEHOLDER": "Type in another guardrail...", + "TEST_ALL": "Test all" + } + }, + "LIST": { + "SEARCH_PLACEHOLDER": "Search..." + }, + "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.", + "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.", + "API": { + "ADD": { + "SUCCESS": "Guardrails added successfully", + "ERROR": "There was an error adding guardrails, please try again." + }, + "UPDATE": { + "SUCCESS": "Guardrails updated successfully", + "ERROR": "There was an error updating guardrails, please try again." + }, + "DELETE": { + "SUCCESS": "Guardrails deleted successfully", + "ERROR": "There was an error deleting guardrails, please try again." + } + } + }, + "RESPONSE_GUIDELINES": { + "TITLE": "Response Guidelines", + "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?", + "BREADCRUMB": { + "TITLE": "Response Guidelines" + }, + "BULK_ACTION": { + "SELECTED": "{count} item selected | {count} items selected", + "SELECT_ALL": "Select all ({count})", + "UNSELECT_ALL": "Unselect all ({count})", + "BULK_DELETE_BUTTON": "Delete" + }, + "ADD": { + "SUGGESTED": { + "TITLE": "Example response guidelines", + "ADD": "Add all", + "ADD_SINGLE": "Add this", + "SAVE": "Add and save (↵)", + "PLACEHOLDER": "Type in another response guideline..." + }, + "NEW": { + "TITLE": "Add a response guideline", + "CREATE": "Create", + "CANCEL": "Cancel", + "PLACEHOLDER": "Type in another response guideline...", + "TEST_ALL": "Test all" + } + }, + "LIST": { + "SEARCH_PLACEHOLDER": "Search..." + }, + "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.", + "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.", + "API": { + "ADD": { + "SUCCESS": "Response Guidelines added successfully", + "ERROR": "There was an error adding response guidelines, please try again." + }, + "UPDATE": { + "SUCCESS": "Response Guidelines updated successfully", + "ERROR": "There was an error updating response guidelines, please try again." + }, + "DELETE": { + "SUCCESS": "Response Guidelines deleted successfully", + "ERROR": "There was an error deleting response guidelines, please try again." + } + } + }, + "SCENARIOS": { + "TITLE": "Scenarios", + "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”", + "BREADCRUMB": { + "TITLE": "Scenarios" + }, + "BULK_ACTION": { + "SELECTED": "{count} item selected | {count} items selected", + "SELECT_ALL": "Select all ({count})", + "UNSELECT_ALL": "Unselect all ({count})", + "BULK_DELETE_BUTTON": "Delete" + }, + "ADD": { + "SUGGESTED": { + "TITLE": "Example scenarios", + "ADD": "Add all", + "ADD_SINGLE": "Add this", + "TOOLS_USED": "Tools used :" + }, + "NEW": { + "CREATE": "Add a scenario", + "TITLE": "Create a scenario", + "FORM": { + "TITLE": { + "LABEL": "Title", + "PLACEHOLDER": "Enter a name for the scenario", + "ERROR": "Scenario name is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Describe how and where this scenario will be used", + "ERROR": "Scenario description is required" + }, + "INSTRUCTION": { + "LABEL": "How to handle", + "PLACEHOLDER": "Describe how and where this scenario will be handled", + "ERROR": "Scenario content is required" + }, + "CREATE": "Create", + "CANCEL": "Cancel" + } + } + }, + "UPDATE": { + "CANCEL": "Cancel", + "UPDATE": "Update changes" + }, + "LIST": { + "SEARCH_PLACEHOLDER": "Search..." + }, + "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.", + "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.", + "API": { + "ADD": { + "SUCCESS": "Scenarios added successfully", + "ERROR": "There was an error adding scenarios, please try again." + }, + "UPDATE": { + "SUCCESS": "Scenarios updated successfully", + "ERROR": "There was an error updating scenarios, please try again." + }, + "DELETE": { + "SUCCESS": "Scenarios deleted successfully", + "ERROR": "There was an error deleting scenarios, please try again." + } + } + } + }, + "DOCUMENTS": { + "HEADER": "Documents", + "ADD_NEW": "Create a new document", + "RELATED_RESPONSES": { + "TITLE": "Related FAQs", + "DESCRIPTION": "These FAQs are generated directly from the document." + }, + "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.", + "CREATE": { + "TITLE": "Add a document", + "SUCCESS_MESSAGE": "The document has been successfully created", + "ERROR_MESSAGE": "There was an error creating the document, please try again." + }, + "FORM": { + "TYPE": { + "LABEL": "Document Type", + "URL": "URL", + "PDF": "PDF File" + }, + "URL": { + "LABEL": "URL", + "PLACEHOLDER": "Enter the URL of the document", + "ERROR": "Please provide a valid URL for the document" + }, + "PDF_FILE": { + "LABEL": "PDF File", + "CHOOSE_FILE": "Choose PDF file", + "ERROR": "Please select a PDF file", + "HELP_TEXT": "Maximum file size: 10MB", + "INVALID_TYPE": "Please select a valid PDF file", + "TOO_LARGE": "File size exceeds 10MB limit" + }, + "NAME": { + "LABEL": "Document Name (Optional)", + "PLACEHOLDER": "Enter a name for the document" + }, + "ASSISTANT": { + "LABEL": "Assistant", + "PLACEHOLDER": "Select the assistant", + "ERROR": "The assistant field is required" + } + }, + "DELETE": { + "TITLE": "Are you sure to delete the document?", + "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "The document has been successfully deleted", + "ERROR_MESSAGE": "There was an error deleting the document, please try again." + }, + "OPTIONS": { + "VIEW_RELATED_RESPONSES": "View Related Responses", + "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.", + "FEATURE_SPOTLIGHT": { + "TITLE": "Captain Document", + "NOTE": "A document in Captain serves as a knowledge resource for the assistant. By connecting your help center or guides, Captain can analyze the content and provide accurate responses for customer inquiries." + } + } + }, + "CUSTOM_TOOLS": { + "HEADER": "Tools", + "ADD_NEW": "Create a new tool", + "EMPTY_STATE": { + "TITLE": "No custom tools available", + "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.", + "FEATURE_SPOTLIGHT": { + "TITLE": "Custom Tools", + "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities." + } + }, + "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs", + "OPTIONS": { + "EDIT_TOOL": "Edit tool", + "DELETE_TOOL": "Delete tool" + }, + "CREATE": { + "TITLE": "Create Custom Tool", + "SUCCESS_MESSAGE": "Custom tool created successfully", + "ERROR_MESSAGE": "Failed to create custom tool" + }, + "EDIT": { + "TITLE": "Edit Custom Tool", + "SUCCESS_MESSAGE": "Custom tool updated successfully", + "ERROR_MESSAGE": "Failed to update custom tool" + }, + "DELETE": { + "TITLE": "Delete Custom Tool", + "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "Custom tool deleted successfully", + "ERROR_MESSAGE": "Failed to delete custom tool" + }, + "FORM": { + "TITLE": { + "LABEL": "Tool Name", + "PLACEHOLDER": "Order Lookup", + "ERROR": "Tool name is required" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Looks up order details by order ID" + }, + "HTTP_METHOD": { + "LABEL": "Method" + }, + "ENDPOINT_URL": { + "LABEL": "Endpoint URL", + "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}", + "ERROR": "Valid URL is required" + }, + "AUTH_TYPE": { + "LABEL": "Authentication Type" + }, + "AUTH_TYPES": { + "NONE": "None", + "BEARER": "Bearer Token", + "BASIC": "Basic Auth", + "API_KEY": "API Key" + }, + "AUTH_CONFIG": { + "BEARER_TOKEN": "Bearer Token", + "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token", + "USERNAME": "Username", + "USERNAME_PLACEHOLDER": "Enter username", + "PASSWORD": "Password", + "PASSWORD_PLACEHOLDER": "Enter password", + "API_KEY": "Header Name", + "API_KEY_PLACEHOLDER": "X-API-Key", + "API_VALUE": "Header Value", + "API_VALUE_PLACEHOLDER": "Enter API key value" + }, + "PARAMETERS": { + "LABEL": "Parameters", + "HELP_TEXT": "Define the parameters that will be extracted from user queries" + }, + "ADD_PARAMETER": "Add Parameter", + "PARAM_NAME": { + "PLACEHOLDER": "Parameter name (e.g., order_id)" + }, + "PARAM_TYPE": { + "PLACEHOLDER": "Type" + }, + "PARAM_TYPES": { + "STRING": "String", + "NUMBER": "Number", + "BOOLEAN": "Boolean", + "ARRAY": "Array", + "OBJECT": "Object" + }, + "PARAM_DESCRIPTION": { + "PLACEHOLDER": "Description of the parameter" + }, + "PARAM_REQUIRED": { + "LABEL": "Required" + }, + "REQUEST_TEMPLATE": { + "LABEL": "Request Body Template (Optional)", + "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}" + }, + "RESPONSE_TEMPLATE": { + "LABEL": "Response Template (Optional)", + "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}" + }, + "ERRORS": { + "PARAM_NAME_REQUIRED": "Parameter name is required" + } + } + }, + "RESPONSES": { + "HEADER": "FAQs", + "ADD_NEW": "Create new FAQ", + "DOCUMENTABLE": { + "CONVERSATION": "Conversation #{id}" + }, + "SELECTED": "{count} selected", + "SELECT_ALL": "Select all ({count})", + "UNSELECT_ALL": "Unselect all ({count})", + "SEARCH_PLACEHOLDER": "Search FAQs...", + "BULK_APPROVE_BUTTON": "Approve", + "BULK_DELETE_BUTTON": "Delete", + "BULK_APPROVE": { + "SUCCESS_MESSAGE": "FAQs approved successfully", + "ERROR_MESSAGE": "There was an error approving the FAQs, please try again." + }, + "BULK_DELETE": { + "TITLE": "Delete FAQs?", + "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.", + "CONFIRM": "Yes, delete all", + "SUCCESS_MESSAGE": "FAQs deleted successfully", + "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again." + }, + "DELETE": { + "TITLE": "Are you sure to delete the FAQ?", + "DESCRIPTION": "", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "FAQ deleted successfully", + "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again." + }, + "FILTER": { + "ASSISTANT": "Assistant: {selected}", + "STATUS": "Status: {selected}", + "ALL_ASSISTANTS": "All" + }, + "STATUS": { + "TITLE": "Status", + "PENDING": "Pending", + "APPROVED": "Approved", + "ALL": "All" + }, + "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.", + "CREATE": { + "TITLE": "Add an FAQ", + "SUCCESS_MESSAGE": "The response has been added successfully.", + "ERROR_MESSAGE": "An error occurred while adding the response. Please try again." + }, + "FORM": { + "QUESTION": { + "LABEL": "Question", + "PLACEHOLDER": "Enter the question here", + "ERROR": "Please provide a valid question." + }, + "ANSWER": { + "LABEL": "Answer", + "PLACEHOLDER": "Enter the answer here", + "ERROR": "Please provide a valid answer." + }, + "ASSISTANT": { + "LABEL": "Assistant", + "PLACEHOLDER": "Select an assistant", + "ERROR": "Please select an assistant." + } + }, + "EDIT": { + "TITLE": "Update the FAQ", + "SUCCESS_MESSAGE": "The FAQ has been successfully updated", + "ERROR_MESSAGE": "There was an error updating the FAQ, please try again", + "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved" + }, + "OPTIONS": { + "APPROVE": "Mark as approved", + "EDIT_RESPONSE": "Edit FAQ", + "DELETE_RESPONSE": "Delete FAQ" + }, + "EMPTY_STATE": { + "TITLE": "No FAQs Found", + "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.", + "FEATURE_SPOTLIGHT": { + "TITLE": "Captain FAQ", + "NOTE": "Captain FAQs detects common customer questions—whether missing from your knowledge base or frequently asked—and generates relevant FAQs to improve support. You can review each suggestion and decide whether to approve or reject it." + } + } + }, + "INBOXES": { + "HEADER": "Connected Inboxes", + "ADD_NEW": "Connect a new inbox", + "OPTIONS": { + "DISCONNECT": "Disconnect" + }, + "DELETE": { + "TITLE": "Are you sure to disconnect the inbox?", + "DESCRIPTION": "", + "CONFIRM": "Yes, delete", + "SUCCESS_MESSAGE": "The inbox was successfully disconnected.", + "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again." + }, + "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.", + "CREATE": { + "TITLE": "Connect an Inbox", + "SUCCESS_MESSAGE": "The inbox was successfully connected.", + "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again." + }, + "FORM": { + "INBOX": { + "LABEL": "Inbox", + "PLACEHOLDER": "Choose the inbox to deploy the assistant.", + "ERROR": "An inbox selection is required." + } + }, + "EMPTY_STATE": { + "TITLE": "No Connected Inboxes", + "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you." + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json new file mode 100644 index 000000000..705b18d0e --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json @@ -0,0 +1,85 @@ +{ + "LABEL_MGMT": { + "HEADER": "Labels", + "HEADER_BTN_TXT": "Add label", + "LOADING": "Fetching labels", + "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.", + "LEARN_MORE": "Learn more about labels", + "SEARCH_404": "There are no items matching this query", + "LIST": { + "404": "There are no labels available in this account.", + "TITLE": "Manage labels", + "DESC": "Labels let you group the conversations together.", + "TABLE_HEADER": { + "NAME": "Name", + "DESCRIPTION": "Description", + "COLOR": "Color" + } + }, + "FORM": { + "NAME": { + "LABEL": "Label Name", + "PLACEHOLDER": "Label name", + "REQUIRED_ERROR": "Label name is required", + "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required", + "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Label Description" + }, + "COLOR": { + "LABEL": "Color" + }, + "SHOW_ON_SIDEBAR": { + "LABEL": "Show label on sidebar" + }, + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel" + }, + "SUGGESTIONS": { + "TOOLTIP": { + "SINGLE_SUGGESTION": "Add label to conversation", + "MULTIPLE_SUGGESTION": "Select this label", + "DESELECT": "Deselect label", + "DISMISS": "Dismiss suggestion" + }, + "POWERED_BY": "Chatwoot AI", + "DISMISS": "Dismiss", + "ADD_SELECTED_LABELS": "Add selected labels", + "ADD_SELECTED_LABEL": "Add selected label", + "ADD_ALL_LABELS": "Add all labels", + "SUGGESTED_LABELS": "Suggested labels" + }, + "ADD": { + "TITLE": "Add label", + "DESC": "Labels let you group the conversations together.", + "API": { + "SUCCESS_MESSAGE": "Label added successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "EDIT": { + "TITLE": "Edit label", + "API": { + "SUCCESS_MESSAGE": "Label updated successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Label deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/login.json b/app/javascript/dashboard/i18n/locale/et/login.json new file mode 100644 index 000000000..061284247 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/login.json @@ -0,0 +1,41 @@ +{ + "LOGIN": { + "TITLE": "Login to Chatwoot", + "EMAIL": { + "LABEL": "Email", + "PLACEHOLDER": "example{'@'}companyname.com", + "ERROR": "Please enter a valid email address" + }, + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password" + }, + "API": { + "SUCCESS_MESSAGE": "Login successful", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again.", + "UNAUTH": "Username or password is incorrect. Please try again." + }, + "OAUTH": { + "GOOGLE_LOGIN": "Login with Google", + "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login", + "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address." + }, + "FORGOT_PASSWORD": "Forgot your password?", + "CREATE_NEW_ACCOUNT": "Create a new account", + "SUBMIT": "Login", + "SAML": { + "LABEL": "Login via SSO", + "TITLE": "Initiate Single Sign-on (SSO)", + "SUBTITLE": "Enter your work email to access your organization", + "BACK_TO_LOGIN": "Login via Password", + "WORK_EMAIL": { + "LABEL": "Work Email", + "PLACEHOLDER": "Enter your work email" + }, + "SUBMIT": "Continue with SSO", + "API": { + "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again." + } + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/macros.json b/app/javascript/dashboard/i18n/locale/et/macros.json new file mode 100644 index 000000000..fcb409f34 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/macros.json @@ -0,0 +1,111 @@ +{ + "MACROS": { + "HEADER": "Macros", + "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.", + "LEARN_MORE": "Learn more about macros", + "HEADER_BTN_TXT": "Add a new macro", + "HEADER_BTN_TXT_SAVE": "Save macro", + "LOADING": "Fetching macros", + "ERROR": "Something went wrong. Please try again", + "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.", + "ADD": { + "FORM": { + "NAME": { + "LABEL": "Macro name", + "PLACEHOLDER": "Enter a name for your macro", + "ERROR": "Name is required for creating a macro" + }, + "ACTIONS": { + "LABEL": "Actions" + } + }, + "API": { + "SUCCESS_MESSAGE": "Macro added successfully", + "ERROR_MESSAGE": "Unable to create macro, Please try again later" + } + }, + "LIST": { + "TABLE_HEADER": { + "NAME": "Name", + "CREATED BY": "Created by", + "LAST_UPDATED_BY": "Last updated by", + "VISIBILITY": "Visibility" + }, + "404": "No macros found" + }, + "DELETE": { + "TOOLTIP": "Delete macro", + "CONFIRM": { + "MESSAGE": "Are you sure to delete ", + "YES": "Yes, Delete", + "NO": "No" + }, + "API": { + "SUCCESS_MESSAGE": "Macro deleted successfully", + "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later" + } + }, + "EDIT": { + "TOOLTIP": "Edit macro", + "API": { + "SUCCESS_MESSAGE": "Macro updated successfully", + "ERROR_MESSAGE": "Could not update Macro, Please try again later" + } + }, + "EDITOR": { + "START_FLOW": "Start Flow", + "END_FLOW": "End Flow", + "LOADING": "Fetching macro", + "ADD_BTN_TOOLTIP": "Add new action", + "DELETE_BTN_TOOLTIP": "Delete Action", + "VISIBILITY": { + "LABEL": "Macro Visibility", + "GLOBAL": { + "LABEL": "Public", + "DESCRIPTION": "This macro is available publicly for all agents in this account." + }, + "PERSONAL": { + "LABEL": "Private", + "DESCRIPTION": "This macro will be private to you and not be available to others." + } + } + }, + "EXECUTE": { + "BUTTON_TOOLTIP": "Execute", + "PREVIEW": "Preview Macro", + "EXECUTED_SUCCESSFULLY": "Macro executed successfully" + }, + "ERRORS": { + "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", + "FILTER_OPERATOR_REQUIRED": "Filter operator is required", + "VALUE_REQUIRED": "Value is required", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998", + "ACTION_PARAMETERS_REQUIRED": "Action parameters are required", + "ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required", + "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" + }, + "ACTIONS": { + "ASSIGN_TEAM": "Assign a Team", + "ASSIGN_AGENT": "Assign an Agent", + "ADD_LABEL": "Add a Label", + "REMOVE_LABEL": "Remove a Label", + "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team", + "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript", + "MUTE_CONVERSATION": "Mute Conversation", + "SNOOZE_CONVERSATION": "Snooze Conversation", + "RESOLVE_CONVERSATION": "Resolve Conversation", + "SEND_ATTACHMENT": "Send Attachment", + "SEND_MESSAGE": "Send a Message", + "CHANGE_PRIORITY": "Change Priority", + "ADD_PRIVATE_NOTE": "Add a Private Note", + "SEND_WEBHOOK_EVENT": "Send Webhook Event" + }, + "PRIORITY_TYPES": { + "NONE": "None", + "LOW": "Low", + "MEDIUM": "Medium", + "HIGH": "High", + "URGENT": "Urgent" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/mfa.json b/app/javascript/dashboard/i18n/locale/et/mfa.json new file mode 100644 index 000000000..f7556fdcf --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/mfa.json @@ -0,0 +1,106 @@ +{ + "MFA_SETTINGS": { + "TITLE": "Two-Factor Authentication", + "SUBTITLE": "Secure your account with TOTP-based authentication", + "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)", + "STATUS_TITLE": "Authentication Status", + "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes", + "ENABLED": "Enabled", + "DISABLED": "Disabled", + "STATUS_ENABLED": "Two-factor authentication is active", + "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security", + "ENABLE_BUTTON": "Enable Two-Factor Authentication", + "ENHANCE_SECURITY": "Enhance Your Account Security", + "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.", + "SETUP": { + "STEP_NUMBER_1": "1", + "STEP_NUMBER_2": "2", + "STEP1_TITLE": "Scan QR Code with Your Authenticator App", + "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app", + "LOADING_QR": "Loading...", + "MANUAL_ENTRY": "Can't scan? Enter code manually", + "SECRET_KEY": "Secret Key", + "COPY": "Copy", + "ENTER_CODE": "Enter the 6-digit code from your authenticator app", + "ENTER_CODE_PLACEHOLDER": "000000", + "VERIFY_BUTTON": "Verify & Continue", + "CANCEL": "Cancel", + "ERROR_STARTING": "MFA not enabled. Please contact administrator.", + "INVALID_CODE": "Invalid verification code", + "SECRET_COPIED": "Secret key copied to clipboard", + "SUCCESS": "Two-factor authentication has been enabled successfully" + }, + "BACKUP": { + "TITLE": "Save Your Backup Codes", + "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator", + "IMPORTANT": "Important:", + "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.", + "DOWNLOAD": "Download", + "COPY_ALL": "Copy All", + "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again", + "COMPLETE_SETUP": "Complete Setup", + "CODES_COPIED": "Backup codes copied to clipboard" + }, + "MANAGEMENT": { + "BACKUP_CODES": "Backup Codes", + "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones", + "REGENERATE": "Regenerate Backup Codes", + "DISABLE_MFA": "Disable 2FA", + "DISABLE_MFA_DESC": "Remove two-factor authentication from your account", + "DISABLE_BUTTON": "Disable Two-Factor Authentication" + }, + "DISABLE": { + "TITLE": "Disable Two-Factor Authentication", + "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.", + "PASSWORD": "Password", + "OTP_CODE": "Verification Code", + "OTP_CODE_PLACEHOLDER": "000000", + "CONFIRM": "Disable 2FA", + "CANCEL": "Cancel", + "SUCCESS": "Two-factor authentication has been disabled", + "ERROR": "Failed to disable MFA. Please check your credentials." + }, + "REGENERATE": { + "TITLE": "Regenerate Backup Codes", + "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.", + "OTP_CODE": "Verification Code", + "OTP_CODE_PLACEHOLDER": "000000", + "CONFIRM": "Generate New Codes", + "CANCEL": "Cancel", + "NEW_CODES_TITLE": "New Backup Codes Generated", + "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.", + "CODES_IMPORTANT": "Important:", + "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.", + "DOWNLOAD_CODES": "Download Codes", + "COPY_ALL_CODES": "Copy All Codes", + "CODES_SAVED": "I've Saved My Codes", + "SUCCESS": "New backup codes have been generated", + "ERROR": "Failed to regenerate backup codes" + } + }, + "MFA_VERIFICATION": { + "TITLE": "Two-Factor Authentication", + "DESCRIPTION": "Enter your verification code to continue", + "AUTHENTICATOR_APP": "Authenticator App", + "BACKUP_CODE": "Backup Code", + "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app", + "ENTER_BACKUP_CODE": "Enter one of your backup codes", + "BACKUP_CODE_PLACEHOLDER": "000000", + "VERIFY_BUTTON": "Verify", + "TRY_ANOTHER_METHOD": "Try another verification method", + "CANCEL_LOGIN": "Cancel and return to login", + "HELP_TEXT": "Having trouble signing in?", + "LEARN_MORE": "Learn more about 2FA", + "HELP_MODAL": { + "TITLE": "Two-Factor Authentication Help", + "AUTHENTICATOR_TITLE": "Using an Authenticator App", + "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.", + "BACKUP_TITLE": "Using a Backup Code", + "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.", + "CONTACT_TITLE": "Need More Help?", + "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.", + "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance." + }, + "VERIFICATION_FAILED": "Verification failed. Please try again." + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/report.json b/app/javascript/dashboard/i18n/locale/et/report.json new file mode 100644 index 000000000..c622170b0 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/report.json @@ -0,0 +1,580 @@ +{ + "REPORT": { + "HEADER": "Conversations", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.", + "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Messages received", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Messages sent", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + }, + "BOT_RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + }, + "BOT_HANDOFF_COUNT": { + "NAME": "Handoff Count", + "DESC": "( Total )" + }, + "REPLY_TIME": { + "NAME": "Customer waiting time", + "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)", + "DESC": "" + } + }, + "DATE_RANGE_OPTIONS": { + "LAST_7_DAYS": "Last 7 days", + "LAST_14_DAYS": "Last 14 days", + "LAST_30_DAYS": "Last 30 days", + "LAST_3_MONTHS": "Last 3 months", + "LAST_6_MONTHS": "Last 6 months", + "LAST_YEAR": "Last year", + "CUSTOM_DATE_RANGE": "Custom date range" + }, + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + }, + "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By", + "DURATION_FILTER_LABEL": "Duration", + "GROUPING_OPTIONS": { + "DAY": "Day", + "WEEK": "Week", + "MONTH": "Month", + "YEAR": "Year" + }, + "GROUP_BY_DAY_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + } + ], + "GROUP_BY_WEEK_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + } + ], + "GROUP_BY_MONTH_OPTIONS": [ + { + "id": 1, + "groupBy": "Day" + }, + { + "id": 2, + "groupBy": "Week" + }, + { + "id": 3, + "groupBy": "Month" + } + ], + "GROUP_BY_YEAR_OPTIONS": [ + { + "id": 2, + "groupBy": "Week" + }, + { + "id": 3, + "groupBy": "Month" + }, + { + "id": 4, + "groupBy": "Year" + } + ], + "BUSINESS_HOURS": "Business Hours", + "FILTER_ACTIONS": { + "CLEAR_FILTER": "Clear filter", + "EMPTY_LIST": "No results found" + }, + "PAGINATION": { + "RESULTS": "Showing {start} to {end} of {total} results", + "PER_PAGE_TEMPLATE": "{size} / page" + } + }, + "AGENT_REPORTS": { + "HEADER": "Agents Overview", + "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent’s name to learn more.", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_AGENT_REPORTS": "Download agent reports", + "FILTER_DROPDOWN_LABEL": "Select Agent", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "LABEL_REPORTS": { + "HEADER": "Labels Overview", + "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_LABEL_REPORTS": "Download label reports", + "FILTER_DROPDOWN_LABEL": "Select Label", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "INBOX_REPORTS": { + "HEADER": "Inbox Overview", + "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_INBOX_REPORTS": "Download inbox reports", + "FILTER_DROPDOWN_LABEL": "Select Inbox", + "ALL_INBOXES": "All Inboxes", + "SEARCH_INBOX": "Search Inbox", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "TEAM_REPORTS": { + "HEADER": "Team Overview", + "DESCRIPTION": "Get a snapshot of your team’s performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.", + "LOADING_CHART": "Loading chart data...", + "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.", + "DOWNLOAD_TEAM_REPORTS": "Download team reports", + "FILTER_DROPDOWN_LABEL": "Select Team", + "METRICS": { + "CONVERSATIONS": { + "NAME": "Conversations", + "DESC": "( Total )" + }, + "INCOMING_MESSAGES": { + "NAME": "Incoming Messages", + "DESC": "( Total )" + }, + "OUTGOING_MESSAGES": { + "NAME": "Outgoing Messages", + "DESC": "( Total )" + }, + "FIRST_RESPONSE_TIME": { + "NAME": "First Response Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_TIME": { + "NAME": "Resolution Time", + "DESC": "( Avg )", + "INFO_TEXT": "Total number of conversations used for computation:", + "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)" + }, + "RESOLUTION_COUNT": { + "NAME": "Resolution Count", + "DESC": "( Total )" + } + }, + "DATE_RANGE": [ + { + "id": 0, + "name": "Last 7 days" + }, + { + "id": 1, + "name": "Last 30 days" + }, + { + "id": 2, + "name": "Last 3 months" + }, + { + "id": 3, + "name": "Last 6 months" + }, + { + "id": 4, + "name": "Last year" + }, + { + "id": 5, + "name": "Custom date range" + } + ], + "CUSTOM_DATE_RANGE": { + "CONFIRM": "Apply", + "PLACEHOLDER": "Select date range" + } + }, + "CSAT_REPORTS": { + "HEADER": "CSAT Reports", + "NO_RECORDS": "There are no CSAT survey responses available.", + "DOWNLOAD": "Download CSAT Reports", + "DOWNLOAD_FAILED": "Failed to download CSAT Reports", + "FILTERS": { + "AGENTS": { + "PLACEHOLDER": "Choose Agents" + } + }, + "TABLE": { + "HEADER": { + "CONTACT_NAME": "Contact", + "AGENT_NAME": "Assigned agent", + "RATING": "Rating", + "FEEDBACK_TEXT": "Feedback comment" + } + }, + "METRIC": { + "TOTAL_RESPONSES": { + "LABEL": "Total responses", + "TOOLTIP": "Total number of responses collected" + }, + "SATISFACTION_SCORE": { + "LABEL": "Satisfaction score", + "TOOLTIP": "Total number of positive responses / Total number of responses * 100" + }, + "RESPONSE_RATE": { + "LABEL": "Response rate", + "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100" + } + } + }, + "BOT_REPORTS": { + "HEADER": "Bot Reports", + "METRIC": { + "TOTAL_CONVERSATIONS": { + "LABEL": "No. of Conversations", + "TOOLTIP": "Total number of conversations handled by the bot" + }, + "TOTAL_RESPONSES": { + "LABEL": "Total Responses", + "TOOLTIP": "Total number of responses sent by the bot" + }, + "RESOLUTION_RATE": { + "LABEL": "Resolution Rate", + "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100" + }, + "HANDOFF_RATE": { + "LABEL": "Handoff Rate", + "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100" + } + } + }, + "OVERVIEW_REPORTS": { + "HEADER": "Overview", + "LIVE": "Live", + "ACCOUNT_CONVERSATIONS": { + "HEADER": "Open Conversations", + "LOADING_MESSAGE": "Loading conversation metrics...", + "OPEN": "Open", + "UNATTENDED": "Unattended", + "UNASSIGNED": "Unassigned", + "PENDING": "Pending" + }, + "CONVERSATION_HEATMAP": { + "HEADER": "Conversation Traffic", + "NO_CONVERSATIONS": "No conversations", + "CONVERSATION": "{count} conversation", + "CONVERSATIONS": "{count} conversations", + "DOWNLOAD_REPORT": "Download report" + }, + "RESOLUTION_HEATMAP": { + "HEADER": "Resolutions", + "NO_CONVERSATIONS": "No conversations", + "CONVERSATION": "{count} conversation", + "CONVERSATIONS": "{count} conversations", + "DOWNLOAD_REPORT": "Download report" + }, + "AGENT_CONVERSATIONS": { + "HEADER": "Conversations by agents", + "LOADING_MESSAGE": "Loading agent metrics...", + "NO_AGENTS": "There are no conversations by agents", + "TABLE_HEADER": { + "AGENT": "Agent", + "OPEN": "Open", + "UNATTENDED": "Unattended", + "STATUS": "Status" + } + }, + "TEAM_CONVERSATIONS": { + "ALL_TEAMS": "All Teams", + "HEADER": "Conversations by teams", + "LOADING_MESSAGE": "Loading team metrics...", + "NO_TEAMS": "There is no data available", + "TABLE_HEADER": { + "TEAM": "Team", + "OPEN": "Open", + "UNATTENDED": "Unattended", + "STATUS": "Status" + } + }, + "AGENT_STATUS": { + "HEADER": "Agent status", + "ONLINE": "Online", + "BUSY": "Busy", + "OFFLINE": "Offline" + } + }, + "DAYS_OF_WEEK": { + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday" + }, + "SLA_REPORTS": { + "HEADER": "SLA Reports", + "NO_RECORDS": "SLA applied conversations are not available.", + "LOADING": "Loading SLA data...", + "DOWNLOAD_SLA_REPORTS": "Download SLA reports", + "DOWNLOAD_FAILED": "Failed to download SLA Reports", + "DROPDOWN": { + "ADD_FIlTER": "Add filter", + "CLEAR_ALL": "Clear all", + "CLEAR_FILTER": "Clear filter", + "EMPTY_LIST": "No results found", + "NO_FILTER": "No filters available", + "SEARCH": "Search filter", + "INPUT_PLACEHOLDER": { + "SLA": "SLA name", + "AGENTS": "Agent name", + "INBOXES": "Inbox name", + "LABELS": "Label name", + "TEAMS": "Team name" + }, + "SLA": "SLA Policy", + "INBOXES": "Inbox", + "AGENTS": "Agent", + "LABELS": "Label", + "TEAMS": "Team" + }, + "WITH": "with", + "METRICS": { + "HIT_RATE": { + "LABEL": "Hit Rate", + "TOOLTIP": "Percentage of SLAs created were completed successfully" + }, + "NO_OF_MISSES": { + "LABEL": "Number of Misses", + "TOOLTIP": "Total SLA misses in a certain period" + }, + "NO_OF_CONVERSATIONS": { + "LABEL": "Number of Conversations", + "TOOLTIP": "Total number of conversations with SLA" + } + }, + "TABLE": { + "HEADER": { + "POLICY": "Policy", + "CONVERSATION": "Conversation", + "AGENT": "Agent" + }, + "VIEW_DETAILS": "View Details" + } + }, + "SUMMARY_REPORTS": { + "INBOX": "Inbox", + "AGENT": "Agent", + "TEAM": "Team", + "LABEL": "Label", + "AVG_RESOLUTION_TIME": "Avg. Resolution Time", + "AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time", + "AVG_REPLY_TIME": "Avg. Customer Waiting Time", + "RESOLUTION_COUNT": "Resolution Count", + "CONVERSATIONS": "No. of conversations" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/resetPassword.json b/app/javascript/dashboard/i18n/locale/et/resetPassword.json new file mode 100644 index 000000000..955696b0c --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/resetPassword.json @@ -0,0 +1,17 @@ +{ + "RESET_PASSWORD": { + "TITLE": "Reset password", + "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.", + "GO_BACK_TO_LOGIN": "If you want to go back to the login page,", + "EMAIL": { + "LABEL": "Email", + "PLACEHOLDER": "Please enter your email.", + "ERROR": "Please enter a valid email." + }, + "API": { + "SUCCESS_MESSAGE": "Password reset link has been sent to your email.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "SUBMIT": "Submit" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/search.json b/app/javascript/dashboard/i18n/locale/et/search.json new file mode 100644 index 000000000..e8510ab97 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/search.json @@ -0,0 +1,32 @@ +{ + "SEARCH": { + "TABS": { + "ALL": "All", + "CONTACTS": "Contacts", + "CONVERSATIONS": "Conversations", + "MESSAGES": "Messages", + "ARTICLES": "Articles" + }, + "SECTION": { + "CONTACTS": "Contacts", + "CONVERSATIONS": "Conversations", + "MESSAGES": "Messages", + "ARTICLES": "Articles" + }, + "VIEW_MORE": "View more", + "LOAD_MORE": "Load more", + "SEARCHING_DATA": "Searching", + "LOADING_DATA": "Loading", + "EMPTY_STATE": "No {item} found for query '{query}'", + "EMPTY_STATE_FULL": "No results found for query '{query}'", + "PLACEHOLDER_KEYBINDING": "/ to focus", + "INPUT_PLACEHOLDER": "Type 3 or more characters to search", + "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ", + "BOT_LABEL": "Bot", + "READ_MORE": "Read more", + "WROTE": "wrote:", + "FROM": "from", + "EMAIL": "email", + "EMAIL_SUBJECT": "subject" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/setNewPassword.json b/app/javascript/dashboard/i18n/locale/et/setNewPassword.json new file mode 100644 index 000000000..4908dad02 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/setNewPassword.json @@ -0,0 +1,23 @@ +{ + "SET_NEW_PASSWORD": { + "TITLE": "Set new password", + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password", + "ERROR": "Password is too short." + }, + "CONFIRM_PASSWORD": { + "LABEL": "Confirm password", + "PLACEHOLDER": "Confirm Password", + "ERROR": "Passwords do not match." + }, + "API": { + "SUCCESS_MESSAGE": "Successfully changed the password.", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "CAPTCHA": { + "ERROR": "Verification expired. Please solve captcha again." + }, + "SUBMIT": "Submit" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/settings.json b/app/javascript/dashboard/i18n/locale/et/settings.json new file mode 100644 index 000000000..812b0cd8b --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/settings.json @@ -0,0 +1,758 @@ +{ + "PROFILE_SETTINGS": { + "LINK": "Profile Settings", + "TITLE": "Profile Settings", + "BTN_TEXT": "Update Profile", + "DELETE_AVATAR": "Delete Avatar", + "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully", + "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again", + "UPDATE_SUCCESS": "Your profile has been updated successfully", + "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully", + "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed", + "FORM": { + "PICTURE": "Profile Picture", + "AVATAR": "Profile Image", + "ERROR": "Please fix form errors", + "REMOVE_IMAGE": "Remove", + "UPLOAD_IMAGE": "Upload image", + "UPDATE_IMAGE": "Update image", + "PROFILE_SECTION": { + "TITLE": "Profile", + "NOTE": "Your email address is your identity and is used to log in." + }, + "SEND_MESSAGE": { + "TITLE": "Hotkey to send messages", + "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.", + "UPDATE_SUCCESS": "Your settings have been updated successfully", + "CARD": { + "ENTER_KEY": { + "HEADING": "Enter (↵)", + "CONTENT": "Send messages by pressing Enter key instead of clicking the send button." + }, + "CMD_ENTER_KEY": { + "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)", + "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button." + } + } + }, + "INTERFACE_SECTION": { + "TITLE": "Interface", + "NOTE": "Customize the look and feel of your Chatwoot dashboard.", + "FONT_SIZE": { + "TITLE": "Font size", + "NOTE": "Adjust the text size across the dashboard based on your preference.", + "UPDATE_SUCCESS": "Your font settings have been updated successfully", + "UPDATE_ERROR": "There is an error while updating the font settings, please try again", + "OPTIONS": { + "SMALLER": "Smaller", + "SMALL": "Small", + "DEFAULT": "Default", + "LARGE": "Large", + "LARGER": "Larger", + "EXTRA_LARGE": "Extra Large" + } + }, + "LANGUAGE": { + "TITLE": "Preferred Language", + "NOTE": "Choose the language you want to use.", + "UPDATE_SUCCESS": "Your Language settings have been updated successfully", + "UPDATE_ERROR": "There is an error while updating the language settings, please try again", + "USE_ACCOUNT_DEFAULT": "Use account default" + } + }, + "MESSAGE_SIGNATURE_SECTION": { + "TITLE": "Personal message signature", + "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.", + "BTN_TEXT": "Save message signature", + "API_ERROR": "Couldn't save signature! Try again", + "API_SUCCESS": "Signature saved successfully", + "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again", + "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature", + "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB" + }, + "MESSAGE_SIGNATURE": { + "LABEL": "Message Signature", + "ERROR": "Message Signature cannot be empty", + "PLACEHOLDER": "Insert your personal message signature here." + }, + "PASSWORD_SECTION": { + "TITLE": "Password", + "NOTE": "Updating your password would reset your logins in multiple devices.", + "BTN_TEXT": "Change password" + }, + "SECURITY_SECTION": { + "TITLE": "Security", + "NOTE": "Manage additional security features for your account.", + "MFA_BUTTON": "Manage Two-Factor Authentication" + }, + "ACCESS_TOKEN": { + "TITLE": "Access Token", + "NOTE": "This token can be used if you are building an API based integration", + "COPY": "Copy", + "RESET": "Reset", + "CONFIRM_RESET": "Are you sure?", + "CONFIRM_HINT": "Click again to confirm", + "RESET_SUCCESS": "Access token regenerated successfully", + "RESET_ERROR": "Unable to regenerate access token. Please try again" + }, + "AUDIO_NOTIFICATIONS_SECTION": { + "TITLE": "Audio Alerts", + "NOTE": "Enable audio alerts in dashboard for new messages and conversations.", + "PLAY": "Play sound", + "ALERT_TYPES": { + "NONE": "None", + "MINE": "Assigned", + "ALL": "All", + "ASSIGNED": "My assigned conversations", + "UNASSIGNED": "Unassigned conversations", + "NOTME": "Open conversations assigned to others" + }, + "ALERT_COMBINATIONS": { + "NONE": "You haven't selected any options, you won't receive any audio alerts.", + "ASSIGNED": "You'll receive alerts for conversations assigned to you.", + "UNASSIGNED": "You'll receive alerts for any unassigned conversations.", + "NOTME": "You'll receive alerts for conversations assigned to others.", + "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.", + "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.", + "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.", + "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations." + }, + "ALERT_TYPE": { + "TITLE": "Alert events for conversations", + "NONE": "None", + "ASSIGNED": "Assigned Conversations", + "ALL_CONVERSATIONS": "All Conversations" + }, + "DEFAULT_TONE": { + "TITLE": "Alert tone:" + }, + "CONDITIONS": { + "TITLE": "Alert conditions:", + "CONDITION_ONE": "Send audio alerts only if the browser window is not active", + "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read" + }, + "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.", + "READ_MORE": "Read more" + }, + "EMAIL_NOTIFICATIONS_SECTION": { + "TITLE": "Email Notifications", + "NOTE": "Update your email notification preferences here", + "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me", + "CONVERSATION_CREATION": "Send email notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation", + "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA", + "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA", + "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA" + }, + "NOTIFICATIONS": { + "TITLE": "Notification preferences", + "TYPE_TITLE": "Notification type", + "EMAIL": "Email", + "PUSH": "Push notification", + "TYPES": { + "CONVERSATION_CREATED": "A new conversation is created", + "CONVERSATION_ASSIGNED": "A conversation is assigned to you", + "CONVERSATION_MENTION": "You are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation", + "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA", + "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA", + "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA" + }, + "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them" + }, + "API": { + "UPDATE_SUCCESS": "Your notification preferences are updated successfully", + "UPDATE_ERROR": "There is an error while updating the preferences, please try again" + }, + "PUSH_NOTIFICATIONS_SECTION": { + "TITLE": "Push Notifications", + "NOTE": "Update your push notification preferences here", + "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me", + "CONVERSATION_CREATION": "Send push notifications when a new conversation is created", + "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation", + "HAS_ENABLED_PUSH": "You have enabled push for this browser.", + "REQUEST_PUSH": "Enable push notifications", + "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA", + "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA", + "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA" + }, + "PROFILE_IMAGE": { + "LABEL": "Profile Image" + }, + "NAME": { + "LABEL": "Your full name", + "ERROR": "Please enter a valid full name", + "PLACEHOLDER": "Please enter your full name" + }, + "DISPLAY_NAME": { + "LABEL": "Display name", + "ERROR": "Please enter a valid display name", + "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations" + }, + "AVAILABILITY": { + "LABEL": "Availability", + "STATUS": { + "ONLINE": "Online", + "BUSY": "Busy", + "OFFLINE": "Offline" + }, + "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully", + "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again", + "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user" + }, + "EMAIL": { + "LABEL": "Your email address", + "ERROR": "Please enter a valid email address", + "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations" + }, + "CURRENT_PASSWORD": { + "LABEL": "Current password", + "ERROR": "Please enter the current password", + "PLACEHOLDER": "Please enter the current password" + }, + "PASSWORD": { + "LABEL": "New password", + "ERROR": "Please enter a password of length 6 or more", + "PLACEHOLDER": "Please enter a new password" + }, + "PASSWORD_CONFIRMATION": { + "LABEL": "Confirm new password", + "ERROR": "Confirm password should match the password", + "PLACEHOLDER": "Please re-enter your new password" + } + } + }, + "SIDEBAR_ITEMS": { + "CHANGE_AVAILABILITY_STATUS": "Change", + "CHANGE_ACCOUNTS": "Switch account", + "SWITCH_ACCOUNT": "Switch account", + "CONTACT_SUPPORT": "Contact support", + "SELECTOR_SUBTITLE": "Select an account from the following list", + "PROFILE_SETTINGS": "Profile settings", + "KEYBOARD_SHORTCUTS": "Keyboard shortcuts", + "APPEARANCE": "Change appearance", + "SUPER_ADMIN_CONSOLE": "SuperAdmin console", + "DOCS": "Read documentation", + "CHANGELOG": "Changelog", + "LOGOUT": "Log out" + }, + "APP_GLOBAL": { + "TRIAL_MESSAGE": "days trial remaining.", + "TRAIL_BUTTON": "Buy Now", + "DELETED_USER": "Deleted User", + "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.", + "RESEND_VERIFICATION_MAIL": "Resend verification email", + "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.", + "ACCOUNT_SUSPENDED": { + "TITLE": "Account Suspended", + "MESSAGE": "Your account is suspended. Please reach out to the support team for more information." + } + }, + "COMPONENTS": { + "CODE": { + "BUTTON_TEXT": "Copy", + "CODEPEN": "Open in CodePen", + "COPY_SUCCESSFUL": "Copied to clipboard" + }, + "SHOW_MORE_BLOCK": { + "SHOW_MORE": "Show More", + "SHOW_LESS": "Show Less" + }, + "FILE_BUBBLE": { + "DOWNLOAD": "Download", + "UPLOADING": "Uploading...", + "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available." + }, + "LOCATION_BUBBLE": { + "SEE_ON_MAP": "See on map" + }, + "FORM_BUBBLE": { + "SUBMIT": "Submit" + }, + "MEDIA": { + "IMAGE_UNAVAILABLE": "This image is no longer available.", + "LOADING_FAILED": "Loading failed" + } + }, + "CONFIRM_EMAIL": "Verifying...", + "SETTINGS": { + "INBOXES": { + "NEW_INBOX": "Add Inbox" + } + }, + "SIDEBAR": { + "NO_ITEMS": "No items", + "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:", + "SWITCH": "Switch", + "INBOX_VIEW": "Inbox View", + "CONVERSATIONS": "Conversations", + "INBOX": "My Inbox", + "ALL_CONVERSATIONS": "All Conversations", + "MENTIONED_CONVERSATIONS": "Mentions", + "PARTICIPATING_CONVERSATIONS": "Participating", + "UNATTENDED_CONVERSATIONS": "Unattended", + "REPORTS": "Reports", + "SETTINGS": "Settings", + "CONTACTS": "Contacts", + "ACTIVE": "Active", + "CAPTAIN": "Captain", + "CAPTAIN_ASSISTANTS": "Assistants", + "CAPTAIN_DOCUMENTS": "Documents", + "CAPTAIN_RESPONSES": "FAQs", + "CAPTAIN_TOOLS": "Tools", + "HOME": "Home", + "AGENTS": "Agents", + "AGENT_BOTS": "Bots", + "AUDIT_LOGS": "Audit Logs", + "INBOXES": "Inboxes", + "NOTIFICATIONS": "Notifications", + "CANNED_RESPONSES": "Canned Responses", + "INTEGRATIONS": "Integrations", + "PROFILE_SETTINGS": "Profile Settings", + "ACCOUNT_SETTINGS": "Account Settings", + "APPLICATIONS": "Applications", + "LABELS": "Labels", + "CUSTOM_ATTRIBUTES": "Custom Attributes", + "AUTOMATION": "Automation", + "MACROS": "Macros", + "TEAMS": "Teams", + "BILLING": "Billing", + "CUSTOM_VIEWS_FOLDER": "Folders", + "CUSTOM_VIEWS_SEGMENTS": "Segments", + "ALL_CONTACTS": "All Contacts", + "TAGGED_WITH": "Tagged with", + "NEW_LABEL": "New label", + "NEW_TEAM": "New team", + "NEW_INBOX": "New inbox", + "REPORTS_CONVERSATION": "Conversations", + "CSAT": "CSAT", + "LIVE_CHAT": "Live Chat", + "SMS": "SMS", + "WHATSAPP": "WhatsApp", + "CAMPAIGNS": "Campaigns", + "ONGOING": "Ongoing", + "ONE_OFF": "One off", + "REPORTS_SLA": "SLA", + "REPORTS_BOT": "Bot", + "REPORTS_AGENT": "Agents", + "REPORTS_LABEL": "Labels", + "REPORTS_INBOX": "Inbox", + "REPORTS_TEAM": "Team", + "AGENT_ASSIGNMENT": "Agent Assignment", + "SET_AVAILABILITY_TITLE": "Set yourself as", + "SET_YOUR_AVAILABILITY": "Set your availability", + "SLA": "SLA", + "CUSTOM_ROLES": "Custom Roles", + "BETA": "Beta", + "REPORTS_OVERVIEW": "Overview", + "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages", + "HELP_CENTER": { + "TITLE": "Help Center", + "ARTICLES": "Articles", + "CATEGORIES": "Categories", + "LOCALES": "Locales", + "SETTINGS": "Settings" + }, + "CHANNELS": "Channels", + "SET_AUTO_OFFLINE": { + "TEXT": "Mark offline automatically", + "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.", + "INFO_SHORT": "Automatically mark offline when you aren't using the app." + }, + "DOCS": "Read docs", + "SECURITY": "Security" + }, + "BILLING_SETTINGS": { + "TITLE": "Billing", + "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.", + "CURRENT_PLAN": { + "TITLE": "Current Plan", + "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses", + "SEAT_COUNT": "Number of seats", + "RENEWS_ON": "Renews on" + }, + "VIEW_PRICING": "View Pricing", + "MANAGE_SUBSCRIPTION": { + "TITLE": "Manage your subscription", + "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.", + "BUTTON_TXT": "Go to the billing portal" + }, + "CAPTAIN": { + "TITLE": "Captain", + "DESCRIPTION": "Manage usage and credits for Captain AI.", + "BUTTON_TXT": "Buy more credits", + "DOCUMENTS": "Documents", + "RESPONSES": "Responses", + "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more." + }, + "CHAT_WITH_US": { + "TITLE": "Need help?", + "DESCRIPTION": "Do you face any issues in billing? We are here to help.", + "BUTTON_TXT": "Chat with us" + }, + "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again." + }, + "SECURITY_SETTINGS": { + "TITLE": "Security", + "DESCRIPTION": "Manage your account security settings.", + "LINK_TEXT": "Learn more about SAML SSO", + "SAML": { + "TITLE": "SAML SSO", + "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.", + "ACS_URL": { + "LABEL": "ACS URL", + "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses" + }, + "SSO_URL": { + "LABEL": "SSO URL", + "HELP": "The URL where SAML authentication requests will be sent", + "PLACEHOLDER": "https://your-idp.com/saml/sso" + }, + "CERTIFICATE": { + "LABEL": "Signing certificate in PEM format", + "HELP": "The public certificate from your identity provider used to verify SAML responses", + "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..." + }, + "FINGERPRINT": { + "LABEL": "Fingerprint", + "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration" + }, + "COPY_SUCCESS": "Copied to clipboard", + "SP_ENTITY_ID": { + "LABEL": "SP Entity ID", + "HELP": "Unique identifier for this application as a service provider (auto-generated).", + "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings" + }, + "IDP_ENTITY_ID": { + "LABEL": "Identity Provider Entity ID", + "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)", + "PLACEHOLDER": "https://your-idp.com/saml" + }, + "UPDATE_BUTTON": "Update SAML Settings", + "API": { + "SUCCESS": "SAML settings updated successfully", + "ERROR": "Failed to update SAML settings", + "ERROR_LOADING": "Failed to load SAML settings", + "DISABLED": "SAML settings disabled successfully" + }, + "VALIDATION": { + "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields", + "SSO_URL_ERROR": "Please enter a valid SSO URL", + "CERTIFICATE_ERROR": "Certificate is required", + "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required" + }, + "ENTERPRISE_PAYWALL": { + "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.", + "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.", + "ASK_ADMIN": "Please reach out to your administrator for the upgrade." + }, + "PAYWALL": { + "TITLE": "Upgrade to enable SAML SSO", + "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.", + "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.", + "UPGRADE_NOW": "Upgrade now", + "CANCEL_ANYTIME": "You can change or cancel your plan anytime" + }, + "ATTRIBUTE_MAPPING": { + "TITLE": "SAML Attribute Setup", + "DESCRIPTION": "The following attribute mappings must be configured in your identity provider" + }, + "INFO_SECTION": { + "TITLE": "Service Provider Information", + "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection" + } + } + }, + "CREATE_ACCOUNT": { + "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.", + "NEW_ACCOUNT": "New Account", + "SELECTOR_SUBTITLE": "Create a new account", + "API": { + "SUCCESS_MESSAGE": "Account created successfully", + "EXIST_MESSAGE": "Account already exists", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + }, + "FORM": { + "NAME": { + "LABEL": "Company Name", + "PLACEHOLDER": "Wayne Enterprises" + }, + "SUBMIT": "Submit", + "CANCEL": "Cancel" + } + }, + "KEYBOARD_SHORTCUTS": { + "TOGGLE_MODAL": "View all shortcuts", + "TITLE": { + "OPEN_CONVERSATION": "Open conversation", + "RESOLVE_AND_NEXT": "Resolve and move to next", + "NAVIGATE_DROPDOWN": "Navigate dropdown items", + "RESOLVE_CONVERSATION": "Resolve Conversation", + "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard", + "ADD_ATTACHMENT": "Add Attachment", + "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard", + "TOGGLE_SIDEBAR": "Toggle Sidebar", + "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar", + "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list", + "GO_TO_SETTINGS": "Go to Settings", + "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note", + "SWITCH_TO_REPLY": "Switch to Reply", + "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown" + } + }, + "ASSIGNMENT_POLICY": { + "INDEX": { + "HEADER": { + "TITLE": "Agent assignment", + "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here" + }, + "ASSIGNMENT_POLICY": { + "TITLE": "Assignment policy", + "DESCRIPTION": "Manage how conversations get assigned in inboxes.", + "FEATURES": [ + "Assign by conversations evenly or by available capacity", + "Add fair distribution rules to avoid overloading any agent", + "Add inboxes to a policy - one policy per inbox" + ] + }, + "AGENT_CAPACITY_POLICY": { + "TITLE": "Agent capacity policy", + "DESCRIPTION": "Manage workload for agents.", + "FEATURES": [ + "Define maximum conversations per inbox", + "Create exceptions based on labels and time", + "Add agents to a policy - one policy per agent" + ] + } + }, + "AGENT_ASSIGNMENT_POLICY": { + "INDEX": { + "HEADER": { + "TITLE": "Assignment policy", + "CREATE_POLICY": "New policy" + }, + "CARD": { + "ORDER": "Order", + "PRIORITY": "Priority", + "ACTIVE": "Active", + "INACTIVE": "Inactive", + "POPOVER": "Added inboxes", + "EDIT": "Edit" + }, + "NO_RECORDS_FOUND": "No assignment policies found" + }, + "CREATE": { + "HEADER": { + "TITLE": "Create assignment policy" + }, + "CREATE_BUTTON": "Create policy", + "API": { + "SUCCESS_MESSAGE": "Assignment policy created successfully", + "ERROR_MESSAGE": "Failed to create assignment policy" + } + }, + "EDIT": { + "HEADER": { + "TITLE": "Edit assignment policy" + }, + "EDIT_BUTTON": "Update policy", + "CONFIRM_ADD_INBOX_DIALOG": { + "TITLE": "Add inbox", + "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.", + "CONFIRM_BUTTON_LABEL": "Continue", + "CANCEL_BUTTON_LABEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Assignment policy updated successfully", + "ERROR_MESSAGE": "Failed to update assignment policy" + }, + "INBOX_API": { + "ADD": { + "SUCCESS_MESSAGE": "Inbox added to policy successfully", + "ERROR_MESSAGE": "Failed to add inbox to policy" + }, + "REMOVE": { + "SUCCESS_MESSAGE": "Inbox removed from policy successfully", + "ERROR_MESSAGE": "Failed to remove inbox from policy" + } + } + }, + "FORM": { + "NAME": { + "LABEL": "Policy name:", + "PLACEHOLDER": "Enter policy name" + }, + "DESCRIPTION": { + "LABEL": "Description:", + "PLACEHOLDER": "Enter description" + }, + "STATUS": { + "LABEL": "Status:", + "PLACEHOLDER": "Select status", + "ACTIVE": "Policy is active", + "INACTIVE": "Policy is inactive" + }, + "ASSIGNMENT_ORDER": { + "LABEL": "Assignment order", + "ROUND_ROBIN": { + "LABEL": "Round robin", + "DESCRIPTION": "Assign conversations evenly among agents." + }, + "BALANCED": { + "LABEL": "Balanced", + "DESCRIPTION": "Assign conversations based on available capacity." + } + }, + "ASSIGNMENT_PRIORITY": { + "LABEL": "Assignment priority", + "EARLIEST_CREATED": { + "LABEL": "Earliest created", + "DESCRIPTION": "The conversation that was created first gets assigned first." + }, + "LONGEST_WAITING": { + "LABEL": "Longest waiting", + "DESCRIPTION": "The conversation waiting the longest gets assigned first." + } + }, + "FAIR_DISTRIBUTION": { + "LABEL": "Fair distribution policy", + "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.", + "INPUT_MAX": "Assign max", + "DURATION": "Conversations per agent in every" + }, + "INBOXES": { + "LABEL": "Added inboxes", + "DESCRIPTION": "Add inboxes for which this policy will be applicable.", + "ADD_BUTTON": "Add inbox", + "DROPDOWN": { + "SEARCH_PLACEHOLDER": "Search and select inboxes to add", + "ADD_BUTTON": "Add" + }, + "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started", + "API": { + "SUCCESS_MESSAGE": "Inbox successfully added to policy", + "ERROR_MESSAGE": "Failed to add inbox to policy" + } + } + }, + "DELETE_POLICY": { + "SUCCESS_MESSAGE": "Assignment policy deleted successfully", + "ERROR_MESSAGE": "Failed to delete assignment policy" + } + }, + "AGENT_CAPACITY_POLICY": { + "INDEX": { + "HEADER": { + "TITLE": "Agent capacity", + "CREATE_POLICY": "New policy" + }, + "CARD": { + "POPOVER": "Added agents", + "EDIT": "Edit" + }, + "NO_RECORDS_FOUND": "No agent capacity policies found" + }, + "CREATE": { + "HEADER": { + "TITLE": "Create agent capacity policy" + }, + "CREATE_BUTTON": "Create policy", + "API": { + "SUCCESS_MESSAGE": "Agent capacity policy created successfully", + "ERROR_MESSAGE": "Failed to create agent capacity policy" + } + }, + "EDIT": { + "HEADER": { + "TITLE": "Edit agent capacity policy" + }, + "EDIT_BUTTON": "Update policy", + "CONFIRM_ADD_AGENT_DIALOG": { + "TITLE": "Add agent", + "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.", + "CONFIRM_BUTTON_LABEL": "Continue", + "CANCEL_BUTTON_LABEL": "Cancel" + }, + "API": { + "SUCCESS_MESSAGE": "Agent capacity policy updated successfully", + "ERROR_MESSAGE": "Failed to update agent capacity policy" + }, + "AGENT_API": { + "ADD": { + "SUCCESS_MESSAGE": "Agent added to policy successfully", + "ERROR_MESSAGE": "Failed to add agent to policy" + }, + "REMOVE": { + "SUCCESS_MESSAGE": "Agent removed from policy successfully", + "ERROR_MESSAGE": "Failed to remove agent from policy" + } + } + }, + "FORM": { + "NAME": { + "LABEL": "Policy name:", + "PLACEHOLDER": "Enter policy name" + }, + "DESCRIPTION": { + "LABEL": "Description:", + "PLACEHOLDER": "Enter description" + }, + "INBOX_CAPACITY_LIMIT": { + "LABEL": "Inbox capacity limits", + "ADD_BUTTON": "Add inbox", + "FIELD": { + "SELECT_INBOX": "Select inbox", + "MAX_CONVERSATIONS": "Max conversations", + "SET_LIMIT": "Set limit" + }, + "EMPTY_STATE": "No inbox limit set" + }, + "EXCLUSION_RULES": { + "LABEL": "Exclusion rules", + "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity", + "TAGS": { + "LABEL": "Exclude conversations tagged with specific labels", + "ADD_TAG": "add tag", + "DROPDOWN": { + "SEARCH_PLACEHOLDER": "Search and select tags to add" + }, + "EMPTY_STATE": "No tags added to this policy." + }, + "DURATION": { + "LABEL": "Exclude conversations older than a specified duration", + "PLACEHOLDER": "Set time" + } + }, + "USERS": { + "LABEL": "Assigned agents", + "DESCRIPTION": "Add agents for which this policy will be applicable.", + "ADD_BUTTON": "Add agent", + "DROPDOWN": { + "SEARCH_PLACEHOLDER": "Search and select agents to add", + "ADD_BUTTON": "Add" + }, + "EMPTY_STATE": "No agents added", + "API": { + "SUCCESS_MESSAGE": "Agent successfully added to policy", + "ERROR_MESSAGE": "Failed to add agent to policy" + } + } + }, + "DELETE_POLICY": { + "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully", + "ERROR_MESSAGE": "Failed to delete agent capacity policy" + } + }, + "DELETE_POLICY": { + "TITLE": "Delete policy", + "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.", + "CONFIRM_BUTTON_LABEL": "Delete", + "CANCEL_BUTTON_LABEL": "Cancel" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/signup.json b/app/javascript/dashboard/i18n/locale/et/signup.json new file mode 100644 index 000000000..b0e5f5d27 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/signup.json @@ -0,0 +1,49 @@ +{ + "REGISTER": { + "TRY_WOOT": "Create an account", + "TITLE": "Register", + "TESTIMONIAL_HEADER": "All it takes is one step to move forward", + "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.", + "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy", + "OAUTH": { + "GOOGLE_SIGNUP": "Sign up with Google" + }, + "COMPANY_NAME": { + "LABEL": "Company name", + "PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises", + "ERROR": "Company name is too short." + }, + "FULL_NAME": { + "LABEL": "Full name", + "PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne", + "ERROR": "Full name is too short." + }, + "EMAIL": { + "LABEL": "Work email", + "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises", + "ERROR": "Please enter a valid work email address." + }, + "PASSWORD": { + "LABEL": "Password", + "PLACEHOLDER": "Password", + "ERROR": "Password is too short.", + "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character.", + "REQUIREMENTS_LENGTH": "At least 6 characters long", + "REQUIREMENTS_UPPERCASE": "At least one uppercase letter", + "REQUIREMENTS_LOWERCASE": "At least one lowercase letter", + "REQUIREMENTS_NUMBER": "At least one number", + "REQUIREMENTS_SPECIAL": "At least one special character" + }, + "CONFIRM_PASSWORD": { + "LABEL": "Confirm password", + "PLACEHOLDER": "Confirm password", + "ERROR": "Passwords do not match." + }, + "API": { + "SUCCESS_MESSAGE": "Registration Successful", + "ERROR_MESSAGE": "Could not connect to Woot server. Please try again." + }, + "SUBMIT": "Create account", + "HAVE_AN_ACCOUNT": "Already have an account?" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/sla.json b/app/javascript/dashboard/i18n/locale/et/sla.json new file mode 100644 index 000000000..0da7873be --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/sla.json @@ -0,0 +1,108 @@ +{ + "SLA": { + "HEADER": "Service Level Agreements", + "ADD_ACTION": "Add SLA", + "ADD_ACTION_LONG": "Create a new SLA Policy", + "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.", + "LEARN_MORE": "Learn more about SLA", + "LOADING": "Fetching SLAs", + "PAYWALL": { + "TITLE": "Upgrade to create SLAs", + "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.", + "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.", + "UPGRADE_NOW": "Upgrade now", + "CANCEL_ANYTIME": "You can change or cancel your plan anytime" + }, + "ENTERPRISE_PAYWALL": { + "AVAILABLE_ON": "The SLA feature is only available in the paid plans.", + "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.", + "ASK_ADMIN": "Please reach out to your administrator for the upgrade." + }, + "LIST": { + "404": "There are no SLAs available in this account.", + "EMPTY": { + "TITLE_1": "Enterprise P0", + "DESC_1": "Issues raised by enterprise customers, that require immediate attention.", + "TITLE_2": "Enterprise P1", + "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly." + }, + "BUSINESS_HOURS_ON": "Business hours on", + "BUSINESS_HOURS_OFF": "Business hours off", + "RESPONSE_TYPES": { + "FRT": "First response time threshold", + "NRT": "Next response time threshold", + "RT": "Resolution time threshold", + "SHORT_HAND": { + "FRT": "FRT", + "NRT": "NRT", + "RT": "RT" + } + } + }, + "FORM": { + "NAME": { + "LABEL": "SLA Name", + "PLACEHOLDER": "SLA Name", + "REQUIRED_ERROR": "SLA name is required", + "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required", + "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "SLA for premium customers" + }, + "FIRST_RESPONSE_TIME": { + "LABEL": "First Response Time", + "PLACEHOLDER": "5" + }, + "NEXT_RESPONSE_TIME": { + "LABEL": "Next Response Time", + "PLACEHOLDER": "5" + }, + "RESOLUTION_TIME": { + "LABEL": "Resolution Time", + "PLACEHOLDER": "60" + }, + "BUSINESS_HOURS": { + "LABEL": "Business Hours", + "PLACEHOLDER": "Only during business hours" + }, + "THRESHOLD_TIME": { + "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero" + }, + "EDIT": "Edit", + "CREATE": "Create", + "DELETE": "Delete", + "CANCEL": "Cancel" + }, + "ADD": { + "TITLE": "Add SLA", + "DESC": "Friendly promises for great service!", + "API": { + "SUCCESS_MESSAGE": "SLA added successfully", + "ERROR_MESSAGE": "There was an error, please try again" + } + }, + "DELETE": { + "TITLE": "Delete SLA", + "API": { + "SUCCESS_MESSAGE": "SLA deleted successfully", + "ERROR_MESSAGE": "There was an error, please try again" + }, + "CONFIRM": { + "TITLE": "Confirm Deletion", + "MESSAGE": "Are you sure you want to delete ", + "YES": "Yes, Delete ", + "NO": "No, Keep " + } + }, + "EVENTS": { + "TITLE": "SLA Misses", + "FRT": "First response time", + "NRT": "Next response time", + "RT": "Resolution time", + "SHOW_MORE": "{count} more", + "HIDE": "Hide {count} rows" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/teamsSettings.json b/app/javascript/dashboard/i18n/locale/et/teamsSettings.json new file mode 100644 index 000000000..f0a950fd1 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/teamsSettings.json @@ -0,0 +1,121 @@ +{ + "TEAMS_SETTINGS": { + "NEW_TEAM": "Create new team", + "HEADER": "Teams", + "LOADING": "Fetching teams", + "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.", + "LEARN_MORE": "Learn more about teams", + "LIST": { + "404": "There are no teams created on this account.", + "EDIT_TEAM": "Edit team", + "NONE": "None" + }, + "CREATE_FLOW": { + "CREATE": { + "TITLE": "Create a new team", + "DESC": "Add a title and description to your new team." + }, + "AGENTS": { + "BUTTON_TEXT": "Add agents to team", + "TITLE": "Add agents to team - {teamName}", + "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation." + }, + "WIZARD_CREATE": { + "TITLE": "Create", + "BODY": "Create a new team of agents." + }, + "WIZARD_ADD_AGENTS": { + "TITLE": "Add Agents", + "BODY": "Add agents to the team." + }, + "WIZARD_FINISH": { + "TITLE": "Finish", + "BODY": "You are all set to go!" + } + }, + "EDIT_FLOW": { + "CREATE": { + "TITLE": "Edit your team details", + "DESC": "Edit title and description to your team.", + "BUTTON_TEXT": "Update team" + }, + "AGENTS": { + "BUTTON_TEXT": "Update agents in team", + "TITLE": "Add agents to team - {teamName}", + "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team." + }, + "EDIT_WIZARD_DETAILS": { + "TITLE": "Team details", + "ROUTE": "settings_teams_edit", + "BODY": "Change name, description and other details." + }, + "EDIT_WIZARD_AGENTS": { + "TITLE": "Edit Agents", + "ROUTE": "settings_teams_edit_members", + "BODY": "Edit agents in your team." + }, + "EDIT_WIZARD_FINISH": { + "TITLE": "Finish", + "ROUTE": "settings_teams_edit_finish", + "BODY": "You are all set to go!" + } + }, + "TEAM_FORM": { + "ERROR_MESSAGE": "Couldn't save the team details. Try again." + }, + "AGENTS": { + "AGENT": "AGENT", + "EMAIL": "EMAIL", + "BUTTON_TEXT": "Add agents", + "ADD_AGENTS": "Adding Agents to your Team...", + "SELECT": "select", + "SELECT_ALL": "select all agents", + "SELECTED_COUNT": "{selected} out of {total} agents selected." + }, + "ADD": { + "TITLE": "Add agents to team - {teamName}", + "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.", + "SELECT": "select", + "SELECT_ALL": "select all agents", + "SELECTED_COUNT": "{selected} out of {total} agents selected.", + "BUTTON_TEXT": "Add agents", + "AGENT_VALIDATION_ERROR": "Select at least one agent." + }, + "FINISH": { + "TITLE": "Your team is ready!", + "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ", + "BUTTON_TEXT": "Finish" + }, + "DELETE": { + "BUTTON_TEXT": "Delete", + "API": { + "SUCCESS_MESSAGE": "Team deleted successfully.", + "ERROR_MESSAGE": "Couldn't delete the team. Try again." + }, + "CONFIRM": { + "TITLE": "Are you sure you want to delete the team?", + "PLACE_HOLDER": "Please type {teamName} to confirm", + "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.", + "YES": "Delete ", + "NO": "Cancel" + } + }, + "SETTINGS": "Settings", + "FORM": { + "UPDATE": "Update team", + "CREATE": "Create team", + "NAME": { + "LABEL": "Team name", + "PLACEHOLDER": "Example: Sales, Customer Support" + }, + "DESCRIPTION": { + "LABEL": "Team Description", + "PLACEHOLDER": "Short description about this team." + }, + "AUTO_ASSIGN": { + "LABEL": "Allow auto assign for this team." + }, + "SUBMIT_CREATE": "Create team" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/webhooks.json b/app/javascript/dashboard/i18n/locale/et/webhooks.json new file mode 100644 index 000000000..347c96893 --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/webhooks.json @@ -0,0 +1,5 @@ +{ + "WEBHOOKS_SETTINGS": { + "HEADER": "Webhook Settings" + } +} diff --git a/app/javascript/dashboard/i18n/locale/et/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/et/whatsappTemplates.json new file mode 100644 index 000000000..cf28312dc --- /dev/null +++ b/app/javascript/dashboard/i18n/locale/et/whatsappTemplates.json @@ -0,0 +1,47 @@ +{ + "WHATSAPP_TEMPLATES": { + "MODAL": { + "TITLE": "Whatsapp Templates", + "SUBTITLE": "Select the whatsapp template you want to send", + "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}" + }, + "PICKER": { + "SEARCH_PLACEHOLDER": "Search Templates", + "NO_TEMPLATES_FOUND": "No templates found for", + "HEADER": "Header", + "BODY": "Body", + "FOOTER": "Footer", + "BUTTONS": "Buttons", + "CATEGORY": "Category", + "MEDIA_CONTENT": "Media Content", + "MEDIA_CONTENT_FALLBACK": "media content", + "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.", + "REFRESH_BUTTON": "Refresh templates", + "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.", + "REFRESH_ERROR": "Failed to refresh templates. Please try again.", + "LABELS": { + "LANGUAGE": "Language", + "TEMPLATE_BODY": "Template Body", + "CATEGORY": "Category" + } + }, + "PARSER": { + "VARIABLES_LABEL": "Variables", + "LANGUAGE": "Language", + "CATEGORY": "Category", + "VARIABLE_PLACEHOLDER": "Enter {variable} value", + "GO_BACK_LABEL": "Go Back", + "SEND_MESSAGE_LABEL": "Send Message", + "FORM_ERROR_MESSAGE": "Please fill all variables before sending", + "MEDIA_HEADER_LABEL": "{type} Header", + "OTP_CODE": "Enter 4-8 digit OTP", + "EXPIRY_MINUTES": "Enter expiry minutes", + "BUTTON_PARAMETERS": "Button Parameters", + "BUTTON_LABEL": "Button {index}", + "COUPON_CODE": "Enter coupon code (max 15 chars)", + "MEDIA_URL_LABEL": "Enter {type} URL", + "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)", + "BUTTON_PARAMETER": "Enter button parameter" + } + } +} diff --git a/app/javascript/dashboard/i18n/locale/it/advancedFilters.json b/app/javascript/dashboard/i18n/locale/it/advancedFilters.json index 10122cb4e..fe968cf1e 100644 --- a/app/javascript/dashboard/i18n/locale/it/advancedFilters.json +++ b/app/javascript/dashboard/i18n/locale/it/advancedFilters.json @@ -1,24 +1,24 @@ { "FILTER": { "TITLE": "Filtra conversazioni", - "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.", - "EDIT_CUSTOM_FILTER": "Edit Folder", - "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.", - "ADD_NEW_FILTER": "Add filter", - "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.", + "SUBTITLE": "Aggiungi i filtri qui sotto e clicca su “Applica filtri” per trovare subito le conversazioni che ti interessano.", + "EDIT_CUSTOM_FILTER": "Modifica Cartella", + "CUSTOM_VIEWS_SUBTITLE": "Aggiungi o rimuovi filtri e aggiorna la cartella.", + "ADD_NEW_FILTER": "Aggiungi filtro", + "FILTER_DELETE_ERROR": "Impossibile salvare: aggiungi almeno un filtro per continuare.", "SUBMIT_BUTTON_LABEL": "Applica filtri", - "UPDATE_BUTTON_LABEL": "Update folder", + "UPDATE_BUTTON_LABEL": "Aggiorna cartella", "CANCEL_BUTTON_LABEL": "Annulla", - "CLEAR_BUTTON_LABEL": "Clear filters", - "FOLDER_LABEL": "Folder Name", - "FOLDER_QUERY_LABEL": "Folder Query", - "EMPTY_VALUE_ERROR": "Il valore è obbligatorio.", + "CLEAR_BUTTON_LABEL": "Rimuovi filtri", + "FOLDER_LABEL": "Nome Cartella", + "FOLDER_QUERY_LABEL": "Query Cartella", + "EMPTY_VALUE_ERROR": "Valore richiesto.", "TOOLTIP_LABEL": "Filtra conversazioni", "QUERY_DROPDOWN_LABELS": { "AND": "E", "OR": "O" }, - "INPUT_PLACEHOLDER": "Enter value", + "INPUT_PLACEHOLDER": "Inserisci valore", "OPERATOR_LABELS": { "equal_to": "Uguale a", "not_equal_to": "Non uguale a", @@ -46,15 +46,15 @@ }, "ATTRIBUTES": { "STATUS": "Stato", - "ASSIGNEE_NAME": "Assignee name", - "INBOX_NAME": "Nome casella", - "TEAM_NAME": "Nome del team", - "CONVERSATION_IDENTIFIER": "Conversation identifier", - "CAMPAIGN_NAME": "Campaign name", + "ASSIGNEE_NAME": "Nome assegnatario", + "INBOX_NAME": "Nome Inbox", + "TEAM_NAME": "Nome team", + "CONVERSATION_IDENTIFIER": "Identificativo conversazione", + "CAMPAIGN_NAME": "Nome campagna", "LABELS": "Etichette", - "BROWSER_LANGUAGE": "Browser language", + "BROWSER_LANGUAGE": "Lingua del browser", "PRIORITY": "Priorità", - "COUNTRY_NAME": "Country name", + "COUNTRY_NAME": "Nome del Paese", "REFERER_LINK": "Link referente", "CUSTOM_ATTRIBUTE_LIST": "Elenco", "CUSTOM_ATTRIBUTE_TEXT": "Testo", @@ -62,25 +62,25 @@ "CUSTOM_ATTRIBUTE_LINK": "Link", "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox", "CREATED_AT": "Creato il", - "LAST_ACTIVITY": "Last activity" + "LAST_ACTIVITY": "Ultima attività" }, "ERRORS": { - "VALUE_REQUIRED": "Il valore è obbligatorio", - "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", - "FILTER_OPERATOR_REQUIRED": "Filter operator is required", - "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998" + "VALUE_REQUIRED": "Valore richiesto", + "ATTRIBUTE_KEY_REQUIRED": "Chiave attributo richiesta", + "FILTER_OPERATOR_REQUIRED": "Operatore di filtro richiesto", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Il valore deve essere compreso tra 1 e 998" }, "GROUPS": { - "STANDARD_FILTERS": "Standard filters", - "ADDITIONAL_FILTERS": "Additional filters", - "CUSTOM_ATTRIBUTES": "Custom attributes" + "STANDARD_FILTERS": "Filtri standard", + "ADDITIONAL_FILTERS": "Filtri aggiuntivi", + "CUSTOM_ATTRIBUTES": "Attributi personalizzati" }, "CUSTOM_VIEWS": { "ADD": { "TITLE": "Vuoi salvare questo filtro?", "LABEL": "Dai un nome a questo filtro", - "PLACEHOLDER": "Name your filter to refer it later.", - "ERROR_MESSAGE": "Il nome è obbligatorio.", + "PLACEHOLDER": "Dai un nome al filtro per poterlo richiamare in seguito.", + "ERROR_MESSAGE": "Nome richiesto.", "SAVE_BUTTON": "Salva filtro", "CANCEL_BUTTON": "Annulla", "API_FOLDERS": { @@ -93,7 +93,7 @@ } }, "EDIT": { - "EDIT_BUTTON": "Edit folder" + "EDIT_BUTTON": "Modifica cartella" }, "DELETE": { "DELETE_BUTTON": "Elimina filtro", @@ -101,7 +101,7 @@ "CONFIRM": { "TITLE": "Conferma eliminazione", "MESSAGE": "Sei sicuro di voler eliminare il filtro ", - "YES": "Yes, delete", + "YES": "Sì, elimina", "NO": "No, mantienilo" } }, diff --git a/app/javascript/dashboard/i18n/locale/it/agentBots.json b/app/javascript/dashboard/i18n/locale/it/agentBots.json index c620caa88..36cd36b1f 100644 --- a/app/javascript/dashboard/i18n/locale/it/agentBots.json +++ b/app/javascript/dashboard/i18n/locale/it/agentBots.json @@ -1,103 +1,103 @@ { "AGENT_BOTS": { "HEADER": "Bots", - "LOADING_EDITOR": "Loading editor...", - "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.", - "LEARN_MORE": "Learn about agent bots", + "LOADING_EDITOR": "Caricamento editor...", + "DESCRIPTION": "Gli Agent Bot sono membri virtuali del tuo team: gestiscono le attività di routine, lasciandoti più tempo per ciò che conta. Puoi gestirli da questa pagina o crearne di nuovi con il pulsante “Aggiungi Bot”.", + "LEARN_MORE": "Informazioni sugli agent bot", "GLOBAL_BOT": "System bot", "GLOBAL_BOT_BADGE": "System", "AVATAR": { - "SUCCESS_DELETE": "Bot avatar deleted successfully", - "ERROR_DELETE": "Error deleting bot avatar, please try again" + "SUCCESS_DELETE": "Avatar del bot eliminato con successo", + "ERROR_DELETE": "Errore nell'eliminare l'avatar del bot, riprova" }, "BOT_CONFIGURATION": { "TITLE": "Select an agent bot", - "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.", + "DESC": "Assegna un agent bot alla tua inbox. Potrà gestire le nuove conversazioni e trasferirle a un operatore umano quando necessario.", "SUBMIT": "Aggiorna", - "DISCONNECT": "Disconnect bot", - "SUCCESS_MESSAGE": "Successfully updated the agent bot.", - "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.", - "ERROR_MESSAGE": "Could not update the agent bot. Please try again.", - "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.", - "SELECT_PLACEHOLDER": "Select bot" + "DISCONNECT": "Disconnetti bot", + "SUCCESS_MESSAGE": "Agent bot aggiornato con successo.", + "DISCONNECTED_SUCCESS_MESSAGE": "Agent bot disconnesso con successo.", + "ERROR_MESSAGE": "Impossibile aggiornare agent bot. Riprova.", + "DISCONNECTED_ERROR_MESSAGE": "Impossibile disconnettere agent bot. Riprova.", + "SELECT_PLACEHOLDER": "Seleziona bot" }, "ADD": { - "TITLE": "Add Bot", + "TITLE": "Aggiungi Bot", "CANCEL_BUTTON_TEXT": "Annulla", "API": { - "SUCCESS_MESSAGE": "Bot added successfully.", - "ERROR_MESSAGE": "Could not add bot. Please try again later." + "SUCCESS_MESSAGE": "Bot aggiunto correttamente.", + "ERROR_MESSAGE": "Impossibile aggiungere bot. Riprova più tardi." } }, "LIST": { - "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.", - "LOADING": "Fetching bots...", + "404": "Nessun bot trovato. Puoi creare un bot cliccando sul pulsante 'Aggiungi Bot'.", + "LOADING": "Caricamento bot...", "TABLE_HEADER": { - "DETAILS": "Bot Details", - "URL": "URL del webhook" + "DETAILS": "Dettagli Bot", + "URL": "URL Webhook" } }, "DELETE": { "BUTTON_TEXT": "Elimina", - "TITLE": "Delete bot", + "TITLE": "Elimina bot", "CONFIRM": { - "TITLE": "Conferma eliminazione", - "MESSAGE": "Are you sure you want to delete {name}?", + "TITLE": "Conferma Eliminazione", + "MESSAGE": "Sei sicuro di voler eliminare {name}?", "YES": "Sì, elimina", - "NO": "No, conserva" + "NO": "No, Mantieni" }, "API": { - "SUCCESS_MESSAGE": "Bot deleted successfully.", - "ERROR_MESSAGE": "Could not delete bot. Please try again." + "SUCCESS_MESSAGE": "Bot eliminato con successo.", + "ERROR_MESSAGE": "Impossibile eliminare il bot. Riprova." } }, "EDIT": { "BUTTON_TEXT": "Modifica", - "TITLE": "Edit bot", + "TITLE": "Modifica bot", "API": { - "SUCCESS_MESSAGE": "Bot updated successfully.", - "ERROR_MESSAGE": "Could not update bot. Please try again." + "SUCCESS_MESSAGE": "Bot aggiornato con successo.", + "ERROR_MESSAGE": "Impossibile aggiornare il bot. Riprova." } }, "ACCESS_TOKEN": { - "TITLE": "Token di accesso", - "DESCRIPTION": "Copy the access token and save it securely", - "COPY_SUCCESSFUL": "Access token copied to clipboard", - "RESET_SUCCESS": "Access token regenerated successfully", - "RESET_ERROR": "Unable to regenerate access token. Please try again" + "TITLE": "Token di Accesso", + "DESCRIPTION": "Copia il token di accesso e salvalo in un luogo sicuro", + "COPY_SUCCESSFUL": "Token di accesso copiato negli appunti", + "RESET_SUCCESS": "Token di accesso rigenerato correttamente", + "RESET_ERROR": "Impossibile rigenerare il token di accesso. Riprova" }, "FORM": { "AVATAR": { - "LABEL": "Bot avatar" + "LABEL": "Avatar del Bot" }, "NAME": { - "LABEL": "Bot name", - "PLACEHOLDER": "Enter bot name", - "REQUIRED": "Bot name is required" + "LABEL": "Nome Bot", + "PLACEHOLDER": "Inserisci il nome del Bot", + "REQUIRED": "Nome Bot richiesto" }, "DESCRIPTION": { "LABEL": "Descrizione", - "PLACEHOLDER": "What does this bot do?" + "PLACEHOLDER": "Cosa fa questo Bot?" }, "WEBHOOK_URL": { - "LABEL": "URL del webhook", + "LABEL": "URL Webhook", "PLACEHOLDER": "https://example.com/webhook", - "REQUIRED": "Webhook URL is required" + "REQUIRED": "L'URL del Webhook è richiesto" }, "ERRORS": { - "NAME": "Bot name is required", - "URL": "Webhook URL is required", - "VALID_URL": "Please enter a valid URL starting with http:// or https://" + "NAME": "Nome Bot richiesto", + "URL": "L'URL del Webhook è richiesto", + "VALID_URL": "Inserisci un URL valido che inizi con http:// o https://" }, - "CANCEL": "annulla", - "CREATE": "Create Bot", - "UPDATE": "Update Bot" + "CANCEL": "Annulla", + "CREATE": "Crea Bot", + "UPDATE": "Aggiorna Bot" }, "WEBHOOK": { - "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them." + "DESCRIPTION": "Configura un Bot Webhook per integrarlo con i tuoi servizi. Il Bot riceverà e gestirà gli eventi delle conversazioni e potrà rispondere automaticamente." }, "TYPES": { - "WEBHOOK": "Webhook bot" + "WEBHOOK": "Bot Webhook" } } } diff --git a/app/javascript/dashboard/i18n/locale/it/agentMgmt.json b/app/javascript/dashboard/i18n/locale/it/agentMgmt.json index 20b0b985b..22a38f4c7 100644 --- a/app/javascript/dashboard/i18n/locale/it/agentMgmt.json +++ b/app/javascript/dashboard/i18n/locale/it/agentMgmt.json @@ -1,98 +1,98 @@ { "AGENT_MGMT": { - "HEADER": "Agenti", - "HEADER_BTN_TXT": "Aggiungi agente", - "LOADING": "Recupero elenco agenti", - "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.", - "LEARN_MORE": "Learn about user roles", + "HEADER": "Operatori", + "HEADER_BTN_TXT": "Aggiungi Operatore", + "LOADING": "Recupero Operatori", + "DESCRIPTION": "Un operatore è un membro del tuo team di assistenza clienti che può visualizzare e rispondere ai messaggi degli utenti. L’elenco qui sotto mostra tutti gli operatori presenti nel tuo account.", + "LEARN_MORE": "Scopri i ruoli utente", "AGENT_TYPES": { "ADMINISTRATOR": "Amministratore", - "AGENT": "Agente" + "AGENT": "Operatore" }, "LIST": { - "404": "Non ci sono agenti associati a questo account", - "TITLE": "Gestisci gli agenti nel tuo team", - "DESC": "Puoi aggiungere/rimuovere agenti da/nel tuo team.", + "404": "Non ci sono operatori associati a questo account", + "TITLE": "Gestisci gli operatori nel tuo team", + "DESC": "Puoi aggiungere/rimuovere operatori dal tuo team.", "NAME": "Nome", "EMAIL": "EMAIL", "STATUS": "Stato", "ACTIONS": "Azioni", "VERIFIED": "Verificato", - "VERIFICATION_PENDING": "Verifica in sospeso", - "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions" + "VERIFICATION_PENDING": "Verifica in Sospeso", + "AVAILABLE_CUSTOM_ROLE": "Permessi di ruolo personalizzati disponibili" }, "ADD": { - "TITLE": "Aggiungi agente al tuo team", - "DESC": "Puoi aggiungere persone che saranno in grado di gestire il supporto per la tua casella.", + "TITLE": "Aggiungi operatore al tuo team", + "DESC": "Puoi aggiungere persone per gestire il supporto nelle tue Inbox.", "CANCEL_BUTTON_TEXT": "Annulla", "FORM": { "NAME": { - "LABEL": "Nome dell'agente", - "PLACEHOLDER": "Inserisci un nome dell'agente" + "LABEL": "Nome Operatore", + "PLACEHOLDER": "Inserisci un nome operatore" }, "AGENT_TYPE": { "LABEL": "Ruolo", "PLACEHOLDER": "Seleziona un ruolo", - "ERROR": "Il ruolo è obbligatorio" + "ERROR": "Ruolo richiesto" }, "EMAIL": { - "LABEL": "Indirizzo email", - "PLACEHOLDER": "Si prega di inserire un indirizzo email dell'agente" + "LABEL": "Indirizzo Email", + "PLACEHOLDER": "Inserisci un indirizzo email dell'operatore" }, - "SUBMIT": "Aggiungi agente" + "SUBMIT": "Aggiungi Operatore" }, "API": { - "SUCCESS_MESSAGE": "Agente aggiunto correttamente", - "EXIST_MESSAGE": "Email dell'agente già in uso, prova un altro indirizzo email", + "SUCCESS_MESSAGE": "Operatore aggiunto correttamente", + "EXIST_MESSAGE": "Email dell'operatore già in uso, prova con un altro indirizzo email", "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi" } }, "DELETE": { "BUTTON_TEXT": "Elimina", "API": { - "SUCCESS_MESSAGE": "Agente eliminato con successo", + "SUCCESS_MESSAGE": "Operatore eliminato correttamente", "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi" }, "CONFIRM": { - "TITLE": "Conferma eliminazione", + "TITLE": "Conferma Eliminazione", "MESSAGE": "Sei sicuro di voler eliminare ", - "YES": "Sì, elimina ", - "NO": "No, Conserva " + "YES": "Sì, Elimina ", + "NO": "No, Mantieni " } }, "EDIT": { - "TITLE": "Modifica agente", + "TITLE": "Modifica operatore", "FORM": { "NAME": { - "LABEL": "Nome dell'agente", - "PLACEHOLDER": "Inserisci un nome dell'agente" + "LABEL": "Nome Operatore", + "PLACEHOLDER": "Inserisci un nome operatore" }, "AGENT_TYPE": { "LABEL": "Ruolo", "PLACEHOLDER": "Seleziona un ruolo", - "ERROR": "Il ruolo è obbligatorio" + "ERROR": "Ruolo richiesto" }, "EMAIL": { - "LABEL": "Indirizzo email", - "PLACEHOLDER": "Si prega di inserire un indirizzo email dell'agente" + "LABEL": "Indirizzo Email", + "PLACEHOLDER": "Inserisci un indirizzo email dell'operatore" }, "AGENT_AVAILABILITY": { "LABEL": "Disponibilità", - "PLACEHOLDER": "Please select an availability status", - "ERROR": "Availability is required" + "PLACEHOLDER": "Seleziona uno stato di disponibilità", + "ERROR": "Disponibilità richiesta" }, - "SUBMIT": "Modifica agente" + "SUBMIT": "Modifica Operatore" }, "BUTTON_TEXT": "Modifica", - "CANCEL_BUTTON_TEXT": "annulla", + "CANCEL_BUTTON_TEXT": "Annulla", "API": { - "SUCCESS_MESSAGE": "Agente aggiornato correttamente", + "SUCCESS_MESSAGE": "Operatore aggiornato correttamente", "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi" }, "PASSWORD_RESET": { "ADMIN_RESET_BUTTON": "Reimposta la password", - "ADMIN_SUCCESS_MESSAGE": "Un'email con le istruzioni per reimpostare la password è stata inviata all'agente", - "SUCCESS_MESSAGE": "Password dell'agente reimpostata correttamente", + "ADMIN_SUCCESS_MESSAGE": "Un'email con le istruzioni per reimpostare la password è stata inviata all'operatore", + "SUCCESS_MESSAGE": "Password dell'operatore reimpostata correttamente", "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi" } }, @@ -102,7 +102,7 @@ "MULTI_SELECTOR": { "PLACEHOLDER": "Nessuno", "TITLE": { - "AGENT": "Seleziona un'agente", + "AGENT": "Seleziona operatore", "TEAM": "Seleziona team" }, "LIST": { @@ -110,13 +110,13 @@ }, "SEARCH": { "NO_RESULTS": { - "AGENT": "Nessun agente trovato", + "AGENT": "Nessun operatore trovato", "TEAM": "Nessun team trovato" }, "PLACEHOLDER": { - "AGENT": "Cerca agenti", + "AGENT": "Cerca operatori", "TEAM": "Cerca team", - "INPUT": "Search for agents" + "INPUT": "Cerca operatori" } } } diff --git a/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json index 9a4600105..a89654437 100644 --- a/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json +++ b/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json @@ -1,79 +1,79 @@ { "ATTRIBUTES_MGMT": { - "HEADER": "Attributi personalizzati", - "HEADER_BTN_TXT": "Aggiungi attributo personalizzato", - "LOADING": "Recupero degli attributi personalizzati", - "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.", - "LEARN_MORE": "Learn more about custom attributes", + "HEADER": "Attributi Personalizzati", + "HEADER_BTN_TXT": "Aggiungi Attributo Personalizzato", + "LOADING": "Caricamento attributi personalizzati", + "DESCRIPTION": "Un attributo personalizzato tiene traccia di informazioni aggiuntive sui tuoi contatti o sulle conversazioni — ad esempio il piano di abbonamento o la data del primo acquisto. Puoi aggiungere diversi tipi di attributi personalizzati, come testo, elenchi o numeri, per raccogliere le informazioni specifiche di cui hai bisogno.", + "LEARN_MORE": "Scopri di più sugli attributi personalizzati", "ATTRIBUTE_MODELS": { - "CONVERSATION": "Conversazioni", + "CONVERSATION": "Conversazione", "CONTACT": "Contatto" }, "ATTRIBUTE_TYPES": { "TEXT": "Testo", "NUMBER": "Numero", "LINK": "Link", - "DATE": "Date", + "DATE": "Data", "LIST": "Elenco", "CHECKBOX": "Checkbox" }, "ADD": { - "TITLE": "Aggiungi attributo personalizzato", + "TITLE": "Aggiungi Attributo Personalizzato", "SUBMIT": "Crea", "CANCEL_BUTTON_TEXT": "Annulla", "FORM": { "NAME": { - "LABEL": "Nome visualizzato", - "PLACEHOLDER": "Inserisci il nome di visualizzazione dell'attributo personalizzato", - "ERROR": "Il nome è obbligatorio" + "LABEL": "Nome Visualizzato", + "PLACEHOLDER": "Inserisci il nome da mostrare per l’attributo personalizzato", + "ERROR": "Nome richiesto" }, "DESC": { "LABEL": "Descrizione", "PLACEHOLDER": "Inserisci una descrizione dell'attributo personalizzato", - "ERROR": "La descrizione è obbligatoria" + "ERROR": "Descrizione richiesta" }, "MODEL": { "LABEL": "Si applica a", - "PLACEHOLDER": "Si prega di selezionarne uno", - "ERROR": "Il modello è obbligatorio" + "PLACEHOLDER": "Selezionane uno", + "ERROR": "Modello richiesto" }, "TYPE": { "LABEL": "Tipo", - "PLACEHOLDER": "Seleziona un tipo", - "ERROR": "Il tipo è obbligatorio", + "PLACEHOLDER": "Seleziona un tipo di attributo", + "ERROR": "Tipo richiesto", "LIST": { - "LABEL": "Elenco valori", - "PLACEHOLDER": "Inserisci il valore e premi il tasto Invio", + "LABEL": "Valori dell’elenco", + "PLACEHOLDER": "Inserisci un valore da aggiungere all'elenco e premi il tasto invio", "ERROR": "Deve avere almeno un valore" } }, "KEY": { "LABEL": "Chiave", "PLACEHOLDER": "Inserisci la chiave dell'attributo personalizzato", - "ERROR": "La chiave è obbligatoria", + "ERROR": "Chiave richiesta", "IN_VALID": "Chiave non valida" }, "REGEX_PATTERN": { - "LABEL": "Regex Pattern", - "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)" + "LABEL": "Espressione regolare", + "PLACEHOLDER": "Inserisci un'espressione regolare per validare gli attributi personalizzati. (Opzionale)" }, "REGEX_CUE": { - "LABEL": "Regex Cue", - "PLACEHOLDER": "Please enter regex pattern hint. (Optional)" + "LABEL": "Suggerimento espressione regolare", + "PLACEHOLDER": "Inserisci un suggerimento per l'espressione regolare. (Opzionale)" }, "ENABLE_REGEX": { - "LABEL": "Enable regex validation" + "LABEL": "Abilita convalida espressione regolare" } }, "API": { "SUCCESS_MESSAGE": "Attributo personalizzato aggiunto con successo!", - "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later." + "ERROR_MESSAGE": "Impossibile creare un Attributo Personalizzato. Riprova più tardi." } }, "DELETE": { "BUTTON_TEXT": "Elimina", "API": { - "SUCCESS_MESSAGE": "Attributo personalizzato eliminato con successo.", + "SUCCESS_MESSAGE": "Attributo Personalizzato eliminato con successo.", "ERROR_MESSAGE": "Impossibile eliminare l'attributo personalizzato. Riprova." }, "CONFIRM": { @@ -85,22 +85,22 @@ } }, "EDIT": { - "TITLE": "Modifica attributo personalizzato", + "TITLE": "Modifica Attributo Personalizzato", "UPDATE_BUTTON_TEXT": "Aggiorna", "TYPE": { "LIST": { - "LABEL": "Elenco valori", - "PLACEHOLDER": "Inserire i valori e premere il tasto Invio" + "LABEL": "Valori dell’elenco", + "PLACEHOLDER": "Inserisci i valori da aggiungere all'elenco e premi il tasto invio" } }, "API": { - "SUCCESS_MESSAGE": "Attributo personalizzato aggiornato con successo", - "ERROR_MESSAGE": "Si è verificato un errore durante l'aggiornamento dell'attributo personalizzato, si prega di riprovare" + "SUCCESS_MESSAGE": "Attributo Personalizzato aggiornato correttamente", + "ERROR_MESSAGE": "Si è verificato un errore durante l'aggiornamento dell'attributo personalizzato, riprova" } }, "TABS": { - "HEADER": "Attributi personalizzati", - "CONVERSATION": "Conversazioni", + "HEADER": "Attributi Personalizzati", + "CONVERSATION": "Conversazione", "CONTACT": "Contatto" }, "LIST": { @@ -119,15 +119,15 @@ "NOT_FOUND": "Non ci sono attributi personalizzati configurati" }, "REGEX_PATTERN": { - "LABEL": "Regex Pattern", - "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)" + "LABEL": "Espressione regolare", + "PLACEHOLDER": "Inserisci un'espressione regolare per validare gli attributi personalizzati. (Opzionale)" }, "REGEX_CUE": { - "LABEL": "Regex Cue", - "PLACEHOLDER": "Please enter regex pattern hint. (Optional)" + "LABEL": "Suggerimento espressione regolare", + "PLACEHOLDER": "Inserisci un suggerimento per l'espressione regolare. (Opzionale)" }, "ENABLE_REGEX": { - "LABEL": "Enable regex validation" + "LABEL": "Abilita convalida espressione regolare" } } } diff --git a/app/javascript/dashboard/i18n/locale/it/auditLogs.json b/app/javascript/dashboard/i18n/locale/it/auditLogs.json index 5cd03a26e..51e6d9bf4 100644 --- a/app/javascript/dashboard/i18n/locale/it/auditLogs.json +++ b/app/javascript/dashboard/i18n/locale/it/auditLogs.json @@ -1,77 +1,77 @@ { "AUDIT_LOGS": { "HEADER": "Audit Logs", - "HEADER_BTN_TXT": "Add Audit Logs", - "LOADING": "Fetching Audit Logs", - "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.", - "LEARN_MORE": "Learn more about audit logs", + "HEADER_BTN_TXT": "Aggiungi Audit Logs", + "LOADING": "Caricamento Audit Logs", + "DESCRIPTION": "Gli Audit Logs mantengono un registro di tutte le attività del tuo account, consentendoti di monitorare il tuo account, team o servizi.", + "LEARN_MORE": "Scopri di più sugli audit logs", "SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta", - "SIDEBAR_TXT": "

Audit Logs

Audit Logs are trails for events and actions in a Chatwoot System.

", + "SIDEBAR_TXT": "

Audit Logs

Gli Audit Logs sono registri di eventi e azioni eseguite in un sistema Chatwoot.

", "LIST": { - "404": "There are no Audit Logs available in this account.", - "TITLE": "Manage Audit Logs", - "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.", + "404": "Non ci sono Audit Logs disponibili in questo account.", + "TITLE": "Gestisci Audit Logs", + "DESC": "Gli Audit Logs sono registri di eventi e azioni eseguite in un sistema Chatwoot.", "TABLE_HEADER": { - "ACTIVITY": "User", - "TIME": "Action", + "ACTIVITY": "Attività", + "TIME": "Orario", "IP_ADDRESS": "Indirizzo IP" } }, "API": { - "SUCCESS_MESSAGE": "AuditLogs retrieved successfully", + "SUCCESS_MESSAGE": "Audit Logs caricati correttamente", "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi" }, "DEFAULT_USER": "System", "AUTOMATION_RULE": { - "ADD": "{agentName} created a new automation rule (#{id})", - "EDIT": "{agentName} updated an automation rule (#{id})", - "DELETE": "{agentName} deleted an automation rule (#{id})" + "ADD": "{agentName} ha creato una nuova regola di automazione (#{id})", + "EDIT": "{agentName} ha aggiornato una regola di automazione (#{id})", + "DELETE": "{agentName} ha eliminato una regola di automazione (#{id})" }, "ACCOUNT_USER": { - "ADD": "{agentName} invited {invitee} to the account as an {role}", + "ADD": "{agentName} ha invitato {invitee} nell'account come {role}", "EDIT": { - "SELF": "{agentName} changed their {attributes} to {values}", - "OTHER": "{agentName} changed {attributes} of {user} to {values}", - "DELETED": "{agentName} changed {attributes} of a deleted user to {values}" + "SELF": "{agentName} ha cambiato il suo {attributes} in {values}", + "OTHER": "{agentName} ha cambiato {attributes} di {user} in {values}", + "DELETED": "{agentName} ha cambiato {attributes} di un utente eliminato in {values}" } }, "INBOX": { - "ADD": "{agentName} created a new inbox (#{id})", - "EDIT": "{agentName} updated an inbox (#{id})", - "DELETE": "{agentName} deleted an inbox (#{id})" + "ADD": "{agentName} ha creato una nuova inbox (#{id})", + "EDIT": "{agentName} ha aggiornato una inbox (#{id})", + "DELETE": "{agentName} ha eliminato una inbox (#{id})" }, "WEBHOOK": { - "ADD": "{agentName} created a new webhook (#{id})", - "EDIT": "{agentName} updated a webhook (#{id})", - "DELETE": "{agentName} deleted a webhook (#{id})" + "ADD": "{agentName} ha creato un nuovo webhook (#{id})", + "EDIT": "{agentName} ha aggiornato un webhook (#{id})", + "DELETE": "{agentName} ha eliminato un webhook (#{id})" }, "USER_ACTION": { - "SIGN_IN": "{agentName} signed in", - "SIGN_OUT": "{agentName} signed out" + "SIGN_IN": "{agentName} ha eseguito l'accesso", + "SIGN_OUT": "{agentName} si è disconnesso" }, "TEAM": { "ADD": "{agentName} created a new team (#{id})", - "EDIT": "{agentName} updated a team (#{id})", - "DELETE": "{agentName} deleted a team (#{id})" + "EDIT": "{agentName} ha aggiornato un team (#{id})", + "DELETE": "{agentName} ha eliminato un team (#{id})" }, "MACRO": { - "ADD": "{agentName} created a new macro (#{id})", - "EDIT": "{agentName} updated a macro (#{id})", - "DELETE": "{agentName} deleted a macro (#{id})" + "ADD": "{agentName} ha creato una nuova macro (#{id})", + "EDIT": "{agentName} ha aggiornato una macro (#{id})", + "DELETE": "{agentName} ha eliminato una macro (#{id})" }, "INBOX_MEMBER": { - "ADD": "{agentName} added {user} to the inbox(#{inbox_id})", - "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})" + "ADD": "{agentName} ha aggiunto {user} alla inbox (#{inbox_id})", + "REMOVE": "{agentName} ha rimosso {user} dalla inbox (#{inbox_id})" }, "TEAM_MEMBER": { - "ADD": "{agentName} added {user} to the team(#{team_id})", - "REMOVE": "{agentName} removed {user} from the team(#{team_id})" + "ADD": "{agentName} ha aggiunto {user} al team (#{team_id})", + "REMOVE": "{agentName} ha rimosso {user} dal team (#{team_id})" }, "ACCOUNT": { - "EDIT": "{agentName} updated the account configuration (#{id})" + "EDIT": "{agentName} ha aggiornato la configurazione dell'account (#{id})" }, "CONVERSATION": { - "DELETE": "{agentName} deleted conversation #{id}" + "DELETE": "{agentName} ha eliminato la conversazione #{id}" } } } diff --git a/app/javascript/dashboard/i18n/locale/it/automation.json b/app/javascript/dashboard/i18n/locale/it/automation.json index 7079efb93..53d713629 100644 --- a/app/javascript/dashboard/i18n/locale/it/automation.json +++ b/app/javascript/dashboard/i18n/locale/it/automation.json @@ -1,29 +1,29 @@ { "AUTOMATION": { - "HEADER": "Automazione", - "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.", - "LEARN_MORE": "Learn more about automation", - "HEADER_BTN_TXT": "Aggiungi regola di automazione", - "LOADING": "Recupero delle regole di automazione", + "HEADER": "Automazioni", + "DESCRIPTION": "Le automazioni possono sostituire e semplificare i processi esistenti che richiedono azioni manuale, ad esempio l'aggiunta di etichette e l'assegnazione di conversazioni all'operatore più adatto. Grazie alle automazioni i team possono concentrarsi sui propri punti di forza e ridurre il tempo dedicato alle attività ripetitive.", + "LEARN_MORE": "Scopri di più sulle automazioni", + "HEADER_BTN_TXT": "Aggiungi Regola di Automazione", + "LOADING": "Caricamento regole di automazione", "ADD": { - "TITLE": "Aggiungi regola di automazione", + "TITLE": "Aggiungi Regola di Automazione", "SUBMIT": "Crea", "CANCEL_BUTTON_TEXT": "Annulla", "FORM": { "NAME": { - "LABEL": "Nome regola", + "LABEL": "Nome Regola", "PLACEHOLDER": "Inserisci il nome della regola", - "ERROR": "Il nome è obbligatorio" + "ERROR": "Nome richiesto" }, "DESC": { "LABEL": "Descrizione", "PLACEHOLDER": "Inserisci la descrizione della regola", - "ERROR": "La descrizione è obbligatoria" + "ERROR": "Descrizione richiesta" }, "EVENT": { "LABEL": "Evento", - "PLACEHOLDER": "Si prega di selezionarne uno", - "ERROR": "L'evento è obbligatorio" + "PLACEHOLDER": "Selezionane uno", + "ERROR": "Evento richiesto" }, "CONDITIONS": { "LABEL": "Condizioni" @@ -32,8 +32,8 @@ "LABEL": "Azioni" } }, - "CONDITION_BUTTON_LABEL": "Aggiungi condizione", - "ACTION_BUTTON_LABEL": "Aggiungi azione", + "CONDITION_BUTTON_LABEL": "Aggiungi Condizione", + "ACTION_BUTTON_LABEL": "Aggiungi Azione", "API": { "SUCCESS_MESSAGE": "Regola di automazione aggiunta con successo", "ERROR_MESSAGE": "Impossibile creare una regola di automazione, riprova più tardi" @@ -43,28 +43,28 @@ "TABLE_HEADER": { "NAME": "Nome", "DESCRIPTION": "Descrizione", - "ACTIVE": "Attivo", - "CREATED_ON": "Creato il" + "ACTIVE": "Attiva", + "CREATED_ON": "Creata il" }, "404": "Nessuna regola di automazione trovata" }, "DELETE": { - "TITLE": "Elimina regola di automazione", + "TITLE": "Elimina Regola Di Automazione", "SUBMIT": "Elimina", "CANCEL_BUTTON_TEXT": "Annulla", "CONFIRM": { - "TITLE": "Conferma eliminazione", + "TITLE": "Conferma Eliminazione", "MESSAGE": "Sei sicuro di voler eliminare ", - "YES": "Sì, elimina ", - "NO": "No, conserva " + "YES": "Sì, Elimina ", + "NO": "No, Mantienila " }, "API": { "SUCCESS_MESSAGE": "Regola di automazione eliminata con successo", - "ERROR_MESSAGE": "Impossibile eliminare una regola di automazione, riprova più tardi" + "ERROR_MESSAGE": "Impossibile eliminare la regola di automazione, riprova più tardi" } }, "EDIT": { - "TITLE": "Modifica regola di automazione", + "TITLE": "Modifica Regola Di Automazione", "SUBMIT": "Aggiorna", "CANCEL_BUTTON_TEXT": "Annulla", "API": { @@ -87,20 +87,20 @@ "RESET_MESSAGE": "Cambiare il tipo di evento resetterà le condizioni e gli eventi che hai aggiunto di seguito" }, "CONDITION": { - "DELETE_MESSAGE": "È necessario avere almeno una condizione per salvare", - "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes", - "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes" + "DELETE_MESSAGE": "È necessaria almeno una condizione per salvare", + "CONTACT_CUSTOM_ATTR_LABEL": "Attributi Personalizzati Contatti", + "CONVERSATION_CUSTOM_ATTR_LABEL": "Attributi Personalizzati Conversazioni" }, "ACTION": { "DELETE_MESSAGE": "È necessario avere almeno una azione da salvare", "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Inserisci qui il tuo messaggio", "TEAM_DROPDOWN_PLACEHOLDER": "Seleziona i team", - "EMAIL_INPUT_PLACEHOLDER": "Enter email", - "URL_INPUT_PLACEHOLDER": "Enter URL" + "EMAIL_INPUT_PLACEHOLDER": "Inserisci email", + "URL_INPUT_PLACEHOLDER": "Inserisci URL" }, "TOGGLE": { - "ACTIVATION_TITLE": "Attiva regola di automazione", - "DEACTIVATION_TITLE": "Disattiva regola di automazione", + "ACTIVATION_TITLE": "Attiva Regola di Automazione", + "DEACTIVATION_TITLE": "Disattiva Regola di Automazione", "ACTIVATION_DESCRIPTION": "Questa azione attiverà la regola di automazione '{automationName}'. Sei sicuro di voler procedere?", "DEACTIVATION_DESCRIPTION": "Questa azione disattiverà la regola di automazione '{automationName}'. Sei sicuro di voler procedere?", "ACTIVATION_SUCCESFUL": "Regola di automazione attivata con successo", @@ -111,71 +111,71 @@ "CANCEL_LABEL": "No" }, "ATTACHMENT": { - "UPLOAD_ERROR": "Impossibile caricare l'allegato, si prega di riprovare", - "LABEL_IDLE": "Carica allegato", + "UPLOAD_ERROR": "Impossibile caricare l'allegato, riprova", + "LABEL_IDLE": "Carica Allegato", "LABEL_UPLOADING": "Caricamento...", - "LABEL_UPLOADED": "Successfully Uploaded", - "LABEL_UPLOAD_FAILED": "Caricamento fallito" + "LABEL_UPLOADED": "Caricato Con Successo", + "LABEL_UPLOAD_FAILED": "Caricamento Fallito" }, "ERRORS": { - "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", - "FILTER_OPERATOR_REQUIRED": "Filter operator is required", - "VALUE_REQUIRED": "Il valore è obbligatorio", - "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998", - "ACTION_PARAMETERS_REQUIRED": "Action parameters are required", - "ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required", - "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" + "ATTRIBUTE_KEY_REQUIRED": "Chiave dell'attributo richiesta", + "FILTER_OPERATOR_REQUIRED": "Operatore di filtro richiesto", + "VALUE_REQUIRED": "Valore richiesto", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Il valore deve essere compreso tra 1 e 998", + "ACTION_PARAMETERS_REQUIRED": "Parametri di azione richiesti", + "ATLEAST_ONE_CONDITION_REQUIRED": "È richiesta almeno una condizione", + "ATLEAST_ONE_ACTION_REQUIRED": "È necessaria almeno un'azione" }, "NONE_OPTION": "Nessuno", "EVENTS": { - "CONVERSATION_CREATED": "Conversazione creata", - "CONVERSATION_UPDATED": "Conversazione aggiornata", - "MESSAGE_CREATED": "Message Created", - "CONVERSATION_RESOLVED": "Conversation Resolved", - "CONVERSATION_OPENED": "Conversation Opened" + "CONVERSATION_CREATED": "Conversazione Creata", + "CONVERSATION_UPDATED": "Conversazione Aggiornata", + "MESSAGE_CREATED": "Messaggio Creato", + "CONVERSATION_RESOLVED": "Conversazione Risolta", + "CONVERSATION_OPENED": "Conversazione Aperta" }, "ACTIONS": { - "ASSIGN_AGENT": "Assign to Agent", - "ASSIGN_TEAM": "Assign a Team", - "ADD_LABEL": "Add a Label", - "REMOVE_LABEL": "Remove a Label", - "SEND_EMAIL_TO_TEAM": "Send an Email to Team", - "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript", - "MUTE_CONVERSATION": "Silenzia conversazione", - "SNOOZE_CONVERSATION": "Posticipa conversazione", - "RESOLVE_CONVERSATION": "Risolvi la conversazione", - "SEND_WEBHOOK_EVENT": "Send Webhook Event", - "SEND_ATTACHMENT": "Send Attachment", - "SEND_MESSAGE": "Send a Message", - "ADD_PRIVATE_NOTE": "Aggiungi una Nota Privata", - "CHANGE_PRIORITY": "Change Priority", - "ADD_SLA": "Add SLA", - "OPEN_CONVERSATION": "Apri conversazione" + "ASSIGN_AGENT": "Assegna a un Operatore", + "ASSIGN_TEAM": "Assegna a un Team", + "ADD_LABEL": "Aggiungi Etichetta", + "REMOVE_LABEL": "Rimuovi Etichetta", + "SEND_EMAIL_TO_TEAM": "Invia un'email al Team", + "SEND_EMAIL_TRANSCRIPT": "Invia una Trascrizione Email", + "MUTE_CONVERSATION": "Silenzia Conversazione", + "SNOOZE_CONVERSATION": "Posticipa Conversazione", + "RESOLVE_CONVERSATION": "Risolvi Conversazione", + "SEND_WEBHOOK_EVENT": "Invia Evento Webhook", + "SEND_ATTACHMENT": "Invia Allegato", + "SEND_MESSAGE": "Invia un Messaggio", + "ADD_PRIVATE_NOTE": "Aggiungi Nota Privata", + "CHANGE_PRIORITY": "Modifica Priorità", + "ADD_SLA": "Aggiungi SLA", + "OPEN_CONVERSATION": "Riapri conversazione" }, "MESSAGE_TYPES": { - "INCOMING": "Incoming Message", - "OUTGOING": "Outgoing Message" + "INCOMING": "Messaggio in Arrivo", + "OUTGOING": "Messaggio in Uscita" }, "PRIORITY_TYPES": { - "NONE": "Nessuno", - "LOW": "Low", - "MEDIUM": "Medium", - "HIGH": "High", - "URGENT": "Urgent" + "NONE": "Nessuna", + "LOW": "Bassa", + "MEDIUM": "Media", + "HIGH": "Alta", + "URGENT": "Urgente" }, "ATTRIBUTES": { - "MESSAGE_TYPE": "Message Type", - "MESSAGE_CONTAINS": "Message Contains", + "MESSAGE_TYPE": "Tipo di Messaggio", + "MESSAGE_CONTAINS": "Il Messaggio Contiene", "EMAIL": "Email", - "INBOX": "Casella", - "CONVERSATION_LANGUAGE": "Conversation Language", - "PHONE_NUMBER": "Numero di telefono", + "INBOX": "Inbox", + "CONVERSATION_LANGUAGE": "Lingua Conversazione", + "PHONE_NUMBER": "Numero di Telefono", "STATUS": "Stato", - "BROWSER_LANGUAGE": "Lingua del browser", - "MAIL_SUBJECT": "Email Subject", + "BROWSER_LANGUAGE": "Lingua del Browser", + "MAIL_SUBJECT": "Oggetto Email", "COUNTRY_NAME": "Paese", - "REFERER_LINK": "Referrer Link", - "ASSIGNEE_NAME": "Assignee", + "REFERER_LINK": "Link Referrer", + "ASSIGNEE_NAME": "Assegnatario", "TEAM_NAME": "Team", "PRIORITY": "Priorità", "LABELS": "Etichette" diff --git a/app/javascript/dashboard/i18n/locale/it/bulkActions.json b/app/javascript/dashboard/i18n/locale/it/bulkActions.json index 5d3ef5a62..74164e5d8 100644 --- a/app/javascript/dashboard/i18n/locale/it/bulkActions.json +++ b/app/javascript/dashboard/i18n/locale/it/bulkActions.json @@ -1,41 +1,41 @@ { "BULK_ACTION": { "CONVERSATIONS_SELECTED": "{conversationCount} conversazioni selezionate", - "AGENT_SELECT_LABEL": "Seleziona un'agente", - "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign {conversationCount} {conversationLabel} to", + "AGENT_SELECT_LABEL": "Seleziona un operatore", + "ASSIGN_CONFIRMATION_LABEL": "Sei sicuro di voler assegnare {conversationCount} {conversationLabel} a", "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign {conversationCount} {conversationLabel}?", "GO_BACK_LABEL": "Torna indietro", "ASSIGN_LABEL": "Assegna", "YES": "Sì", "SEARCH_INPUT_PLACEHOLDER": "Cerca", - "ASSIGN_AGENT_TOOLTIP": "Assegna agente", + "ASSIGN_AGENT_TOOLTIP": "Assegna operatore", "ASSIGN_TEAM_TOOLTIP": "Assegna team", "ASSIGN_SUCCESFUL": "Conversazioni assegnate correttamente.", - "ASSIGN_FAILED": "Failed to assign conversations. Please try again.", + "ASSIGN_FAILED": "Impossibile assegnare le conversazioni. Riprova.", "RESOLVE_SUCCESFUL": "Conversazioni risolte correttamente.", - "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.", - "ALL_CONVERSATIONS_SELECTED_ALERT": "Le conversazioni visibili in questa pagina sono selezionate.", - "AGENT_LIST_LOADING": "Caricamento agenti", + "RESOLVE_FAILED": "Impossibile risolvere le conversazioni. Riprova.", + "ALL_CONVERSATIONS_SELECTED_ALERT": "Solo le conversazioni visibili in questa pagina sono selezionate.", + "AGENT_LIST_LOADING": "Caricamento operatori", "UPDATE": { "CHANGE_STATUS": "Cambia stato", "SNOOZE_UNTIL": "Posticipa", - "UPDATE_SUCCESFUL": "Stato della conversazione aggiornata correttamente.", - "UPDATE_FAILED": "Failed to update conversations. Please try again." + "UPDATE_SUCCESFUL": "Stato della conversazione aggiornato correttamente.", + "UPDATE_FAILED": "Impossibile aggiornare le conversazioni. Riprova." }, "LABELS": { - "ASSIGN_LABELS": "Assign labels", + "ASSIGN_LABELS": "Assegna etichette", "NO_LABELS_FOUND": "Nessuna etichetta trovata per", "ASSIGN_SELECTED_LABELS": "Assegna etichette selezeionate", "ASSIGN_SUCCESFUL": "Etichette assegnate correttamente.", - "ASSIGN_FAILED": "Failed to assign labels. Please try again." + "ASSIGN_FAILED": "Impossibile assegnare le etichette. Riprova." }, "TEAMS": { "TEAM_SELECT_LABEL": "Seleziona team", "NONE": "Nessuno", - "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.", - "ASSIGN_SELECTED_TEAMS": "Assign selected team.", - "ASSIGN_SUCCESFUL": "Teams assigned successfully.", - "ASSIGN_FAILED": "Failed to assign team. Please try again." + "NO_TEAMS_AVAILABLE": "Non ci sono ancora team aggiunti a questo account.", + "ASSIGN_SELECTED_TEAMS": "Assegna team selezionato.", + "ASSIGN_SUCCESFUL": "Team assegnati con successo.", + "ASSIGN_FAILED": "Impossibile assegnare il team. Riprova." } } } diff --git a/app/javascript/dashboard/i18n/locale/it/campaign.json b/app/javascript/dashboard/i18n/locale/it/campaign.json index 538dba56f..9831fe823 100644 --- a/app/javascript/dashboard/i18n/locale/it/campaign.json +++ b/app/javascript/dashboard/i18n/locale/it/campaign.json @@ -1,48 +1,48 @@ { "CAMPAIGN": { "LIVE_CHAT": { - "HEADER_TITLE": "Live chat campaigns", - "NEW_CAMPAIGN": "Create campaign", + "HEADER_TITLE": "Campagne live chat", + "NEW_CAMPAIGN": "Crea campagna", "CARD": { "STATUS": { - "ENABLED": "Abilitato", - "DISABLED": "Disabilitato" + "ENABLED": "Attiva", + "DISABLED": "Inattiva" }, "CAMPAIGN_DETAILS": { - "SENT_BY": "Inviato da", + "SENT_BY": "Inviata da", "BOT": "Bot", "FROM": "da", "URL": "URL:" } }, "EMPTY_STATE": { - "TITLE": "No live chat campaigns are available", - "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started." + "TITLE": "Nessuna campagna live chat disponibile", + "SUBTITLE": "Connettiti con i tuoi clienti usando messaggi proattivi. Clicca su 'Crea campagna' per iniziare." }, "CREATE": { - "TITLE": "Create a live chat campaign", - "CANCEL_BUTTON_TEXT": "annulla", + "TITLE": "Crea una campagna live chat", + "CANCEL_BUTTON_TEXT": "Annulla", "CREATE_BUTTON_TEXT": "Crea", "FORM": { "TITLE": { "LABEL": "Titolo", "PLACEHOLDER": "Inserisci il titolo della campagna", - "ERROR": "Il titolo è obbligatorio" + "ERROR": "Titolo richiesto" }, "MESSAGE": { "LABEL": "Messaggio", "PLACEHOLDER": "Inserisci il messaggio della campagna", - "ERROR": "Il messaggio è obbligatorio" + "ERROR": "Messaggio richiesto" }, "INBOX": { - "LABEL": "Seleziona casella", - "PLACEHOLDER": "Seleziona casella", - "ERROR": "La casella è obbligatoria" + "LABEL": "Seleziona Inbox", + "PLACEHOLDER": "Seleziona Inbox", + "ERROR": "Inbox richiesta" }, "SENT_BY": { - "LABEL": "Inviato da", - "PLACEHOLDER": "Please select sender", - "ERROR": "Il mittente è obbligatorio" + "LABEL": "Inviata da", + "PLACEHOLDER": "Seleziona mittente", + "ERROR": "Mittente richiesto" }, "END_POINT": { "LABEL": "URL", @@ -50,164 +50,164 @@ "ERROR": "Inserisci un URL valido" }, "TIME_ON_PAGE": { - "LABEL": "Tempo sulla pagina (Secondi)", - "PLACEHOLDER": "Inserisci l'ora", - "ERROR": "Il tempo sulla pagina è richiesto" + "LABEL": "Tempo sulla pagina (secondi)", + "PLACEHOLDER": "Inserisci il tempo in secondi", + "ERROR": "Tempo sulla pagina richiesto" }, "OTHER_PREFERENCES": { - "TITLE": "Other preferences", - "ENABLED": "Abilita campagna", + "TITLE": "Altre preferenze", + "ENABLED": "Attiva campagna", "TRIGGER_ONLY_BUSINESS_HOURS": "Attiva solo durante l'orario lavorativo" }, "BUTTONS": { "CREATE": "Crea", - "CANCEL": "annulla" + "CANCEL": "Annulla" }, "API": { - "SUCCESS_MESSAGE": "Live chat campaign created successfully", + "SUCCESS_MESSAGE": "Campagna live chat creata con successo", "ERROR_MESSAGE": "Si è verificato un errore, riprova." } } }, "EDIT": { - "TITLE": "Edit live chat campaign", + "TITLE": "Modifica campagna live chat", "FORM": { "API": { - "SUCCESS_MESSAGE": "Live chat campaign updated successfully", + "SUCCESS_MESSAGE": "Campagna live chat aggiornata con successo", "ERROR_MESSAGE": "Si è verificato un errore, riprova." } } } }, "SMS": { - "HEADER_TITLE": "SMS campaigns", - "NEW_CAMPAIGN": "Create campaign", + "HEADER_TITLE": "Campagne SMS", + "NEW_CAMPAIGN": "Crea campagna", "EMPTY_STATE": { - "TITLE": "No SMS campaigns are available", - "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started." + "TITLE": "Nessuna campagna SMS disponibile", + "SUBTITLE": "Avvia una campagna SMS per raggiungere direttamente i tuoi clienti. Invia offerte o fai annunci con facilità. Clicca su 'Crea campagna' per iniziare." }, "CARD": { "STATUS": { - "COMPLETED": "Completato", - "SCHEDULED": "Scheduled" + "COMPLETED": "Completata", + "SCHEDULED": "Programmata" }, "CAMPAIGN_DETAILS": { - "SENT_FROM": "Sent from", - "ON": "on" + "SENT_FROM": "Inviata da", + "ON": "il" } }, "CREATE": { - "TITLE": "Create SMS campaign", - "CANCEL_BUTTON_TEXT": "annulla", + "TITLE": "Crea campagna SMS", + "CANCEL_BUTTON_TEXT": "Annulla", "CREATE_BUTTON_TEXT": "Crea", "FORM": { "TITLE": { "LABEL": "Titolo", "PLACEHOLDER": "Inserisci il titolo della campagna", - "ERROR": "Il titolo è obbligatorio" + "ERROR": "Titolo richiesto" }, "MESSAGE": { "LABEL": "Messaggio", "PLACEHOLDER": "Inserisci il messaggio della campagna", - "ERROR": "Il messaggio è obbligatorio" + "ERROR": "Messaggio richiesto" }, "INBOX": { - "LABEL": "Seleziona casella", - "PLACEHOLDER": "Seleziona casella", - "ERROR": "La casella è obbligatoria" + "LABEL": "Seleziona Inbox", + "PLACEHOLDER": "Seleziona Inbox", + "ERROR": "Inbox richiesta" }, "AUDIENCE": { "LABEL": "Pubblico", "PLACEHOLDER": "Seleziona le etichette dei clienti", - "ERROR": "Il pubblico è obbligatorio" + "ERROR": "Pubblico richiesto" }, "SCHEDULED_AT": { - "LABEL": "Orario previsto", + "LABEL": "Orario programmato", "PLACEHOLDER": "Seleziona l'orario", "ERROR": "È richiesto un orario programmato" }, "BUTTONS": { "CREATE": "Crea", - "CANCEL": "annulla" + "CANCEL": "Annulla" }, "API": { - "SUCCESS_MESSAGE": "SMS campaign created successfully", - "ERROR_MESSAGE": "Si è verificato un errore, riprova." + "SUCCESS_MESSAGE": "Campagna SMS creata con successo", + "ERROR_MESSAGE": "Si è verificato un errore. Riprova." } } } }, "WHATSAPP": { - "HEADER_TITLE": "WhatsApp campaigns", - "NEW_CAMPAIGN": "Create campaign", + "HEADER_TITLE": "Campagne WhatsApp", + "NEW_CAMPAIGN": "Crea campagna", "EMPTY_STATE": { - "TITLE": "No WhatsApp campaigns are available", - "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started." + "TITLE": "Nessuna campagna WhatsApp disponibile", + "SUBTITLE": "Avvia una campagna WhatsApp per raggiungere direttamente i tuoi clienti. Invia offerte o fai annunci con facilità. Clicca su 'Crea campagna' per iniziare." }, "CARD": { "STATUS": { - "COMPLETED": "Completato", - "SCHEDULED": "Scheduled" + "COMPLETED": "Completata", + "SCHEDULED": "Programmata" }, "CAMPAIGN_DETAILS": { - "SENT_FROM": "Sent from", - "ON": "on" + "SENT_FROM": "Inviata da", + "ON": "il" } }, "CREATE": { - "TITLE": "Create WhatsApp campaign", - "CANCEL_BUTTON_TEXT": "annulla", + "TITLE": "Crea campagna WhatsApp", + "CANCEL_BUTTON_TEXT": "Annulla", "CREATE_BUTTON_TEXT": "Crea", "FORM": { "TITLE": { "LABEL": "Titolo", "PLACEHOLDER": "Inserisci il titolo della campagna", - "ERROR": "Il titolo è obbligatorio" + "ERROR": "Titolo richiesto" }, "INBOX": { - "LABEL": "Seleziona casella", - "PLACEHOLDER": "Seleziona casella", - "ERROR": "La casella è obbligatoria" + "LABEL": "Seleziona Inbox", + "PLACEHOLDER": "Seleziona Inbox", + "ERROR": "Inbox richiesta" }, "TEMPLATE": { - "LABEL": "WhatsApp Template", - "PLACEHOLDER": "Select a template", - "INFO": "Select a template to use for this campaign.", - "ERROR": "Template is required", + "LABEL": "Modello WhatsApp", + "PLACEHOLDER": "Seleziona un modello", + "INFO": "Seleziona un modello da utilizzare per questa campagna.", + "ERROR": "Modello richiesto", "PREVIEW_TITLE": "Elabora {templateName}", "LANGUAGE": "Lingua", "CATEGORY": "Categoria", "VARIABLES_LABEL": "Variabili", - "VARIABLE_PLACEHOLDER": "Enter value for {variable}" + "VARIABLE_PLACEHOLDER": "Inserisci il valore per {variable}" }, "AUDIENCE": { "LABEL": "Pubblico", "PLACEHOLDER": "Seleziona le etichette dei clienti", - "ERROR": "Il pubblico è obbligatorio" + "ERROR": "Pubblico richiesto" }, "SCHEDULED_AT": { - "LABEL": "Orario previsto", + "LABEL": "Orario programmato", "PLACEHOLDER": "Seleziona l'orario", "ERROR": "È richiesto un orario programmato" }, "BUTTONS": { "CREATE": "Crea", - "CANCEL": "annulla" + "CANCEL": "Annulla" }, "API": { - "SUCCESS_MESSAGE": "WhatsApp campaign created successfully", - "ERROR_MESSAGE": "Si è verificato un errore, riprova." + "SUCCESS_MESSAGE": "Campagna WhatsApp creata con successo", + "ERROR_MESSAGE": "Si è verificato un errore. Riprova." } } } }, "CONFIRM_DELETE": { "TITLE": "Sei sicuro di voler eliminare?", - "DESCRIPTION": "The delete action is permanent and cannot be reversed.", + "DESCRIPTION": "L'azione di eliminazione è permanente e non può essere annullata.", "CONFIRM": "Elimina", "API": { "SUCCESS_MESSAGE": "Campagna eliminata con successo", - "ERROR_MESSAGE": "Si è verificato un errore, riprova." + "ERROR_MESSAGE": "Si è verificato un errore. Riprova." } } } diff --git a/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json index 929517d69..69273f65b 100644 --- a/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json +++ b/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json @@ -1,15 +1,15 @@ { "CANNED_MGMT": { - "HEADER": "Risposte predefinite", - "LEARN_MORE": "Learn more about canned responses", - "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ", - "HEADER_BTN_TXT": "Add canned response", - "LOADING": "Fetching canned responses...", + "HEADER": "Risposte Predefinite", + "LEARN_MORE": "Scopri di più sulle risposte predefinite", + "DESCRIPTION": "Le Risposte Predefinite sono modelli di risposte preparate che ti aiutano a rispondere rapidamente alle conversazioni. Gli operatori possono digitare il carattere '/' seguito dallo shortcode per inserire una risposta predefinita durante una conversazione. ", + "HEADER_BTN_TXT": "Aggiungi risposta predefinita", + "LOADING": "Caricamento risposte predefinite...", "SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta.", "LIST": { "404": "Non ci sono risposte predefinite disponibili in questo account.", "TITLE": "Gestisci le risposte predefinite", - "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.", + "DESC": "Le risposte predefinite sono modelli di risposte preparate che possono essere utilizzate per rispondere rapidamente alle conversazioni.", "TABLE_HEADER": { "SHORT_CODE": "Short code", "CONTENT": "Contenuto", @@ -17,60 +17,60 @@ } }, "ADD": { - "TITLE": "Add canned response", - "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.", + "TITLE": "Aggiungi risposta predefinita", + "DESC": "Le risposte predefinite sono modelli di risposte preparate che possono essere utilizzate per rispondere rapidamente alle conversazioni.", "CANCEL_BUTTON_TEXT": "Annulla", "FORM": { "SHORT_CODE": { "LABEL": "Short code", - "PLACEHOLDER": "Please enter a short code.", - "ERROR": "Short Code is required." + "PLACEHOLDER": "Inserisci uno short code.", + "ERROR": "Short Code richiesto." }, "CONTENT": { "LABEL": "Messaggio", - "PLACEHOLDER": "Please write the message you want to save as a template to use later.", - "ERROR": "Message is required." + "PLACEHOLDER": "Scrivi il messaggio che vuoi salvare come modello da usare più tardi.", + "ERROR": "Messaggio richiesto." }, "SUBMIT": "Invia" }, "API": { - "SUCCESS_MESSAGE": "Canned response added successfully.", + "SUCCESS_MESSAGE": "Risposta predefinita aggiunta correttamente.", "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi" } }, "EDIT": { - "TITLE": "Edit canned response", + "TITLE": "Modifica risposta predefinita", "CANCEL_BUTTON_TEXT": "Annulla", "FORM": { "SHORT_CODE": { "LABEL": "Short code", - "PLACEHOLDER": "Please enter a shortcode.", - "ERROR": "Short code is required." + "PLACEHOLDER": "Inserisci uno shortcode.", + "ERROR": "Short code richiesto." }, "CONTENT": { "LABEL": "Messaggio", - "PLACEHOLDER": "Please write the message you want to save as a template to use later.", - "ERROR": "Il messaggio è obbligatorio." + "PLACEHOLDER": "Scrivi il messaggio che vuoi salvare come modello da usare più tardi.", + "ERROR": "Messaggio richiesto." }, "SUBMIT": "Invia" }, "BUTTON_TEXT": "Modifica", "API": { - "SUCCESS_MESSAGE": "Canned response is updated successfully.", + "SUCCESS_MESSAGE": "Risposta predefinita aggiornata correttamente.", "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi" } }, "DELETE": { "BUTTON_TEXT": "Elimina", "API": { - "SUCCESS_MESSAGE": "Canned response deleted successfully.", + "SUCCESS_MESSAGE": "Risposta predefinita eliminata correttamente.", "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi" }, "CONFIRM": { "TITLE": "Conferma eliminazione", "MESSAGE": "Sei sicuro di voler eliminare ", - "YES": "Yes, delete ", - "NO": "No, keep " + "YES": "Sì, elimina ", + "NO": "No, mantieni " } } } diff --git a/app/javascript/dashboard/i18n/locale/it/chatlist.json b/app/javascript/dashboard/i18n/locale/it/chatlist.json index f53f3f6de..fd2e60294 100644 --- a/app/javascript/dashboard/i18n/locale/it/chatlist.json +++ b/app/javascript/dashboard/i18n/locale/it/chatlist.json @@ -1,81 +1,81 @@ { "CHAT_LIST": { - "LOADING": "Recupero delle conversazioni", + "LOADING": "Caricamento conversazioni", "LOAD_MORE_CONVERSATIONS": "Carica altre conversazioni", "EOF": "Tutte le conversazioni caricate 🎉", "LIST": { "404": "Non ci sono conversazioni attive in questo gruppo." }, - "FAILED_TO_SEND": "Failed to send", + "FAILED_TO_SEND": "Invio non riuscito", "TAB_HEADING": "Conversazioni", "MENTION_HEADING": "Menzioni", - "UNATTENDED_HEADING": "Non partecipate", + "UNATTENDED_HEADING": "Non Partecipate", "SEARCH": { - "INPUT": "Cerca persone, Chat, risposte salvate .." + "INPUT": "Cerca persone, chat, risposte salvate .." }, - "FILTER_ALL": "Tutti", + "FILTER_ALL": "Tutte", "ASSIGNEE_TYPE_TABS": { "me": "Mie", - "unassigned": "Non assegnate", - "all": "Tutti" + "unassigned": "Non Assegnate", + "all": "Tutte" }, "CHAT_STATUS_FILTER_ITEMS": { "open": { "TEXT": "Aperte" }, "resolved": { - "TEXT": "Risolti" + "TEXT": "Risolte" }, "pending": { - "TEXT": "In sospeso" + "TEXT": "In Sospeso" }, "snoozed": { - "TEXT": "Posticipato" + "TEXT": "Posticipate" }, "all": { - "TEXT": "Tutti" + "TEXT": "Tutte" } }, "VIEW_FILTER": "Visualizza", - "SORT_TOOLTIP_LABEL": "Sort conversations", + "SORT_TOOLTIP_LABEL": "Ordina conversazioni", "CHAT_SORT": { "STATUS": "Stato", - "ORDER_BY": "Order by" + "ORDER_BY": "Ordina per" }, "CHAT_TIME_STAMP": { "CREATED": { - "LATEST": "Created", - "OLDEST": "Creato il:" + "LATEST": "Creata", + "OLDEST": "Creata il:" }, "LAST_ACTIVITY": { - "NOT_ACTIVE": "Last activity:", - "ACTIVE": "Last activity" + "NOT_ACTIVE": "Ultima attività:", + "ACTIVE": "Ultima attività" } }, "SORT_ORDER_ITEMS": { "last_activity_at_asc": { - "TEXT": "Last activity: Oldest first" + "TEXT": "Ultima attività: prima le più vecchie" }, "last_activity_at_desc": { - "TEXT": "Last activity: Newest first" + "TEXT": "Ultima attività: prima le più recenti" }, "created_at_desc": { - "TEXT": "Created at: Newest first" + "TEXT": "Data creazione: prima le più recenti" }, "created_at_asc": { - "TEXT": "Created at: Oldest first" + "TEXT": "Data creazione: prima le più vecchie" }, "priority_desc": { - "TEXT": "Priority: Highest first" + "TEXT": "Priorità: prima le più importanti" }, "priority_asc": { - "TEXT": "Priority: Lowest first" + "TEXT": "Priorità: prima le meno importanti" }, "waiting_since_asc": { - "TEXT": "Pending Response: Longest first" + "TEXT": "In attesa di risposta: prima più tempo in attesa" }, "waiting_since_desc": { - "TEXT": "Pending Response: Shortest first" + "TEXT": "In attesa di risposta: prima meno tempo in attesa" } }, "ATTACHMENTS": { @@ -89,51 +89,51 @@ "CONTENT": "Messaggio video" }, "file": { - "CONTENT": "File allegato" + "CONTENT": "File Allegato" }, "location": { "CONTENT": "Posizione" }, "ig_reel": { - "CONTENT": "Instagram Reel" + "CONTENT": "Reel Instagram" }, "fallback": { "CONTENT": "ha condiviso un url" }, "contact": { - "CONTENT": "Shared contact" + "CONTENT": "Contatto condiviso" } }, "CHAT_SORT_BY_FILTER": { - "TITLE": "Sort conversation", + "TITLE": "Ordina conversazione", "DROPDOWN_TITLE": "Ordina per", "ITEMS": { "LATEST": { - "NAME": "Last activity at", - "LABEL": "Last activity" + "NAME": "Ultima attività", + "LABEL": "Ultima attività" }, "CREATED_AT": { - "NAME": "Creato il", - "LABEL": "Creato il" + "NAME": "Creata alle", + "LABEL": "Creata alle" }, "LAST_USER_MESSAGE_AT": { - "NAME": "Last user message at", - "LABEL": "Last message" + "NAME": "Ultimo messaggio dell'utente alle", + "LABEL": "Ultimo messaggio" } } }, "RECEIVED_VIA_EMAIL": "Ricevuto via email", "VIEW_TWEET_IN_TWITTER": "Visualizza tweet su Twitter", "REPLY_TO_TWEET": "Rispondi a questo tweet", - "LINK_TO_STORY": "Vai alla storia di instagram", + "LINK_TO_STORY": "Vai alla storia di Instagram", "SENT": "Inviato correttamente", - "READ": "Read successfully", - "DELIVERED": "Delivered successfully", - "NO_MESSAGES": "Nessun messaggio", + "READ": "Letto correttamente", + "DELIVERED": "Consegnato correttamente", + "NO_MESSAGES": "Nessun Messaggio", "NO_CONTENT": "Nessun contenuto disponibile", - "HIDE_QUOTED_TEXT": "Nascondi testo citato", - "SHOW_QUOTED_TEXT": "Mostra testo citato", - "MESSAGE_READ": "Leggi", - "SENDING": "Sending" + "HIDE_QUOTED_TEXT": "Nascondi Testo Citato", + "SHOW_QUOTED_TEXT": "Mostra Testo Citato", + "MESSAGE_READ": "Letto", + "SENDING": "Invio" } } diff --git a/app/javascript/dashboard/i18n/locale/it/components.json b/app/javascript/dashboard/i18n/locale/it/components.json index 9df2334b7..9f559cade 100644 --- a/app/javascript/dashboard/i18n/locale/it/components.json +++ b/app/javascript/dashboard/i18n/locale/it/components.json @@ -1,34 +1,34 @@ { "PAGINATION_FOOTER": { - "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items", - "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages" + "SHOWING": "Mostrando {startItem} - {endItem} di {totalItems} elementi", + "CURRENT_PAGE_INFO": "{currentPage} di {totalPages} pagine" }, "COMBOBOX": { - "PLACEHOLDER": "Select an option...", - "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`", + "PLACEHOLDER": "Seleziona un'opzione...", + "EMPTY_SEARCH_RESULTS": "Nessun elemento trovato per il termine di ricerca `{searchTerm}`", "EMPTY_STATE": "Nessun risultato trovato.", - "SEARCH_PLACEHOLDER": "Search...", - "MORE": "+{count} more" + "SEARCH_PLACEHOLDER": "Cerca...", + "MORE": "+{count} altre" }, "DROPDOWN_MENU": { - "SEARCH_PLACEHOLDER": "Search...", + "SEARCH_PLACEHOLDER": "Cerca...", "EMPTY_STATE": "Nessun risultato trovato.", - "SEARCHING": "Searching..." + "SEARCHING": "Ricerca..." }, "DIALOG": { "BUTTONS": { - "CANCEL": "annulla", + "CANCEL": "Annulla", "CONFIRM": "Conferma" } }, "PHONE_INPUT": { - "SEARCH_PLACEHOLDER": "Search country", - "ERROR": "Phone number should be empty or in E.164 format", - "DIAL_CODE_ERROR": "Please select a dial code from the list" + "SEARCH_PLACEHOLDER": "Cerca Paese", + "ERROR": "Il numero di telefono deve essere vuoto o in formato E.164", + "DIAL_CODE_ERROR": "Seleziona un codice di chiamata dalla lista" }, "THUMBNAIL": { "AUTHOR": { - "NOT_AVAILABLE": "Author is not available" + "NOT_AVAILABLE": "Autore non disponibile" } }, "BREADCRUMB": { @@ -42,13 +42,13 @@ }, "FEATURE_SPOTLIGHT": { "LEARN_MORE": "Scopri di più", - "WATCH_VIDEO": "Watch video" + "WATCH_VIDEO": "Guarda video" }, "DURATION_INPUT": { - "MINUTES": "Minutes", - "HOURS": "Hours", - "DAYS": "Days", - "PLACEHOLDER": "Enter duration" + "MINUTES": "Minuti", + "HOURS": "Ore", + "DAYS": "Giorni", + "PLACEHOLDER": "Inserisci durata" }, "CHANNEL_SELECTOR": { "COMING_SOON": "Coming Soon!" diff --git a/app/javascript/dashboard/i18n/locale/it/contact.json b/app/javascript/dashboard/i18n/locale/it/contact.json index 710ae194a..a27d353a4 100644 --- a/app/javascript/dashboard/i18n/locale/it/contact.json +++ b/app/javascript/dashboard/i18n/locale/it/contact.json @@ -1,76 +1,76 @@ { "CONTACT_PANEL": { - "NOT_AVAILABLE": "Non disponibile", - "EMAIL_ADDRESS": "Indirizzo email", + "NOT_AVAILABLE": "Non Disponibile", + "EMAIL_ADDRESS": "Indirizzo Email", "PHONE_NUMBER": "Numero di telefono", "IDENTIFIER": "Identificatore", - "COPY_SUCCESSFUL": "Copiato negli appunti con successo", + "COPY_SUCCESSFUL": "Copiato negli appunti", "COMPANY": "Azienda", "LOCATION": "Posizione", - "BROWSER_LANGUAGE": "Lingua del browser", - "CONVERSATION_TITLE": "Dettagli conversazione", - "VIEW_PROFILE": "Visualizza profilo", + "BROWSER_LANGUAGE": "Lingua del Browser", + "CONVERSATION_TITLE": "Dettagli Conversazione", + "VIEW_PROFILE": "Visualizza Profilo", "BROWSER": "Browser", - "OS": "Sistema operativo", + "OS": "Sistema Operativo", "INITIATED_FROM": "Iniziato da", "INITIATED_AT": "Iniziato alle", "IP_ADDRESS": "Indirizzo IP", - "CREATED_AT_LABEL": "Created", + "CREATED_AT_LABEL": "Creato il", "NEW_MESSAGE": "Nuovo messaggio", - "CALL": "Call", - "CALL_UNDER_DEVELOPMENT": "Calling is under development", + "CALL": "Chiama", + "CALL_UNDER_DEVELOPMENT": "Le chiamate sono in fase di sviluppo", "VOICE_INBOX_PICKER": { - "TITLE": "Choose a voice inbox" + "TITLE": "Scegli una inbox vocale" }, "CONVERSATIONS": { "NO_RECORDS_FOUND": "Non ci sono precedenti conversazioni associate a questo contatto.", - "TITLE": "Conversazioni precedenti" + "TITLE": "Conversazioni Precedenti" }, "LABELS": { "CONTACT": { - "TITLE": "Etichette di contatto", + "TITLE": "Etichette di Contatto", "ERROR": "Impossibile aggiornare le etichette" }, "CONVERSATION": { - "TITLE": "Etichette di conversazione", - "ADD_BUTTON": "Aggiungi etichette" + "TITLE": "Etichette di Conversazione", + "ADD_BUTTON": "Aggiungi Etichette" }, "LABEL_SELECT": { - "TITLE": "Aggiungi etichette", + "TITLE": "Aggiungi Etichette", "PLACEHOLDER": "Cerca etichette", "NO_RESULT": "Nessuna etichetta trovata", - "CREATE_LABEL": "Create new label" + "CREATE_LABEL": "Crea nuova etichetta" } }, "MERGE_CONTACT": "Unisci contatto", "CONTACT_ACTIONS": "Azioni contatto", - "MUTE_CONTACT": "Block Contact", - "UNMUTE_CONTACT": "Unblock Contact", - "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.", - "UNMUTED_SUCCESS": "This contact is unblocked successfully.", - "SEND_TRANSCRIPT": "Invia trascrizione", + "MUTE_CONTACT": "Blocca Contatto", + "UNMUTE_CONTACT": "Sblocca Contatto", + "MUTED_SUCCESS": "Questo contatto è stato bloccato. Non sarai avvisato di nessuna conversazione futura.", + "UNMUTED_SUCCESS": "Questo contatto è stato sbloccato.", + "SEND_TRANSCRIPT": "Invia Trascrizione", "EDIT_LABEL": "Modifica", "SIDEBAR_SECTIONS": { - "CUSTOM_ATTRIBUTES": "Attributi personalizzati", - "CONTACT_LABELS": "Etichette di contatto", - "PREVIOUS_CONVERSATIONS": "Conversazioni precedenti", + "CUSTOM_ATTRIBUTES": "Attributi Personalizzati", + "CONTACT_LABELS": "Etichette di Contatto", + "PREVIOUS_CONVERSATIONS": "Conversazioni Precedenti", "NO_RECORDS_FOUND": "Nessun attributo trovato" } }, "EDIT_CONTACT": { - "BUTTON_LABEL": "Modifica contatto", - "TITLE": "Modifica contatto", + "BUTTON_LABEL": "Modifica Contatto", + "TITLE": "Modifica Contatto", "DESC": "Modifica dettagli contatto" }, "DELETE_CONTACT": { - "BUTTON_LABEL": "Elimina contatto", + "BUTTON_LABEL": "Elimina Contatto", "TITLE": "Elimina contatto", "DESC": "Elimina dettagli contatto", "CONFIRM": { "TITLE": "Conferma eliminazione", "MESSAGE": "Sei sicuro di voler eliminare ", - "YES": "Sì, elimina", - "NO": "No, conserva" + "YES": "Sì, Elimina", + "NO": "No, Mantieni" }, "API": { "SUCCESS_MESSAGE": "Contatto eliminato con successo", @@ -82,28 +82,28 @@ "SUBMIT": "Invia", "CANCEL": "Annulla", "AVATAR": { - "LABEL": "Immagine del contatto" + "LABEL": "Avatar del contatto" }, "NAME": { "PLACEHOLDER": "Inserisci il nome completo del contatto", - "LABEL": "Nome completo" + "LABEL": "Nome Completo" }, "BIO": { - "PLACEHOLDER": "Inserisci la biografia del contatto", - "LABEL": "Biografia" + "PLACEHOLDER": "Inserisci la bio del contatto", + "LABEL": "Bio" }, "EMAIL_ADDRESS": { "PLACEHOLDER": "Inserisci l'indirizzo email del contatto", - "LABEL": "Indirizzo email", + "LABEL": "Indirizzo Email", "DUPLICATE": "Questo indirizzo email è in uso per un altro contatto.", "ERROR": "Inserisci un indirizzo email valido." }, "PHONE_NUMBER": { "PLACEHOLDER": "Inserisci il numero di telefono del contatto", - "LABEL": "Numero di telefono", + "LABEL": "Numero di Telefono", "HELP": "Il numero di telefono dovrebbe essere di formato E.164 es.: +3915555555 [+][codice nazione][codice zona][numero di telefono locale]", "ERROR": "Il numero di telefono deve essere vuoto o di formato E.164", - "DIAL_CODE_ERROR": "Please select a dial code from the list", + "DIAL_CODE_ERROR": "Seleziona un codice di chiamata dalla lista", "DUPLICATE": "Questo numero di telefono è in uso per un altro contatto." }, "LOCATION": { @@ -112,18 +112,18 @@ }, "COMPANY_NAME": { "PLACEHOLDER": "Inserisci il nome dell'azienda", - "LABEL": "Nome azienda" + "LABEL": "Nome Azienda" }, "COUNTRY": { - "PLACEHOLDER": "Enter the country name", - "LABEL": "Nome del paese", - "SELECT_PLACEHOLDER": "Select", + "PLACEHOLDER": "Inserisci il nome del Paese", + "LABEL": "Nome Paese", + "SELECT_PLACEHOLDER": "Seleziona", "REMOVE": "Rimuovi", - "SELECT_COUNTRY": "Select Country" + "SELECT_COUNTRY": "Seleziona Paese" }, "CITY": { - "PLACEHOLDER": "Enter the city name", - "LABEL": "City Name" + "PLACEHOLDER": "Inserisci il nome della città", + "LABEL": "Nome Città" }, "SOCIAL_PROFILES": { "FACEBOOK": { @@ -157,15 +157,15 @@ "BUTTON_LABEL": "Avvia conversazione", "TITLE": "Nuova conversazione", "DESC": "Avvia una nuova conversazione inviando un nuovo messaggio.", - "NO_INBOX": "Impossibile trovare una casella per inizializzare una nuova conversazione con questo contatto.", + "NO_INBOX": "Impossibile trovare una Inbox per avviare una nuova conversazione con questo contatto.", "FORM": { "TO": { "LABEL": "A" }, "INBOX": { - "LABEL": "Casella", - "PLACEHOLDER": "Choose source inbox", - "ERROR": "Seleziona una casella" + "LABEL": "Via Inbox", + "PLACEHOLDER": "Seleziona una inbox di origine", + "ERROR": "Seleziona una Inbox" }, "SUBJECT": { "LABEL": "Oggetto", @@ -178,8 +178,8 @@ "ERROR": "Il messaggio non può essere vuoto" }, "ATTACHMENTS": { - "SELECT": "Choose files", - "HELP_TEXT": "Drag and drop files here or choose files to attach" + "SELECT": "Seleziona file", + "HELP_TEXT": "Trascina qui i file o seleziona i file da allegare" }, "SUBMIT": "Invia messaggio", "CANCEL": "Annulla", @@ -191,15 +191,15 @@ "CONTACTS_PAGE": { "LIST": { "TABLE_HEADER": { - "SOCIAL_PROFILES": "Profili social" + "SOCIAL_PROFILES": "Profili Social" } } }, "CUSTOM_ATTRIBUTES": { "BUTTON": "Aggiungi attributo personalizzato", - "COPY_SUCCESSFUL": "Copiato negli appunti con successo", - "SHOW_MORE": "Show all attributes", - "SHOW_LESS": "Show less attributes", + "COPY_SUCCESSFUL": "Copiato negli appunti", + "SHOW_MORE": "Mostra tutti gli attributi", + "SHOW_LESS": "Mostra meno attributi", "ACTIONS": { "COPY": "Copia attributo", "DELETE": "Elimina attributo", @@ -248,9 +248,9 @@ } }, "VALIDATIONS": { - "REQUIRED": "Valore valido richiesto", + "REQUIRED": "È richiesto un valore valido", "INVALID_URL": "URL non valido", - "INVALID_INPUT": "Invalid Input" + "INVALID_INPUT": "Input non valido" } }, "MERGE_CONTACTS": { @@ -271,7 +271,7 @@ "ATTRIBUTE_WARNING": "I dettagli del contatto di {primaryContactName} verranno copiati in {parentContactName}." }, "SEARCH": { - "ERROR_MESSAGE": "Something went wrong. Please try again later." + "ERROR_MESSAGE": "Qualcosa è andato storto. Riprova più tardi." }, "FORM": { "SUBMIT": " Unisci contatti", @@ -289,48 +289,48 @@ "CONTACTS_LAYOUT": { "HEADER": { "TITLE": "Contatti", - "SEARCH_TITLE": "Search contacts", + "SEARCH_TITLE": "Cerca contatti", "ACTIVE_TITLE": "Contatti attivi", - "SEARCH_PLACEHOLDER": "Search...", + "SEARCH_PLACEHOLDER": "Cerca...", "MESSAGE_BUTTON": "Messaggio", "SEND_MESSAGE": "Invia messaggio", - "BLOCK_CONTACT": "Block contact", - "UNBLOCK_CONTACT": "Unblock contact", + "BLOCK_CONTACT": "Blocca contatto", + "UNBLOCK_CONTACT": "Sblocca contatto", "BREADCRUMB": { "CONTACTS": "Contatti" }, "ACTIONS": { "CONTACT_CREATION": { - "ADD_CONTACT": "Add contact", - "EXPORT_CONTACT": "Export contacts", - "IMPORT_CONTACT": "Import contacts", - "SAVE_CONTACT": "Save contact", + "ADD_CONTACT": "Aggiungi contatto", + "EXPORT_CONTACT": "Esporta contatti", + "IMPORT_CONTACT": "Importa contatti", + "SAVE_CONTACT": "Salva contatto", "EMAIL_ADDRESS_DUPLICATE": "Questo indirizzo email è in uso per un altro contatto.", "PHONE_NUMBER_DUPLICATE": "Questo numero di telefono è in uso per un altro contatto.", "SUCCESS_MESSAGE": "Contatto salvato con successo", - "ERROR_MESSAGE": "Unable to save contact. Please try again later." + "ERROR_MESSAGE": "Impossibile salvare il contatto. Riprova più tardi." }, - "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully", - "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.", - "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully", - "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.", + "BLOCK_SUCCESS_MESSAGE": "Questo contatto è stato bloccato correttamente", + "BLOCK_ERROR_MESSAGE": "Impossibile bloccare il contatto. Riprova più tardi.", + "UNBLOCK_SUCCESS_MESSAGE": "Questo contatto è stato sbloccato correttamente", + "UNBLOCK_ERROR_MESSAGE": "Impossibile sbloccare il contatto. Riprova più tardi.", "IMPORT_CONTACT": { - "TITLE": "Import contacts", - "DESCRIPTION": "Importa contatti attraverso un file CSV.", + "TITLE": "Importa contatti", + "DESCRIPTION": "Importa contatti da un file CSV.", "DOWNLOAD_LABEL": "Scarica un csv di esempio.", "LABEL": "File CSV:", - "CHOOSE_FILE": "Choose file", + "CHOOSE_FILE": "Seleziona file", "CHANGE": "Cambia", - "CANCEL": "annulla", + "CANCEL": "Annulla", "IMPORT": "Importa", - "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.", + "SUCCESS_MESSAGE": "Riceverai una notifica via email quando l'importazione sarà completata.", "ERROR_MESSAGE": "Si è verificato un errore, riprova" }, "EXPORT_CONTACT": { - "TITLE": "Export contacts", - "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts", - "CONFIRM": "Export", - "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.", + "TITLE": "Esporta contatti", + "DESCRIPTION": "Esporta rapidamente un file csv con i dettagli completi dei tuoi contatti", + "CONFIRM": "Esporta", + "SUCCESS_MESSAGE": "Esportazione in corso. Riceverai una notifica via email quando il file di esportazione sarà pronto per essere scaricato.", "ERROR_MESSAGE": "Si è verificato un errore, riprova" }, "SORT_BY": { @@ -342,15 +342,15 @@ "COMPANY": "Azienda", "COUNTRY": "Paese", "CITY": "Città", - "LAST_ACTIVITY": "Last activity", - "CREATED_AT": "Creato il" + "LAST_ACTIVITY": "Ultima attività", + "CREATED_AT": "Data creazione" } }, "ORDER": { - "LABEL": "Ordering", + "LABEL": "Ordinamento", "OPTIONS": { - "ASCENDING": "Ascending", - "DESCENDING": "Descending" + "ASCENDING": "Ascendente", + "DESCENDING": "Discendente" } }, "FILTERS": { @@ -358,24 +358,24 @@ "TITLE": "Vuoi salvare questo filtro?", "CONFIRM": "Salva filtro", "LABEL": "Nome", - "PLACEHOLDER": "Enter the name of the filter", - "ERROR": "Enter a valid name", - "SUCCESS_MESSAGE": "Filter saved successfully", - "ERROR_MESSAGE": "Unable to save filter. Please try again later." + "PLACEHOLDER": "Inserisci il nome del filtro", + "ERROR": "Inserisci un nome valido", + "SUCCESS_MESSAGE": "Filtro salvato correttamente", + "ERROR_MESSAGE": "Impossibile salvare il filtro. Riprova più tardi." }, "DELETE_SEGMENT": { - "TITLE": "Conferma eliminazione", - "DESCRIPTION": "Are you sure you want to delete this filter?", - "CONFIRM": "Sì, elimina", - "CANCEL": "No, Cancel", - "SUCCESS_MESSAGE": "Filter deleted successfully", - "ERROR_MESSAGE": "Unable to delete filter. Please try again later." + "TITLE": "Conferma Eliminazione", + "DESCRIPTION": "Sei sicuro di voler eliminare questo filtro?", + "CONFIRM": "Sì, Elimina", + "CANCEL": "No, Annulla", + "SUCCESS_MESSAGE": "Filtro eliminato con successo", + "ERROR_MESSAGE": "Impossibile eliminare il filtro. Riprova più tardi." } } } }, "PAGINATION_FOOTER": { - "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts" + "SHOWING": "Mostrando {startItem} - {endItem} di {totalItems} contatti" }, "FILTER": { "NAME": "Nome", @@ -384,83 +384,83 @@ "IDENTIFIER": "Identificatore", "COUNTRY": "Paese", "CITY": "Città", - "CREATED_AT": "Creato il", - "LAST_ACTIVITY": "Last activity", + "CREATED_AT": "Data creazione", + "LAST_ACTIVITY": "Ultima attività", "REFERER_LINK": "Link referente", - "BLOCKED": "Blocked", + "BLOCKED": "Bloccato", "BLOCKED_TRUE": "Vero", "BLOCKED_FALSE": "Falso", "BUTTONS": { - "CLEAR_FILTERS": "Clear filters", - "UPDATE_SEGMENT": "Update segment", + "CLEAR_FILTERS": "Rimuovi filtri", + "UPDATE_SEGMENT": "Aggiorna segmento", "APPLY_FILTERS": "Applica filtri", - "ADD_FILTER": "Add filter" + "ADD_FILTER": "Aggiungi filtro" }, "TITLE": "Filtra contatti", - "EDIT_SEGMENT": "Edit segment", + "EDIT_SEGMENT": "Modifica segmento", "SEGMENT": { - "LABEL": "Segment name", - "INPUT_PLACEHOLDER": "Enter the name of the segment" + "LABEL": "Nome segmento", + "INPUT_PLACEHOLDER": "Inserisci il nome del segmento" }, "ACTIVE_FILTERS": { - "MORE_FILTERS": "+ {count} more filters", - "CLEAR_FILTERS": "Clear filters" + "MORE_FILTERS": "+ {count} altri filtri", + "CLEAR_FILTERS": "Rimuovi filtri" } }, "CARD": { - "OF": "of", + "OF": "di", "VIEW_DETAILS": "Visualizza dettagli", "EDIT_DETAILS_FORM": { "TITLE": "Modifica dettagli contatto", "FORM": { "FIRST_NAME": { - "PLACEHOLDER": "Enter the first name" + "PLACEHOLDER": "Inserisci il nome" }, "LAST_NAME": { - "PLACEHOLDER": "Enter the last name" + "PLACEHOLDER": "Inserisci il cognome" }, "EMAIL_ADDRESS": { - "PLACEHOLDER": "Enter the email address", + "PLACEHOLDER": "Inserisci l'indirizzo email", "DUPLICATE": "Questo indirizzo email è in uso per un altro contatto." }, "PHONE_NUMBER": { - "PLACEHOLDER": "Enter the phone number", + "PLACEHOLDER": "Inserisci il numero di telefono", "DUPLICATE": "Questo numero di telefono è in uso per un altro contatto." }, "CITY": { - "PLACEHOLDER": "Enter the city name" + "PLACEHOLDER": "Inserisci il nome della città" }, "COUNTRY": { - "PLACEHOLDER": "Select country" + "PLACEHOLDER": "Seleziona Paese" }, "BIO": { - "PLACEHOLDER": "Enter the bio" + "PLACEHOLDER": "Inserisci la bio" }, "COMPANY_NAME": { "PLACEHOLDER": "Inserisci il nome dell'azienda" } }, - "UPDATE_BUTTON": "Update contact", - "SUCCESS_MESSAGE": "Contact updated successfully", - "ERROR_MESSAGE": "Unable to update contact. Please try again later." + "UPDATE_BUTTON": "Aggiorna contatto", + "SUCCESS_MESSAGE": "Contatto aggiornato correttamente", + "ERROR_MESSAGE": "Impossibile aggiornare il contatto. Riprova più tardi." }, "SOCIAL_MEDIA": { - "TITLE": "Edit social links", + "TITLE": "Modifica link social", "FORM": { "FACEBOOK": { - "PLACEHOLDER": "Add Facebook" + "PLACEHOLDER": "Aggiungi Facebook" }, "GITHUB": { - "PLACEHOLDER": "Add Github" + "PLACEHOLDER": "Aggiungi Github" }, "INSTAGRAM": { - "PLACEHOLDER": "Add Instagram" + "PLACEHOLDER": "Aggiungi Instagram" }, "LINKEDIN": { - "PLACEHOLDER": "Add LinkedIn" + "PLACEHOLDER": "Aggiungi LinkedIn" }, "TWITTER": { - "PLACEHOLDER": "Add Twitter" + "PLACEHOLDER": "Aggiungi Twitter" } } }, @@ -470,14 +470,14 @@ } }, "DETAILS": { - "CREATED_AT": "Created {date}", - "LAST_ACTIVITY": "Last active {date}", - "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible", + "CREATED_AT": "Creato il {date}", + "LAST_ACTIVITY": "Ultima attività {date}", + "DELETE_CONTACT_DESCRIPTION": "Elimina definitivamente questo contatto. Questa azione è irreversibile", "DELETE_CONTACT": "Elimina contatto", "DELETE_DIALOG": { "TITLE": "Conferma eliminazione", "DESCRIPTION": "Sei sicuro di voler eliminare questo contatto?", - "CONFIRM": "Sì, elimina", + "CONFIRM": "Sì, Elimina", "API": { "SUCCESS_MESSAGE": "Contatto eliminato con successo", "ERROR_MESSAGE": "Impossibile eliminare il contatto. Riprova più tardi." @@ -485,41 +485,41 @@ }, "AVATAR": { "UPLOAD": { - "ERROR_MESSAGE": "Could not upload avatar. Please try again later.", - "SUCCESS_MESSAGE": "Avatar uploaded successfully" + "ERROR_MESSAGE": "Impossibile caricare l'avatar. Riprova più tardi.", + "SUCCESS_MESSAGE": "Avatar caricato con successo" }, "DELETE": { "SUCCESS_MESSAGE": "Avatar eliminato con successo", - "ERROR_MESSAGE": "Could not delete avatar. Please try again later." + "ERROR_MESSAGE": "Impossibile eliminare l'avatar. Riprova più tardi." } } }, "SIDEBAR": { "TABS": { "ATTRIBUTES": "Attributi", - "HISTORY": "History", + "HISTORY": "Cronologia", "NOTES": "Note", - "MERGE": "Merge" + "MERGE": "Unisci" }, "HISTORY": { "EMPTY_STATE": "Non ci sono precedenti conversazioni associate a questo contatto" }, "ATTRIBUTES": { - "SEARCH_PLACEHOLDER": "Search for attributes", - "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes", - "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.", + "SEARCH_PLACEHOLDER": "Cerca attributi", + "UNUSED_ATTRIBUTES": "{count} Attributi utilizzati | {count} Attributi inutilizzati", + "EMPTY_STATE": "Non ci sono attributi personalizzati dei contatti disponibili in questo account. Puoi creare un attributo personalizzato nelle impostazioni.", "YES": "Sì", "NO": "No", "TRIGGER": { "SELECT": "Seleziona valore", - "INPUT": "Enter value" + "INPUT": "Inserisci valore" }, "VALIDATIONS": { - "INVALID_NUMBER": "Invalid number", - "REQUIRED": "Valore valido richiesto", - "INVALID_INPUT": "Invalid input", + "INVALID_NUMBER": "Numero non valido", + "REQUIRED": "È richiesto un valore valido", + "INVALID_INPUT": "Input non valido", "INVALID_URL": "URL non valido", - "INVALID_DATE": "Invalid date" + "INVALID_DATE": "Data non valida" }, "NO_ATTRIBUTES": "Nessun attributo trovato", "API": { @@ -531,99 +531,99 @@ }, "MERGE": { "TITLE": "Unisci contatto", - "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.", + "DESCRIPTION": "Unisci due profili in uno solo, inclusi tutti gli attributi e le conversazioni. In caso di conflitti, gli attributi del contatto primario avranno la precedenza.", "PRIMARY": "Contatto primario", - "PRIMARY_HELP_LABEL": "To be saved", - "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding", - "PARENT": "To be merged", + "PRIMARY_HELP_LABEL": "Da salvare", + "PRIMARY_REQUIRED_ERROR": "Seleziona un contatto da unire prima di procedere", + "PARENT": "Da unire", "PARENT_HELP_LABEL": "Da eliminare", - "EMPTY_STATE": "No contacts found", - "PLACEHOLDER": "Search for primary contact", + "EMPTY_STATE": "Nessun contatto trovato", + "PLACEHOLDER": "Cerca contatto primario", "SEARCH_PLACEHOLDER": "Cerca un contatto", - "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.", + "SEARCH_ERROR_MESSAGE": "Impossibile cercare i contatti. Riprova più tardi.", "SUCCESS_MESSAGE": "Contatto unito con successo", "ERROR_MESSAGE": "Impossibile unire i contatti, riprova!", - "IS_SEARCHING": "Searching...", + "IS_SEARCHING": "Ricerca...", "BUTTONS": { - "CANCEL": "annulla", + "CANCEL": "Annulla", "CONFIRM": "Unisci contatto" } }, "NOTES": { "PLACEHOLDER": "Aggiungi una nota", - "WROTE": "wrote", - "YOU": "You", - "SAVE": "Save note", - "ADD_NOTE": "Add contact note", - "EXPAND": "Expand", + "WROTE": "ha scritto", + "YOU": "Tu", + "SAVE": "Salva nota", + "ADD_NOTE": "Aggiungi nota contatto", + "EXPAND": "Espandi", "COLLAPSE": "Comprimi", "NO_NOTES": "Nessuna nota, puoi aggiungere note dalla pagina dei dettagli del contatto.", - "EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above.", - "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one." + "EMPTY_STATE": "Non ci sono note associate a questo contatto. Puoi aggiungere una nota digitando nella casella sopra.", + "CONVERSATION_EMPTY_STATE": "Non ci sono ancora note. Usa il pulsante Aggiungi nota per crearne una." } }, "EMPTY_STATE": { - "TITLE": "No contacts found in this account", - "SUBTITLE": "Start adding new contacts by clicking on the button below", - "BUTTON_LABEL": "Add contact", + "TITLE": "Nessun contatto trovato in questo account", + "SUBTITLE": "Inizia ad aggiungere nuovi contatti cliccando sul pulsante qui sotto", + "BUTTON_LABEL": "Aggiungi contatto", "SEARCH_EMPTY_STATE_TITLE": "Nessun contatto corrisponde alla tua ricerca 🔍", - "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋", + "LIST_EMPTY_STATE_TITLE": "Nessun contatto disponibile in questa vista 📋", "ACTIVE_EMPTY_STATE_TITLE": "Nessun contatto attivo al momento 🌙" } }, "COMPOSE_NEW_CONVERSATION": { "CONTACT_SEARCH": { - "ERROR_MESSAGE": "We couldn’t complete the search. Please try again." + "ERROR_MESSAGE": "Non siamo riusciti a completare la ricerca. Riprova." }, "FORM": { "GO_TO_CONVERSATION": "Visualizza", - "SUCCESS_MESSAGE": "The message was sent successfully!", - "ERROR_MESSAGE": "An error occurred while creating the conversation. Please try again later.", - "NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.", + "SUCCESS_MESSAGE": "Messaggio inviato con successo!", + "ERROR_MESSAGE": "Si è verificato un errore durante la creazione della conversazione. Riprova più tardi.", + "NO_INBOX_ALERT": "Non ci sono inbox disponibili per avviare una conversazione con questo contatto.", "CONTACT_SELECTOR": { "LABEL": "A:", - "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number", - "CONTACT_CREATING": "Creating contact..." + "TAG_INPUT_PLACEHOLDER": "Cerca un contatto con nome, email o numero di telefono", + "CONTACT_CREATING": "Creazione contatto..." }, "INBOX_SELECTOR": { "LABEL": "Via:", - "BUTTON": "Show inboxes" + "BUTTON": "Mostra inbox" }, "EMAIL_OPTIONS": { "SUBJECT_LABEL": "Oggetto :", - "SUBJECT_PLACEHOLDER": "Enter your email subject here", + "SUBJECT_PLACEHOLDER": "Inserisci qui l'oggetto email", "CC_LABEL": "Cc:", - "CC_PLACEHOLDER": "Search for a contact with their email address", - "BCC_LABEL": "CCN:", - "BCC_PLACEHOLDER": "Search for a contact with their email address", - "BCC_BUTTON": "CCN" + "CC_PLACEHOLDER": "Cerca un contatto con il suo indirizzo email", + "BCC_LABEL": "Ccn:", + "BCC_PLACEHOLDER": "Cerca un contatto con il suo indirizzo email", + "BCC_BUTTON": "Ccn" }, "MESSAGE_EDITOR": { "PLACEHOLDER": "Scrivi qui il tuo messaggio..." }, "WHATSAPP_OPTIONS": { - "LABEL": "Select template", - "SEARCH_PLACEHOLDER": "Search templates", - "EMPTY_STATE": "No templates found", + "LABEL": "Seleziona modello", + "SEARCH_PLACEHOLDER": "Cerca modelli", + "EMPTY_STATE": "Nessun modello trovato", "TEMPLATE_PARSER": { - "TEMPLATE_NAME": "WhatsApp template: {templateName}", + "TEMPLATE_NAME": "Modello WhatsApp: {templateName}", "VARIABLES": "Variabili", "BACK": "Torna indietro", "SEND_MESSAGE": "Invia messaggio" } }, "TWILIO_OPTIONS": { - "LABEL": "Select template", - "SEARCH_PLACEHOLDER": "Search templates", - "EMPTY_STATE": "No templates found", + "LABEL": "Seleziona modello", + "SEARCH_PLACEHOLDER": "Cerca modelli", + "EMPTY_STATE": "Nessun modello trovato", "TEMPLATE_PARSER": { "BACK": "Torna indietro", "SEND_MESSAGE": "Invia messaggio" } }, "ACTION_BUTTONS": { - "DISCARD": "Discard", - "SEND": "Send ({keyCode})" + "DISCARD": "Annulla", + "SEND": "Invia ({keyCode})" } } } diff --git a/app/javascript/dashboard/i18n/locale/it/contentTemplates.json b/app/javascript/dashboard/i18n/locale/it/contentTemplates.json index 88e246d70..3f978cecd 100644 --- a/app/javascript/dashboard/i18n/locale/it/contentTemplates.json +++ b/app/javascript/dashboard/i18n/locale/it/contentTemplates.json @@ -1,8 +1,8 @@ { "CONTENT_TEMPLATES": { "MODAL": { - "TITLE": "Twilio Templates", - "SUBTITLE": "Select the Twilio template you want to send", + "TITLE": "Modelli Twilio", + "SUBTITLE": "Seleziona il modello Twilio che vuoi inviare", "TEMPLATE_SELECTED_SUBTITLE": "Configura template: {templateName}" }, "PICKER": { @@ -16,7 +16,7 @@ "CATEGORY": "Categoria", "MEDIA_CONTENT": "Contenuto Multimediale", "MEDIA_CONTENT_FALLBACK": "contenuto multimediale", - "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.", + "NO_TEMPLATES_AVAILABLE": "Nessun modello Twilio disponibile. Fai clic su aggiorna per sincronizzare i modelli da Twilio.", "REFRESH_BUTTON": "Aggiorna modelli", "REFRESH_SUCCESS": "Aggiornamento modelli iniziato. Potrebbe volerci qualche minuto per aggiornare.", "REFRESH_ERROR": "Impossibile aggiornare i modelli. Per favore riprova.", @@ -27,7 +27,7 @@ }, "TYPES": { "MEDIA": "Media", - "QUICK_REPLY": "Quick Reply", + "QUICK_REPLY": "Risposta Rapida", "TEXT": "Testo" } }, @@ -39,8 +39,8 @@ "GO_BACK_LABEL": "Torna indietro", "SEND_MESSAGE_LABEL": "Invia messaggio", "FORM_ERROR_MESSAGE": "Si prega di compilare tutte le variabili prima di inviare", - "MEDIA_HEADER_LABEL": "{type} Header", - "MEDIA_URL_LABEL": "Enter full media URL", + "MEDIA_HEADER_LABEL": "Intestazione {type}", + "MEDIA_URL_LABEL": "Inserisci l'URL completo del media", "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg" }, "FORM": { diff --git a/app/javascript/dashboard/i18n/locale/it/conversation.json b/app/javascript/dashboard/i18n/locale/it/conversation.json index 2ef6a6888..e4a7c6edb 100644 --- a/app/javascript/dashboard/i18n/locale/it/conversation.json +++ b/app/javascript/dashboard/i18n/locale/it/conversation.json @@ -42,7 +42,7 @@ "BOT_HANDOFF_ERROR": "Impossibile prendere la conversazione. Riprova.", "TWILIO_WHATSAPP_CAN_REPLY": "È possibile rispondere a questa conversazione solo utilizzando un messaggio modello a causa di", "TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restrizione della finestra del messaggio a 24 ore", - "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Questo account Instagram è stato migrato alla nuova casella di posta del canale Instagram. Tutti i nuovi messaggi verranno visualizzati lì. Non sarà più possibile inviare messaggi da questa conversazione.", + "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Questo account Instagram è stato migrato alla nuova Inbox del canale Instagram. Tutti i nuovi messaggi verranno visualizzati lì. Non sarà più possibile inviare messaggi da questa conversazione.", "REPLYING_TO": "Stai rispondendo a:", "REMOVE_SELECTION": "Rimuovi selezione", "DOWNLOAD": "Scarica", @@ -73,8 +73,8 @@ }, "VOICE_CALL": { "INCOMING_CALL": "Chiamata in arrivo", - "OUTGOING_CALL": "Chiamate in uscita", - "CALL_IN_PROGRESS": "Chiama in corso", + "OUTGOING_CALL": "Chiamata in uscita", + "CALL_IN_PROGRESS": "Chiamata in corso", "NO_ANSWER": "Nessuna risposta", "MISSED_CALL": "Chiamata persa", "CALL_ENDED": "Chiamata terminata", @@ -113,7 +113,7 @@ } }, "MENTION": { - "AGENTS": "Agenti", + "AGENTS": "Operatori", "TEAMS": "Teams" }, "CUSTOM_SNOOZE": { diff --git a/app/javascript/dashboard/i18n/locale/it/generalSettings.json b/app/javascript/dashboard/i18n/locale/it/generalSettings.json index 8f2dd6370..a9f2dfc78 100644 --- a/app/javascript/dashboard/i18n/locale/it/generalSettings.json +++ b/app/javascript/dashboard/i18n/locale/it/generalSettings.json @@ -2,8 +2,8 @@ "GENERAL_SETTINGS": { "LIMIT_MESSAGES": { "CONVERSATION": "Hai superato il limite di conversazione. Il piano Hacker consente solo 500 conversazioni.", - "INBOXES": "Hai superato il limite di caselle. Il piano Hacker supporta solo la live-chat sul sito web. Ulteriori caselle di posta come e-mail, WhatsApp ecc. richiedono un piano a pagamento.", - "AGENTS": "Hai superato il limite di agenti. Il tuo piano consente solo {allowedAgents} agenti.", + "INBOXES": "Hai superato il limite di Inbox. Il piano Hacker supporta solo la live-chat sul sito web. Ulteriori Inbox come e-mail, WhatsApp ecc. richiedono un piano a pagamento.", + "AGENTS": "Hai superato il limite di operatori. Il tuo piano consente solo {allowedAgents} operatori.", "NON_ADMIN": "Contatta l'amministratore per aggiornare il piano e continuare a utilizzare tutte le funzionalità." }, "TITLE": "Impostazioni account", @@ -68,7 +68,7 @@ "PLACEHOLDER": "Seleziona un'etichetta" }, "IGNORE_WAITING": { - "LABEL": "Salta le conversazioni in attesa di risposta dell'agente" + "LABEL": "Salta le conversazioni in attesa di risposta dell'operatore" }, "UPDATE_BUTTON": "Salva modifiche" }, @@ -94,7 +94,7 @@ }, "AUTO_RESOLVE_IGNORE_WAITING": { "LABEL": "Escludi conversazioni non partecipate", - "HELP": "Se abilitato, il sistema salterà la risoluzione delle conversazioni che sono ancora in attesa della risposta di un agente." + "HELP": "Se abilitato, il sistema salterà la risoluzione delle conversazioni che sono ancora in attesa della risposta di un operatore." }, "AUDIO_TRANSCRIPTION": { "TITLE": "Trascrizione Messaggi Audio", diff --git a/app/javascript/dashboard/i18n/locale/it/helpCenter.json b/app/javascript/dashboard/i18n/locale/it/helpCenter.json index 11fa48dba..c89ecc4fd 100644 --- a/app/javascript/dashboard/i18n/locale/it/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/it/helpCenter.json @@ -160,8 +160,8 @@ }, "SEND_CNAME_INSTRUCTIONS": { "API": { - "SUCCESS_MESSAGE": "CNAME instructions sent successfully", - "ERROR_MESSAGE": "Error while sending CNAME instructions" + "SUCCESS_MESSAGE": "Istruzioni CNAME inviate correttamente", + "ERROR_MESSAGE": "Errore nell'invio delle istruzioni CNAME" } } }, @@ -703,7 +703,7 @@ "LABEL": "Slug", "PLACEHOLDER": "user-guide", "ERROR": "Slug è obbligatorio", - "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide" + "FORMAT_ERROR": "Inserisci uno slug valido, ad esempio: guida-utente" } }, "PORTAL_SETTINGS": { @@ -732,7 +732,7 @@ "HOME_PAGE_LINK": { "LABEL": "Home page link", "PLACEHOLDER": "Link della pagina iniziale del portale", - "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'." + "ERROR": "Inserisci un URL valido. Il link della Home page deve iniziare con 'http://' o 'https://'." }, "SLUG": { "LABEL": "Slug", @@ -742,7 +742,7 @@ "LABEL": "Live chat widget", "PLACEHOLDER": "Select live chat widget", "HELP_TEXT": "Select a live chat widget that will appear on your help center", - "NONE_OPTION": "No widget" + "NONE_OPTION": "Nessun widget" }, "BRAND_COLOR": { "LABEL": "Brand color" @@ -754,14 +754,14 @@ "HEADER": "Dominio personalizzato", "LABEL": "Dominio personalizzato:", "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.", - "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.", + "STATUS_DESCRIPTION": "Il tuo portale personalizzato inizierà a funzionare non appena verrà verificato.", "PLACEHOLDER": "Dominio personalizzato del portale", "EDIT_BUTTON": "Modifica", "ADD_BUTTON": "Add custom domain", "STATUS": { "LIVE": "Live", - "PENDING": "Awaiting verification", - "ERROR": "Verification failed" + "PENDING": "In attesa di verifica", + "ERROR": "Verifica non riuscita" }, "DIALOG": { "ADD_HEADER": "Add custom domain", @@ -771,17 +771,17 @@ "LABEL": "Dominio personalizzato", "PLACEHOLDER": "Dominio personalizzato del portale", "ERROR": "Custom domain is required", - "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com" + "FORMAT_ERROR": "Inserisci un URL di dominio valido, ad esempio: docs.tuodominio.com" }, "DNS_CONFIGURATION_DIALOG": { "HEADER": "DNS configuration", "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help", - "COPY": "Successfully copied CNAME", + "COPY": "CNAME copiato", "SEND_INSTRUCTIONS": { - "HEADER": "Send instructions", - "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.", - "PLACEHOLDER": "Enter their email", - "ERROR": "Enter a valid email address", + "HEADER": "Invia istruzioni", + "DESCRIPTION": "Se preferisci avere qualcuno dal tuo team di sviluppo per gestire questo passaggio, puoi inserire l'indirizzo email qui sotto, e invieremo loro le istruzioni richieste.", + "PLACEHOLDER": "Inserisci il loro indirizzo email", + "ERROR": "Inserisci un indirizzo email valido", "SEND_BUTTON": "Invia" } } @@ -810,56 +810,56 @@ } }, "PDF_UPLOAD": { - "TITLE": "Upload PDF Document", - "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI", - "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select", - "SELECT_FILE": "Select PDF File", - "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)", - "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...", + "TITLE": "Carica Documento PDF", + "DESCRIPTION": "Carica un documento PDF per generare automaticamente FAQ utilizzando AI", + "DRAG_DROP_TEXT": "Trascina il tuo file PDF qui, o fai clic per selezionare", + "SELECT_FILE": "Seleziona File PDF", + "ADDITIONAL_CONTEXT_LABEL": "Contesto Aggiuntivo (Opzionale)", + "ADDITIONAL_CONTEXT_PLACEHOLDER": "Fornisci contesto o istruzioni aggiuntive per la generazione delle FAQ...", "UPLOADING": "Caricamento...", - "UPLOAD": "Upload & Process", - "CANCEL": "annulla", - "ERROR_INVALID_TYPE": "Please select a valid PDF file", - "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB", - "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again." + "UPLOAD": "Carica ed elabora", + "CANCEL": "Annulla", + "ERROR_INVALID_TYPE": "Seleziona un file PDF valido", + "ERROR_FILE_TOO_LARGE": "La dimensione del file deve essere inferiore a 512MB", + "ERROR_UPLOAD_FAILED": "Impossibile caricare il PDF. Riprova." }, "PDF_DOCUMENTS": { - "TITLE": "PDF Documents", - "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them", - "UPLOAD_PDF": "Upload PDF", - "UPLOAD_FIRST_PDF": "Upload your first PDF", - "UPLOADED_BY": "Uploaded by", - "GENERATE_FAQS": "Generate FAQs", - "GENERATING": "Generating...", - "CONFIRM_DELETE": "Are you sure you want to delete {filename}?", + "TITLE": "Documenti PDF", + "DESCRIPTION": "Gestisci i documenti PDF caricati e genera FAQ da essi", + "UPLOAD_PDF": "Carica PDF", + "UPLOAD_FIRST_PDF": "Carica il tuo primo PDF", + "UPLOADED_BY": "Caricato da", + "GENERATE_FAQS": "Genera FAQ", + "GENERATING": "Generazione...", + "CONFIRM_DELETE": "Sei sicuro di voler eliminare {filename}?", "EMPTY_STATE": { - "TITLE": "No PDF documents yet", - "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI" + "TITLE": "Nessun documento PDF", + "DESCRIPTION": "Carica documenti PDF per generare automaticamente FAQ utilizzando AI" }, "STATUS": { - "UPLOADED": "Ready", - "PROCESSING": "Processing", - "PROCESSED": "Completato", - "FAILED": "Failed" + "UPLOADED": "Pronto", + "PROCESSING": "Elaborazione", + "PROCESSED": "Completata", + "FAILED": "Non Riuscito" } }, "CONTENT_GENERATION": { - "TITLE": "Content Generation", - "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI", - "UPLOAD_TITLE": "Upload PDF Document", - "DRAG_DROP": "Drag and drop your PDF file here, or click to select", - "SELECT_FILE": "Select PDF File", - "UPLOADING": "Processing document...", - "UPLOAD_SUCCESS": "Document processed successfully!", - "UPLOAD_ERROR": "Failed to upload document. Please try again.", - "INVALID_FILE_TYPE": "Please select a valid PDF file", - "FILE_TOO_LARGE": "File size must be less than 512MB", - "GENERATED_CONTENT": "Generated FAQ Content", - "PUBLISH_SELECTED": "Publish Selected", - "PUBLISHING": "Publishing...", - "FROM_DOCUMENT": "From document", - "NO_CONTENT": "No generated content available. Upload a PDF document to get started.", - "LOADING": "Loading generated content..." + "TITLE": "Generazione Contenuti", + "DESCRIPTION": "Carica documenti PDF per generare automaticamente contenuti FAQ utilizzando AI", + "UPLOAD_TITLE": "Carica Documento PDF", + "DRAG_DROP": "Trascina il tuo file PDF qui, o fai clic per selezionare", + "SELECT_FILE": "Seleziona File PDF", + "UPLOADING": "Elaborazione documento...", + "UPLOAD_SUCCESS": "Documento elaborato con successo!", + "UPLOAD_ERROR": "Impossibile caricare il documento. Riprova.", + "INVALID_FILE_TYPE": "Seleziona un file PDF valido", + "FILE_TOO_LARGE": "La dimensione del file deve essere inferiore a 512MB", + "GENERATED_CONTENT": "Contenuti FAQ Generati", + "PUBLISH_SELECTED": "Pubblica Selezionati", + "PUBLISHING": "Pubblicazione...", + "FROM_DOCUMENT": "Dal documento", + "NO_CONTENT": "Nessun contenuto generato disponibile. Carica un documento PDF per iniziare.", + "LOADING": "Caricamento contenuti generati..." } } } diff --git a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json index 68a500160..7cd6af254 100644 --- a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json @@ -54,8 +54,8 @@ "HELP": "Per aggiungere il tuo profilo Instagram come canale, devi autenticare il tuo profilo Instagram cliccando su 'Continua con Instagram' ", "ERROR_MESSAGE": "Si è verificato un errore nella connessione a Instagram, riprova", "ERROR_AUTH": "Si è verificato un errore nella connessione a Instagram, riprova", - "NEW_INBOX_SUGGESTION": "Questo account Instagram era precedentemente collegato a una casella di posta diversa ed è stato ora migrato qui. Tutti i nuovi messaggi appariranno qui. La vecchia casella di posta non sarà più in grado d'inviare o ricevere messaggi per questo account.", - "DUPLICATE_INBOX_BANNER": "Questo account Instagram è stato migrato alla nuova posta in arrivo del canale Instagram. Non sarai più in grado di inviare/ricevere messaggi Instagram da questa posta in arrivo." + "NEW_INBOX_SUGGESTION": "Questo account Instagram era precedentemente collegato a una Inbox diversa ed è stato ora migrato qui. Tutti i nuovi messaggi appariranno qui. La vecchia Inbox non sarà più in grado di inviare o ricevere messaggi per questo account.", + "DUPLICATE_INBOX_BANNER": "Questo account Instagram è stato migrato alla nuova Inbox del canale Instagram. Non sarai più in grado di inviare/ricevere messaggi Instagram da questa Inbox." }, "TWITTER": { "HELP": "Per aggiungere il tuo profilo Twitter come canale, devi autenticare il tuo profilo Twitter cliccando su 'Accedi con Twitter' ", @@ -315,12 +315,12 @@ }, "TWILIO": { "ACCOUNT_SID": { - "LABEL": "SID dell'account", + "LABEL": "SID Account", "PLACEHOLDER": "Inserisci il tuo Account SID Twilio", "REQUIRED": "Account SID richiesto" }, "AUTH_TOKEN": { - "LABEL": "Token di autenticazione", + "LABEL": "Token di Autenticazione", "PLACEHOLDER": "Inserisci il tuo Auth Token Twilio", "REQUIRED": "Auth Token richiesto" }, @@ -432,7 +432,7 @@ "TITLE_FINISH": "Voilà!", "CHANNEL": { "WEBSITE": { - "TITLE": "Website", + "TITLE": "Sito Web", "DESCRIPTION": "Crea un widget live-chat" }, "FACEBOOK": { @@ -526,9 +526,9 @@ "BUTTON_TEXT": "Portami lì", "MORE_SETTINGS": "Altre impostazioni", "WEBSITE_SUCCESS": "Hai completato la creazione di un canale sito web. Copia il codice mostrato qui sotto e incollalo sul tuo sito. La prossima volta che un cliente usa la live chat, la conversazione apparirà automaticamente nella tua casella.", - "WHATSAPP_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua casella WhatsApp", - "MESSENGER_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua casella Facebook Messenger", - "TELEGRAM_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua casella Telegram" + "WHATSAPP_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua Inbox WhatsApp", + "MESSENGER_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua Inbox Facebook Messenger", + "TELEGRAM_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua Inbox Telegram" }, "REAUTH": "Riautorizza", "VIEW": "Visualizza", @@ -652,7 +652,7 @@ "UNKNOWN": "Valutazione non disponibile" }, "STATUSES": { - "APPROVED": "Approved", + "APPROVED": "Approvato", "PENDING_REVIEW": "In Attesa di Revisione", "AVAILABLE_WITHOUT_REVIEW": "Disponibile Senza Revisione", "REJECTED": "Rifiutato", @@ -716,12 +716,12 @@ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here", "WHATSAPP_SECTION_UPDATE_BUTTON": "Aggiorna", "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup", - "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "Questa casella è connessa tramite WhatsApp Embedded Signup.", - "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "Puoi riconfigurare questa casella per aggiornare le impostazioni WhatsApp Business.", + "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "Questa Inbox è connessa tramite WhatsApp Embedded Signup.", + "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "Puoi riconfigurare questa Inbox per aggiornare le impostazioni WhatsApp Business.", "WHATSAPP_RECONFIGURE_BUTTON": "Riconfigura", "WHATSAPP_CONNECT_TITLE": "Connetti a WhatsApp Business", "WHATSAPP_CONNECT_SUBHEADER": "Passa alla WhatsApp Embedded Signup per una gestione più semplice.", - "WHATSAPP_CONNECT_DESCRIPTION": "Collega questa casella a WhatsApp Business per funzionalità avanzate e una gestione più semplice.", + "WHATSAPP_CONNECT_DESCRIPTION": "Collega questa Inbox a WhatsApp Business per avere funzionalità avanzate e una gestione più semplice.", "WHATSAPP_CONNECT_BUTTON": "Connetti", "WHATSAPP_CONNECT_SUCCESS": "Connesso correttamente a WhatsApp Business!", "WHATSAPP_CONNECT_ERROR": "Impossibile connettersi a WhatsApp Business. Riprova.", @@ -786,25 +786,25 @@ "TITLE": "Abilita CSAT", "SUBTITLE": "Invia automaticamente i sondaggi CSAT alla fine delle conversazioni per capire cosa pensano i clienti della loro esperienza di supporto. Segui le tendenze e individua le aree di miglioramento nel tempo.", "DISPLAY_TYPE": { - "LABEL": "Display type" + "LABEL": "Tipo di visualizzazione" }, "MESSAGE": { "LABEL": "Messaggio", - "PLACEHOLDER": "Please enter a message to show users with the form" + "PLACEHOLDER": "Inserisci un messaggio per mostrare gli utenti con il modulo" }, "SURVEY_RULE": { - "LABEL": "Survey rule", - "DESCRIPTION_PREFIX": "Send the survey if the conversation", - "DESCRIPTION_SUFFIX": "any of the labels", + "LABEL": "Regola sondaggio", + "DESCRIPTION_PREFIX": "Invia il sondaggio se la conversazione", + "DESCRIPTION_SUFFIX": "una qualsiasi delle etichette", "OPERATOR": { "CONTAINS": "contiene", "DOES_NOT_CONTAINS": "non contiene" }, - "SELECT_PLACEHOLDER": "select labels" + "SELECT_PLACEHOLDER": "seleziona etichette" }, - "NOTE": "Note: CSAT surveys are sent only once per conversation", + "NOTE": "Nota: I sondaggi CSAT vengono inviati solo una volta per conversazione", "API": { - "SUCCESS_MESSAGE": "CSAT settings updated successfully", + "SUCCESS_MESSAGE": "Impostazioni CSAT aggiornate correttamente", "ERROR_MESSAGE": "Impossibile aggiornare le impostazioni CSAT. Riprova più tardi." } }, diff --git a/app/javascript/dashboard/i18n/locale/it/integrationApps.json b/app/javascript/dashboard/i18n/locale/it/integrationApps.json index 43e800bdd..84362c524 100644 --- a/app/javascript/dashboard/i18n/locale/it/integrationApps.json +++ b/app/javascript/dashboard/i18n/locale/it/integrationApps.json @@ -30,7 +30,7 @@ }, "LIST": { "FETCHING": "Recupero degli hook di integrazione", - "INBOX": "Casella", + "INBOX": "Inbox", "DELETE": { "BUTTON_TEXT": "Elimina" } diff --git a/app/javascript/dashboard/i18n/locale/it/integrations.json b/app/javascript/dashboard/i18n/locale/it/integrations.json index 390923320..be363ef39 100644 --- a/app/javascript/dashboard/i18n/locale/it/integrations.json +++ b/app/javascript/dashboard/i18n/locale/it/integrations.json @@ -42,8 +42,8 @@ "WEBWIDGET_TRIGGERED": "Widget live chat aperto dall'utente", "CONTACT_CREATED": "Contact created", "CONTACT_UPDATED": "Contact updated", - "CONVERSATION_TYPING_ON": "Conversation Typing On", - "CONVERSATION_TYPING_OFF": "Conversation Typing Off" + "CONVERSATION_TYPING_ON": "Digitazione conversazione attiva", + "CONVERSATION_TYPING_OFF": "Digitazione conversazione disattiva" } }, "END_POINT": { @@ -326,18 +326,18 @@ "CANCEL": "annulla" }, "CTA": { - "TITLE": "Connect to Linear", - "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.", - "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.", - "BUTTON_TEXT": "Connect Linear workspace" + "TITLE": "Connetti a Linear", + "AGENT_DESCRIPTION": "Il workspace di Linear non è connesso. Richiedi all'amministratore di connettere un workspace per utilizzare questa integrazione.", + "DESCRIPTION": "Il workspace di Linear non è connesso. Fai clic sul pulsante qui sotto per collegare il workspace per utilizzare questa integrazione.", + "BUTTON_TEXT": "Connetti workspace Linear" } }, "NOTION": { "DELETE": { - "TITLE": "Are you sure you want to delete the Notion integration?", - "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.", - "CONFIRM": "Yes, delete", - "CANCEL": "annulla" + "TITLE": "Sei sicuro di voler eliminare l'integrazione di Notion?", + "MESSAGE": "L'eliminazione di questa integrazione rimuoverà l'accesso al tuo workspace Notion e interromperà tutte le funzionalità correlate.", + "CONFIRM": "Sì, elimina", + "CANCEL": "Annulla" } } }, @@ -347,36 +347,36 @@ "COPILOT": { "TITLE": "Copilot", "TRY_THESE_PROMPTS": "Try these prompts", - "PANEL_TITLE": "Get started with Copilot", - "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.", + "PANEL_TITLE": "Inizia a usare Copilot", + "KICK_OFF_MESSAGE": "Hai bisogno di un riassunto rapido, vuoi controllare le conversazioni passate o vuoi scrivere risposte migliori? Copilot è qui per te.", "SEND_MESSAGE": "Invia messaggio...", - "EMPTY_MESSAGE": "There was an error generating the response. Please try again.", + "EMPTY_MESSAGE": "Si è verificato un errore durante la generazione della risposta. Riprova.", "LOADER": "Captain is thinking", "YOU": "You", "USE": "Use this", "RESET": "Reset", - "SHOW_STEPS": "Show steps", + "SHOW_STEPS": "Mostra i passaggi", "SELECT_ASSISTANT": "Select Assistant", "PROMPTS": { "SUMMARIZE": { - "LABEL": "Summarize this conversation", - "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent" + "LABEL": "Riassumi questa conversazione", + "CONTENT": "Riassumi i punti chiave discussi tra il cliente e l'operatore, compresi i dubbi, le domande del cliente e le soluzioni o risposte fornite dall'operatore" }, "SUGGEST": { - "LABEL": "Suggest an answer", - "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information." + "LABEL": "Suggerisci una risposta", + "CONTENT": "Analizzare la richiesta del cliente e prepara una risposta che risponda efficacemente ai suoi dubbi o domande. Assicurati che la risposta sia chiara, concisa e fornisca informazioni utili." }, "RATE": { - "LABEL": "Rate this conversation", - "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness." + "LABEL": "Valuta questa conversazione", + "CONTENT": "Valuta la conversazione per vedere quanto soddisfa le esigenze del cliente. Dai una valutazione da 1 a 5 in base al tono, alla chiarezza e all'efficacia." }, "HIGH_PRIORITY": { - "LABEL": "High priority conversations", - "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant." + "LABEL": "Conversazioni ad alta priorità", + "CONTENT": "Dammi un riassunto di tutte le conversazioni aperte ad alta priorità. Includi l'ID della conversazione, il nome del cliente (se disponibile), il contenuto dell'ultimo messaggio e l'operatore assegnato. Raggruppa per stato se pertinente." }, "LIST_CONTACTS": { - "LABEL": "List contacts", - "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)." + "LABEL": "Elenca contatti", + "CONTENT": "Mostrami l'elenco dei primi 10 contatti. Includi nome, email o numero di telefono (se disponibile), orario di ultima lettura, tag (se presenti)." } } }, @@ -385,8 +385,8 @@ "ASSISTANT": "Assistant", "MESSAGE_PLACEHOLDER": "Scrivi il tuo messaggio...", "HEADER": "Playground", - "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.", - "CREDIT_NOTE": "Messages sent here will count toward your Captain credits." + "DESCRIPTION": "Usa questo playground per inviare messaggi al tuo assistente e controllare se risponde correttamente, rapidamente e con il tono che ti aspetti.", + "CREDIT_NOTE": "I messaggi inviati qui vengono scalati dai crediti Captain." }, "PAYWALL": { "TITLE": "Upgrade to use Captain AI", @@ -410,7 +410,7 @@ }, "ASSISTANTS": { "HEADER": "Assistants", - "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.", + "NO_ASSISTANTS_AVAILABLE": "Non ci sono assistenti disponibili nel tuo account.", "ADD_NEW": "Create a new assistant", "DELETE": { "TITLE": "Are you sure to delete the assistant?", @@ -428,87 +428,87 @@ "FORM": { "UPDATE": "Aggiorna", "SECTIONS": { - "BASIC_INFO": "Basic Information", + "BASIC_INFO": "Informazioni di Base", "SYSTEM_MESSAGES": "System Messages", - "INSTRUCTIONS": "Instructions", + "INSTRUCTIONS": "Istruzioni", "FEATURES": "Funzionalità", - "TOOLS": "Tools " + "TOOLS": "Strumenti " }, "NAME": { "LABEL": "Nome", - "PLACEHOLDER": "Enter assistant name", - "ERROR": "The name is required" + "PLACEHOLDER": "Inserisci il nome dell'assistente", + "ERROR": "Il nome è richiesto" }, "TEMPERATURE": { - "LABEL": "Response Temperature", - "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs." + "LABEL": "Temperatura della Risposta", + "DESCRIPTION": "Regola quanto dovrebbero essere creative o restrittive le risposte dell'assistente. I valori più bassi producono risposte più mirate e deterministiche, mentre i valori più elevati consentono di ottenere risultati più creativi e variegati." }, "DESCRIPTION": { "LABEL": "Descrizione", - "PLACEHOLDER": "Enter assistant description", - "ERROR": "The description is required" + "PLACEHOLDER": "Inserisci la descrizione dell'assistente", + "ERROR": "La descrizione è richiesta" }, "PRODUCT_NAME": { "LABEL": "Product Name", - "PLACEHOLDER": "Enter product name", + "PLACEHOLDER": "Inserisci il nome del prodotto", "ERROR": "The product name is required" }, "WELCOME_MESSAGE": { - "LABEL": "Welcome Message", - "PLACEHOLDER": "Enter welcome message" + "LABEL": "Messaggio di Benvenuto", + "PLACEHOLDER": "Inserisci il messaggio di benvenuto" }, "HANDOFF_MESSAGE": { - "LABEL": "Handoff Message", - "PLACEHOLDER": "Enter handoff message" + "LABEL": "Messaggio di Handoff", + "PLACEHOLDER": "Inserisci messaggio di handoff" }, "RESOLUTION_MESSAGE": { - "LABEL": "Resolution Message", - "PLACEHOLDER": "Enter resolution message" + "LABEL": "Messaggio di Risoluzione", + "PLACEHOLDER": "Inserisci il messaggio di risoluzione" }, "INSTRUCTIONS": { - "LABEL": "Instructions", - "PLACEHOLDER": "Enter instructions for the assistant" + "LABEL": "Istruzioni", + "PLACEHOLDER": "Inserisci le istruzioni per l'assistente" }, "FEATURES": { "TITLE": "Funzionalità", "ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations", "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.", - "ALLOW_CITATIONS": "Include source citations in responses" + "ALLOW_CITATIONS": "Includi citazioni alle fonti nelle risposte" } }, "EDIT": { "TITLE": "Update the assistant", "SUCCESS_MESSAGE": "The assistant has been successfully updated", "ERROR_MESSAGE": "There was an error updating the assistant, please try again.", - "NOT_FOUND": "Could not find the assistant. Please try again." + "NOT_FOUND": "Impossibile trovare l'assistente. Riprova." }, "SETTINGS": { "BREADCRUMB": { "ASSISTANT": "Assistant" }, "BASIC_SETTINGS": { - "TITLE": "Basic settings", - "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human." + "TITLE": "Impostazioni di base", + "DESCRIPTION": "Personalizza ciò che l'assistente dice quando termina una conversazione o la trasferisce a un umano." }, "SYSTEM_SETTINGS": { - "TITLE": "System settings", - "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human." + "TITLE": "Impostazioni di sistema", + "DESCRIPTION": "Personalizza ciò che l'assistente dice quando termina una conversazione o la trasferisce a un umano." }, "CONTROL_ITEMS": { - "TITLE": "The Fun Stuff", - "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.", + "TITLE": "Impostazioni avanzate", + "DESCRIPTION": "Aggiungi maggiore controllo all’assistente. (Funziona come un flusso: guardrails → scenari → output) Incoraggia a sfruttare al meglio queste impostazioni.", "OPTIONS": { "GUARDRAILS": { - "TITLE": "Guardrails", - "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic." + "TITLE": "Guardrail", + "DESCRIPTION": "Mantieni l’assistente concentrato: risponde solo ai tipi di domande che desideri, evitando argomenti fuori tema o non consentiti." }, "SCENARIOS": { - "TITLE": "Scenarios", - "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”" + "TITLE": "Scenari", + "DESCRIPTION": "Fornisci contesto aggiuntivo al tuo assistente, ad esempio “cosa fare quando un utente è bloccato” o “come comportarsi durante una richiesta di rimborso”." }, "RESPONSE_GUIDELINES": { - "TITLE": "Response guidelines", - "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?" + "TITLE": "Linee guida per le risposte", + "DESCRIPTION": "Imposta il tono e la struttura delle risposte del tuo assistente: chiare e amichevoli? Brevi e dirette? Dettagliate e formali?" } } } @@ -527,165 +527,165 @@ } }, "GUARDRAILS": { - "TITLE": "Guardrails", - "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.", + "TITLE": "Guardrail", + "DESCRIPTION": "Mantieni l’assistente concentrato: risponde solo ai tipi di domande che desideri, evitando argomenti fuori tema o non consentiti.", "BREADCRUMB": { - "TITLE": "Guardrails" + "TITLE": "Guardrail" }, "BULK_ACTION": { - "SELECTED": "{count} item selected | {count} items selected", - "SELECT_ALL": "Select all ({count})", - "UNSELECT_ALL": "Unselect all ({count})", + "SELECTED": "{count} elemento selezionato | {count} elementi selezionati", + "SELECT_ALL": "Seleziona tutto ({count})", + "UNSELECT_ALL": "Deseleziona tutto ({count})", "BULK_DELETE_BUTTON": "Elimina" }, "ADD": { "SUGGESTED": { - "TITLE": "Example guardrails", - "ADD": "Add all", - "ADD_SINGLE": "Add this", - "SAVE": "Add and save (↵)", - "PLACEHOLDER": "Type in another guardrail..." + "TITLE": "Guardrail di esempio", + "ADD": "Aggiungi tutto", + "ADD_SINGLE": "Aggiungi questo", + "SAVE": "Aggiungi e salva (↵)", + "PLACEHOLDER": "Digita un altro guardrail..." }, "NEW": { - "TITLE": "Add a guardrail", + "TITLE": "Aggiungi un guardrail", "CREATE": "Crea", - "CANCEL": "annulla", - "PLACEHOLDER": "Type in another guardrail...", - "TEST_ALL": "Test all" + "CANCEL": "Annulla", + "PLACEHOLDER": "Digita un altro guardrail...", + "TEST_ALL": "Testa tutto" } }, "LIST": { - "SEARCH_PLACEHOLDER": "Search..." + "SEARCH_PLACEHOLDER": "Cerca..." }, - "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.", - "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.", + "EMPTY_MESSAGE": "Nessun guardrail trovato. Crea o aggiungi esempi per iniziare.", + "SEARCH_EMPTY_MESSAGE": "Nessun guardrail trovato per questa ricerca.", "API": { "ADD": { - "SUCCESS": "Guardrails added successfully", - "ERROR": "There was an error adding guardrails, please try again." + "SUCCESS": "Guardrail aggiunti correttamente", + "ERROR": "Si è verificato un errore nell'aggiunta di guardrail, riprova." }, "UPDATE": { - "SUCCESS": "Guardrails updated successfully", - "ERROR": "There was an error updating guardrails, please try again." + "SUCCESS": "Guardrail aggiornati con successo", + "ERROR": "Si è verificato un errore durante l'aggiornamento dei guardrail, riprova." }, "DELETE": { - "SUCCESS": "Guardrails deleted successfully", - "ERROR": "There was an error deleting guardrails, please try again." + "SUCCESS": "Guardrail eliminati con successo", + "ERROR": "Si è verificato un errore nell'eliminazione dei guardrail, riprova." } } }, "RESPONSE_GUIDELINES": { - "TITLE": "Response Guidelines", - "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?", + "TITLE": "Linee Guida per le Risposte", + "DESCRIPTION": "Imposta il tono e la struttura delle risposte del tuo assistente: chiare e amichevoli? Brevi e dirette? Dettagliate e formali?", "BREADCRUMB": { - "TITLE": "Response Guidelines" + "TITLE": "Linee Guida per le Risposte" }, "BULK_ACTION": { - "SELECTED": "{count} item selected | {count} items selected", - "SELECT_ALL": "Select all ({count})", - "UNSELECT_ALL": "Unselect all ({count})", + "SELECTED": "{count} elemento selezionato | {count} elementi selezionati", + "SELECT_ALL": "Seleziona tutto ({count})", + "UNSELECT_ALL": "Deseleziona tutto ({count})", "BULK_DELETE_BUTTON": "Elimina" }, "ADD": { "SUGGESTED": { - "TITLE": "Example response guidelines", - "ADD": "Add all", - "ADD_SINGLE": "Add this", - "SAVE": "Add and save (↵)", - "PLACEHOLDER": "Type in another response guideline..." + "TITLE": "Esempio di Linee Guida per le Risposte", + "ADD": "Aggiungi tutto", + "ADD_SINGLE": "Aggiungi questo", + "SAVE": "Aggiungi e salva (↵)", + "PLACEHOLDER": "Digita un'altra linea guida di risposta..." }, "NEW": { - "TITLE": "Add a response guideline", + "TITLE": "Aggiungi una linea guida per le risposte", "CREATE": "Crea", - "CANCEL": "annulla", - "PLACEHOLDER": "Type in another response guideline...", - "TEST_ALL": "Test all" + "CANCEL": "Annulla", + "PLACEHOLDER": "Digita un'altra linea guida di risposta...", + "TEST_ALL": "Testa tutto" } }, "LIST": { - "SEARCH_PLACEHOLDER": "Search..." + "SEARCH_PLACEHOLDER": "Cerca..." }, - "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.", - "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.", + "EMPTY_MESSAGE": "Nessuna linea guida per le risposte trovata. Crea o aggiungi esempi per iniziare.", + "SEARCH_EMPTY_MESSAGE": "Nessuna linea guida per le risposte trovata per questa ricerca.", "API": { "ADD": { - "SUCCESS": "Response Guidelines added successfully", - "ERROR": "There was an error adding response guidelines, please try again." + "SUCCESS": "Linee guida per le risposte aggiunte correttamente", + "ERROR": "Si è verificato un errore nell'aggiunta delle linee guida, riprova." }, "UPDATE": { - "SUCCESS": "Response Guidelines updated successfully", - "ERROR": "There was an error updating response guidelines, please try again." + "SUCCESS": "Linee guida aggiornate correttamente", + "ERROR": "Si è verificato un errore durante l'aggiornamento delle linee guida, riprova." }, "DELETE": { - "SUCCESS": "Response Guidelines deleted successfully", - "ERROR": "There was an error deleting response guidelines, please try again." + "SUCCESS": "Linee guida eliminate correttamente", + "ERROR": "Si è verificato un errore durante l'eliminazione delle linee guida, riprova." } } }, "SCENARIOS": { - "TITLE": "Scenarios", - "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”", + "TITLE": "Scenari", + "DESCRIPTION": "Fornisci contesto aggiuntivo al tuo assistente, ad esempio “cosa fare quando un utente è bloccato” o “come comportarsi durante una richiesta di rimborso”.", "BREADCRUMB": { - "TITLE": "Scenarios" + "TITLE": "Scenari" }, "BULK_ACTION": { - "SELECTED": "{count} item selected | {count} items selected", - "SELECT_ALL": "Select all ({count})", - "UNSELECT_ALL": "Unselect all ({count})", + "SELECTED": "{count} elemento selezionato | {count} elementi selezionati", + "SELECT_ALL": "Seleziona tutto ({count})", + "UNSELECT_ALL": "Deseleziona tutto ({count})", "BULK_DELETE_BUTTON": "Elimina" }, "ADD": { "SUGGESTED": { - "TITLE": "Example scenarios", - "ADD": "Add all", - "ADD_SINGLE": "Add this", - "TOOLS_USED": "Tools used :" + "TITLE": "Scenari di esempio", + "ADD": "Aggiungi tutto", + "ADD_SINGLE": "Aggiungi questo", + "TOOLS_USED": "Strumenti utilizzati:" }, "NEW": { - "CREATE": "Add a scenario", - "TITLE": "Create a scenario", + "CREATE": "Aggiungi uno scenario", + "TITLE": "Crea uno scenario", "FORM": { "TITLE": { "LABEL": "Titolo", - "PLACEHOLDER": "Enter a name for the scenario", - "ERROR": "Scenario name is required" + "PLACEHOLDER": "Inserisci un nome per lo scenario", + "ERROR": "Nome dello scenario richiesto" }, "DESCRIPTION": { "LABEL": "Descrizione", - "PLACEHOLDER": "Describe how and where this scenario will be used", - "ERROR": "Scenario description is required" + "PLACEHOLDER": "Descrivi come e dove questo scenario verrà utilizzato", + "ERROR": "Descrizione dello scenario richiesta" }, "INSTRUCTION": { - "LABEL": "How to handle", - "PLACEHOLDER": "Describe how and where this scenario will be handled", - "ERROR": "Scenario content is required" + "LABEL": "Come gestire", + "PLACEHOLDER": "Descrivere come e dove sarà gestito questo scenario", + "ERROR": "Il contenuto dello scenario è richiesto" }, "CREATE": "Crea", - "CANCEL": "annulla" + "CANCEL": "Annulla" } } }, "UPDATE": { - "CANCEL": "annulla", - "UPDATE": "Update changes" + "CANCEL": "Annulla", + "UPDATE": "Aggiorna le modifiche" }, "LIST": { - "SEARCH_PLACEHOLDER": "Search..." + "SEARCH_PLACEHOLDER": "Cerca..." }, - "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.", - "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.", + "EMPTY_MESSAGE": "Nessun scenario trovato. Crea o aggiungi esempi per iniziare.", + "SEARCH_EMPTY_MESSAGE": "Nessun scenario trovato per questa ricerca.", "API": { "ADD": { - "SUCCESS": "Scenarios added successfully", - "ERROR": "There was an error adding scenarios, please try again." + "SUCCESS": "Scenari aggiunti correttamente", + "ERROR": "Si è verificato un errore durante l'aggiunta degli scenari, riprova." }, "UPDATE": { - "SUCCESS": "Scenarios updated successfully", - "ERROR": "There was an error updating scenarios, please try again." + "SUCCESS": "Scenari aggiornati correttamente", + "ERROR": "Si è verificato un errore durante l'aggiornamento degli scenari, riprova." }, "DELETE": { - "SUCCESS": "Scenarios deleted successfully", - "ERROR": "There was an error deleting scenarios, please try again." + "SUCCESS": "Scenari eliminati correttamente", + "ERROR": "Si è verificato un errore durante l'eliminazione degli scenari, riprova." } } } @@ -705,9 +705,9 @@ }, "FORM": { "TYPE": { - "LABEL": "Document Type", + "LABEL": "Tipo di Documento", "URL": "URL", - "PDF": "PDF File" + "PDF": "File PDF" }, "URL": { "LABEL": "URL", @@ -715,16 +715,16 @@ "ERROR": "Please provide a valid URL for the document" }, "PDF_FILE": { - "LABEL": "PDF File", - "CHOOSE_FILE": "Choose PDF file", - "ERROR": "Please select a PDF file", - "HELP_TEXT": "Maximum file size: 10MB", - "INVALID_TYPE": "Please select a valid PDF file", - "TOO_LARGE": "File size exceeds 10MB limit" + "LABEL": "File PDF", + "CHOOSE_FILE": "Seleziona file PDF", + "ERROR": "Seleziona un file PDF", + "HELP_TEXT": "Dimensione massima del file: 10MB", + "INVALID_TYPE": "Seleziona un file PDF valido", + "TOO_LARGE": "La dimensione del file supera il limite di 10MB" }, "NAME": { - "LABEL": "Document Name (Optional)", - "PLACEHOLDER": "Enter a name for the document" + "LABEL": "Nome Documento (Opzionale)", + "PLACEHOLDER": "Inserisci un nome per il documento" }, "ASSISTANT": { "LABEL": "Assistant", @@ -753,111 +753,111 @@ } }, "CUSTOM_TOOLS": { - "HEADER": "Tools", - "ADD_NEW": "Create a new tool", + "HEADER": "Strumenti", + "ADD_NEW": "Crea un nuovo strumento", "EMPTY_STATE": { - "TITLE": "No custom tools available", - "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.", + "TITLE": "Nessuno strumento personalizzato disponibile", + "SUBTITLE": "Crea strumenti personalizzati per collegare il tuo assistente con API e servizi esterni, consentendogli di recuperare dati ed eseguire azioni per tuo conto.", "FEATURE_SPOTLIGHT": { - "TITLE": "Custom Tools", - "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities." + "TITLE": "Strumenti Personalizzati", + "NOTE": "Gli strumenti personalizzati consentono all'assistente di interagire con API e servizi esterni. Crea strumenti per recuperare dati, eseguire azioni o integrare con i sistemi esistenti per migliorare le capacità del tuo assistente." } }, - "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs", + "FORM_DESCRIPTION": "Configura il tuo strumento personalizzato per connetterti con API esterne", "OPTIONS": { - "EDIT_TOOL": "Edit tool", - "DELETE_TOOL": "Delete tool" + "EDIT_TOOL": "Modifica strumento", + "DELETE_TOOL": "Elimina strumento" }, "CREATE": { - "TITLE": "Create Custom Tool", - "SUCCESS_MESSAGE": "Custom tool created successfully", - "ERROR_MESSAGE": "Failed to create custom tool" + "TITLE": "Crea Strumento Personalizzato", + "SUCCESS_MESSAGE": "Strumento personalizzato creato correttamente", + "ERROR_MESSAGE": "Impossibile creare uno strumento personalizzato" }, "EDIT": { - "TITLE": "Edit Custom Tool", - "SUCCESS_MESSAGE": "Custom tool updated successfully", - "ERROR_MESSAGE": "Failed to update custom tool" + "TITLE": "Modifica Strumento Personalizzato", + "SUCCESS_MESSAGE": "Strumento personalizzato aggiornato correttamente", + "ERROR_MESSAGE": "Impossibile aggiornare strumento personalizzato" }, "DELETE": { - "TITLE": "Delete Custom Tool", - "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.", - "CONFIRM": "Yes, delete", - "SUCCESS_MESSAGE": "Custom tool deleted successfully", - "ERROR_MESSAGE": "Failed to delete custom tool" + "TITLE": "Elimina Strumento Personalizzato", + "DESCRIPTION": "Sei sicuro di voler eliminare questo strumento personalizzato? Questa azione non può essere annullata.", + "CONFIRM": "Sì, elimina", + "SUCCESS_MESSAGE": "Strumento personalizzato eliminato correttamente", + "ERROR_MESSAGE": "Impossibile eliminare lo strumento personalizzato" }, "FORM": { "TITLE": { - "LABEL": "Tool Name", - "PLACEHOLDER": "Order Lookup", - "ERROR": "Tool name is required" + "LABEL": "Nome Strumento", + "PLACEHOLDER": "Ricerca Ordini", + "ERROR": "Nome strumento richiesto" }, "DESCRIPTION": { "LABEL": "Descrizione", - "PLACEHOLDER": "Looks up order details by order ID" + "PLACEHOLDER": "Cerca i dettagli di un ordine tramite l'ID ordine" }, "HTTP_METHOD": { - "LABEL": "Method" + "LABEL": "Metodo" }, "ENDPOINT_URL": { "LABEL": "Endpoint URL", "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}", - "ERROR": "Valid URL is required" + "ERROR": "È richiesto un URL valido" }, "AUTH_TYPE": { - "LABEL": "Authentication Type" + "LABEL": "Tipo di Autenticazione" }, "AUTH_TYPES": { "NONE": "Nessuno", "BEARER": "Bearer Token", - "BASIC": "Basic Auth", + "BASIC": "Autenticazione Base", "API_KEY": "Chiave API" }, "AUTH_CONFIG": { "BEARER_TOKEN": "Bearer Token", - "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token", - "USERNAME": "Username", - "USERNAME_PLACEHOLDER": "Enter username", + "BEARER_TOKEN_PLACEHOLDER": "Inserisci il tuo Bearer Token", + "USERNAME": "Nome Utente", + "USERNAME_PLACEHOLDER": "Inserisci il nome utente", "PASSWORD": "Password", - "PASSWORD_PLACEHOLDER": "Enter password", - "API_KEY": "Header Name", + "PASSWORD_PLACEHOLDER": "Inserire la password", + "API_KEY": "Nome Header", "API_KEY_PLACEHOLDER": "X-API-Key", - "API_VALUE": "Header Value", - "API_VALUE_PLACEHOLDER": "Enter API key value" + "API_VALUE": "Valore Header", + "API_VALUE_PLACEHOLDER": "Inserisci valore chiave API" }, "PARAMETERS": { - "LABEL": "Parameters", - "HELP_TEXT": "Define the parameters that will be extracted from user queries" + "LABEL": "Parametri", + "HELP_TEXT": "Definisci i parametri che verranno estratti dalle query utente" }, - "ADD_PARAMETER": "Add Parameter", + "ADD_PARAMETER": "Aggiungi Parametro", "PARAM_NAME": { - "PLACEHOLDER": "Parameter name (e.g., order_id)" + "PLACEHOLDER": "Nome del parametro (es. order_id)" }, "PARAM_TYPE": { "PLACEHOLDER": "Tipo" }, "PARAM_TYPES": { - "STRING": "String", + "STRING": "Stringa", "NUMBER": "Numero", "BOOLEAN": "Boolean", "ARRAY": "Array", - "OBJECT": "Object" + "OBJECT": "Oggetto" }, "PARAM_DESCRIPTION": { - "PLACEHOLDER": "Description of the parameter" + "PLACEHOLDER": "Descrizione del parametro" }, "PARAM_REQUIRED": { "LABEL": "Obbligatorio" }, "REQUEST_TEMPLATE": { - "LABEL": "Request Body Template (Optional)", + "LABEL": "Request Body Template (Opzionale)", "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}" }, "RESPONSE_TEMPLATE": { - "LABEL": "Response Template (Optional)", + "LABEL": "Response Template (Opzionale)", "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}" }, "ERRORS": { - "PARAM_NAME_REQUIRED": "Parameter name is required" + "PARAM_NAME_REQUIRED": "Nome del parametro richiesto" } } }, @@ -868,9 +868,9 @@ "CONVERSATION": "Conversation #{id}" }, "SELECTED": "{count} selected", - "SELECT_ALL": "Select all ({count})", - "UNSELECT_ALL": "Unselect all ({count})", - "SEARCH_PLACEHOLDER": "Search FAQs...", + "SELECT_ALL": "Seleziona tutto ({count})", + "UNSELECT_ALL": "Deseleziona tutto ({count})", + "SEARCH_PLACEHOLDER": "Cerca FAQ...", "BULK_APPROVE_BUTTON": "Approve", "BULK_DELETE_BUTTON": "Elimina", "BULK_APPROVE": { diff --git a/app/javascript/dashboard/i18n/locale/it/macros.json b/app/javascript/dashboard/i18n/locale/it/macros.json index 7ce07e249..d76d1f3f4 100644 --- a/app/javascript/dashboard/i18n/locale/it/macros.json +++ b/app/javascript/dashboard/i18n/locale/it/macros.json @@ -86,12 +86,12 @@ }, "ACTIONS": { "ASSIGN_TEAM": "Assegna Team", - "ASSIGN_AGENT": "Assegna Agente", + "ASSIGN_AGENT": "Assegna un Operatore", "ADD_LABEL": "Aggiungi Etichetta", "REMOVE_LABEL": "Rimuovi Etichetta", "REMOVE_ASSIGNED_TEAM": "Rimuovi Team Assegnato", "SEND_EMAIL_TRANSCRIPT": "Invia trascrizione per email", - "MUTE_CONVERSATION": "Silenzia conversazione", + "MUTE_CONVERSATION": "Silenzia Conversazione", "SNOOZE_CONVERSATION": "Posticipa Conversazione", "RESOLVE_CONVERSATION": "Risolvi la conversazione", "SEND_ATTACHMENT": "Invia Allegato", diff --git a/app/javascript/dashboard/i18n/locale/it/report.json b/app/javascript/dashboard/i18n/locale/it/report.json index ff9a60256..3cda0ad4b 100644 --- a/app/javascript/dashboard/i18n/locale/it/report.json +++ b/app/javascript/dashboard/i18n/locale/it/report.json @@ -268,7 +268,7 @@ "DOWNLOAD_INBOX_REPORTS": "Scarica report casella", "FILTER_DROPDOWN_LABEL": "Seleziona Casella", "ALL_INBOXES": "Tutte le caselle", - "SEARCH_INBOX": "Ricerca nella casella", + "SEARCH_INBOX": "Ricerca nella Inbox", "METRICS": { "CONVERSATIONS": { "NAME": "Conversazioni", diff --git a/app/javascript/dashboard/i18n/locale/it/settings.json b/app/javascript/dashboard/i18n/locale/it/settings.json index 4f82d47fe..5731e91d4 100644 --- a/app/javascript/dashboard/i18n/locale/it/settings.json +++ b/app/javascript/dashboard/i18n/locale/it/settings.json @@ -299,7 +299,7 @@ "REPORTS": "Segnalazioni", "SETTINGS": "Impostazioni", "CONTACTS": "Contatti", - "ACTIVE": "Attivo", + "ACTIVE": "Attiva", "CAPTAIN": "Captain", "CAPTAIN_ASSISTANTS": "Assistants", "CAPTAIN_DOCUMENTS": "Documents", @@ -420,51 +420,51 @@ }, "FINGERPRINT": { "LABEL": "Fingerprint", - "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration" + "TOOLTIP": "Fingerprint SHA-1 del certificato — utilizzala per verificare il certificato nella configurazione del tuo IdP" }, "COPY_SUCCESS": "Codice copiato negli appunti correttamente", "SP_ENTITY_ID": { "LABEL": "SP Entity ID", - "HELP": "Unique identifier for this application as a service provider (auto-generated).", - "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings" + "HELP": "Identificatore univoco per questa applicazione come Service Provider (generato automaticamente).", + "TOOLTIP": "Identificatore univoco di Chatwoot come Service Provider — configuralo nelle impostazioni del tuo IdP" }, "IDP_ENTITY_ID": { "LABEL": "Identity Provider Entity ID", - "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)", + "HELP": "Identificatore univoco del tuo Identity Provider (di solito presente nella configurazione dell’IdP)", "PLACEHOLDER": "https://your-idp.com/saml" }, - "UPDATE_BUTTON": "Update SAML Settings", + "UPDATE_BUTTON": "Aggiorna Impostazioni SAML", "API": { - "SUCCESS": "SAML settings updated successfully", - "ERROR": "Failed to update SAML settings", - "ERROR_LOADING": "Failed to load SAML settings", - "DISABLED": "SAML settings disabled successfully" + "SUCCESS": "Impostazioni SAML aggiornate correttamente", + "ERROR": "Impossibile aggiornare le impostazioni SAML", + "ERROR_LOADING": "Impossibile caricare le impostazioni SAML", + "DISABLED": "Impostazioni SAML disabilitate correttamente" }, "VALIDATION": { - "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields", - "SSO_URL_ERROR": "Please enter a valid SSO URL", - "CERTIFICATE_ERROR": "Certificate is required", - "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required" + "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID e Certificate sono campi obbligatori", + "SSO_URL_ERROR": "Inserisci un URL SSO valido", + "CERTIFICATE_ERROR": "Certificato richiesto", + "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID è richiesto" }, "ENTERPRISE_PAYWALL": { - "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.", - "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.", + "AVAILABLE_ON": "La funzionalità SAML SSO è disponibile solo nei piani Enterprise.", + "UPGRADE_PROMPT": "Passa a un piano Enterprise per accedere a SAML single sign-on e ad altre funzionalità di sicurezza avanzate.", "ASK_ADMIN": "Si prega di contattare l'amministratore per l'aggiornamento." }, "PAYWALL": { - "TITLE": "Upgrade to enable SAML SSO", - "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.", - "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.", + "TITLE": "Aggiorna per abilitare SAML SSO", + "AVAILABLE_ON": "La funzionalità SAML SSO è disponibile solo nei piani Enterprise.", + "UPGRADE_PROMPT": "Aggiorna il tuo piano per ottenere l'accesso a SAML single sign-on e altre funzionalità avanzate.", "UPGRADE_NOW": "Aggiorna ora", "CANCEL_ANYTIME": "È possibile modificare o annullare il piano in qualsiasi momento" }, "ATTRIBUTE_MAPPING": { - "TITLE": "SAML Attribute Setup", - "DESCRIPTION": "The following attribute mappings must be configured in your identity provider" + "TITLE": "Impostazioni Attributi SAML", + "DESCRIPTION": "I seguenti mapping degli attributi devono essere configurati nel tuo Identity Provider" }, "INFO_SECTION": { - "TITLE": "Service Provider Information", - "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection" + "TITLE": "Informazioni sul Service Provider", + "TOOLTIP": "Copia questi valori e configurali nel tuo Identity Provider per stabilire la connessione SAML" } } }, @@ -508,62 +508,62 @@ "ASSIGNMENT_POLICY": { "INDEX": { "HEADER": { - "TITLE": "Agent assignment", - "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here" + "TITLE": "Assegnazione operatori", + "DESCRIPTION": "Definisci delle policy per gestire al meglio il carico di lavoro e indirizzare le conversazioni in base alle esigenze delle Inbox e degli operatori. Scopri di più qui" }, "ASSIGNMENT_POLICY": { - "TITLE": "Assignment policy", - "DESCRIPTION": "Manage how conversations get assigned in inboxes.", + "TITLE": "Policy di assegnazione", + "DESCRIPTION": "Gestisci come vengono assegnate le conversazioni nelle Inbox.", "FEATURES": [ - "Assign by conversations evenly or by available capacity", - "Add fair distribution rules to avoid overloading any agent", - "Add inboxes to a policy - one policy per inbox" + "Assegna le conversazioni in modo uniforme o in base al limite di conversazioni per operatore", + "Aggiungi regole di distribuzione equa per evitare di sovraccaricare gli operatori", + "Aggiungi le inbox a una policy — una policy per ogni inbox" ] }, "AGENT_CAPACITY_POLICY": { - "TITLE": "Agent capacity policy", - "DESCRIPTION": "Manage workload for agents.", + "TITLE": "Policy sul limite di conversazioni per operatore", + "DESCRIPTION": "Gestisci il carico di lavoro degli operatori.", "FEATURES": [ - "Define maximum conversations per inbox", - "Create exceptions based on labels and time", - "Add agents to a policy - one policy per agent" + "Definisci il numero massimo di conversazioni per inbox", + "Crea eccezioni basate su etichette e tempo", + "Aggiungi gli operatori a una policy — una policy per ogni operatore" ] } }, "AGENT_ASSIGNMENT_POLICY": { "INDEX": { "HEADER": { - "TITLE": "Assignment policy", - "CREATE_POLICY": "New policy" + "TITLE": "Policy di assegnazione", + "CREATE_POLICY": "Nuova policy" }, "CARD": { - "ORDER": "Order", + "ORDER": "Ordina", "PRIORITY": "Priorità", - "ACTIVE": "Attivo", - "INACTIVE": "Inactive", - "POPOVER": "Added inboxes", + "ACTIVE": "Attiva", + "INACTIVE": "Inattive", + "POPOVER": "Inbox aggiunte", "EDIT": "Modifica" }, - "NO_RECORDS_FOUND": "No assignment policies found" + "NO_RECORDS_FOUND": "Nessuna policy di assegnazione trovata" }, "CREATE": { "HEADER": { - "TITLE": "Create assignment policy" + "TITLE": "Crea policy di assegnazione" }, - "CREATE_BUTTON": "Create policy", + "CREATE_BUTTON": "Crea policy", "API": { - "SUCCESS_MESSAGE": "Assignment policy created successfully", - "ERROR_MESSAGE": "Failed to create assignment policy" + "SUCCESS_MESSAGE": "Policy di assegnazione creata con successo", + "ERROR_MESSAGE": "Impossibile creare la policy di assegnazione" } }, "EDIT": { "HEADER": { - "TITLE": "Edit assignment policy" + "TITLE": "Modifica policy di assegnazione" }, - "EDIT_BUTTON": "Update policy", + "EDIT_BUTTON": "Aggiorna policy", "CONFIRM_ADD_INBOX_DIALOG": { - "TITLE": "Aggiungi casella", - "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.", + "TITLE": "Aggiungi Inbox", + "DESCRIPTION": "La Inbox {inboxName} è già collegata ad un'altra policy. Sei sicuro di volerla collegare a questa policy? Sarà scollegata dall'altra policy.", "CONFIRM_BUTTON_LABEL": "Continua", "CANCEL_BUTTON_LABEL": "Annulla" }, @@ -573,19 +573,19 @@ }, "INBOX_API": { "ADD": { - "SUCCESS_MESSAGE": "Casella aggiunta con successo alla policy", - "ERROR_MESSAGE": "Failed to add inbox to policy" + "SUCCESS_MESSAGE": "Inbox aggiunta con successo alla policy", + "ERROR_MESSAGE": "Impossibile aggiungere la Inbox alla policy" }, "REMOVE": { - "SUCCESS_MESSAGE": "Inbox removed from policy successfully", - "ERROR_MESSAGE": "Failed to remove inbox from policy" + "SUCCESS_MESSAGE": "Inbox rimossa dalla policy correttamente", + "ERROR_MESSAGE": "Impossibile rimuovere la Inbox dalla policy" } } }, "FORM": { "NAME": { - "LABEL": "Policy name:", - "PLACEHOLDER": "Enter policy name" + "LABEL": "Nome policy:", + "PLACEHOLDER": "Inserisci il nome della policy" }, "DESCRIPTION": { "LABEL": "Descrizione:", @@ -594,158 +594,158 @@ "STATUS": { "LABEL": "Stato:", "PLACEHOLDER": "Seleziona status", - "ACTIVE": "Policy is active", - "INACTIVE": "Policy is inactive" + "ACTIVE": "Policy attiva", + "INACTIVE": "Policy inattiva" }, "ASSIGNMENT_ORDER": { - "LABEL": "Assignment order", + "LABEL": "Ordine di assegnazione", "ROUND_ROBIN": { "LABEL": "Round robin", - "DESCRIPTION": "Assign conversations evenly among agents." + "DESCRIPTION": "Assegna le conversazioni in modo uniforme tra gli operatori." }, "BALANCED": { - "LABEL": "Balanced", - "DESCRIPTION": "Assign conversations based on available capacity." + "LABEL": "Bilanciato", + "DESCRIPTION": "Assegna le conversazioni in base alla capacità disponibile." } }, "ASSIGNMENT_PRIORITY": { - "LABEL": "Assignment priority", + "LABEL": "Priorità di assegnazione", "EARLIEST_CREATED": { - "LABEL": "Earliest created", - "DESCRIPTION": "The conversation that was created first gets assigned first." + "LABEL": "Creata prima", + "DESCRIPTION": "La conversazione che è stata creata per prima viene assegnata per prima." }, "LONGEST_WAITING": { - "LABEL": "Longest waiting", - "DESCRIPTION": "The conversation waiting the longest gets assigned first." + "LABEL": "Attesa più lunga", + "DESCRIPTION": "La conversazione con il tempo di attesa più lungo viene assegnata per prima." } }, "FAIR_DISTRIBUTION": { - "LABEL": "Fair distribution policy", - "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.", - "INPUT_MAX": "Assign max", - "DURATION": "Conversations per agent in every" + "LABEL": "Policy di distribuzione equa", + "DESCRIPTION": "Imposta il numero massimo di conversazioni che possono essere assegnate per operatore in una finestra temporale per evitare di sovraccaricarlo. Questo campo obbligatorio è impostato di default a 100 conversazioni l'ora.", + "INPUT_MAX": "Assegna max", + "DURATION": "Conversazioni per operatore ogni" }, "INBOXES": { - "LABEL": "Added inboxes", - "DESCRIPTION": "Add inboxes for which this policy will be applicable.", - "ADD_BUTTON": "Aggiungi casella", + "LABEL": "Inbox aggiunte", + "DESCRIPTION": "Aggiungi le inbox a cui applicare questa policy.", + "ADD_BUTTON": "Aggiungi Inbox", "DROPDOWN": { - "SEARCH_PLACEHOLDER": "Search and select inboxes to add", + "SEARCH_PLACEHOLDER": "Cerca e seleziona le inbox da aggiungere", "ADD_BUTTON": "Aggiungi" }, - "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started", + "EMPTY_STATE": "Nessuna inbox aggiunta a questa policy, aggiungine una per iniziare", "API": { - "SUCCESS_MESSAGE": "Inbox successfully added to policy", - "ERROR_MESSAGE": "Failed to add inbox to policy" + "SUCCESS_MESSAGE": "Inbox aggiunta correttamente alla policy", + "ERROR_MESSAGE": "Impossibile aggiungere la Inbox alla policy" } } }, "DELETE_POLICY": { - "SUCCESS_MESSAGE": "Assignment policy deleted successfully", - "ERROR_MESSAGE": "Failed to delete assignment policy" + "SUCCESS_MESSAGE": "Policy di assegnazione eliminata correttamente", + "ERROR_MESSAGE": "Impossibile eliminare la policy di assegnazione" } }, "AGENT_CAPACITY_POLICY": { "INDEX": { "HEADER": { - "TITLE": "Agent capacity", - "CREATE_POLICY": "New policy" + "TITLE": "Limite di conversazioni per operatore", + "CREATE_POLICY": "Nuova policy" }, "CARD": { - "POPOVER": "Added agents", + "POPOVER": "Operatori aggiunti", "EDIT": "Modifica" }, - "NO_RECORDS_FOUND": "No agent capacity policies found" + "NO_RECORDS_FOUND": "Nessuna policy sul limite di conversazioni per operatore trovata" }, "CREATE": { "HEADER": { - "TITLE": "Create agent capacity policy" + "TITLE": "Crea una policy sul limite di conversazioni per operatore" }, - "CREATE_BUTTON": "Create policy", + "CREATE_BUTTON": "Crea policy", "API": { - "SUCCESS_MESSAGE": "Agent capacity policy created successfully", - "ERROR_MESSAGE": "Failed to create agent capacity policy" + "SUCCESS_MESSAGE": "Policy sul limite di conversazioni per operatore creata correttamente", + "ERROR_MESSAGE": "Impossibile eliminare la policy di assegnazione" } }, "EDIT": { "HEADER": { - "TITLE": "Edit agent capacity policy" + "TITLE": "Modifica la policy sul limite di conversazioni per operatore" }, - "EDIT_BUTTON": "Update policy", + "EDIT_BUTTON": "Aggiorna policy", "CONFIRM_ADD_AGENT_DIALOG": { - "TITLE": "Add agent", - "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.", + "TITLE": "Aggiungi operatore", + "DESCRIPTION": "{agentName} è già collegato a un’altra policy. Vuoi davvero collegarlo a questa policy? Verrà scollegato dall’altra.", "CONFIRM_BUTTON_LABEL": "Continua", "CANCEL_BUTTON_LABEL": "Annulla" }, "API": { - "SUCCESS_MESSAGE": "Agent capacity policy updated successfully", - "ERROR_MESSAGE": "Failed to update agent capacity policy" + "SUCCESS_MESSAGE": "Policy sul limite conversazioni per operatore aggiornata correttamente", + "ERROR_MESSAGE": "Impossibile aggiornare la policy sul limite conversazioni per operatore" }, "AGENT_API": { "ADD": { - "SUCCESS_MESSAGE": "Agent added to policy successfully", - "ERROR_MESSAGE": "Failed to add agent to policy" + "SUCCESS_MESSAGE": "Operatore aggiunto correttamente alla policy", + "ERROR_MESSAGE": "Impossibile aggiungere l’operatore alla policy" }, "REMOVE": { - "SUCCESS_MESSAGE": "Agent removed from policy successfully", - "ERROR_MESSAGE": "Failed to remove agent from policy" + "SUCCESS_MESSAGE": "Operatore rimosso correttamente dalla policy", + "ERROR_MESSAGE": "Impossibile rimuovere l’operatore dalla policy" } } }, "FORM": { "NAME": { - "LABEL": "Policy name:", - "PLACEHOLDER": "Enter policy name" + "LABEL": "Nome policy:", + "PLACEHOLDER": "Inserisci il nome della policy" }, "DESCRIPTION": { "LABEL": "Descrizione:", "PLACEHOLDER": "Inserisci descrizione" }, "INBOX_CAPACITY_LIMIT": { - "LABEL": "Inbox capacity limits", - "ADD_BUTTON": "Aggiungi casella", + "LABEL": "Limiti di conversazioni per inbox", + "ADD_BUTTON": "Aggiungi Inbox", "FIELD": { - "SELECT_INBOX": "Select inbox", - "MAX_CONVERSATIONS": "Max conversations", - "SET_LIMIT": "Set limit" + "SELECT_INBOX": "Seleziona Inbox", + "MAX_CONVERSATIONS": "Max conversazioni", + "SET_LIMIT": "Imposta limite" }, - "EMPTY_STATE": "No inbox limit set" + "EMPTY_STATE": "Nessun limite Inbox impostato" }, "EXCLUSION_RULES": { - "LABEL": "Exclusion rules", - "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity", + "LABEL": "Regole di esclusione", + "DESCRIPTION": "Le conversazioni che soddisfano le seguenti condizioni non verranno conteggiate nel limite di conversazioni per operatore", "TAGS": { - "LABEL": "Exclude conversations tagged with specific labels", - "ADD_TAG": "add tag", + "LABEL": "Escludi conversazioni taggate con etichette specifiche", + "ADD_TAG": "aggiungi tag", "DROPDOWN": { - "SEARCH_PLACEHOLDER": "Search and select tags to add" + "SEARCH_PLACEHOLDER": "Cerca e seleziona i tag da aggiungere" }, - "EMPTY_STATE": "No tags added to this policy." + "EMPTY_STATE": "Nessun tag aggiunto a questa policy." }, "DURATION": { - "LABEL": "Exclude conversations older than a specified duration", - "PLACEHOLDER": "Set time" + "LABEL": "Escludi conversazioni più vecchie di una durata specificata", + "PLACEHOLDER": "Imposta tempo" } }, "USERS": { - "LABEL": "Assigned agents", - "DESCRIPTION": "Add agents for which this policy will be applicable.", - "ADD_BUTTON": "Add agent", + "LABEL": "Operatori assegnati", + "DESCRIPTION": "Aggiungi operatori per i quali questa policy verrà applicata.", + "ADD_BUTTON": "Aggiungi operatore", "DROPDOWN": { - "SEARCH_PLACEHOLDER": "Search and select agents to add", + "SEARCH_PLACEHOLDER": "Cerca e seleziona operatori da aggiungere", "ADD_BUTTON": "Aggiungi" }, - "EMPTY_STATE": "No agents added", + "EMPTY_STATE": "Nessun operatore aggiunto", "API": { - "SUCCESS_MESSAGE": "Agent successfully added to policy", - "ERROR_MESSAGE": "Failed to add agent to policy" + "SUCCESS_MESSAGE": "Operatore aggiunto correttamente alla policy", + "ERROR_MESSAGE": "Impossibile aggiungere l'operatore alla policy" } } }, "DELETE_POLICY": { - "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully", - "ERROR_MESSAGE": "Failed to delete agent capacity policy" + "SUCCESS_MESSAGE": "La policy sul limite di conversazioni per operatore è stata eliminata correttamente", + "ERROR_MESSAGE": "Impossibile eliminare la policy sul limite di conversazioni per operatore" } }, "DELETE_POLICY": { diff --git a/app/javascript/dashboard/i18n/locale/it/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/it/whatsappTemplates.json index 6514590aa..ef6d06599 100644 --- a/app/javascript/dashboard/i18n/locale/it/whatsappTemplates.json +++ b/app/javascript/dashboard/i18n/locale/it/whatsappTemplates.json @@ -33,13 +33,13 @@ "GO_BACK_LABEL": "Torna indietro", "SEND_MESSAGE_LABEL": "Invia messaggio", "FORM_ERROR_MESSAGE": "Si prega di compilare tutte le variabili prima di inviare", - "MEDIA_HEADER_LABEL": "{type} Header", + "MEDIA_HEADER_LABEL": "Intestazione {type}", "OTP_CODE": "Inserisci OTP da 4 a 8 cifre", "EXPIRY_MINUTES": "Inserisci minuti di scadenza", "BUTTON_PARAMETERS": "Parametri Pulsanti", "BUTTON_LABEL": "Pulsante {index}", "COUPON_CODE": "Inserisci il codice coupon (max 15 caratteri)", - "MEDIA_URL_LABEL": "Enter {type} URL", + "MEDIA_URL_LABEL": "Inserisci l’URL del {type}", "DOCUMENT_NAME_PLACEHOLDER": "Inserisci il nome del file (es. Fattura_2025.pdf)", "BUTTON_PARAMETER": "Inserisci parametro pulsante" } diff --git a/app/javascript/dashboard/i18n/locale/ko/agentBots.json b/app/javascript/dashboard/i18n/locale/ko/agentBots.json index e07da4507..a8505390b 100644 --- a/app/javascript/dashboard/i18n/locale/ko/agentBots.json +++ b/app/javascript/dashboard/i18n/locale/ko/agentBots.json @@ -2,9 +2,9 @@ "AGENT_BOTS": { "HEADER": "봇", "LOADING_EDITOR": "Loading editor...", - "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.", + "DESCRIPTION": "에이전트 봇은 팀에서 가장 뛰어난 멤버와 같습니다. 사소한 일은 봇이 처리해 주니, 중요한 일에 집중하세요. 한번 사용해 보세요. 이 페이지에서 봇을 관리하거나 '봇 추가' 버튼을 통해 새 봇을 생성할 수 있습니다.", "LEARN_MORE": "Learn about agent bots", - "GLOBAL_BOT": "System bot", + "GLOBAL_BOT": "시스템 봇", "GLOBAL_BOT_BADGE": "System", "AVATAR": { "SUCCESS_DELETE": "Bot avatar deleted successfully", diff --git a/app/javascript/dashboard/i18n/locale/ko/campaign.json b/app/javascript/dashboard/i18n/locale/ko/campaign.json index 050f01bb8..9c65e80ca 100644 --- a/app/javascript/dashboard/i18n/locale/ko/campaign.json +++ b/app/javascript/dashboard/i18n/locale/ko/campaign.json @@ -138,10 +138,10 @@ } }, "WHATSAPP": { - "HEADER_TITLE": "WhatsApp campaigns", + "HEADER_TITLE": "WhatsApp 캠페인", "NEW_CAMPAIGN": "Create campaign", "EMPTY_STATE": { - "TITLE": "No WhatsApp campaigns are available", + "TITLE": "사용 가능한 WhatsApp 캠페인 없음", "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started." }, "CARD": { diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/report.json b/app/javascript/dashboard/i18n/locale/pt_BR/report.json index 7eed47de7..7f1140fdd 100644 --- a/app/javascript/dashboard/i18n/locale/pt_BR/report.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/report.json @@ -573,7 +573,7 @@ "LABEL": "Nome do campo", "AVG_RESOLUTION_TIME": "Tempo Médio de Resolução", "AVG_FIRST_RESPONSE_TIME": "Tempo Médio de Primeira Resposta", - "AVG_REPLY_TIME": "Tempo Médio de Abertas do Cliente", + "AVG_REPLY_TIME": "Tempo Médio de Espera do Cliente", "RESOLUTION_COUNT": "Contagem de Resolução", "CONVERSATIONS": "Nº de Conversas" } diff --git a/app/javascript/dashboard/i18n/locale/tr/agentBots.json b/app/javascript/dashboard/i18n/locale/tr/agentBots.json index 9b4c0b500..b1118a235 100644 --- a/app/javascript/dashboard/i18n/locale/tr/agentBots.json +++ b/app/javascript/dashboard/i18n/locale/tr/agentBots.json @@ -3,7 +3,7 @@ "HEADER": "Botlar", "LOADING_EDITOR": "Editör Yükleniyor...", "DESCRIPTION": "Temsilci botları ekibinizin en harika üyeleri gibidir. Küçük işleri halledebilirler, böylece önemli işlere odaklanabilirsiniz. Onları deneyin. Botlarınızı bu sayfadan yönetebilir veya 'Bot Ekle' butonunu kullanarak yenilerini oluşturabilirsiniz.", - "LEARN_MORE": "Learn about agent bots", + "LEARN_MORE": "Temsilci botları hakkında bilgi edinin", "GLOBAL_BOT": "Sistem botu", "GLOBAL_BOT_BADGE": "Sistem", "AVATAR": { @@ -14,7 +14,7 @@ "TITLE": "Bir temsilci botu seçin", "DESC": "Gelen kutunuza bir temsilci Botu atayın. Küçük konuşmaları ele alabilir ve gerekli olduğunda canlı bir temsilciın devralmasını sağlayabilirler.", "SUBMIT": "Güncelle", - "DISCONNECT": "Botu bağlantısını kes", + "DISCONNECT": "Botun bağlantısını kes", "SUCCESS_MESSAGE": "Temsilci botu başarıyla güncellendi.", "DISCONNECTED_SUCCESS_MESSAGE": "Temsilci botu başarıyla bağlantısı kesildi.", "ERROR_MESSAGE": "Temsilci botu güncellenemedi. Lütfen tekrar deneyin.", @@ -94,7 +94,7 @@ "UPDATE": "Botu Güncelle" }, "WEBHOOK": { - "DESCRIPTION": "Webhook botunu özel hizmetlerinizle entegre etmek için yapılandırın. Bot, sohbetlerden gelen olayları alacak ve işleyebilecek." + "DESCRIPTION": "Webhook botunu özel hizmetlerinizle entegre etmek için yapılandırın. Bot, sohbetlerden gelen etkinlikleri alacak ve işleyebilecek." }, "TYPES": { "WEBHOOK": "Webhook botu" diff --git a/app/javascript/dashboard/i18n/locale/tr/auditLogs.json b/app/javascript/dashboard/i18n/locale/tr/auditLogs.json index 98eb2372c..5f174dd05 100644 --- a/app/javascript/dashboard/i18n/locale/tr/auditLogs.json +++ b/app/javascript/dashboard/i18n/locale/tr/auditLogs.json @@ -3,8 +3,8 @@ "HEADER": "Denetim Kayıtları", "HEADER_BTN_TXT": "Denetim Kaydı Ekle", "LOADING": "Denetim Kayıtları Alınıyor", - "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.", - "LEARN_MORE": "Learn more about audit logs", + "DESCRIPTION": "Denetim Kayıtları, hesabınızdaki faaliyetlerin kaydını tutar ve hesabınızı, ekibinizi veya hizmetlerinizi takip etmenize ve denetlemenize olanak sağlar.", + "LEARN_MORE": "Denetim kayıtları hakkında daha fazla bilgi edinin", "SEARCH_404": "Bu sorgu ile eşleşen öğe yok", "SIDEBAR_TXT": "

Denetim Kayıtları

Denetim Kayıtları, Chatwoot Sistemi'ndeki olaylar ve eylemler için izlerdir.

", "LIST": { @@ -12,8 +12,8 @@ "TITLE": "Denetim Kayıtlarını Yönet", "DESC": "Denetim Kayıtları, Chatwoot Sistemi'ndeki olaylar ve eylemler için izlerdir.", "TABLE_HEADER": { - "ACTIVITY": "Kullanıcı", - "TIME": "Eylem", + "ACTIVITY": "Etkinlik", + "TIME": "Zaman", "IP_ADDRESS": "IP Adresi" } }, @@ -23,52 +23,52 @@ }, "DEFAULT_USER": "Sistem", "AUTOMATION_RULE": { - "ADD": "{agentName} created a new automation rule (#{id})", - "EDIT": "{agentName} updated an automation rule (#{id})", - "DELETE": "{agentName} deleted an automation rule (#{id})" + "ADD": "{agentName}, yeni bir otomasyon kuralı oluşturdu (#{id})", + "EDIT": "{agentName}, bir otomasyon kuralını güncelledi (#{id})", + "DELETE": "{agentName}, bir otomasyon kuralını sildi (#{id})" }, "ACCOUNT_USER": { - "ADD": "{agentName}, {invitee}'yi {role} olarak hesaba davet etti", + "ADD": "{agentName}, {invitee}'yi hesaba {role} rolünde davet etti", "EDIT": { - "SELF": "{agentName}, {attributes}ını {values} olarak değiştirdi", - "OTHER": "{agentName}, {user}'ın {attributes}ını {values} olarak değiştirdi", - "DELETED": "{agentName} changed {attributes} of a deleted user to {values}" + "SELF": "{agentName}, {attributes} değerini {values} olarak değiştirdi", + "OTHER": "{agentName}, {user} kullanıcısının {attributes} değerini {values} olarak değiştirdi", + "DELETED": "{agentName}, silinmiş bir kullanıcının {attributes} değerini {values} olarak değiştirdi" } }, "INBOX": { - "ADD": "{agentName} created a new inbox (#{id})", - "EDIT": "{agentName} updated an inbox (#{id})", - "DELETE": "{agentName} deleted an inbox (#{id})" + "ADD": "{agentName}, yeni bir gelen kutusu oluşturdu (#{id})", + "EDIT": "{agentName}, bir gelen kutusunu güncelledi (#{id})", + "DELETE": "{agentName}, bir gelen kutusunu sildi (#{id})" }, "WEBHOOK": { - "ADD": "{agentName} created a new webhook (#{id})", - "EDIT": "{agentName} updated a webhook (#{id})", - "DELETE": "{agentName} deleted a webhook (#{id})" + "ADD": "{agentName}, yeni bir webhook oluşturdu (#{id})", + "EDIT": "{agentName}, bir webhook'u güncelledi (#{id})", + "DELETE": "{agentName}, bir webhook'u sildi (#{id})" }, "USER_ACTION": { "SIGN_IN": "{agentName} giriş yaptı", "SIGN_OUT": "{agentName} çıkış yaptı" }, "TEAM": { - "ADD": "{agentName} created a new team (#{id})", - "EDIT": "{agentName} updated a team (#{id})", - "DELETE": "{agentName} deleted a team (#{id})" + "ADD": "{agentName}, yeni bir ekip oluşturdu (#{id})", + "EDIT": "{agentName}, bir ekibi güncelledi (#{id})", + "DELETE": "{agentName}, bir ekibi sildi (#{id})" }, "MACRO": { - "ADD": "{agentName} created a new macro (#{id})", - "EDIT": "{agentName} updated a macro (#{id})", - "DELETE": "{agentName} deleted a macro (#{id})" + "ADD": "{agentName}, yeni bir makro oluşturdu (#{id})", + "EDIT": "{agentName}, bir makroyu güncelledi (#{id})", + "DELETE": "{agentName}, bir makroyu sildi (#{id})" }, "INBOX_MEMBER": { - "ADD": "{agentName} added {user} to the inbox(#{inbox_id})", - "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})" + "ADD": "{agentName}, {user} kullanıcısını gelen kutusuna (#{inbox_id}) ekledi", + "REMOVE": "{agentName}, {user} kullanıcısını gelen kutusundan (#{inbox_id}) çıkard" }, "TEAM_MEMBER": { - "ADD": "{agentName} added {user} to the team(#{team_id})", - "REMOVE": "{agentName} removed {user} from the team(#{team_id})" + "ADD": "{agentName}, {user} kullanıcısını ekibe (#{team_id}) ekledi", + "REMOVE": "{agentName}, {user} kullanıcısını ekipten (#{team_id}) çıkardı" }, "ACCOUNT": { - "EDIT": "{agentName} updated the account configuration (#{id})" + "EDIT": "{agentName}, hesap yapılandırmasını güncelledi (#{id})" }, "CONVERSATION": { "DELETE": "{agentName} #{id} numaralı sohbeti sildi" diff --git a/app/javascript/dashboard/i18n/locale/tr/automation.json b/app/javascript/dashboard/i18n/locale/tr/automation.json index 7d5464304..9c8cd885f 100644 --- a/app/javascript/dashboard/i18n/locale/tr/automation.json +++ b/app/javascript/dashboard/i18n/locale/tr/automation.json @@ -1,7 +1,7 @@ { "AUTOMATION": { "HEADER": "Otomasyon", - "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.", + "DESCRIPTION": "Otomasyon, etiket ekleme veya konuşmaları en uygun temsilciye atama gibi manuel çaba gerektiren mevcut süreçleri kolaylaştırabilir ve onların yerine geçebilir. Bu sayede ekip, rutin işlere harcanan zamanı azaltarak güçlü yönlerine odaklanabilir.", "LEARN_MORE": "Learn more about automation", "HEADER_BTN_TXT": "Otomasyon Kuralı Ekle", "LOADING": "Otomasyon kuralları getiriliyor", @@ -121,17 +121,17 @@ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required", "FILTER_OPERATOR_REQUIRED": "Filter operator is required", "VALUE_REQUIRED": "Değer gereklidir", - "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998", + "VALUE_MUST_BE_BETWEEN_1_AND_998": "Değer 1 ile 998 arasında olmalıdır", "ACTION_PARAMETERS_REQUIRED": "Action parameters are required", "ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required", "ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required" }, "NONE_OPTION": "Hiç", "EVENTS": { - "CONVERSATION_CREATED": "Görüşme Oluşturuldu", - "CONVERSATION_UPDATED": "Görüşme Güncellendi", + "CONVERSATION_CREATED": "Sohbet Oluşturuldu", + "CONVERSATION_UPDATED": "Sohbet Güncellendi", "MESSAGE_CREATED": "Mesaj Oluşturuldu", - "CONVERSATION_RESOLVED": "Conversation Resolved", + "CONVERSATION_RESOLVED": "Konuşma Çözüldü", "CONVERSATION_OPENED": "Sohbet Açıldı" }, "ACTIONS": { @@ -147,14 +147,14 @@ "SEND_WEBHOOK_EVENT": "Webhook Olayı Gönder", "SEND_ATTACHMENT": "Ek Gönder", "SEND_MESSAGE": "Mesaj Gönder", - "ADD_PRIVATE_NOTE": "Özel Bir Not Ekle", + "ADD_PRIVATE_NOTE": "Özel Not Ekle", "CHANGE_PRIORITY": "Önceliği Değiştir", "ADD_SLA": "Add SLA", "OPEN_CONVERSATION": "Görüşmeyi aç" }, "MESSAGE_TYPES": { - "INCOMING": "Incoming Message", - "OUTGOING": "Outgoing Message" + "INCOMING": "Gelen Mesaj", + "OUTGOING": "Giden Mesaj" }, "PRIORITY_TYPES": { "NONE": "Hiç", diff --git a/app/javascript/dashboard/i18n/locale/tr/components.json b/app/javascript/dashboard/i18n/locale/tr/components.json index a9c076f2e..a671d6c69 100644 --- a/app/javascript/dashboard/i18n/locale/tr/components.json +++ b/app/javascript/dashboard/i18n/locale/tr/components.json @@ -7,11 +7,11 @@ "PLACEHOLDER": "Select an option...", "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`", "EMPTY_STATE": "Sonuç bulunamadı.", - "SEARCH_PLACEHOLDER": "Search...", + "SEARCH_PLACEHOLDER": "Ara...", "MORE": "+{count} more" }, "DROPDOWN_MENU": { - "SEARCH_PLACEHOLDER": "Search...", + "SEARCH_PLACEHOLDER": "Ara...", "EMPTY_STATE": "Sonuç bulunamadı.", "SEARCHING": "Aranıyor..." }, diff --git a/app/javascript/dashboard/i18n/locale/tr/contact.json b/app/javascript/dashboard/i18n/locale/tr/contact.json index 60befd25d..a7ea52716 100644 --- a/app/javascript/dashboard/i18n/locale/tr/contact.json +++ b/app/javascript/dashboard/i18n/locale/tr/contact.json @@ -44,10 +44,10 @@ }, "MERGE_CONTACT": "Kişileri birleştir", "CONTACT_ACTIONS": "Kişi Eylemleri", - "MUTE_CONTACT": "Block Contact", - "UNMUTE_CONTACT": "Unblock Contact", - "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.", - "UNMUTED_SUCCESS": "This contact is unblocked successfully.", + "MUTE_CONTACT": "Kişiyi Engelle", + "UNMUTE_CONTACT": "Kişinin Engellemesini Kaldır", + "MUTED_SUCCESS": "Bu kişi başarıyla engellendi. Gelecekteki hiçbir konuşmadan bildirim almayacaksınız.", + "UNMUTED_SUCCESS": "Bu kişinin engeli başarıyla kaldırıldı.", "SEND_TRANSCRIPT": "Transkript Gönder", "EDIT_LABEL": "Düzenle", "SIDEBAR_SECTIONS": { @@ -82,7 +82,7 @@ "SUBMIT": "Gönder", "CANCEL": "İptal Et", "AVATAR": { - "LABEL": "İletişim Avatarı" + "LABEL": "Kişinin Avatarı" }, "NAME": { "PLACEHOLDER": "Kişinin tam adını girin", @@ -103,7 +103,7 @@ "LABEL": "Telefon Numarası", "HELP": "Telefon numarası E.164 formatında olmalıdır, örneğin: +1415555555 [+][ülke kodu][alan kodu][yerel telefon numarası]. Döner kodu listeden seçebilirsiniz.", "ERROR": "Telefon numarası boş olamaz veya E.164 formatında olmalıdır.", - "DIAL_CODE_ERROR": "Lütfen listeden bir döner kod seçin", + "DIAL_CODE_ERROR": "Lütfen listeden bir alan kodu seçin", "DUPLICATE": "Bu telefon numarası başka bir kişi tarafından kullanılıyor." }, "LOCATION": { @@ -198,10 +198,10 @@ "CUSTOM_ATTRIBUTES": { "BUTTON": "Belirli bir özellik ekle", "COPY_SUCCESSFUL": "Panoya başarıyla kopyalandı", - "SHOW_MORE": "Show all attributes", - "SHOW_LESS": "Show less attributes", + "SHOW_MORE": "Tüm öznitelikleri göster", + "SHOW_LESS": "Daha az öznitelik göster", "ACTIONS": { - "COPY": "Özellik kopyala", + "COPY": "Özniteliği kopyala", "DELETE": "Özellik sil", "EDIT": "Özellik düzenle" }, @@ -289,37 +289,37 @@ "CONTACTS_LAYOUT": { "HEADER": { "TITLE": "Kişiler", - "SEARCH_TITLE": "Search contacts", + "SEARCH_TITLE": "Kişileri Ara", "ACTIVE_TITLE": "Aktif kişiler", - "SEARCH_PLACEHOLDER": "Search...", + "SEARCH_PLACEHOLDER": "Ara...", "MESSAGE_BUTTON": "Mesaj", "SEND_MESSAGE": "Mesajı Gönder", - "BLOCK_CONTACT": "Block contact", - "UNBLOCK_CONTACT": "Unblock contact", + "BLOCK_CONTACT": "Kişiyi Engelle", + "UNBLOCK_CONTACT": "Kişinin Engellemesini Kaldır", "BREADCRUMB": { "CONTACTS": "Kişiler" }, "ACTIONS": { "CONTACT_CREATION": { - "ADD_CONTACT": "Add contact", - "EXPORT_CONTACT": "Export contacts", - "IMPORT_CONTACT": "Import contacts", + "ADD_CONTACT": "Kişi ekle", + "EXPORT_CONTACT": "Kişileri Dışa Aktar", + "IMPORT_CONTACT": "Kişileri İçe Aktar", "SAVE_CONTACT": "Save contact", "EMAIL_ADDRESS_DUPLICATE": "Bu e-posta adresi başka bir kişi için kullanılıyor.", "PHONE_NUMBER_DUPLICATE": "Bu telefon numarası başka bir kişi tarafından kullanılıyor.", "SUCCESS_MESSAGE": "Kişi bilgileri başarıyla kaydedildi", - "ERROR_MESSAGE": "Unable to save contact. Please try again later." + "ERROR_MESSAGE": "Kişi kaydedilemiyor. Lütfen daha sonra tekrar deneyin." }, - "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully", - "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.", - "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully", - "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.", + "BLOCK_SUCCESS_MESSAGE": "Bu kişi başarıyla engellendi", + "BLOCK_ERROR_MESSAGE": "Kişi engellenemedi. Lütfen daha sonra tekrar deneyin.", + "UNBLOCK_SUCCESS_MESSAGE": "Bu kişinin engeli başarıyla kaldırıldı", + "UNBLOCK_ERROR_MESSAGE": "Kişinin engeli kaldırılamadı. Lütfen daha sonra tekrar deneyin.", "IMPORT_CONTACT": { - "TITLE": "Import contacts", + "TITLE": "Kişileri İçe Aktar", "DESCRIPTION": "Kişileri CSV dosyası olarak içe aktar.", "DOWNLOAD_LABEL": "Örnek CSV dosyası indir.", "LABEL": "CSV Dosyası:", - "CHOOSE_FILE": "Choose file", + "CHOOSE_FILE": "Dosya seç", "CHANGE": "Durumu Değiştir", "CANCEL": "İptal Et", "IMPORT": "İçe Aktar", @@ -327,8 +327,8 @@ "ERROR_MESSAGE": "Bir hata oluştu, lütfen tekrar deneyin" }, "EXPORT_CONTACT": { - "TITLE": "Export contacts", - "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts", + "TITLE": "Kişileri Dışa Aktar", + "DESCRIPTION": "Kişilerinizin ayrıntılı bilgilerini içeren bir CSV dosyasını hızlıca dışa aktarın", "CONFIRM": "Dışa Aktar", "SUCCESS_MESSAGE": "Dışa aktarma işlemi devam ediyor, dışa aktarma dosyası indirmeye hazır olduğunda e-posta ile bildirileceksiniz.", "ERROR_MESSAGE": "Bir hata oluştu, lütfen tekrar deneyin" @@ -347,35 +347,35 @@ } }, "ORDER": { - "LABEL": "Ordering", + "LABEL": "Sıralama", "OPTIONS": { - "ASCENDING": "Ascending", - "DESCENDING": "Descending" + "ASCENDING": "Artan", + "DESCENDING": "Azalan" } }, "FILTERS": { "CREATE_SEGMENT": { - "TITLE": "Bu Filtreyi Kaydetmek İster Misiniz?", + "TITLE": "Bu filtreyi kaydetmek ister misiniz?", "CONFIRM": "Filtreyi Kaydet", "LABEL": "İsim", "PLACEHOLDER": "Enter the name of the filter", "ERROR": "Enter a valid name", "SUCCESS_MESSAGE": "Filter saved successfully", - "ERROR_MESSAGE": "Unable to save filter. Please try again later." + "ERROR_MESSAGE": "Filtre kaydedilemiyor. Lütfen daha sonra tekrar deneyin." }, "DELETE_SEGMENT": { "TITLE": "Silmeyi onayla", - "DESCRIPTION": "Are you sure you want to delete this filter?", + "DESCRIPTION": "Bu filtreyi silmek istediğinizden emin misiniz?", "CONFIRM": "Evet, Sil", - "CANCEL": "No, Cancel", - "SUCCESS_MESSAGE": "Filter deleted successfully", - "ERROR_MESSAGE": "Unable to delete filter. Please try again later." + "CANCEL": "Hayır, İptal Et", + "SUCCESS_MESSAGE": "Filtre başarıyla silindi", + "ERROR_MESSAGE": "Filtre silinemiyor. Lütfen daha sonra tekrar deneyin." } } } }, "PAGINATION_FOOTER": { - "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts" + "SHOWING": "{totalItems} kişiden {startItem} - {endItem} arası gösteriliyor" }, "FILTER": { "NAME": "İsim", @@ -392,7 +392,7 @@ "BLOCKED_FALSE": "Yanlış", "BUTTONS": { "CLEAR_FILTERS": "Filtreleri Temizle", - "UPDATE_SEGMENT": "Update segment", + "UPDATE_SEGMENT": "Segmenti Güncelle", "APPLY_FILTERS": "Filtreleri Uygula", "ADD_FILTER": "Filtre Ekle" }, @@ -414,53 +414,53 @@ "TITLE": "İletişim bilgilerini düzenleyin", "FORM": { "FIRST_NAME": { - "PLACEHOLDER": "Enter the first name" + "PLACEHOLDER": "Ad" }, "LAST_NAME": { - "PLACEHOLDER": "Enter the last name" + "PLACEHOLDER": "Soyad" }, "EMAIL_ADDRESS": { - "PLACEHOLDER": "Enter the email address", + "PLACEHOLDER": "E-posta adresini girin", "DUPLICATE": "Bu e-posta adresi başka bir kişi için kullanılıyor." }, "PHONE_NUMBER": { - "PLACEHOLDER": "Enter the phone number", + "PLACEHOLDER": "Telefon numarasını girin", "DUPLICATE": "Bu telefon numarası başka bir kişi tarafından kullanılıyor." }, "CITY": { "PLACEHOLDER": "Şehir adını girin" }, "COUNTRY": { - "PLACEHOLDER": "Select country" + "PLACEHOLDER": "Ülke seç" }, "BIO": { - "PLACEHOLDER": "Enter the bio" + "PLACEHOLDER": "Hakkında Bilgisi Girin" }, "COMPANY_NAME": { "PLACEHOLDER": "Şirket adını girin" } }, - "UPDATE_BUTTON": "Update contact", - "SUCCESS_MESSAGE": "Contact updated successfully", - "ERROR_MESSAGE": "Unable to update contact. Please try again later." + "UPDATE_BUTTON": "Kişiyi güncelle", + "SUCCESS_MESSAGE": "Kişi başarıyla güncellendi.", + "ERROR_MESSAGE": "Kişi güncellenemedi. Lütfen daha sonra tekrar deneyin." }, "SOCIAL_MEDIA": { - "TITLE": "Edit social links", + "TITLE": "Sosyal bağlantıları düzenle", "FORM": { "FACEBOOK": { - "PLACEHOLDER": "Add Facebook" + "PLACEHOLDER": "Facebook ekle" }, "GITHUB": { - "PLACEHOLDER": "Add Github" + "PLACEHOLDER": "Github ekle" }, "INSTAGRAM": { - "PLACEHOLDER": "Add Instagram" + "PLACEHOLDER": "Instagram ekle" }, "LINKEDIN": { - "PLACEHOLDER": "Add LinkedIn" + "PLACEHOLDER": "LinkedIn ekle" }, "TWITTER": { - "PLACEHOLDER": "Add Twitter" + "PLACEHOLDER": "Twitter ekle" } } }, @@ -470,9 +470,9 @@ } }, "DETAILS": { - "CREATED_AT": "Created {date}", - "LAST_ACTIVITY": "Last active {date}", - "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible", + "CREATED_AT": "Oluşturuldu {date}", + "LAST_ACTIVITY": "Son etkinlik {date}", + "DELETE_CONTACT_DESCRIPTION": "Bu kişiyi kalıcı olarak sil. Bu işlem geri alınamaz.", "DELETE_CONTACT": "Kişiyi Sil", "DELETE_DIALOG": { "TITLE": "Silmeyi onayla", @@ -497,9 +497,9 @@ "SIDEBAR": { "TABS": { "ATTRIBUTES": "Öznitelikler", - "HISTORY": "History", + "HISTORY": "Geçmiş", "NOTES": "Notlar", - "MERGE": "Merge" + "MERGE": "Birleştir" }, "HISTORY": { "EMPTY_STATE": "Bu kişiyle ilişkilendirilmiş önceki görüşme yok" @@ -507,7 +507,7 @@ "ATTRIBUTES": { "SEARCH_PLACEHOLDER": "Search for attributes", "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes", - "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.", + "EMPTY_STATE": "Bu hesapta herhangi bir kişi özel niteliği bulunmamaktadır. Özel bir nitelik oluşturmak için ayarlar bölümünü kullanabilirsiniz.", "YES": "Evet", "NO": "Hayır", "TRIGGER": { @@ -531,14 +531,14 @@ }, "MERGE": { "TITLE": "Kişileri birleştir", - "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.", + "DESCRIPTION": "İki profili birleştirerek tüm nitelikleri ve konuşmaları tek bir profilde toplayın. Çakışma durumunda, birincil kişinin nitelikleri öncelikli olacaktır.", "PRIMARY": "Birincil kişi", - "PRIMARY_HELP_LABEL": "To be saved", + "PRIMARY_HELP_LABEL": "Kaydedilecek", "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding", - "PARENT": "To be merged", + "PARENT": "Birleştirilecek", "PARENT_HELP_LABEL": "Silinecek", "EMPTY_STATE": "No contacts found", - "PLACEHOLDER": "Search for primary contact", + "PLACEHOLDER": "Birincil kişiyi ara", "SEARCH_PLACEHOLDER": "Kişileri arayın", "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.", "SUCCESS_MESSAGE": "Kişi başarıyla birleştirildi", diff --git a/app/javascript/dashboard/i18n/locale/tr/contentTemplates.json b/app/javascript/dashboard/i18n/locale/tr/contentTemplates.json index 4e3abd7f4..86020d9c1 100644 --- a/app/javascript/dashboard/i18n/locale/tr/contentTemplates.json +++ b/app/javascript/dashboard/i18n/locale/tr/contentTemplates.json @@ -1,8 +1,8 @@ { "CONTENT_TEMPLATES": { "MODAL": { - "TITLE": "Twilio Templates", - "SUBTITLE": "Select the Twilio template you want to send", + "TITLE": "Twilio Şablonları", + "SUBTITLE": "Göndermek istediğiniz Twilio şablonunu seçin", "TEMPLATE_SELECTED_SUBTITLE": "Şablonu yapılandır: {templateName}" }, "PICKER": { @@ -16,7 +16,7 @@ "CATEGORY": "Kategori", "MEDIA_CONTENT": "Medya İçeriği", "MEDIA_CONTENT_FALLBACK": "medya içeriği", - "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.", + "NO_TEMPLATES_AVAILABLE": "Twilio şablonu mevcut değil. Twilio'dan şablonları senkronize etmek için yenile düğmesine tıklayın.", "REFRESH_BUTTON": "Şablonları yenile", "REFRESH_SUCCESS": "Şablonların yenilenmesi başlatıldı. Güncelleme birkaç dakika sürebilir.", "REFRESH_ERROR": "Şablonları yenileme işlemi başarısız oldu. Lütfen tekrar deneyin.", @@ -27,7 +27,7 @@ }, "TYPES": { "MEDIA": "Medya", - "QUICK_REPLY": "Quick Reply", + "QUICK_REPLY": "Hızlı Yanıt", "TEXT": "Metin" } }, @@ -40,7 +40,7 @@ "SEND_MESSAGE_LABEL": "Mesaj Gönder", "FORM_ERROR_MESSAGE": "Lütfen göndermeden önce tüm değişkenleri doldurun", "MEDIA_HEADER_LABEL": "{type} Başlık", - "MEDIA_URL_LABEL": "Enter full media URL", + "MEDIA_URL_LABEL": "Tam medya URL'sini girin", "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg" }, "FORM": { diff --git a/app/javascript/dashboard/i18n/locale/tr/helpCenter.json b/app/javascript/dashboard/i18n/locale/tr/helpCenter.json index e4e7101cc..40886635a 100644 --- a/app/javascript/dashboard/i18n/locale/tr/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/tr/helpCenter.json @@ -160,8 +160,8 @@ }, "SEND_CNAME_INSTRUCTIONS": { "API": { - "SUCCESS_MESSAGE": "CNAME instructions sent successfully", - "ERROR_MESSAGE": "Error while sending CNAME instructions" + "SUCCESS_MESSAGE": "CNAME talimatları başarıyla gönderildi", + "ERROR_MESSAGE": "CNAME talimatları gönderilirken hata oluştu" } } }, @@ -742,7 +742,7 @@ "LABEL": "Live chat widget", "PLACEHOLDER": "Select live chat widget", "HELP_TEXT": "Select a live chat widget that will appear on your help center", - "NONE_OPTION": "No widget" + "NONE_OPTION": "Widget yok" }, "BRAND_COLOR": { "LABEL": "Brand color" @@ -779,7 +779,7 @@ "COPY": "CNAME başarıyla kopyalandı", "SEND_INSTRUCTIONS": { "HEADER": "Talimatları gönder", - "DESCRIPTION": "Bu adımı geliştirme ekibinizden birinin yapmasını tercih ediyorsanız, aşağıya mail adresini girin; gerekli talimatları onlara gönderelim.", + "DESCRIPTION": "Bu adımı geliştirme ekibinizden birinin halletmesini tercih ederseniz, ilgili e-posta adresini aşağıya girebilirsiniz; gerekli talimatları onlara göndereceğiz.", "PLACEHOLDER": "E-posta adreslerini girin", "ERROR": "Geçerli bir mail adresi girin", "SEND_BUTTON": "Gönder" @@ -815,7 +815,7 @@ "DRAG_DROP_TEXT": "PDF dosyanızı buraya sürükleyip bırakın veya tıklayarak seçin", "SELECT_FILE": "PDF Dosyasını Seç", "ADDITIONAL_CONTEXT_LABEL": "Ek Bağlam (İsteğe Bağlı)", - "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...", + "ADDITIONAL_CONTEXT_PLACEHOLDER": "SSS üretimi için ek bağlam veya talimatlar sağlayın...", "UPLOADING": "Yükleniyor ...", "UPLOAD": "Yükle & İşle", "CANCEL": "İptal Et", @@ -829,12 +829,12 @@ "UPLOAD_PDF": "PDF yükle", "UPLOAD_FIRST_PDF": "İlk PDF'inizi yükleyin", "UPLOADED_BY": "Yükleyen", - "GENERATE_FAQS": "Generate FAQs", + "GENERATE_FAQS": "SSS Oluştur", "GENERATING": "Oluşturuluyor...", - "CONFIRM_DELETE": "{filename} silmek istediğinizden emin misiniz?", + "CONFIRM_DELETE": "{filename} dosyasını silmek istediğinizden emin misiniz?", "EMPTY_STATE": { "TITLE": "Henüz PDF belgesi yok", - "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI" + "DESCRIPTION": "Yapay zekâ kullanarak SSS'leri otomatik oluşturmak için PDF belgelerini yükleyin" }, "STATUS": { "UPLOADED": "Hazır", @@ -844,22 +844,22 @@ } }, "CONTENT_GENERATION": { - "TITLE": "Content Generation", - "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI", + "TITLE": "İçerik Üretimi", + "DESCRIPTION": "Yapay zekâ kullanarak SSS içeriğini otomatik oluşturmak için PDF belgelerini yükleyin", "UPLOAD_TITLE": "PDF Belgesini Yükle", "DRAG_DROP": "PDF dosyanızı buraya sürükleyip bırakın veya tıklayarak seçin", "SELECT_FILE": "PDF Dosyasını Seç", "UPLOADING": "Belge işleniyor...", - "UPLOAD_SUCCESS": "Document processed successfully!", - "UPLOAD_ERROR": "Failed to upload document. Please try again.", + "UPLOAD_SUCCESS": "Belge başarıyla işlendi!", + "UPLOAD_ERROR": "Belge yüklenemedi. Lütfen tekrar deneyin.", "INVALID_FILE_TYPE": "Lütfen geçerli bir PDF dosyası seçin", "FILE_TOO_LARGE": "Dosya boyutu 512 MB'tan az olmalıdır", - "GENERATED_CONTENT": "Generated FAQ Content", - "PUBLISH_SELECTED": "Publish Selected", + "GENERATED_CONTENT": "Oluşturulan SSS İçeriği", + "PUBLISH_SELECTED": "Seçileni Yayımla", "PUBLISHING": "Yayınlanıyor...", - "FROM_DOCUMENT": "From document", - "NO_CONTENT": "No generated content available. Upload a PDF document to get started.", - "LOADING": "Loading generated content..." + "FROM_DOCUMENT": "Belgeden", + "NO_CONTENT": "Oluşturulmuş içerik yok. Başlamak için bir PDF belgesi yükleyin.", + "LOADING": "Oluşturulan içerik yükleniyor..." } } } diff --git a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json index e8c39e733..43588da40 100644 --- a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json @@ -653,9 +653,9 @@ }, "STATUSES": { "APPROVED": "Approved", - "PENDING_REVIEW": "Pending Review", + "PENDING_REVIEW": "İnceleme Bekliyor", "AVAILABLE_WITHOUT_REVIEW": "Available Without Review", - "REJECTED": "Rejected", + "REJECTED": "Reddedildi", "DECLINED": "Declined", "NON_EXISTS": "Mevcut değil" }, diff --git a/app/javascript/dashboard/i18n/locale/tr/integrations.json b/app/javascript/dashboard/i18n/locale/tr/integrations.json index 74c9fd61e..765b5d8c7 100644 --- a/app/javascript/dashboard/i18n/locale/tr/integrations.json +++ b/app/javascript/dashboard/i18n/locale/tr/integrations.json @@ -759,37 +759,37 @@ "TITLE": "No custom tools available", "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.", "FEATURE_SPOTLIGHT": { - "TITLE": "Custom Tools", - "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities." + "TITLE": "Özel Araçlar", + "NOTE": "Özel araçlar, asistanınızın harici API'ler ve hizmetlerle etkileşim kurmasını sağlar. Asistanınızın yeteneklerini artırmak için veri çekme, eylemler gerçekleştirme veya mevcut sistemlerinizle entegrasyon sağlama amaçlı araçlar oluşturun." } }, - "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs", + "FORM_DESCRIPTION": "Harici API'lere bağlanmak için özel aracınızı yapılandırın", "OPTIONS": { - "EDIT_TOOL": "Edit tool", - "DELETE_TOOL": "Delete tool" + "EDIT_TOOL": "Aracı Düzenle", + "DELETE_TOOL": "Aracı Sil" }, "CREATE": { - "TITLE": "Create Custom Tool", - "SUCCESS_MESSAGE": "Custom tool created successfully", - "ERROR_MESSAGE": "Failed to create custom tool" + "TITLE": "Özel Araç Oluştur", + "SUCCESS_MESSAGE": "Özel araç başarıyla oluşturuldu", + "ERROR_MESSAGE": "Özel araç oluşturulamadı" }, "EDIT": { - "TITLE": "Edit Custom Tool", - "SUCCESS_MESSAGE": "Custom tool updated successfully", - "ERROR_MESSAGE": "Failed to update custom tool" + "TITLE": "Özel Aracı Düzenle", + "SUCCESS_MESSAGE": "Özel araç başarıyla güncellendi", + "ERROR_MESSAGE": "Özel araç güncellenemedi" }, "DELETE": { - "TITLE": "Delete Custom Tool", - "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.", + "TITLE": "Özel Aracı Sil", + "DESCRIPTION": "Bu özel aracı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "CONFIRM": "Evet, sil", - "SUCCESS_MESSAGE": "Custom tool deleted successfully", - "ERROR_MESSAGE": "Failed to delete custom tool" + "SUCCESS_MESSAGE": "Özel araç başarıyla silindi", + "ERROR_MESSAGE": "Özel araç silinemedi" }, "FORM": { "TITLE": { - "LABEL": "Tool Name", + "LABEL": "Araç Adı", "PLACEHOLDER": "Order Lookup", - "ERROR": "Tool name is required" + "ERROR": "Araç adı zorunludur" }, "DESCRIPTION": { "LABEL": "Açıklama", diff --git a/app/javascript/dashboard/i18n/locale/tr/macros.json b/app/javascript/dashboard/i18n/locale/tr/macros.json index 5ee5d01d1..5dcd51d7e 100644 --- a/app/javascript/dashboard/i18n/locale/tr/macros.json +++ b/app/javascript/dashboard/i18n/locale/tr/macros.json @@ -97,7 +97,7 @@ "SEND_ATTACHMENT": "Ek Gönder", "SEND_MESSAGE": "Mesaj Gönder", "CHANGE_PRIORITY": "Önceliği Değiştir", - "ADD_PRIVATE_NOTE": "Özel Bir Not Ekle", + "ADD_PRIVATE_NOTE": "Özel Not Ekle", "SEND_WEBHOOK_EVENT": "Webhook Olayı Gönder" }, "PRIORITY_TYPES": { diff --git a/app/javascript/survey/i18n/locale/bn.json b/app/javascript/survey/i18n/locale/bn.json new file mode 100644 index 000000000..beee65ac5 --- /dev/null +++ b/app/javascript/survey/i18n/locale/bn.json @@ -0,0 +1,19 @@ +{ + "SURVEY": { + "DESCRIPTION": "Dear customer 👋, please take a few moments to share feedback about the conversation you had with {inboxName}.", + "RATING": { + "LABEL": "Rate your conversation", + "SUCCESS_MESSAGE": "Thank you for submitting the rating" + }, + "FEEDBACK": { + "LABEL": "Do you have any thoughts you'd like to share?", + "PLACEHOLDER": "Your feedback (optional)", + "BUTTON_TEXT": "Submit feedback" + }, + "API": { + "SUCCESS_MESSAGE": "Survey updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "POWERED_BY": "Powered by Chatwoot" +} diff --git a/app/javascript/survey/i18n/locale/et.json b/app/javascript/survey/i18n/locale/et.json new file mode 100644 index 000000000..beee65ac5 --- /dev/null +++ b/app/javascript/survey/i18n/locale/et.json @@ -0,0 +1,19 @@ +{ + "SURVEY": { + "DESCRIPTION": "Dear customer 👋, please take a few moments to share feedback about the conversation you had with {inboxName}.", + "RATING": { + "LABEL": "Rate your conversation", + "SUCCESS_MESSAGE": "Thank you for submitting the rating" + }, + "FEEDBACK": { + "LABEL": "Do you have any thoughts you'd like to share?", + "PLACEHOLDER": "Your feedback (optional)", + "BUTTON_TEXT": "Submit feedback" + }, + "API": { + "SUCCESS_MESSAGE": "Survey updated successfully", + "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later" + } + }, + "POWERED_BY": "Powered by Chatwoot" +} diff --git a/app/javascript/widget/i18n/locale/bn.json b/app/javascript/widget/i18n/locale/bn.json new file mode 100644 index 000000000..c3d6ddfc1 --- /dev/null +++ b/app/javascript/widget/i18n/locale/bn.json @@ -0,0 +1,153 @@ +{ + "COMPONENTS": { + "FILE_BUBBLE": { + "DOWNLOAD": "Download", + "UPLOADING": "Uploading..." + }, + "FORM_BUBBLE": { + "SUBMIT": "Submit" + }, + "MESSAGE_BUBBLE": { + "RETRY": "Send message again", + "ERROR_MESSAGE": "Couldn't send, try again" + } + }, + "THUMBNAIL": { + "AUTHOR": { + "NOT_AVAILABLE": "Not available" + } + }, + "TEAM_AVAILABILITY": { + "ONLINE": "We are online", + "OFFLINE": "We are away at the moment", + "BACK_AS_SOON_AS_POSSIBLE": "We will be back as soon as possible" + }, + "REPLY_TIME": { + "IN_A_FEW_MINUTES": "Typically replies in a few minutes", + "IN_A_FEW_HOURS": "Typically replies in a few hours", + "IN_A_DAY": "Typically replies in a day", + "BACK_IN_HOURS": "We will be back online in {n} hour | We will be back online in {n} hours", + "BACK_IN_MINUTES": "We will be back online in {time} minutes", + "BACK_AT_TIME": "We will be back online at {time}", + "BACK_ON_DAY": "We will be back online on {day}", + "BACK_TOMORROW": "We will be back online tomorrow", + "BACK_IN_SOME_TIME": "We will be back online in some time" + }, + "DAY_NAMES": { + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday" + }, + "START_CONVERSATION": "Start Conversation", + "END_CONVERSATION": "End Conversation", + "CONTINUE_CONVERSATION": "Continue conversation", + "YOU": "You", + "START_NEW_CONVERSATION": "Start a new conversation", + "VIEW_UNREAD_MESSAGES": "You have unread messages", + "UNREAD_VIEW": { + "VIEW_MESSAGES_BUTTON": "See new messages", + "CLOSE_MESSAGES_BUTTON": "Close", + "COMPANY_FROM": "from", + "BOT": "Bot" + }, + "BUBBLE": { + "LABEL": "Chat with us" + }, + "POWERED_BY": "Powered by Chatwoot", + "EMAIL_PLACEHOLDER": "Please enter your email", + "CHAT_PLACEHOLDER": "Type your message", + "TODAY": "Today", + "YESTERDAY": "Yesterday", + "PRE_CHAT_FORM": { + "FIELDS": { + "FULL_NAME": { + "LABEL": "Full Name", + "PLACEHOLDER": "Please enter your full name", + "REQUIRED_ERROR": "Full Name is required" + }, + "EMAIL_ADDRESS": { + "LABEL": "Email Address", + "PLACEHOLDER": "Please enter your email address", + "REQUIRED_ERROR": "Email Address is required", + "VALID_ERROR": "Please enter a valid email address" + }, + "PHONE_NUMBER": { + "LABEL": "Phone Number", + "PLACEHOLDER": "Please enter your phone number", + "REQUIRED_ERROR": "Phone Number is required", + "DIAL_CODE_VALID_ERROR": "Please select a country code", + "VALID_ERROR": "Please enter a valid phone number", + "DROPDOWN_EMPTY": "No results found", + "DROPDOWN_SEARCH": "Search country" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter your message", + "ERROR": "Message too short" + } + }, + "CAMPAIGN_HEADER": "Please provide your name and email before starting the conversation", + "IS_REQUIRED": "is required", + "REQUIRED": "Required", + "REGEX_ERROR": "Please provide a valid input" + }, + "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_FILE_UPLOAD_SIZE} attachment limit", + "CHAT_FORM": { + "INVALID": { + "FIELD": "Invalid field" + } + }, + "EMOJI": { + "PLACEHOLDER": "Search emojis", + "NOT_FOUND": "No emoji match your search", + "ARIA_LABEL": "Emoji picker" + }, + "CSAT": { + "TITLE": "Rate your conversation", + "SUBMITTED_TITLE": "Thank you for submitting the rating", + "PLACEHOLDER": "Tell us more..." + }, + "EMAIL_TRANSCRIPT": { + "BUTTON_TEXT": "Request a conversation transcript", + "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully", + "SEND_EMAIL_ERROR": "There was an error, please try again" + }, + "INTEGRATIONS": { + "DYTE": { + "CLICK_HERE_TO_JOIN": "Click here to join", + "LEAVE_THE_ROOM": "Leave the call" + } + }, + "PORTAL": { + "POPULAR_ARTICLES": "Popular Articles", + "VIEW_ALL_ARTICLES": "View all articles", + "IFRAME_LOAD_ERROR": "There was an error loading the article, please refresh the page and try again." + }, + "ATTACHMENTS": { + "image": { + "CONTENT": "Picture message" + }, + "audio": { + "CONTENT": "Audio message" + }, + "video": { + "CONTENT": "Video message" + }, + "file": { + "CONTENT": "File Attachment" + }, + "location": { + "CONTENT": "Location" + }, + "fallback": { + "CONTENT": "has shared a url" + } + }, + "FOOTER_REPLY_TO": { + "REPLY_TO": "Replying to:" + } +} diff --git a/app/javascript/widget/i18n/locale/cs.json b/app/javascript/widget/i18n/locale/cs.json index 4e7234d59..61bebf777 100644 --- a/app/javascript/widget/i18n/locale/cs.json +++ b/app/javascript/widget/i18n/locale/cs.json @@ -30,8 +30,8 @@ "BACK_IN_MINUTES": "We will be back online in {time} minutes", "BACK_AT_TIME": "We will be back online at {time}", "BACK_ON_DAY": "We will be back online on {day}", - "BACK_TOMORROW": "We will be back online tomorrow", - "BACK_IN_SOME_TIME": "We will be back online in some time" + "BACK_TOMORROW": "Zítra budeme opět k dispozici", + "BACK_IN_SOME_TIME": "Za chvíli budeme opět k dispozici" }, "DAY_NAMES": { "SUNDAY": "Neděle", diff --git a/app/javascript/widget/i18n/locale/et.json b/app/javascript/widget/i18n/locale/et.json new file mode 100644 index 000000000..c3d6ddfc1 --- /dev/null +++ b/app/javascript/widget/i18n/locale/et.json @@ -0,0 +1,153 @@ +{ + "COMPONENTS": { + "FILE_BUBBLE": { + "DOWNLOAD": "Download", + "UPLOADING": "Uploading..." + }, + "FORM_BUBBLE": { + "SUBMIT": "Submit" + }, + "MESSAGE_BUBBLE": { + "RETRY": "Send message again", + "ERROR_MESSAGE": "Couldn't send, try again" + } + }, + "THUMBNAIL": { + "AUTHOR": { + "NOT_AVAILABLE": "Not available" + } + }, + "TEAM_AVAILABILITY": { + "ONLINE": "We are online", + "OFFLINE": "We are away at the moment", + "BACK_AS_SOON_AS_POSSIBLE": "We will be back as soon as possible" + }, + "REPLY_TIME": { + "IN_A_FEW_MINUTES": "Typically replies in a few minutes", + "IN_A_FEW_HOURS": "Typically replies in a few hours", + "IN_A_DAY": "Typically replies in a day", + "BACK_IN_HOURS": "We will be back online in {n} hour | We will be back online in {n} hours", + "BACK_IN_MINUTES": "We will be back online in {time} minutes", + "BACK_AT_TIME": "We will be back online at {time}", + "BACK_ON_DAY": "We will be back online on {day}", + "BACK_TOMORROW": "We will be back online tomorrow", + "BACK_IN_SOME_TIME": "We will be back online in some time" + }, + "DAY_NAMES": { + "SUNDAY": "Sunday", + "MONDAY": "Monday", + "TUESDAY": "Tuesday", + "WEDNESDAY": "Wednesday", + "THURSDAY": "Thursday", + "FRIDAY": "Friday", + "SATURDAY": "Saturday" + }, + "START_CONVERSATION": "Start Conversation", + "END_CONVERSATION": "End Conversation", + "CONTINUE_CONVERSATION": "Continue conversation", + "YOU": "You", + "START_NEW_CONVERSATION": "Start a new conversation", + "VIEW_UNREAD_MESSAGES": "You have unread messages", + "UNREAD_VIEW": { + "VIEW_MESSAGES_BUTTON": "See new messages", + "CLOSE_MESSAGES_BUTTON": "Close", + "COMPANY_FROM": "from", + "BOT": "Bot" + }, + "BUBBLE": { + "LABEL": "Chat with us" + }, + "POWERED_BY": "Powered by Chatwoot", + "EMAIL_PLACEHOLDER": "Please enter your email", + "CHAT_PLACEHOLDER": "Type your message", + "TODAY": "Today", + "YESTERDAY": "Yesterday", + "PRE_CHAT_FORM": { + "FIELDS": { + "FULL_NAME": { + "LABEL": "Full Name", + "PLACEHOLDER": "Please enter your full name", + "REQUIRED_ERROR": "Full Name is required" + }, + "EMAIL_ADDRESS": { + "LABEL": "Email Address", + "PLACEHOLDER": "Please enter your email address", + "REQUIRED_ERROR": "Email Address is required", + "VALID_ERROR": "Please enter a valid email address" + }, + "PHONE_NUMBER": { + "LABEL": "Phone Number", + "PLACEHOLDER": "Please enter your phone number", + "REQUIRED_ERROR": "Phone Number is required", + "DIAL_CODE_VALID_ERROR": "Please select a country code", + "VALID_ERROR": "Please enter a valid phone number", + "DROPDOWN_EMPTY": "No results found", + "DROPDOWN_SEARCH": "Search country" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Please enter your message", + "ERROR": "Message too short" + } + }, + "CAMPAIGN_HEADER": "Please provide your name and email before starting the conversation", + "IS_REQUIRED": "is required", + "REQUIRED": "Required", + "REGEX_ERROR": "Please provide a valid input" + }, + "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_FILE_UPLOAD_SIZE} attachment limit", + "CHAT_FORM": { + "INVALID": { + "FIELD": "Invalid field" + } + }, + "EMOJI": { + "PLACEHOLDER": "Search emojis", + "NOT_FOUND": "No emoji match your search", + "ARIA_LABEL": "Emoji picker" + }, + "CSAT": { + "TITLE": "Rate your conversation", + "SUBMITTED_TITLE": "Thank you for submitting the rating", + "PLACEHOLDER": "Tell us more..." + }, + "EMAIL_TRANSCRIPT": { + "BUTTON_TEXT": "Request a conversation transcript", + "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully", + "SEND_EMAIL_ERROR": "There was an error, please try again" + }, + "INTEGRATIONS": { + "DYTE": { + "CLICK_HERE_TO_JOIN": "Click here to join", + "LEAVE_THE_ROOM": "Leave the call" + } + }, + "PORTAL": { + "POPULAR_ARTICLES": "Popular Articles", + "VIEW_ALL_ARTICLES": "View all articles", + "IFRAME_LOAD_ERROR": "There was an error loading the article, please refresh the page and try again." + }, + "ATTACHMENTS": { + "image": { + "CONTENT": "Picture message" + }, + "audio": { + "CONTENT": "Audio message" + }, + "video": { + "CONTENT": "Video message" + }, + "file": { + "CONTENT": "File Attachment" + }, + "location": { + "CONTENT": "Location" + }, + "fallback": { + "CONTENT": "has shared a url" + } + }, + "FOOTER_REPLY_TO": { + "REPLY_TO": "Replying to:" + } +} diff --git a/app/javascript/widget/i18n/locale/ko.json b/app/javascript/widget/i18n/locale/ko.json index d084e243b..d9f213da4 100644 --- a/app/javascript/widget/i18n/locale/ko.json +++ b/app/javascript/widget/i18n/locale/ko.json @@ -14,20 +14,20 @@ }, "THUMBNAIL": { "AUTHOR": { - "NOT_AVAILABLE": "Not available" + "NOT_AVAILABLE": "사용 불가" } }, "TEAM_AVAILABILITY": { "ONLINE": "온라인", "OFFLINE": "부재중", - "BACK_AS_SOON_AS_POSSIBLE": "We will be back as soon as possible" + "BACK_AS_SOON_AS_POSSIBLE": "가능한 한 빨리 돌아오겠습니다" }, "REPLY_TIME": { "IN_A_FEW_MINUTES": "보통 몇 분 안에 응답", "IN_A_FEW_HOURS": "보통 몇 시간 내에 응답", "IN_A_DAY": "보통 하루 안에 응답", - "BACK_IN_HOURS": "We will be back online in {n} hour | We will be back online in {n} hours", - "BACK_IN_MINUTES": "We will be back online in {time} minutes", + "BACK_IN_HOURS": "{n}시간 후에 서비스를 재개할 예정입니다 | {n}시간 후에 서비스를 재개할 예정입니다", + "BACK_IN_MINUTES": "{time}분 후에 다시 접속 가능합니다.", "BACK_AT_TIME": "We will be back online at {time}", "BACK_ON_DAY": "We will be back online on {day}", "BACK_TOMORROW": "We will be back online tomorrow", diff --git a/config/locales/bn.yml b/config/locales/bn.yml new file mode 100644 index 000000000..6e2cedeb1 --- /dev/null +++ b/config/locales/bn.yml @@ -0,0 +1,422 @@ +#Files in the config/locales directory are used for internationalization +#and are automatically loaded by Rails. If you want to use locales other +#than English, add the necessary files in this directory. +#To use the locales, use `I18n.t`: +#I18n.t 'hello' +#In views, this is aliased to just `t`: +#<%= t('hello') %> +#To use a different locale, set it with `I18n.locale`: +#I18n.locale = :es +#This would use the information in config/locales/es.yml. +#The following keys must be escaped otherwise they will not be retrieved by +#the default I18n backend: +#true, false, on, off, yes, no +#Instead, surround them with single quotes. +#en: +#'true': 'foo' +#To learn more, please read the Rails Internationalization guide +#available at https://guides.rubyonrails.org/i18n.html. +bn: + hello: 'Hello world' + inbox: + reauthorization: + success: 'Channel reauthorized successfully' + not_required: 'Reauthorization is not required for this inbox' + invalid_channel: 'Invalid channel type for reauthorization' + auth: + saml: + invalid_email: 'Please enter a valid email address' + authentication_failed: 'Authentication failed. Please check your credentials and try again.' + messages: + reset_password_success: Woot! Request for password reset is successful. Check your mail for instructions. + reset_password_failure: Uh ho! We could not find any user with the specified email. + reset_password_saml_user: This account uses SAML authentication. Password reset is not available. Please contact your administrator. + login_saml_user: This account uses SAML authentication. Please sign in through your organization's SAML provider. + saml_not_available: SAML authentication is not available in this installation. + inbox_deletetion_response: Your inbox deletion request will be processed in some time. + errors: + validations: + presence: must not be blank + webhook: + invalid: Invalid events + signup: + disposable_email: We do not allow disposable emails + blocked_domain: This domain is not allowed. If you believe this is a mistake, please contact support. + invalid_email: You have entered an invalid email + 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 + assignment_policy: + not_found: Assignment policy not found + saml: + feature_not_enabled: SAML feature not enabled for this account + data_import: + data_type: + invalid: Invalid data type + contacts: + import: + failed: File is blank + export: + success: We will notify you once contacts export file is ready to view. + email: + invalid: Invalid email + phone_number: + invalid: should be in e164 format + companies: + domain: + invalid: must be a valid domain name + categories: + locale: + unique: should be unique in the category and portal + dyte: + invalid_message_type: 'Invalid message type. Action not permitted' + slack: + invalid_channel_id: 'Invalid slack channel. Please try again' + whatsapp: + token_exchange_failed: 'Failed to exchange code for access token. Please try again.' + invalid_token_permissions: 'The access token does not have the required permissions for WhatsApp.' + phone_info_fetch_failed: 'Failed to fetch phone number information. Please try again.' + reauthorization: + generic: 'Failed to reauthorize WhatsApp. Please try again.' + not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + inboxes: + imap: + socket_error: Please check the network connection, IMAP address and try again. + no_response_error: Please check the IMAP credentials and try again. + host_unreachable_error: Host unreachable, Please check the IMAP address, IMAP port and try again. + connection_timed_out_error: Connection timed out for %{address}:%{port} + connection_closed_error: Connection closed. + validations: + name: should not start or end with symbols, and it should not have < > / \ @ characters. + custom_filters: + number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000. + invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account. + invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}]. + invalid_query_operator: Query operator must be either "AND" or "OR". + invalid_value: Invalid value. The values provided for %{attribute_name} are invalid + custom_attribute_definition: + key_conflict: The provided key is not allowed as it might conflict with default attributes. + mfa: + already_enabled: MFA is already enabled + not_enabled: MFA is not enabled + invalid_code: Invalid verification code + invalid_backup_code: Invalid backup code + invalid_token: Invalid or expired MFA token + invalid_credentials: Invalid credentials or verification code + feature_unavailable: MFA feature is not available. Please configure encryption keys. + profile: + mfa: + enabled: MFA enabled successfully + disabled: MFA disabled successfully + account_saml_settings: + invalid_certificate: must be a valid X.509 certificate in PEM format + reports: + period: Reporting period %{since} to %{until} + utc_warning: The report generated is in UTC timezone + agent_csv: + agent_name: Agent name + conversations_count: Assigned conversations + avg_first_response_time: Avg first response time + avg_resolution_time: Avg resolution time + resolution_count: Resolution Count + avg_customer_waiting_time: Avg customer waiting time + inbox_csv: + inbox_name: Inbox name + inbox_type: Inbox type + conversations_count: No. of conversations + avg_first_response_time: Avg first response time + avg_resolution_time: Avg resolution time + label_csv: + label_title: Label + conversations_count: No. of conversations + avg_first_response_time: Avg first response time + avg_resolution_time: Avg resolution time + avg_reply_time: Avg reply time + resolution_count: Resolution Count + team_csv: + team_name: Team name + conversations_count: Conversations count + avg_first_response_time: Avg first response time + avg_resolution_time: Avg resolution time + resolution_count: Resolution Count + avg_customer_waiting_time: Avg customer waiting time + conversation_traffic_csv: + timezone: Timezone + sla_csv: + conversation_id: Conversation ID + sla_policy_breached: SLA Policy + assignee: Assignee + team: Team + inbox: Inbox + labels: Labels + conversation_link: Link to the Conversation + breached_events: Breached Events + default_group_by: day + csat: + headers: + contact_name: Contact Name + contact_email_address: Contact Email Address + contact_phone_number: Contact Phone Number + link_to_the_conversation: Link to the conversation + agent_name: Agent Name + rating: Rating + feedback: Feedback Comment + recorded_at: Recorded date + notifications: + notification_title: + conversation_creation: 'A conversation (#%{display_id}) has been created in %{inbox_name}' + conversation_assignment: 'A conversation (#%{display_id}) has been assigned to you' + assigned_conversation_new_message: 'A new message is created in conversation (#%{display_id})' + conversation_mention: 'You have been mentioned in conversation (#%{display_id})' + sla_missed_first_response: 'SLA target first response missed for conversation (#%{display_id})' + sla_missed_next_response: 'SLA target next response missed for conversation (#%{display_id})' + sla_missed_resolution: 'SLA target resolution missed for conversation (#%{display_id})' + attachment: 'Attachment' + no_content: 'No content' + conversations: + captain: + handoff: 'Transferring to another agent for further assistance.' + messages: + instagram_story_content: '%{story_sender} mentioned you in the story: ' + instagram_deleted_story_content: This story is no longer available. + deleted: This message was deleted + whatsapp: + list_button_label: 'Choose an item' + delivery_status: + error_code: 'Error code: %{error_code}' + activity: + captain: + resolved: 'Conversation was marked resolved by %{user_name} due to inactivity' + open: 'Conversation was marked open by %{user_name}' + agent_bot: + error_moved_to_open: 'Conversation was marked open by system due to an error with the agent bot.' + status: + resolved: 'Conversation was marked resolved by %{user_name}' + contact_resolved: 'Conversation was resolved by %{contact_name}' + open: 'Conversation was reopened by %{user_name}' + pending: 'Conversation was marked as pending by %{user_name}' + snoozed: 'Conversation was snoozed by %{user_name}' + auto_resolved_days: 'Conversation was marked resolved by system due to %{count} days of inactivity' + auto_resolved_hours: 'Conversation was marked resolved by system due to %{count} hours of inactivity' + auto_resolved_minutes: 'Conversation was marked resolved by system due to %{count} minutes of inactivity' + system_auto_open: System reopened the conversation due to a new incoming message. + priority: + added: '%{user_name} set the priority to %{new_priority}' + updated: '%{user_name} changed the priority from %{old_priority} to %{new_priority}' + removed: '%{user_name} removed the priority' + assignee: + self_assigned: '%{user_name} self-assigned this conversation' + assigned: 'Assigned to %{assignee_name} by %{user_name}' + removed: 'Conversation unassigned by %{user_name}' + team: + assigned: 'Assigned to %{team_name} by %{user_name}' + assigned_with_assignee: 'Assigned to %{assignee_name} via %{team_name} by %{user_name}' + removed: 'Unassigned from %{team_name} by %{user_name}' + labels: + added: '%{user_name} added %{labels}' + removed: '%{user_name} removed %{labels}' + sla: + added: '%{user_name} added SLA policy %{sla_name}' + removed: '%{user_name} removed SLA policy %{sla_name}' + linear: + 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}' + csat: + not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' + auto_resolve: + not_sent_due_to_messaging_window: 'Auto-resolve message not sent due to outgoing message restrictions' + muted: '%{user_name} has muted the conversation' + unmuted: '%{user_name} has unmuted the conversation' + auto_resolution_message: 'Resolving the conversation as it has been inactive for a while. Please start a new conversation if you need further assistance.' + templates: + greeting_message_body: '%{account_name} typically replies in a few hours.' + ways_to_reach_you_message_body: 'Give the team a way to reach you.' + email_input_box_message_body: 'Get notified by email' + csat_input_message_body: 'Please rate the conversation' + reply: + email: + header: + notifications: 'Notifications' + from_with_name: '%{assignee_name} from %{inbox_name} <%{from_email}>' + reply_with_name: '%{assignee_name} from %{inbox_name} ' + friendly_name: '%{sender_name} from %{business_name} <%{from_email}>' + professional_name: '%{business_name} <%{from_email}>' + channel_email: + header: + reply_with_name: '%{assignee_name} from %{inbox_name} <%{from_email}>' + reply_with_inbox_name: '%{inbox_name} <%{from_email}>' + email_subject: 'New messages on this conversation' + transcript_subject: 'Conversation Transcript' + survey: + response: 'Please rate this conversation, %{link}' + contacts: + online: + delete: '%{contact_name} is Online, please try again later' + integration_apps: + #Note: webhooks and dashboard_apps don't need short_description as they use different modal components + dashboard_apps: + name: 'Dashboard Apps' + description: 'Dashboard Apps allow you to create and embed applications that display user information, orders, or payment history, providing more context to your customer support agents.' + dyte: + name: 'Dyte' + short_description: 'Start video/voice calls with customers directly from Chatwoot.' + description: 'Dyte is a product that integrates audio and video functionalities into your application. With this integration, your agents can start video/voice calls with your customers directly from Chatwoot.' + meeting_name: '%{agent_name} has started a meeting' + slack: + name: 'Slack' + short_description: 'Receive notifications and respond to conversations directly in Slack.' + description: "Integrate Chatwoot with Slack to keep your team in sync. This integration allows you to receive notifications for new conversations and respond to them directly within Slack's interface." + webhooks: + name: 'Webhooks' + description: 'Webhook events provide real-time updates about activities in your Chatwoot account. You can subscribe to your preferred events, and Chatwoot will send you HTTP callbacks with the updates.' + dialogflow: + name: 'Dialogflow' + short_description: 'Build chatbots to handle initial queries before transferring to agents.' + description: 'Build chatbots with Dialogflow and easily integrate them into your inbox. These bots can handle initial queries before transferring them to a customer service agent.' + google_translate: + name: 'Google Translate' + short_description: 'Automatically translate customer messages for agents.' + description: "Integrate Google Translate to help agents easily translate customer messages. This integration automatically detects the language and converts it to the agent's or admin's preferred language." + openai: + name: 'OpenAI' + short_description: 'AI-powered reply suggestions, summarization, and message enhancement.' + description: 'Leverage the power of large language models from OpenAI with the features such as reply suggestions, summarization, message rephrasing, spell-checking, and label classification.' + linear: + 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.' + notion: + name: 'Notion' + short_description: 'Integrate databases, documents and pages directly with Captain.' + description: 'Connect your Notion workspace to enable Captain to access and generate intelligent responses using content from your databases, documents, and pages to provide more contextual customer support.' + shopify: + name: 'Shopify' + short_description: 'Access order details and customer data from your Shopify store.' + description: 'Connect your Shopify store to access order details, customer information, and product data directly within your conversations and helps your support team provide faster, more contextual assistance to your customers.' + leadsquared: + name: 'LeadSquared' + short_description: 'Sync your contacts and conversations with LeadSquared CRM.' + description: 'Sync your contacts and conversations with LeadSquared CRM. This integration automatically creates leads in LeadSquared when new contacts are added, and logs conversation activity to provide your sales team with complete context.' + captain: + copilot_message_required: Message is required + copilot_error: 'Please connect an assistant to this inbox to use Copilot' + copilot_limit: 'You are out of Copilot credits. You can buy more credits from the billing section.' + copilot: + using_tool: 'Using tool %{function_name}' + completed_tool_call: 'Completed %{function_name} tool call' + invalid_tool_call: 'Invalid tool call' + tool_not_available: 'Tool not available' + documents: + limit_exceeded: 'Document limit exceeded' + pdf_format_error: 'must be a PDF file' + pdf_size_error: 'must be less than 10MB' + 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}' + pdf_processing_success: 'Successfully processed PDF document %{document_id}' + faq_generation_complete: 'FAQ generation complete. Total FAQs created: %{count}' + using_paginated_faq: 'Using paginated FAQ generation for document %{document_id}' + using_standard_faq: 'Using standard FAQ generation for document %{document_id}' + response_creation_error: 'Error in creating response document: %{error}' + missing_openai_file_id: 'Document must have openai_file_id for paginated processing' + openai_api_error: 'OpenAI API Error: %{error}' + starting_paginated_faq: 'Starting paginated FAQ generation (%{pages_per_chunk} pages per chunk)' + stopping_faq_generation: 'Stopping processing. Reason: %{reason}' + paginated_faq_complete: 'Paginated generation complete. Total FAQs: %{total_faqs}, Pages processed: %{pages_processed}' + processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})' + chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}' + page_processing_error: 'Error processing pages %{start}-%{end}: %{error}' + custom_tool: + slug_generation_failed: 'Unable to generate unique slug after 5 attempts' + public_portal: + search: + search_placeholder: Search for article by title or body... + empty_placeholder: No results found. + loading_placeholder: Searching... + results_title: Search results + toc_header: 'On this page' + hero: + sub_title: Search for the articles here or browse the categories below. + common: + home: Home + last_updated_on: Last updated on %{last_updated_on} + view_all_articles: View all + article: article + articles: articles + author: author + authors: authors + other: other + others: others + by: By + no_articles: There are no articles here + footer: + made_with: Made with + header: + go_to_homepage: Website + visit_website: Visit website + appearance: + system: System + light: Light + dark: Dark + featured_articles: Featured Articles + uncategorized: Uncategorized + 404: + title: Page not found + description: We couldn't find the page you were looking for. + back_to_home: Go to home page + slack_unfurl: + fields: + name: Name + email: Email + phone_number: Phone + company_name: Company + inbox_name: Inbox + inbox_type: Inbox Type + button: Open conversation + time_units: + days: + one: '%{count} day' + other: '%{count} days' + hours: + one: '%{count} hour' + other: '%{count} hours' + minutes: + one: '%{count} minute' + other: '%{count} minutes' + seconds: + one: '%{count} second' + other: '%{count} seconds' + automation: + system_name: 'Automation System' + crm: + no_message: 'No messages in conversation' + attachment: '[Attachment: %{type}]' + no_content: '[No content]' + created_activity: | + New conversation started on %{brand_name} + + Channel: %{channel_info} + Created: %{formatted_creation_time} + Conversation ID: %{display_id} + View in %{brand_name}: %{url} + transcript_activity: | + Conversation Transcript from %{brand_name} + + Channel: %{channel_info} + Conversation ID: %{display_id} + View in %{brand_name}: %{url} + + Transcript: + %{format_messages} + agent_capacity_policy: + inbox_already_assigned: 'Inbox has already been assigned to this policy' + portals: + send_instructions: + email_required: 'Email is required' + invalid_email_format: 'Invalid email format' + custom_domain_not_configured: 'Custom domain is not configured' + instructions_sent_successfully: 'Instructions sent successfully' + subject: 'Finish setting up %{custom_domain}' + ssl_status: + custom_domain_not_configured: 'Custom domain is not configured' diff --git a/config/locales/devise.bn.yml b/config/locales/devise.bn.yml new file mode 100644 index 000000000..058a690f7 --- /dev/null +++ b/config/locales/devise.bn.yml @@ -0,0 +1,61 @@ +#Additional translations at https://github.com/plataformatec/devise/wiki/I18n +bn: + devise: + confirmations: + confirmed: "Your email address has been successfully confirmed." + send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes." + send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes." + failure: + already_authenticated: "You are already signed in." + inactive: "Your account is not activated yet." + invalid: "Invalid %{authentication_keys}/password or account is not verified yet." + locked: "Your account is locked." + last_attempt: "You have one more attempt before your account is locked." + not_found_in_database: "Invalid %{authentication_keys} or password." + timeout: "Your session expired. Please sign in again to continue." + unauthenticated: "You need to sign in or sign up before continuing." + unconfirmed: "You have to confirm your email address before continuing." + mailer: + confirmation_instructions: + subject: "Confirmation Instructions" + reset_password_instructions: + subject: "Reset password instructions" + unlock_instructions: + subject: "Unlock instructions" + password_change: + subject: "Password Changed" + omniauth_callbacks: + failure: "Could not authenticate you from %{kind} because \"%{reason}\"." + success: "Successfully authenticated from %{kind} account." + passwords: + no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided." + send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes." + send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes." + updated: "Your password has been changed successfully. You are now signed in." + updated_not_active: "Your password has been changed successfully." + registrations: + destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon." + signed_up: "Welcome! You have signed up successfully." + signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated." + signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked." + signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account." + update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address." + updated: "Your account has been updated successfully." + sessions: + signed_in: "Signed in successfully." + signed_out: "Signed out successfully." + already_signed_out: "Signed out successfully." + unlocks: + send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes." + send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes." + unlocked: "Your account has been unlocked successfully. Please sign in to continue." + errors: + messages: + already_confirmed: "was already confirmed, please try signing in" + confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one" + expired: "has expired, please request a new one" + not_found: "not found" + not_locked: "was not locked" + not_saved: + one: "1 error prohibited this %{resource} from being saved:" + other: "%{count} errors prohibited this %{resource} from being saved:" diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml new file mode 100644 index 000000000..cbad6ba07 --- /dev/null +++ b/config/locales/devise.et.yml @@ -0,0 +1,61 @@ +#Additional translations at https://github.com/plataformatec/devise/wiki/I18n +et: + devise: + confirmations: + confirmed: "Your email address has been successfully confirmed." + send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes." + send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes." + failure: + already_authenticated: "You are already signed in." + inactive: "Your account is not activated yet." + invalid: "Invalid %{authentication_keys}/password or account is not verified yet." + locked: "Your account is locked." + last_attempt: "You have one more attempt before your account is locked." + not_found_in_database: "Invalid %{authentication_keys} or password." + timeout: "Your session expired. Please sign in again to continue." + unauthenticated: "You need to sign in or sign up before continuing." + unconfirmed: "You have to confirm your email address before continuing." + mailer: + confirmation_instructions: + subject: "Confirmation Instructions" + reset_password_instructions: + subject: "Reset password instructions" + unlock_instructions: + subject: "Unlock instructions" + password_change: + subject: "Password Changed" + omniauth_callbacks: + failure: "Could not authenticate you from %{kind} because \"%{reason}\"." + success: "Successfully authenticated from %{kind} account." + passwords: + no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided." + send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes." + send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes." + updated: "Your password has been changed successfully. You are now signed in." + updated_not_active: "Your password has been changed successfully." + registrations: + destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon." + signed_up: "Welcome! You have signed up successfully." + signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated." + signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked." + signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account." + update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address." + updated: "Your account has been updated successfully." + sessions: + signed_in: "Signed in successfully." + signed_out: "Signed out successfully." + already_signed_out: "Signed out successfully." + unlocks: + send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes." + send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes." + unlocked: "Your account has been unlocked successfully. Please sign in to continue." + errors: + messages: + already_confirmed: "was already confirmed, please try signing in" + confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one" + expired: "has expired, please request a new one" + not_found: "not found" + not_locked: "was not locked" + not_saved: + one: "1 error prohibited this %{resource} from being saved:" + other: "%{count} errors prohibited this %{resource} from being saved:" diff --git a/config/locales/et.yml b/config/locales/et.yml new file mode 100644 index 000000000..dcf81c6e3 --- /dev/null +++ b/config/locales/et.yml @@ -0,0 +1,422 @@ +#Files in the config/locales directory are used for internationalization +#and are automatically loaded by Rails. If you want to use locales other +#than English, add the necessary files in this directory. +#To use the locales, use `I18n.t`: +#I18n.t 'hello' +#In views, this is aliased to just `t`: +#<%= t('hello') %> +#To use a different locale, set it with `I18n.locale`: +#I18n.locale = :es +#This would use the information in config/locales/es.yml. +#The following keys must be escaped otherwise they will not be retrieved by +#the default I18n backend: +#true, false, on, off, yes, no +#Instead, surround them with single quotes. +#en: +#'true': 'foo' +#To learn more, please read the Rails Internationalization guide +#available at https://guides.rubyonrails.org/i18n.html. +et: + hello: 'Hello world' + inbox: + reauthorization: + success: 'Channel reauthorized successfully' + not_required: 'Reauthorization is not required for this inbox' + invalid_channel: 'Invalid channel type for reauthorization' + auth: + saml: + invalid_email: 'Please enter a valid email address' + authentication_failed: 'Authentication failed. Please check your credentials and try again.' + messages: + reset_password_success: Woot! Request for password reset is successful. Check your mail for instructions. + reset_password_failure: Uh ho! We could not find any user with the specified email. + reset_password_saml_user: This account uses SAML authentication. Password reset is not available. Please contact your administrator. + login_saml_user: This account uses SAML authentication. Please sign in through your organization's SAML provider. + saml_not_available: SAML authentication is not available in this installation. + inbox_deletetion_response: Your inbox deletion request will be processed in some time. + errors: + validations: + presence: must not be blank + webhook: + invalid: Invalid events + signup: + disposable_email: We do not allow disposable emails + blocked_domain: This domain is not allowed. If you believe this is a mistake, please contact support. + invalid_email: You have entered an invalid email + 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 + assignment_policy: + not_found: Assignment policy not found + saml: + feature_not_enabled: SAML feature not enabled for this account + data_import: + data_type: + invalid: Invalid data type + contacts: + import: + failed: File is blank + export: + success: We will notify you once contacts export file is ready to view. + email: + invalid: Invalid email + phone_number: + invalid: should be in e164 format + companies: + domain: + invalid: must be a valid domain name + categories: + locale: + unique: should be unique in the category and portal + dyte: + invalid_message_type: 'Invalid message type. Action not permitted' + slack: + invalid_channel_id: 'Invalid slack channel. Please try again' + whatsapp: + token_exchange_failed: 'Failed to exchange code for access token. Please try again.' + invalid_token_permissions: 'The access token does not have the required permissions for WhatsApp.' + phone_info_fetch_failed: 'Failed to fetch phone number information. Please try again.' + reauthorization: + generic: 'Failed to reauthorize WhatsApp. Please try again.' + not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + inboxes: + imap: + socket_error: Please check the network connection, IMAP address and try again. + no_response_error: Please check the IMAP credentials and try again. + host_unreachable_error: Host unreachable, Please check the IMAP address, IMAP port and try again. + connection_timed_out_error: Connection timed out for %{address}:%{port} + connection_closed_error: Connection closed. + validations: + name: should not start or end with symbols, and it should not have < > / \ @ characters. + custom_filters: + number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000. + invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account. + invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}]. + invalid_query_operator: Query operator must be either "AND" or "OR". + invalid_value: Invalid value. The values provided for %{attribute_name} are invalid + custom_attribute_definition: + key_conflict: The provided key is not allowed as it might conflict with default attributes. + mfa: + already_enabled: MFA is already enabled + not_enabled: MFA is not enabled + invalid_code: Invalid verification code + invalid_backup_code: Invalid backup code + invalid_token: Invalid or expired MFA token + invalid_credentials: Invalid credentials or verification code + feature_unavailable: MFA feature is not available. Please configure encryption keys. + profile: + mfa: + enabled: MFA enabled successfully + disabled: MFA disabled successfully + account_saml_settings: + invalid_certificate: must be a valid X.509 certificate in PEM format + reports: + period: Reporting period %{since} to %{until} + utc_warning: The report generated is in UTC timezone + agent_csv: + agent_name: Agent name + conversations_count: Assigned conversations + avg_first_response_time: Avg first response time + avg_resolution_time: Avg resolution time + resolution_count: Resolution Count + avg_customer_waiting_time: Avg customer waiting time + inbox_csv: + inbox_name: Inbox name + inbox_type: Inbox type + conversations_count: No. of conversations + avg_first_response_time: Avg first response time + avg_resolution_time: Avg resolution time + label_csv: + label_title: Label + conversations_count: No. of conversations + avg_first_response_time: Avg first response time + avg_resolution_time: Avg resolution time + avg_reply_time: Avg reply time + resolution_count: Resolution Count + team_csv: + team_name: Team name + conversations_count: Conversations count + avg_first_response_time: Avg first response time + avg_resolution_time: Avg resolution time + resolution_count: Resolution Count + avg_customer_waiting_time: Avg customer waiting time + conversation_traffic_csv: + timezone: Timezone + sla_csv: + conversation_id: Conversation ID + sla_policy_breached: SLA Policy + assignee: Assignee + team: Team + inbox: Inbox + labels: Labels + conversation_link: Link to the Conversation + breached_events: Breached Events + default_group_by: day + csat: + headers: + contact_name: Contact Name + contact_email_address: Contact Email Address + contact_phone_number: Contact Phone Number + link_to_the_conversation: Link to the conversation + agent_name: Agent Name + rating: Rating + feedback: Feedback Comment + recorded_at: Recorded date + notifications: + notification_title: + conversation_creation: 'A conversation (#%{display_id}) has been created in %{inbox_name}' + conversation_assignment: 'A conversation (#%{display_id}) has been assigned to you' + assigned_conversation_new_message: 'A new message is created in conversation (#%{display_id})' + conversation_mention: 'You have been mentioned in conversation (#%{display_id})' + sla_missed_first_response: 'SLA target first response missed for conversation (#%{display_id})' + sla_missed_next_response: 'SLA target next response missed for conversation (#%{display_id})' + sla_missed_resolution: 'SLA target resolution missed for conversation (#%{display_id})' + attachment: 'Attachment' + no_content: 'No content' + conversations: + captain: + handoff: 'Transferring to another agent for further assistance.' + messages: + instagram_story_content: '%{story_sender} mentioned you in the story: ' + instagram_deleted_story_content: This story is no longer available. + deleted: This message was deleted + whatsapp: + list_button_label: 'Choose an item' + delivery_status: + error_code: 'Error code: %{error_code}' + activity: + captain: + resolved: 'Conversation was marked resolved by %{user_name} due to inactivity' + open: 'Conversation was marked open by %{user_name}' + agent_bot: + error_moved_to_open: 'Conversation was marked open by system due to an error with the agent bot.' + status: + resolved: 'Conversation was marked resolved by %{user_name}' + contact_resolved: 'Conversation was resolved by %{contact_name}' + open: 'Conversation was reopened by %{user_name}' + pending: 'Conversation was marked as pending by %{user_name}' + snoozed: 'Conversation was snoozed by %{user_name}' + auto_resolved_days: 'Conversation was marked resolved by system due to %{count} days of inactivity' + auto_resolved_hours: 'Conversation was marked resolved by system due to %{count} hours of inactivity' + auto_resolved_minutes: 'Conversation was marked resolved by system due to %{count} minutes of inactivity' + system_auto_open: System reopened the conversation due to a new incoming message. + priority: + added: '%{user_name} set the priority to %{new_priority}' + updated: '%{user_name} changed the priority from %{old_priority} to %{new_priority}' + removed: '%{user_name} removed the priority' + assignee: + self_assigned: '%{user_name} self-assigned this conversation' + assigned: 'Assigned to %{assignee_name} by %{user_name}' + removed: 'Conversation unassigned by %{user_name}' + team: + assigned: 'Assigned to %{team_name} by %{user_name}' + assigned_with_assignee: 'Assigned to %{assignee_name} via %{team_name} by %{user_name}' + removed: 'Unassigned from %{team_name} by %{user_name}' + labels: + added: '%{user_name} added %{labels}' + removed: '%{user_name} removed %{labels}' + sla: + added: '%{user_name} added SLA policy %{sla_name}' + removed: '%{user_name} removed SLA policy %{sla_name}' + linear: + 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}' + csat: + not_sent_due_to_messaging_window: 'CSAT survey not sent due to outgoing message restrictions' + auto_resolve: + not_sent_due_to_messaging_window: 'Auto-resolve message not sent due to outgoing message restrictions' + muted: '%{user_name} has muted the conversation' + unmuted: '%{user_name} has unmuted the conversation' + auto_resolution_message: 'Resolving the conversation as it has been inactive for a while. Please start a new conversation if you need further assistance.' + templates: + greeting_message_body: '%{account_name} typically replies in a few hours.' + ways_to_reach_you_message_body: 'Give the team a way to reach you.' + email_input_box_message_body: 'Get notified by email' + csat_input_message_body: 'Please rate the conversation' + reply: + email: + header: + notifications: 'Notifications' + from_with_name: '%{assignee_name} from %{inbox_name} <%{from_email}>' + reply_with_name: '%{assignee_name} from %{inbox_name} ' + friendly_name: '%{sender_name} from %{business_name} <%{from_email}>' + professional_name: '%{business_name} <%{from_email}>' + channel_email: + header: + reply_with_name: '%{assignee_name} from %{inbox_name} <%{from_email}>' + reply_with_inbox_name: '%{inbox_name} <%{from_email}>' + email_subject: 'New messages on this conversation' + transcript_subject: 'Conversation Transcript' + survey: + response: 'Please rate this conversation, %{link}' + contacts: + online: + delete: '%{contact_name} is Online, please try again later' + integration_apps: + #Note: webhooks and dashboard_apps don't need short_description as they use different modal components + dashboard_apps: + name: 'Dashboard Apps' + description: 'Dashboard Apps allow you to create and embed applications that display user information, orders, or payment history, providing more context to your customer support agents.' + dyte: + name: 'Dyte' + short_description: 'Start video/voice calls with customers directly from Chatwoot.' + description: 'Dyte is a product that integrates audio and video functionalities into your application. With this integration, your agents can start video/voice calls with your customers directly from Chatwoot.' + meeting_name: '%{agent_name} has started a meeting' + slack: + name: 'Slack' + short_description: 'Receive notifications and respond to conversations directly in Slack.' + description: "Integrate Chatwoot with Slack to keep your team in sync. This integration allows you to receive notifications for new conversations and respond to them directly within Slack's interface." + webhooks: + name: 'Webhooks' + description: 'Webhook events provide real-time updates about activities in your Chatwoot account. You can subscribe to your preferred events, and Chatwoot will send you HTTP callbacks with the updates.' + dialogflow: + name: 'Dialogflow' + short_description: 'Build chatbots to handle initial queries before transferring to agents.' + description: 'Build chatbots with Dialogflow and easily integrate them into your inbox. These bots can handle initial queries before transferring them to a customer service agent.' + google_translate: + name: 'Google Translate' + short_description: 'Automatically translate customer messages for agents.' + description: "Integrate Google Translate to help agents easily translate customer messages. This integration automatically detects the language and converts it to the agent's or admin's preferred language." + openai: + name: 'OpenAI' + short_description: 'AI-powered reply suggestions, summarization, and message enhancement.' + description: 'Leverage the power of large language models from OpenAI with the features such as reply suggestions, summarization, message rephrasing, spell-checking, and label classification.' + linear: + 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.' + notion: + name: 'Notion' + short_description: 'Integrate databases, documents and pages directly with Captain.' + description: 'Connect your Notion workspace to enable Captain to access and generate intelligent responses using content from your databases, documents, and pages to provide more contextual customer support.' + shopify: + name: 'Shopify' + short_description: 'Access order details and customer data from your Shopify store.' + description: 'Connect your Shopify store to access order details, customer information, and product data directly within your conversations and helps your support team provide faster, more contextual assistance to your customers.' + leadsquared: + name: 'LeadSquared' + short_description: 'Sync your contacts and conversations with LeadSquared CRM.' + description: 'Sync your contacts and conversations with LeadSquared CRM. This integration automatically creates leads in LeadSquared when new contacts are added, and logs conversation activity to provide your sales team with complete context.' + captain: + copilot_message_required: Message is required + copilot_error: 'Please connect an assistant to this inbox to use Copilot' + copilot_limit: 'You are out of Copilot credits. You can buy more credits from the billing section.' + copilot: + using_tool: 'Using tool %{function_name}' + completed_tool_call: 'Completed %{function_name} tool call' + invalid_tool_call: 'Invalid tool call' + tool_not_available: 'Tool not available' + documents: + limit_exceeded: 'Document limit exceeded' + pdf_format_error: 'must be a PDF file' + pdf_size_error: 'must be less than 10MB' + 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}' + pdf_processing_success: 'Successfully processed PDF document %{document_id}' + faq_generation_complete: 'FAQ generation complete. Total FAQs created: %{count}' + using_paginated_faq: 'Using paginated FAQ generation for document %{document_id}' + using_standard_faq: 'Using standard FAQ generation for document %{document_id}' + response_creation_error: 'Error in creating response document: %{error}' + missing_openai_file_id: 'Document must have openai_file_id for paginated processing' + openai_api_error: 'OpenAI API Error: %{error}' + starting_paginated_faq: 'Starting paginated FAQ generation (%{pages_per_chunk} pages per chunk)' + stopping_faq_generation: 'Stopping processing. Reason: %{reason}' + paginated_faq_complete: 'Paginated generation complete. Total FAQs: %{total_faqs}, Pages processed: %{pages_processed}' + processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})' + chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}' + page_processing_error: 'Error processing pages %{start}-%{end}: %{error}' + custom_tool: + slug_generation_failed: 'Unable to generate unique slug after 5 attempts' + public_portal: + search: + search_placeholder: Search for article by title or body... + empty_placeholder: No results found. + loading_placeholder: Searching... + results_title: Search results + toc_header: 'On this page' + hero: + sub_title: Search for the articles here or browse the categories below. + common: + home: Home + last_updated_on: Last updated on %{last_updated_on} + view_all_articles: View all + article: article + articles: articles + author: author + authors: authors + other: other + others: others + by: By + no_articles: There are no articles here + footer: + made_with: Made with + header: + go_to_homepage: Website + visit_website: Visit website + appearance: + system: System + light: Light + dark: Dark + featured_articles: Featured Articles + uncategorized: Uncategorized + 404: + title: Page not found + description: We couldn't find the page you were looking for. + back_to_home: Go to home page + slack_unfurl: + fields: + name: Name + email: Email + phone_number: Phone + company_name: Company + inbox_name: Inbox + inbox_type: Inbox Type + button: Open conversation + time_units: + days: + one: '%{count} day' + other: '%{count} days' + hours: + one: '%{count} hour' + other: '%{count} hours' + minutes: + one: '%{count} minute' + other: '%{count} minutes' + seconds: + one: '%{count} second' + other: '%{count} seconds' + automation: + system_name: 'Automation System' + crm: + no_message: 'No messages in conversation' + attachment: '[Attachment: %{type}]' + no_content: '[No content]' + created_activity: | + New conversation started on %{brand_name} + + Channel: %{channel_info} + Created: %{formatted_creation_time} + Conversation ID: %{display_id} + View in %{brand_name}: %{url} + transcript_activity: | + Conversation Transcript from %{brand_name} + + Channel: %{channel_info} + Conversation ID: %{display_id} + View in %{brand_name}: %{url} + + Transcript: + %{format_messages} + agent_capacity_policy: + inbox_already_assigned: 'Inbox has already been assigned to this policy' + portals: + send_instructions: + email_required: 'Email is required' + invalid_email_format: 'Invalid email format' + custom_domain_not_configured: 'Custom domain is not configured' + instructions_sent_successfully: 'Instructions sent successfully' + subject: 'Finish setting up %{custom_domain}' + ssl_status: + custom_domain_not_configured: 'Custom domain is not configured' diff --git a/config/locales/it.yml b/config/locales/it.yml index 55127f1f9..a92071f9d 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -175,7 +175,7 @@ it: no_content: 'No content' conversations: captain: - handoff: 'Trasferimento ad un altro agente per ulteriore assistenza.' + handoff: 'Trasferendo ad un altro operatore per ulteriore assistenza.' messages: instagram_story_content: '%{story_sender} ti ha menzionato nella storia: ' instagram_deleted_story_content: Questa storia non è più disponibile. @@ -299,7 +299,7 @@ it: short_description: 'Sincronizza contatti e conversazioni con LeadSquared CRM.' description: 'Sincronizza i contatti e conversazioni con il CRM LeadSquared. Questa integrazione crea automaticamente i lead in LeadSquared quando vengono aggiunti nuovi contatti e registra l''attività di conversazione per fornire al team di vendita un contesto completo.' captain: - copilot_message_required: Il messaggio è obbligatorio + copilot_message_required: Messaggio richiesto copilot_error: 'Please connect an assistant to this inbox to use Copilot' copilot_limit: 'You are out of Copilot credits. You can buy more credits from the billing section.' copilot: @@ -410,7 +410,7 @@ it: Trascrizione: %{format_messages} agent_capacity_policy: - inbox_already_assigned: 'La casella è già stata assegnata a questa policy' + inbox_already_assigned: 'La Inbox è già stata assegnata a questa policy' portals: send_instructions: email_required: 'L''email è obbligatoria'