hiesoftrd il y a 1 an
Parent
commit
5233d8885e

+ 12 - 0
frontend/src/services/api.js

@@ -0,0 +1,12 @@
+import axios from "axios";
+
+const api = axios.create({
+	baseURL: process.env.REACT_APP_BACKEND_URL,
+	withCredentials: true,
+});
+
+export const openApi = axios.create({
+	baseURL: process.env.REACT_APP_BACKEND_URL
+});
+
+export default api;

+ 3 - 0
frontend/src/services/socket.js

@@ -0,0 +1,3 @@
+export function socketConnection(params) {
+  throw new Error("Favor usar o SocketContext");
+}

+ 11 - 0
frontend/src/translate/calendar-locale.js

@@ -0,0 +1,11 @@
+import moment from "moment";
+import "moment/locale/en-gb";
+import "moment/locale/es";
+import "moment/locale/pt-br";
+import { momentLocalizer } from "react-big-calendar";
+
+export const createMomentLocalizer = () => {
+  const savedLanguage = localStorage.getItem("i18nextLng") || "en";
+  moment.locale(savedLanguage === "pt" ? "pt-br" : savedLanguage);
+  return momentLocalizer(moment);
+};

+ 20 - 0
frontend/src/translate/i18n.js

@@ -0,0 +1,20 @@
+import i18n from "i18next";
+import { messages } from "./languages";
+
+const savedLanguage = localStorage.getItem('i18nextLng') || 'en';
+
+i18n.init({
+	debug: true,
+	defaultNS: ["translations"],
+	fallbackLng: "pt",
+	ns: ["translations"],
+	resources: messages,
+	lng: savedLanguage,
+});
+
+export const changeLanguage = (language) => {
+	i18n.changeLanguage(language);
+	localStorage.setItem('i18nextLng', language);
+};
+
+export { i18n };

+ 1597 - 0
frontend/src/translate/languages/en.js

@@ -0,0 +1,1597 @@
+const messages = {
+	en: {
+		translations: {
+			selectLanguage: "Select Language",
+			signup: {
+				title: "Sign Up",
+				toasts: {
+					success: "User created successfully! Please login!!!",
+					fail: "Error creating user. Please check the provided information.",
+				},
+				form: {
+					name: "Company Name",
+					email: "Email",
+					phone: "Phone Number (with Area Code)",
+					plan: "Plan",
+					password: "Password",
+				},
+				formErrors: {
+					name: {
+						required: "Company name is required",
+						short: "Name is too short",
+						long: "Name is too long",
+					},
+					password: {
+						short: "Password is too short",
+						long: "Password is too long",
+					},
+					email: {
+						required: "Email is required",
+						invalid: "Invalid email",
+					},
+				},
+				buttons: {
+					submit: "Register",
+					login: "Already have an account? Login!",
+				},
+				plan: {
+					attendant: "Attendant",
+					whatsapp: "WhatsApp",
+					queues: "Queues",
+				},
+			},
+			login: {
+				title: "Login",
+				form: {
+					email: "Email",
+					password: "Password",
+				},
+				buttons: {
+					submit: "Login",
+					register: "Sign up now!",
+				},
+			},
+			resetPassword: {
+				title: "Reset Password",
+				toasts: {
+					emailSent: "Email sent successfully!",
+					emailNotFound: "Email not found!",
+					passwordUpdated: "Password updated successfully!",
+				},
+				formErrors: {
+					email: {
+						required: "Email is required",
+						invalid: "Invalid email",
+					},
+					newPassword: {
+						required: "New password is required",
+						matches: "Your password must have at least 8 characters, including one uppercase letter, one lowercase letter, and one number.",
+					},
+					confirmPassword: {
+						required: "Password confirmation is required",
+						matches: "Passwords do not match",
+					},
+				},
+				form: {
+					email: "Email",
+					verificationCode: "Verification Code",
+					newPassword: "New Password",
+					confirmPassword: "Confirm New Password",
+				},
+				buttons: {
+					submitEmail: "Send Email",
+					submitPassword: "Reset Password",
+					back: "Don't have an account? Sign up!",
+				},
+			},
+			dashboard: {
+				toasts: {
+					selectFilterError: "Set filter parameters",
+					userChartError: "Error getting conversation information",
+					dateChartError: "Error getting conversation information",
+				},
+				filters: {
+					initialDate: "Start Date",
+					finalDate: "End Date",
+					filterType: {
+						title: "Filter Type",
+						options: {
+							perDate: "Filter by Date",
+							perPeriod: "Filter by Period",
+						},
+						helper: "Select desired filter type",
+					},
+				},
+				periodSelect: {
+					title: "Period",
+					options: {
+						none: "None selected",
+						last3: "Last 3 days",
+						last7: "Last 7 days",
+						last15: "Last 15 days",
+						last30: "Last 30 days",
+						last60: "Last 60 days",
+						last90: "Last 90 days",
+					},
+					helper: "Select desired period",
+				},
+				counters: {
+					inTalk: "In conversation",
+					waiting: "Waiting",
+					finished: "Finished",
+					newContacts: "New contacts",
+					averageTalkTime: "Avg. Talk Time",
+					averageWaitTime: "Avg. Wait Time",
+				},
+				buttons: {
+					filter: "Filter",
+				},
+				onlineTable: {
+					ratingLabel: "1 - Unsatisfied, 2 - Satisfied, 3 - Very Satisfied",
+					name: "Name",
+					ratings: "Ratings",
+					avgSupportTime: "Avg. Support Time",
+					status: "Status (Current)",
+				},
+				charts: {
+					user: {
+						label: "Conversations Chart",
+						title: "Total Conversations by Users",
+						start: "Start",
+						end: "End",
+						filter: "Filter",
+					},
+					date: {
+						label: "Conversations Chart",
+						title: "Total",
+						start: "Start",
+						end: "End",
+						filter: "Filter",
+					},
+				},
+			},
+			plans: {
+				toasts: {
+					errorList: "Could not load records list",
+					errorOperation: "Could not complete operation",
+					error: "Could not complete operation. Check if a plan with the same name already exists or if fields were filled correctly",
+					success: "Operation completed successfully!",
+				},
+				confirm: {
+					title: "Delete Record",
+					message: "Do you really want to delete this record?",
+				},
+				form: {
+					name: "Name",
+					users: "Users",
+					connections: "Connections",
+					queues: "Queues",
+					value: "Value",
+					internalChat: "Internal Chat",
+					externalApi: "External API",
+					kanban: "Kanban",
+					integrations: "Integrations",
+					campaigns: "Campaigns",
+					schedules: "Schedules",
+					enabled: "Enabled",
+					disabled: "Disabled",
+					clear: "Cancel",
+					delete: "Delete",
+					save: "Save",
+					yes: "Yes",
+					no: "No",
+					money: "$",
+				},
+			},
+			kanban: {
+				toasts: {
+					removed: "Ticket Tag Removed!",
+					added: "Ticket Tag Added Successfully!",
+				},
+				open: "Open",
+				seeTicket: "View Ticket",
+			},
+			invoices: {
+				title: "Invoices",
+				paid: "Paid",
+				open: "Open",
+				expired: "Expired",
+				details: "Details",
+				value: "Amount",
+				dueDate: "Due Date",
+				status: "Status",
+				action: "Action",
+				PAY: "PAY",
+				PAID: "PAID",
+			},
+			checkoutPage: {
+				steps: {
+					data: "Data",
+					customize: "Customize",
+					review: "Review",
+				},
+				success: "Subscription completed successfully! Awaiting payment confirmation",
+				closeToEnd: "Almost there!",
+				BACK: "BACK",
+				PAY: "PAY",
+				NEXT: "NEXT",
+				review: {
+					title: "Subscription Summary",
+					details: "Plan Details",
+					users: "Users",
+					whatsapp: "WhatsApp",
+					charges: "Billing: Monthly",
+					total: "Total",
+				},
+				form: {
+					firstName: {
+						label: "Full Name*",
+						required: "Full name is required",
+					},
+					lastName: {
+						label: "Last Name*",
+						required: "Last name is required",
+					},
+					address1: {
+						label: "Address*",
+						required: "Address is required",
+					},
+					city: {
+						label: "City*",
+						required: "City is required",
+					},
+					state: {
+						label: "State*",
+						required: "State is required",
+					},
+					zipcode: {
+						label: "ZIP Code*",
+						required: "ZIP code is required",
+						invalid: "Invalid ZIP code format",
+					},
+					country: {
+						label: "Country*",
+						required: "Country is required",
+					},
+					useAddressForPaymentDetails: {
+						label: "Use this address for payment details",
+					},
+					invoiceId: {
+						label: "Use this invoice ID",
+					},
+					nameOnCard: {
+						label: "Name on Card*",
+						required: "Name on card is required",
+					},
+					cardNumber: {
+						label: "Card Number*",
+						required: "Card number is required",
+						invalid: "Invalid card number (ex: 4111111111111)",
+					},
+					expiryDate: {
+						label: "Expiration Date*",
+						required: "Expiration date is required",
+						invalid: "Invalid expiration date"
+					},
+					cvv: {
+						label: "CVV*",
+						required: "CVV is required",
+						invalid: "Invalid CVV (ex: 123)",
+					},
+				},
+				pricing: {
+					users: "Users",
+					connection: "Connection",
+					queues: "Queues",
+					SELECT: "SELECT",
+					month: "month",
+				},
+			},
+			companies: {
+				title: "Register Company",
+				form: {
+					name: "Company Name",
+					plan: "Plan",
+					token: "Token",
+					submit: "Register",
+					success: "Company created successfully!",
+				},
+			},
+			auth: {
+				toasts: {
+					success: "Login successful!",
+				},
+				token: "Token",
+			},
+			connections: {
+				title: "Connections",
+				toasts: {
+					deleted: "WhatsApp connection deleted successfully!",
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "Are you sure? This action cannot be undone.",
+					disconnectTitle: "Disconnect",
+					disconnectMessage: "Are you sure? You'll need to scan the QR Code again.",
+				},
+				buttons: {
+					add: "Add WhatsApp",
+					disconnect: "disconnect",
+					tryAgain: "Try again",
+					qrcode: "QR CODE",
+					newQr: "New QR CODE",
+					connecting: "Connecting",
+				},
+				toolTips: {
+					disconnected: {
+						title: "Failed to start WhatsApp session",
+						content: "Make sure your phone is connected to the internet and try again, or request a new QR Code",
+					},
+					qrcode: {
+						title: "Waiting for QR Code scan",
+						content: "Click the 'QR CODE' button and scan the QR Code with your phone to start the session",
+					},
+					connected: {
+						title: "Connection established!",
+					},
+					timeout: {
+						title: "Connection to phone was lost",
+						content: "Make sure your phone is connected to the internet and WhatsApp is open, or click the 'Disconnect' button to get a new QR Code",
+					},
+				},
+				table: {
+					name: "Name",
+					status: "Status",
+					lastUpdate: "Last update",
+					default: "Default",
+					actions: "Actions",
+					session: "Session",
+				},
+			},
+			whatsappModal: {
+				title: {
+					add: "Add WhatsApp",
+					edit: "Edit WhatsApp",
+				},
+				formErrors: {
+					name: {
+						required: "Name is required",
+						short: "Name is too short",
+						long: "Name is too long",
+					},
+				},
+				tabs: {
+					general: "General",
+					messages: "Messages",
+					assessments: "Assessments",
+					integrations: "Integrations",
+					schedules: "Business Hours",
+				},
+				form: {
+					name: "Name",
+					default: "Default",
+					sendIdQueue: "Queue",
+					timeSendQueue: "Redirect to queue in X minutes",
+					queueRedirection: "Queue Redirection",
+					outOfHoursMessage: "Out of office message",
+					queueRedirectionDesc: "Select a queue for contacts without a queue to be redirected to",
+					prompt: "Prompt",
+					queue: "Transfer Queue",
+					timeToTransfer: "Transfer after x (minutes)",
+					expiresTicket: "Close open chats after x minutes",
+					expiresInactiveMessage: "Inactivity closure message",
+					greetingMessage: "Greeting message",
+					complationMessage: "Completion message",
+				},
+				buttons: {
+					okAdd: "Add",
+					okEdit: "Save",
+					cancel: "Cancel",
+				},
+				success: "WhatsApp saved successfully.",
+			},
+			qrCodeModal: {
+				title: "Use your WhatsApp:",
+				steps: {
+					one: "1 - Open WhatsApp on your phone",
+					two: {
+						partOne: "2 - Tap More options on Android",
+						partTwo: "or Settings",
+						partThree: "on iPhone",
+					},
+					three: "3 - Tap Linked Devices and then Link a Device",
+					four: "4 - Point your phone at this screen to capture the QR Code",
+				},
+				waiting: "Waiting for QR Code scan",
+			},
+			qrCode: {
+				message: "Scan the QR Code to start the session",
+			},
+			contacts: {
+				title: "Contacts",
+				toasts: {
+					deleted: "Contact deleted successfully!",
+					deletedAll: "All contacts deleted successfully!",
+				},
+				searchPlaceholder: "Search...",
+				confirmationModal: {
+					deleteTitle: "Delete ",
+					deleteAllTitle: "Delete All",
+					importTitle: "Import contacts",
+					deleteMessage: "Are you sure you want to delete this contact? All related tickets will be lost.",
+					deleteAllMessage: "Are you sure you want to delete all contacts? All related tickets will be lost.",
+					importMessage: "Do you want to import all phone contacts?",
+				},
+				buttons: {
+					import: "Import Contacts",
+					add: "Add Contact",
+					export: "Export Contacts",
+					delete: "Delete All Contacts",
+				},
+				table: {
+					name: "Name",
+					whatsapp: "WhatsApp",
+					email: "Email",
+					actions: "Actions",
+				},
+			},
+			contactImportModal: {
+				title: "Contact Spreadsheet",
+				labels: {
+					import: "Import contacts",
+					result: "results",
+					added: "Added",
+					savedContact: "Contact saved",
+					errors: "Errors",
+				},
+				buttons: {
+					download: "Download template spreadsheet",
+					import: "Import contacts",
+				},
+			},
+			queueIntegrationModal: {
+				title: {
+					add: "Add project",
+					edit: "Edit project",
+				},
+				form: {
+					id: "ID",
+					type: "Type",
+					name: "Name",
+					projectName: "Project Name",
+					language: "Language",
+					jsonContent: "JsonContent",
+					urlN8N: "URL",
+					typebotSlug: "Typebot - Slug",
+					typebotExpires: "Time in minutes to expire a conversation",
+					typebotKeywordFinish: "Keyword to finish ticket",
+					typebotKeywordRestart: "Keyword to restart flow",
+					typebotRestartMessage: "Message when restarting conversation",
+					typebotUnknownMessage: "Invalid option message",
+					typebotDelayMessage: "Interval (ms) between messages",
+				},
+				buttons: {
+					okAdd: "Add",
+					okEdit: "Save",
+					cancel: "Cancel",
+					test: "Test Bot",
+				},
+				messages: {
+					testSuccess: "Integration tested successfully!",
+					addSuccess: "Integration added successfully.",
+					editSuccess: "Integration edited successfully.",
+				},
+			},
+			sideMenu: {
+				name: "Initial Side Menu",
+				note: "If enabled, the side menu will start closed",
+				options: {
+					enabled: "Open",
+					disabled: "Closed",
+				},
+			},
+			promptModal: {
+				form: {
+					name: "Name",
+					prompt: "Prompt",
+					model: "Model",
+					max_tokens: "Maximum Tokens in response",
+					temperature: "Temperature",
+					apikey: "API Key",
+					max_messages: "Maximum messages in History",
+				},
+				formErrors: {
+					name: {
+						short: "Name is too short",
+						long: "Name is too long",
+						required: "Name is required",
+					},
+					prompt: {
+						short: "Prompt is too short",
+						required: "Describe the training for Artificial Intelligence",
+					},
+					modal: {
+						required: "Enter the desired model for the Prompt",
+					},
+					maxTokens: {
+						required: "Enter the maximum number of tokens in the response",
+					},
+					temperature: {
+						required: "Enter the temperature",
+					},
+					apikey: {
+						required: "Enter the API Key",
+					},
+					queueId: {
+						required: "Enter the queue",
+					},
+					maxMessages: {
+						required: "Enter the maximum number of messages in history",
+					},
+				},
+				success: "Prompt saved successfully!",
+				setor: "Enter the sector",
+				title: {
+					add: "Add Prompt",
+					edit: "Edit Prompt",
+				},
+				buttons: {
+					okAdd: "Add",
+					okEdit: "Save",
+					cancel: "Cancel",
+				},
+			},
+			prompts: {
+				title: "Prompts",
+				table: {
+					name: "Name",
+					queue: "Sector/Queue",
+					max_tokens: "Maximum Response Tokens",
+					actions: "Actions",
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "Are you sure? This action cannot be undone!",
+				},
+				buttons: {
+					add: "Add Prompt",
+				},
+			},
+			contactModal: {
+				title: {
+					add: "Add Contact",
+					edit: "Edit Contact",
+				},
+				form: {
+					mainInfo: "Contact Information",
+					extraInfo: "Additional Information",
+					name: "Name",
+					number: "WhatsApp Number",
+					email: "Email",
+					extraName: "Field Name",
+					extraValue: "Value",
+					whatsapp: "Source Connection: ",
+				},
+				formErrors: {
+					name: {
+						required: "Name is required",
+						short: "Name is too short",
+						long: "Name is too long",
+					},
+					phone: {
+						short: "Number is too short",
+						long: "Number is too long",
+					},
+					email: {
+						invalid: "Invalid email",
+					},
+				},
+				buttons: {
+					addExtraInfo: "Add Information",
+					okAdd: "Add",
+					okEdit: "Save",
+					cancel: "Cancel",
+				},
+				success: "Contact saved successfully.",
+			},
+			queueModal: {
+				title: {
+					add: "Add Queue",
+					edit: "Edit Queue",
+				},
+				form: {
+					name: "Name",
+					nameShort: "Short name",
+					nameLong: "Long name",
+					nameRequired: "Name is required",
+					color: "Color",
+					colorShort: "Short color",
+					colorLong: "Long color",
+					greetingMessage: "Greeting message",
+					complationMessage: "Completion message",
+					outOfHoursMessage: "Out of office message",
+					ratingMessage: "Rating message",
+					token: "Token",
+					orderQueue: "Queue order (Bot)",
+					integrationId: "Integration",
+				},
+				buttons: {
+					okAdd: "Add",
+					okEdit: "Save",
+					cancel: "Cancel",
+				},
+				toasts: {
+					success: "Queue saved successfully.",
+					info: "Click save to register changes",
+				},
+				tabs: {
+					queueData: "Queue Data",
+					attendanceTime: "Service Hours",
+				},
+			},
+			userModal: {
+				title: {
+					add: "Add User",
+					edit: "Edit User",
+				},
+				form: {
+					name: "Name",
+					email: "Email",
+					password: "Password",
+					profile: "Profile",
+					whatsapp: "Default Connection",
+					allTicket: "Queueless Ticket [Invisible]",
+					allTicketEnabled: "Enabled",
+					allTicketDesabled: "Disabled",
+				},
+				formErrors: {
+					name: {
+						required: "Name is required",
+						short: "Name is too short",
+						long: "Name is too long",
+					},
+					password: {
+						short: "Password is too short",
+						long: "Password is too long",
+					},
+					email: {
+						required: "Email is required",
+						invalid: "Invalid email",
+					},
+				},
+				labels: {
+					liberations: "Releases",
+				},
+				buttons: {
+					okAdd: "Add",
+					okEdit: "Save",
+					cancel: "Cancel",
+				},
+				success: "User saved successfully.",
+			},
+			scheduleModal: {
+				title: {
+					add: "New Schedule",
+					edit: "Edit Schedule",
+				},
+				form: {
+					body: "Message",
+					contact: "Contact",
+					sendAt: "Schedule Date",
+					sentAt: "Send Date",
+				},
+				buttons: {
+					okAdd: "Add",
+					okEdit: "Save",
+					cancel: "Cancel",
+				},
+				success: "Schedule saved successfully.",
+			},
+			tagModal: {
+				title: {
+					add: "New Tag",
+					edit: "Edit Tag",
+				},
+				form: {
+					name: "Name",
+					color: "Color",
+				},
+				buttons: {
+					okAdd: "Add",
+					okEdit: "Save",
+					cancel: "Cancel",
+				},
+				success: "Tag saved successfully.",
+			},
+			chat: {
+				toasts: {
+					fillTitle: "Please fill in the conversation title.",
+					fillUser: "Please select at least one user.",
+				},
+				modal: {
+					title: "Conversation",
+					titleField: "Title",
+				},
+				confirm: {
+					title: "Delete Conversation",
+					message: "This action cannot be undone, confirm?",
+				},
+				chats: "Chats",
+				messages: "Messages",
+				noTicketMessage: "Select a ticket to start chatting.",
+				buttons: {
+					close: "Close",
+					save: "Save",
+					new: "New",
+					newChat: "New",
+				},
+			},
+			uploads: {
+				titles: {
+					titleUploadMsgDragDrop: "DRAG AND DROP FILES IN THE FIELD BELOW",
+					titleFileList: "File List",
+				},
+			},
+			ticketsManager: {
+				buttons: {
+					newTicket: "New",
+				},
+			},
+			ticketsQueueSelect: {
+				placeholder: "Queues",
+			},
+			tickets: {
+				toasts: {
+					deleted: "The service you were in has been deleted.",
+					unauthorized: "Access not allowed",
+				},
+				filters: {
+					user: "Filter by users",
+					tags: "Filter by tags",
+				},
+				notification: {
+					message: "Message from",
+				},
+				tabs: {
+					open: { title: "Open" },
+					closed: { title: "Resolved" },
+					search: { title: "Search" },
+				},
+				search: {
+					placeholder: "Search tickets and messages",
+				},
+				buttons: {
+					showAll: "All",
+				},
+			},
+			transferTicketModal: {
+				title: "Transfer Ticket",
+				fieldLabel: "Type to search users",
+				fieldQueueLabel: "Transfer to queue",
+				fieldQueuePlaceholder: "Select a queue",
+				noOptions: "No user found with that name",
+				buttons: {
+					ok: "Transfer",
+					cancel: "Cancel",
+				},
+			},
+			ticketsList: {
+				pendingHeader: "Waiting",
+				assignedHeader: "In Progress",
+				noTicketsTitle: "Nothing here!",
+				noTicketsMessage: "No service found with this status or search term",
+				buttons: {
+					accept: "Accept",
+					closed: "Finish",
+					reopen: "Reopen",
+				},
+			},
+			ticketsListItem: {
+				tooltip: {
+					chatbot: "Chatbot",
+					peek: "Peek Conversation",
+				},
+				noQueue: "NO QUEUE",
+			},
+			ticketAdvanced: {
+				selectTicket: "Select Ticket",
+				ticketNav: "Ticket",
+				attendanceNav: "Services",
+			},
+			newTicketModal: {
+				title: "Create Ticket",
+				fieldLabel: "Type to search contact",
+				add: "Add",
+				searchQueueError: "An unexpected error occurred while trying to fetch queues",
+				selectQueue: "Select a queue",
+				selectConection: "Select a connection",
+				buttons: {
+					ok: "Save",
+					cancel: "Cancel",
+				},
+			},
+			locationPreview: {
+				button: "Preview",
+			},
+			mainDrawer: {
+				listItems: {
+					dashboard: "Dashboard",
+					connections: "Connections",
+					tickets: "Services",
+					quickMessages: "Quick Responses",
+					tasks: "Tasks",
+					contacts: "Contacts",
+					queues: "Queues & Chatbot",
+					tags: "Tags",
+					administration: "Administration",
+					users: "Users",
+					settings: "Settings",
+					helps: "Help",
+					messagesAPI: "API",
+					schedules: "Schedules",
+					campaigns: "Campaigns",
+					annoucements: "Announcements",
+					chats: "Internal Chat",
+					financeiro: "Financial",
+					files: "File List",
+					prompts: "Open.AI",
+					queueIntegration: "Integrations",
+				},
+				appBar: {
+					refresh: "Reload page",
+					notRegister: "No notifications",
+					greeting: {
+						hello: "Hello",
+						welcome: "Welcome to",
+						active: "Active until",
+					},
+					user: {
+						profile: "Profile",
+						logout: "Logout",
+					},
+				},
+			},
+			queueIntegration: {
+				title: "Integrations",
+				table: {
+					id: "ID",
+					type: "Type",
+					name: "Name",
+					projectName: "Project Name",
+					language: "Language",
+					lastUpdate: "Last update",
+					actions: "Actions",
+				},
+				buttons: {
+					add: "Add Project",
+				},
+				searchPlaceholder: "Search...",
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "Are you sure? This action cannot be undone! It will be removed from linked queues and connections",
+				},
+			},
+			files: {
+				title: "File List",
+				table: {
+					name: "Name",
+					contacts: "Contacts",
+					actions: "Action",
+				},
+				toasts: {
+					deleted: "List deleted successfully!",
+					deletedAll: "All lists deleted successfully!",
+				},
+				buttons: {
+					add: "Add",
+					deleteAll: "Delete All",
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteAllTitle: "Delete All",
+					deleteMessage: "Are you sure you want to delete this list?",
+					deleteAllMessage: "Are you sure you want to delete all lists?",
+				},
+			},
+			messagesAPI: {
+				title: "API",
+				labels: {
+					doc: "Documentation for sending messages",
+					method: "Sending Methods",
+					textMessage: "Text Message",
+					mediaMessage: "Media Message",
+					instructions: "Instructions",
+					observations: "Important notes",
+					before1: "Before sending messages, you need to register the token linked to the connection that will send the messages.",
+					before2: "To register, access the 'Connections' menu, click the edit button of the connection and enter the token in the appropriate field.",
+					numberDescription: "The sending number should not have masks or special characters and must be composed of:",
+					countryCode: "Country Code",
+					number: "Number",
+					textMessage2: "1. Text Messages",
+					textMessageInstructions: "Below is the list of information needed to send text messages:",
+					method2: "Method",
+					e: "and",
+					tests: "Send Test",
+					mediaMessage2: "2. Media Messages",
+				},
+				textMessage: {
+					number: "Number",
+					body: "Message",
+					token: "Registered Token",
+				},
+				mediaMessage: {
+					number: "Number",
+					body: "File name",
+					media: "File",
+					token: "Registered Token",
+				},
+				toasts: {
+					unauthorized: "This company doesn't have permission to access this page! We are redirecting you.",
+					success: "Message sent successfully!",
+				},
+				buttons: {
+					send: "Send",
+				},
+			},
+			notifications: {
+				noTickets: "No notifications.",
+			},
+			quickMessages: {
+				title: "Quick Responses",
+				searchPlaceholder: "Search...",
+				noAttachment: "No attachment",
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "This action is irreversible! Do you want to proceed?",
+				},
+				buttons: {
+					add: "Add",
+					attach: "Attach File",
+					cancel: "Cancel",
+					edit: "Edit",
+				},
+				toasts: {
+					success: "Shortcut added successfully!",
+					deleted: "Shortcut removed successfully!",
+				},
+				dialog: {
+					title: "Quick Message",
+					shortcode: "Shortcut",
+					message: "Response",
+					save: "Save",
+					cancel: "Cancel",
+					geral: "Allow edit",
+					add: "Add",
+					edit: "Edit",
+					visao: "Allow view",
+				},
+				table: {
+					shortcode: "Shortcut",
+					message: "Message",
+					actions: "Actions",
+					mediaName: "File Name",
+					status: "Status",
+				},
+			},
+			messageVariablesPicker: {
+				label: "Available Variables",
+				vars: {
+					contactFirstName: "First Name",
+					contactName: "Name",
+					greeting: "Greeting",
+					protocolNumber: "Protocol",
+					date: "Date",
+					hour: "Hour",
+				},
+			},
+			contactLists: {
+				title: "Contact Lists",
+				table: {
+					name: "Name",
+					contacts: "Contacts",
+					actions: "Actions",
+				},
+				buttons: {
+					add: "New List",
+				},
+				dialog: {
+					name: "Name",
+					nameShort: "Short name",
+					nameLong: "Long name",
+					nameRequired: "Name is required",
+					company: "Company",
+					okEdit: "Edit",
+					okAdd: "Add",
+					add: "Add",
+					edit: "Edit",
+					cancel: "Cancel",
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "This action cannot be undone.",
+				},
+				toasts: {
+					deleted: "Record deleted",
+					success: "Operation completed successfully",
+				},
+			},
+			contactListItems: {
+				title: "Contacts",
+				searchPlaceholder: "Search",
+				buttons: {
+					add: "New",
+					lists: "Lists",
+					import: "Import",
+				},
+				download: "Click here to download example spreadsheet.",
+				dialog: {
+					name: "Name",
+					nameShort: "Short name",
+					nameLong: "Long name",
+					nameRequired: "Name is required",
+					number: "Number",
+					numberShort: "Short number",
+					numberLong: "Long number",
+					whatsapp: "WhatsApp",
+					email: "Email",
+					emailInvalid: "Invalid email",
+					okEdit: "Edit",
+					okAdd: "Add",
+					add: "Add",
+					edit: "Edit",
+					cancel: "Cancel",
+				},
+				table: {
+					name: "Name",
+					number: "Number",
+					whatsapp: "WhatsApp",
+					email: "Email",
+					actions: "Actions",
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "This action cannot be undone.",
+					importMessage: "Do you want to import contacts from this spreadsheet? ",
+					importTitle: "Import",
+				},
+				toasts: {
+					deleted: "Record deleted",
+				},
+			},
+			campaigns: {
+				title: "Campaigns",
+				searchPlaceholder: "Search",
+				report: {
+					title: "Report of",
+					title2: "Campaign",
+					of: "of",
+					validContacts: "Valid contacts",
+					delivered: "Delivered",
+					connection: "Connection",
+					contactList: "Contact List",
+					schedule: "Schedule",
+					conclusion: "Conclusion",
+				},
+				config: {
+					interval: "Intervals",
+					randomInterval: "Random Send Interval",
+					biggerInterval: "Larger Interval After",
+					greaterInterval: "Greater Send Interval",
+					noInterval: "No Interval",
+					second: "second",
+					seconds: "seconds",
+					notDefined: "Not defined",
+					addVariable: "Add Variable",
+					save: "Save Settings",
+					shortcut: "Shortcut",
+					content: "Content",
+					close: "Close",
+					add: "Add",
+				},
+				buttons: {
+					add: "New Campaign",
+					contactLists: "Contact Lists",
+				},
+				status: {
+					inactive: "Inactive",
+					programmed: "Scheduled",
+					inProgress: "In progress",
+					canceled: "Canceled",
+					finished: "Finished",
+				},
+				table: {
+					name: "Name",
+					whatsapp: "Connection",
+					contactList: "Contact List",
+					status: "Status",
+					scheduledAt: "Schedule",
+					completedAt: "Completed",
+					confirmation: "Confirmation",
+					actions: "Actions",
+					notDefined: "Not defined",
+					notDefined2: "Not defined",
+					notScheduled: "Not scheduled",
+					notConcluded: "Not concluded",
+					stopCampaign: "Stop Campaign",
+				},
+				dialog: {
+					new: "New Campaign",
+					update: "Edit Campaign",
+					readonly: "View Only",
+					form: {
+						name: "Name",
+						nameShort: "Short name",
+						nameLong: "Long name",
+						helper: "Use variables like {name}, {number}, {email} or define custom variables.",
+						nameRequired: "Name is required",
+						message1: "Message 1",
+						message2: "Message 2",
+						message3: "Message 3",
+						message4: "Message 4",
+						message5: "Message 5",
+						messagePlaceholder: "Message content",
+						whatsapp: "Connection",
+						status: "Status",
+						scheduledAt: "Schedule",
+						confirmation: "Confirmation",
+						contactList: "Contact List",
+						tagList: "Tag List",
+						fileList: "File List",
+					},
+					buttons: {
+						add: "Add",
+						edit: "Update",
+						okadd: "Ok",
+						cancel: "Cancel Sends",
+						restart: "Restart Sends",
+						close: "Close",
+						attach: "Attach File",
+					},
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "This action cannot be undone.",
+				},
+				toasts: {
+					configSaved: "Settings saved",
+					success: "Operation completed successfully",
+					cancel: "Campaign canceled",
+					restart: "Campaign restarted",
+					deleted: "Record deleted",
+				},
+			},
+			subscription: {
+				title: "Subscription",
+				testPeriod: "Trial Period",
+				remainingTest: "Your trial period ends in",
+				remainingTest2: "days!",
+				chargeEmail: "Billing email",
+				signNow: "Sign up now!",
+			},
+			announcements: {
+				active: "Active",
+				inactive: "Inactive",
+				title: "Announcements",
+				searchPlaceholder: "Search",
+				high: "High",
+				medium: "Medium",
+				low: "Low",
+				buttons: {
+					add: "New Announcement",
+					contactLists: "Announcement Lists",
+				},
+				table: {
+					priority: "Priority",
+					title: "Title",
+					text: "Text",
+					mediaName: "File",
+					status: "Status",
+					actions: "Actions",
+				},
+				dialog: {
+					edit: "Edit Announcement",
+					add: "New Announcement",
+					update: "Edit Announcement",
+					readonly: "View Only",
+					form: {
+						priority: "Priority",
+						required: "Required field",
+						title: "Title",
+						text: "Text",
+						mediaPath: "File",
+						status: "Status",
+					},
+					buttons: {
+						add: "Add",
+						edit: "Update",
+						okadd: "Ok",
+						cancel: "Cancel",
+						close: "Close",
+						attach: "Attach File",
+					},
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "This action cannot be undone.",
+				},
+				toasts: {
+					success: "Operation completed successfully",
+					deleted: "Record deleted",
+					info: "This company doesn't have permission to access this page! We are redirecting you.",
+				},
+			},
+			campaignsConfig: {
+				title: "Campaign Settings",
+			},
+			queues: {
+				title: "Queues & Chatbot",
+				table: {
+					id: "ID",
+					name: "Name",
+					color: "Color",
+					greeting: "Greeting message",
+					actions: "Actions",
+					orderQueue: "Queue order (bot)",
+				},
+				buttons: {
+					add: "Add queue",
+				},
+				toasts: {
+					success: "Queue deleted successfully.",
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "Are you sure? This action cannot be undone! Services in this queue will continue to exist but won't have any queue assigned.",
+				},
+			},
+			queueSelect: {
+				inputLabel: "Queues",
+			},
+			users: {
+				title: "Users",
+				table: {
+					id: "ID",
+					name: "Name",
+					email: "Email",
+					profile: "Profile",
+					actions: "Actions",
+				},
+				buttons: {
+					add: "Add user",
+				},
+				toasts: {
+					deleted: "User deleted successfully.",
+				},
+				confirmationModal: {
+					deleteTitle: "Delete",
+					deleteMessage: "All user data will be lost. Open services for this user will be moved to the queue.",
+				},
+			},
+			todolist: {
+				input: "New task",
+				buttons: {
+					add: "Add",
+					save: "Save",
+				},
+			},
+			helps: {
+				title: "Help Center",
+			},
+			schedules: {
+				title: "Schedules",
+				confirmationModal: {
+					deleteTitle: "Are you sure you want to delete this Schedule?",
+					deleteMessage: "This action cannot be undone.",
+				},
+				table: {
+					contact: "Contact",
+					body: "Message",
+					sendAt: "Schedule Date",
+					sentAt: "Send Date",
+					status: "Status",
+					actions: "Actions",
+				},
+				messages: {
+					date: "Date",
+					time: "Time",
+					event: "Event",
+					allDay: "All Day",
+					week: "Week",
+					work_week: "Schedules",
+					day: "Day",
+					month: "Month",
+					previous: "Previous",
+					next: "Next",
+					yesterday: "Yesterday",
+					tomorrow: "Tomorrow",
+					today: "Today",
+					agenda: "Agenda",
+					noEventsInRange: "No schedules in this period.",
+					showMore: "more",
+				},
+				buttons: {
+					add: "New Schedule",
+				},
+				toasts: {
+					deleted: "Schedule deleted successfully.",
+				},
+			},
+			tags: {
+				title: "Tags",
+				confirmationModal: {
+					deleteTitle: "Are you sure you want to delete this Tag?",
+					deleteMessage: "This action cannot be undone.",
+					deleteAllMessage: "Are you sure you want to delete all Tags?",
+					deleteAllTitle: "Delete All",
+				},
+				table: {
+					name: "Name",
+					color: "Color",
+					tickets: "Tagged Records",
+					actions: "Actions",
+				},
+				buttons: {
+					add: "New Tag",
+					deleteAll: "Delete All",
+				},
+				toasts: {
+					deletedAll: "All Tags deleted successfully!",
+					deleted: "Tag deleted successfully.",
+				},
+			},
+			settings: {
+				schedulesUpdated: "Schedules updated successfully.",
+				success: "Settings saved successfully.",
+				title: "Settings",
+				tabs: {
+					options: "Options",
+					schedules: "Schedules",
+					companies: "Companies",
+					plans: "Plans",
+					helps: "Help",
+				},
+				options: {
+					toasts: {
+						success: "Operation updated successfully.",
+					},
+					fields: {
+						ratings: {
+							title: "Ratings",
+							disabled: "Disabled",
+							enabled: "Enabled",
+						},
+						expedientManager: {
+							title: "Business Hours Management",
+							queue: "Queue",
+							company: "Company",
+						},
+						ignoreMessages: {
+							title: "Ignore Group Messages",
+						},
+						acceptCall: {
+							title: "Accept Call",
+							disabled: "Don't accept",
+							enabled: "Accept",
+						},
+						chatbotType: {
+							title: "Chatbot Type",
+							text: "Text",
+						},
+						sendGreetingAccepted: {
+							title: "Send greeting when accepting ticket",
+						},
+						sendMsgTransfTicket: {
+							title: "Send message on Queue/agent transfer",
+						},
+						sendGreetingMessageOneQueues: {
+							title: "Send greeting when there's only 1 queue",
+						},
+						disabled: "Disabled",
+						active: "Active",
+						enabled: "Enabled",
+					},
+					updating: "Updating...",
+					tabs: {
+						integrations: "INTEGRATIONS",
+					},
+				},
+				helps: {
+					toasts: {
+						errorList: "Could not load records list",
+						errorOperation: "Could not complete operation",
+						error: "Could not complete operation. Check if help with the same name exists or if fields were filled correctly",
+						success: "Operation completed successfully!",
+					},
+					buttons: {
+						clean: "Clear",
+						delete: "Delete",
+						save: "Save",
+					},
+					grid: {
+						title: "Title",
+						description: "Description",
+						video: "Video",
+					},
+					confirmModal: {
+						title: "Delete Record",
+						confirm: "Do you really want to delete this record?",
+					},
+				},
+				company: {
+					toasts: {
+						errorList: "Could not load records list",
+						errorOperation: "Could not complete operation",
+						error: "Could not complete operation. Check if company with same name exists or if fields were filled correctly",
+						success: "Operation completed successfully!",
+					},
+					confirmModal: {
+						title: "Delete Record",
+						confirm: "Do you really want to delete this record?",
+					},
+					form: {
+						name: "Name",
+						email: "Email",
+						phone: "Phone",
+						plan: "Plan",
+						status: "Status",
+						yes: "Yes",
+						no: "No",
+						campanhas: "Campaigns",
+						enabled: "Enabled",
+						disabled: "Disabled",
+						dueDate: "Due date",
+						recurrence: "Recurrence",
+						monthly: "Monthly",
+						expire: "Expiration",
+						createdAt: "Created On",
+					},
+					buttons: {
+						clear: "Clear",
+						delete: "Delete",
+						expire: "+ Expiration",
+						user: "User",
+						save: "Save",
+					},
+				},
+				schedules: {
+					form: {
+						weekday: "Weekday",
+						initialHour: "Start Time",
+						finalHour: "End Time",
+						save: "Save",
+					},
+				},
+				settings: {
+					userCreation: {
+						name: "User creation",
+						options: {
+							enabled: "Enabled",
+							disabled: "Disabled",
+						},
+					},
+				},
+			},
+			messagesList: {
+				header: {
+					assignedTo: "Assigned to:",
+					buttons: {
+						return: "Return",
+						resolve: "Resolve",
+						reopen: "Reopen",
+						accept: "Accept",
+						download: "Download",
+					},
+				},
+				lostCall: "Missed voice/video call at",
+				deletedMessage: "This message was deleted by the contact",
+				edited: "Edited",
+				saudation: "Say hello to your new contact!",
+			},
+			messagesInput: {
+				placeholderOpen: "Type a message",
+				placeholderClosed: "Reopen or accept this ticket to send a message.",
+				signMessage: "Sign",
+			},
+			contactDrawer: {
+				header: "Contact Information",
+				buttons: {
+					edit: "Edit contact",
+				},
+				extraInfo: "Other information",
+			},
+			fileModal: {
+				title: {
+					add: "Add file list",
+					edit: "Edit file list",
+				},
+				buttons: {
+					okAdd: "Save",
+					okEdit: "Edit",
+					cancel: "Cancel",
+					fileOptions: "Add file",
+				},
+				form: {
+					name: "File list name",
+					message: "List details",
+					fileOptions: "File list",
+					extraName: "Message to send with file",
+					extraValue: "Option value",
+				},
+				formErrors: {
+					name: {
+						required: "Name is required",
+						short: "Name is too short",
+					},
+					message: {
+						required: "Message is required",
+					},
+				},
+				success: "File list saved successfully!",
+			},
+			ticketOptionsMenu: {
+				schedule: "Schedule",
+				delete: "Delete",
+				transfer: "Transfer",
+				registerAppointment: "Contact Notes",
+				appointmentsModal: {
+					title: "Contact Notes",
+					textarea: "Note",
+					placeholder: "Enter the information you want to record here",
+				},
+				confirmationModal: {
+					title: "Delete ticket",
+					titleFrom: "from contact ",
+					message: "Warning! All messages related to this ticket will be lost.",
+				},
+				buttons: {
+					delete: "Delete",
+					cancel: "Cancel",
+				},
+			},
+			confirmationModal: {
+				buttons: {
+					confirm: "Ok",
+					cancel: "Cancel",
+				},
+			},
+			messageOptionsMenu: {
+				delete: "Delete",
+				reply: "Reply",
+				confirmationModal: {
+					title: "Delete message?",
+					message: "This action cannot be undone.",
+				},
+			},
+			backendErrors: {
+				ERR_INTERNAL_SERVER_ERROR: "An unexpected error occurred. Please try again later",
+				ERR_NO_OTHER_WHATSAPP: "There must be at least one default WhatsApp.",
+				ERR_NO_DEF_WAPP_FOUND: "No default WhatsApp found. Check the connections page.",
+				ERR_WAPP_NOT_INITIALIZED: "This WhatsApp session hasn't been initialized. Check the connections page.",
+				ERR_WAPP_CHECK_CONTACT: "Couldn't verify WhatsApp contact. Check the connections page",
+				ERR_WAPP_INVALID_CONTACT: "This is not a valid WhatsApp number.",
+				ERR_WAPP_DOWNLOAD_MEDIA: "Couldn't download WhatsApp media. Check the connections page.",
+				ERR_INVALID_CREDENTIALS: "Authentication error. Please try again.",
+				ERR_USER_DONT_EXISTS: "User not found. Check the provided email.",
+				ERR_SENDING_WAPP_MSG: "Error sending WhatsApp message. Check the connections page.",
+				ERR_DELETE_WAPP_MSG: "Couldn't delete WhatsApp message.",
+				ERR_OTHER_OPEN_TICKET: "There's already an open ticket for this contact.",
+				ERR_SESSION_EXPIRED: "Session expired. Please log in.",
+				ERR_USER_CREATION_DISABLED: "User creation has been disabled by the administrator.",
+				ERR_NO_PERMISSION: "You don't have permission to access this resource.",
+				ERR_DUPLICATED_CONTACT: "A contact with this number already exists.",
+				ERR_NO_SETTING_FOUND: "No settings found with this ID.",
+				ERR_NO_CONTACT_FOUND: "No contact found with this ID.",
+				ERR_NO_TICKET_FOUND: "No ticket found with this ID.",
+				ERR_NO_USER_FOUND: "No user found with this ID.",
+				ERR_NO_WAPP_FOUND: "No WhatsApp found with this ID.",
+				ERR_CREATING_MESSAGE: "Error creating message in database.",
+				ERR_CREATING_TICKET: "Error creating ticket in database.",
+				ERR_FETCH_WAPP_MSG: "Error fetching WhatsApp message, it might be too old.",
+				ERR_QUEUE_COLOR_ALREADY_EXISTS: "This color is already in use, choose another.",
+				ERR_WAPP_GREETING_REQUIRED: "Greeting message is required when there is more than one queue.",
+			},
+		}
+	},
+};
+
+export { messages };

+ 1562 - 0
frontend/src/translate/languages/es.js

@@ -0,0 +1,1562 @@
+const messages = {
+  es: {
+    translations: {
+      selectLanguage: "Seleccione un idioma",
+      signup: {
+        title: "Regístrate",
+        toasts: {
+          success: "¡Usuario creado con éxito! ¡Inicia sesión!!!",
+          fail: "Error al crear usuario. Verifica los datos ingresados.",
+        },
+        form: {
+          name: "Nombre de la empresa",
+          email: "Correo electrónico",
+          phone: "Teléfono con (código de área)",
+          plan: "Plan",
+          password: "Contraseña",
+        },
+        formErrors: {
+          name: {
+            required: "El nombre de la empresa es obligatorio",
+            short: "Nombre demasiado corto",
+            long: "Nombre demasiado largo",
+          },
+          password: {
+            short: "Contraseña demasiado corta",
+            long: "Contraseña demasiado larga",
+          },
+          email: {
+            required: "El correo electrónico es obligatorio",
+            invalid: "Correo electrónico inválido",
+          },
+        },
+        buttons: {
+          submit: "Registrar",
+          login: "¿Ya tienes una cuenta? ¡Inicia sesión!",
+        },
+        plan: {
+          attendant: "Asistente",
+          whatsapp: "WhatsApp",
+          queues: "Colas",
+        },
+      },
+      login: {
+        title: "Iniciar sesión",
+        form: {
+          email: "Correo electrónico",
+          password: "Contraseña",
+        },
+        buttons: {
+          submit: "Entrar",
+          register: "¡Regístrate ahora mismo!",
+        },
+      },
+      resetPassword: {
+        title: "Restablecer Contraseña",
+        toasts: {
+          emailSent: "¡Correo enviado con éxito!",
+          emailNotFound: "¡Correo electrónico no encontrado!",
+          passwordUpdated: "¡Contraseña actualizada con éxito!",
+        },
+        formErrors: {
+          email: {
+            required: "El correo electrónico es obligatorio",
+            invalid: "Correo electrónico inválido",
+          },
+          newPassword: {
+            required: "La nueva contraseña es obligatoria",
+            matches:
+                "Tu contraseña debe tener al menos 8 caracteres, incluyendo una letra mayúscula, una minúscula y un número.",
+          },
+          confirmPassword: {
+            required: "La confirmación de contraseña es obligatoria",
+            matches: "Las contraseñas no coinciden",
+          },
+        },
+        form: {
+          email: "Correo electrónico",
+          verificationCode: "Código de verificación",
+          newPassword: "Nueva contraseña",
+          confirmPassword: "Confirmar nueva contraseña",
+        },
+        buttons: {
+          submitEmail: "Enviar correo",
+          submitPassword: "Restablecer contraseña",
+          back: "¿No tienes una cuenta? ¡Regístrate!",
+        },
+      },
+      dashboard: {
+        toasts: {
+          selectFilterError: "Parametrice el filtro",
+              userChartError: "Error al obtener información de la conversación",
+              dateChartError: "Error al obtener información de la conversación",
+        },
+        filters: {
+          initialDate: "Fecha Inicial",
+              finalDate: "Fecha Final",
+              filterType: {
+            title: "Tipo de Filtro",
+                options: {
+              perDate: "Filtro por Fecha",
+                  perPeriod: "Filtro por Período",
+            },
+            helper: "Seleccione el tipo de filtro deseado",
+          },
+        },
+        periodSelect: {
+          title: "Período",
+              options: {
+            none: "Ninguno seleccionado",
+                last3: "Últimos 3 días",
+                last7: "Últimos 7 días",
+                last15: "Últimos 15 días",
+                last30: "Últimos 30 días",
+                last60: "Últimos 60 días",
+                last90: "Últimos 90 días",
+          },
+          helper: "Seleccione el período deseado",
+        },
+        counters: {
+          inTalk: "En conversación",
+              waiting: "En espera",
+              finished: "Finalizados",
+              newContacts: "Nuevos contactos",
+              averageTalkTime: "T.M. de Conversación",
+              averageWaitTime: "T.M. de Espera",
+        },
+        buttons: {
+          filter: "Filtrar",
+        },
+        onlineTable: {
+          ratingLabel: "1 - Insatisfecho, 2 - Satisfecho, 3 - Muy Satisfecho",
+              name: "Nombre",
+              ratings: "Evaluaciones",
+              avgSupportTime: "T.M. de Atención",
+              status: "Estado (Actual)",
+        },
+        charts: {
+          user: {
+            label: "Gráfico de Conversaciones",
+                title: "Total de Conversaciones por Usuarios",
+                start: "Inicio",
+                end: "Fin",
+                filter: "Filtrar",
+          },
+          date: {
+            label: "Gráfico de Conversaciones",
+                title: "Total",
+                start: "Inicio",
+                end: "Fin",
+                filter: "Filtrar",
+          },
+        },
+      },
+      plans: {
+        toasts: {
+          errorList: "No fue posible cargar la lista de registros",
+          errorOperation: "No fue posible realizar la operación",
+          error: "No fue posible realizar la operación. Verifique si ya existe un plan con el mismo nombre o si los campos fueron completados correctamente",
+          success: "¡Operación realizada con éxito!",
+        },
+        confirm: {
+          title: "Eliminación de Registro",
+          message: "¿Realmente desea eliminar el registro?",
+        },
+        form: {
+          name: "Nombre",
+          users: "Usuarios",
+          connections: "Conexiones",
+          queues: "Colas",
+          value: "Valor",
+          internalChat: "Chat Interno",
+          externalApi: "API Externa",
+          kanban: "Kanban",
+          integrations: "Integraciones",
+          campaigns: "Campañas",
+          schedules: "Programaciones",
+          enabled: "Habilitadas",
+          disabled: "Deshabilitadas",
+          clear: "Cancelar",
+          delete: "Eliminar",
+          save: "Guardar",
+          yes: "Sí",
+          no: "No",
+          money: "$",
+        },
+      },
+      kanban: {
+        toasts: {
+          removed: "¡Etiqueta de Ticket Eliminada!",
+          added: "¡Etiqueta de Ticket Agregada con Éxito!",
+        },
+        open: "Abierto",
+        seeTicket: "Ver Ticket",
+      },
+      invoices: {
+        title: "Facturas",
+        paid: "Pagado",
+        open: "Pendiente",
+        expired: "Vencido",
+        details: "Detalles",
+        value: "Valor",
+        dueDate: "Fecha Venc.",
+        status: "Estado",
+        action: "Acción",
+        PAY: "PAGAR",
+        PAID: "PAGADO",
+      },
+      checkoutPage: {
+        steps: {
+          data: "Datos",
+          customize: "Personalizar",
+          review: "Revisar",
+        },
+        success: "¡Suscripción realizada con éxito!, esperando la realización del pago",
+        closeToEnd: "¡Falta poco!",
+        BACK: "VOLVER",
+        PAY: "PAGAR",
+        NEXT: "SIGUIENTE",
+        review: {
+          title: "Resumen de la suscripción",
+          details: "Detalles del plan",
+          users: "Usuarios",
+          whatsapp: "Whatsapp",
+          charges: "Cobro: Mensual",
+          total: "Total",
+        },
+        form: {
+          firstName: {
+            label: "Nombre completo*",
+            required: "El nombre completo es obligatorio",
+          },
+          lastName: {
+            label: "Apellido*",
+            required: "El apellido es obligatorio",
+          },
+          address1: {
+            label: "Dirección*",
+            required: "La dirección es obligatoria",
+          },
+          city: {
+            label: "Ciudad*",
+            required: "La ciudad es obligatoria",
+          },
+          state: {
+            label: "Estado/Provincia*",
+            required: "El estado/provincia es obligatorio",
+          },
+          zipcode: {
+            label: "Código Postal*",
+            required: "El código postal es obligatorio",
+            invalid: "Formato de código postal inválido",
+          },
+          country: {
+            label: "País*",
+            required: "El país es obligatorio",
+          },
+          useAddressForPaymentDetails: {
+            label: "Usar esta dirección para los detalles de pago",
+          },
+          invoiceId: {
+            label: "Usar este ID de factura",
+          },
+          nameOnCard: {
+            label: "Nombre en la tarjeta*",
+            required: "El nombre en la tarjeta es obligatorio",
+          },
+          cardNumber: {
+            label: "Número de tarjeta*",
+            required: "El número de tarjeta es obligatorio",
+            invalid: "Número de tarjeta inválido (ej: 4111111111111)",
+          },
+          expiryDate: {
+            label: "Fecha de vencimiento*",
+            required: "La fecha de vencimiento es obligatoria",
+            invalid: "Fecha de vencimiento inválida"
+          },
+          cvv: {
+            label: "CVV*",
+            required: "El CVV es obligatorio",
+            invalid: "CVV inválido (ej: 123)",
+          },
+        },
+        pricing: {
+          users: "Usuarios",
+          connection: "Conexión",
+          queues: "Colas",
+          SELECT: "SELECCIONAR",
+          month: "mes",
+        },
+      },
+      companies: {
+        title: "Registrar Empresa",
+        form: {
+          name: "Nombre de la Empresa",
+          plan: "Plan",
+          token: "Token",
+          submit: "Registrar",
+          success: "¡Empresa creada con éxito!",
+        },
+      },
+      auth: {
+        toasts: {
+          success: "¡Inicio de sesión realizado con éxito!",
+        },
+        token: "Token",
+      },
+      connections: {
+        title: "Conexiones",
+        toasts: {
+          deleted: "¡Conexión con WhatsApp eliminada con éxito!",
+        },
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteMessage: "¿Está seguro? Esta acción no puede ser revertida.",
+          disconnectTitle: "Desconectar",
+          disconnectMessage: "¿Está seguro? Necesitará leer el código QR nuevamente.",
+        },
+        buttons: {
+          add: "Agregar WhatsApp",
+          disconnect: "desconectar",
+          tryAgain: "Intentar nuevamente",
+          qrcode: "CÓDIGO QR",
+          newQr: "Nuevo CÓDIGO QR",
+          connecting: "Conectando",
+        },
+        toolTips: {
+          disconnected: {
+            title: "Error al iniciar sesión de WhatsApp",
+            content: "Asegúrese de que su teléfono esté conectado a internet e intente nuevamente, o solicite un nuevo código QR",
+          },
+          qrcode: {
+            title: "Esperando lectura del código QR",
+            content: "Haga clic en el botón 'CÓDIGO QR' y lea el código QR con su teléfono para iniciar la sesión",
+          },
+          connected: {
+            title: "¡Conexión establecida!",
+          },
+          timeout: {
+            title: "Se perdió la conexión con el teléfono",
+            content: "Asegúrese de que su teléfono esté conectado a internet y WhatsApp esté abierto, o haga clic en el botón 'Desconectar' para obtener un nuevo código QR",
+          },
+        },
+        table: {
+          name: "Nombre",
+          status: "Estado",
+          lastUpdate: "Última actualización",
+          default: "Predeterminado",
+          actions: "Acciones",
+          session: "Sesión",
+        },
+      },
+      whatsappModal: {
+        title: {
+          add: "Agregar WhatsApp",
+          edit: "Editar WhatsApp",
+        },
+        formErrors: {
+          name: {
+            required: "El nombre es obligatorio",
+            short: "Nombre demasiado corto",
+            long: "Nombre demasiado largo",
+          },
+        },
+        tabs: {
+          general: "General",
+          messages: "Mensajes",
+          assessments: "Evaluaciones",
+          integrations: "Integraciones",
+          schedules: "Horario laboral",
+        },
+        form: {
+          name: "Nombre",
+          default: "Predeterminado",
+          sendIdQueue: "Cola",
+          timeSendQueue: "Redirigir a cola en X minutos",
+          queueRedirection: "Redirección de Cola",
+          outOfHoursMessage: "Mensaje fuera de horario",
+          queueRedirectionDesc:
+              "Seleccione una cola para redirigir los contactos que no tienen cola asignada",
+          prompt: "Prompt",
+          queue: "Cola de Transferencia",
+          timeToTransfer: "Transferir después de x (minutos)",
+          expiresTicket: "Cerrar chats abiertos después de x minutos",
+          expiresInactiveMessage: "Mensaje de cierre por inactividad",
+          greetingMessage: "Mensaje de bienvenida",
+          complationMessage: "Mensaje de conclusión",
+        },
+        buttons: {
+          okAdd: "Agregar",
+          okEdit: "Guardar",
+          cancel: "Cancelar",
+        },
+        success: "WhatsApp guardado con éxito.",
+      },
+      qrCodeModal: {
+        title: "Utilice su WhatsApp:",
+        steps: {
+          one: "1 - Abra WhatsApp en su teléfono",
+          two: {
+            partOne: "2 - Toque en Más opciones en Android",
+            partTwo: "o en Configuración",
+            partThree: "en iPhone",
+          },
+          three:
+              "3 - Toque en Dispositivos vinculados y luego en Vincular un dispositivo",
+          four: "4 - Apunte su teléfono a esta pantalla para capturar el código QR",
+        },
+        waiting: "Esperando lectura del código QR",
+      },
+      qrCode: {
+        message: "Lea el código QR para iniciar la sesión",
+      },
+      contacts: {
+        title: "Contactos",
+        toasts: {
+          deleted: "¡Contacto eliminado con éxito!",
+          deletedAll: "¡Todos los contactos eliminados con éxito!",
+        },
+        searchPlaceholder: "Buscar...",
+        confirmationModal: {
+          deleteTitle: "Eliminar ",
+          deleteAllTitle: "Eliminar Todos",
+          importTitle: "Importar contactos",
+          deleteMessage:
+              "¿Está seguro que desea eliminar este contacto? Todos los tickets relacionados se perderán.",
+          deleteAllMessage:
+              "¿Está seguro que desea eliminar todos los contactos? Todos los tickets relacionados se perderán.",
+          importMessage: "¿Desea importar todos los contactos del teléfono?",
+        },
+        buttons: {
+          import: "Importar Contactos",
+          add: "Agregar Contacto",
+          export: "Exportar Contactos",
+          delete: "Eliminar Todos los Contactos",
+        },
+        table: {
+          name: "Nombre",
+          whatsapp: "WhatsApp",
+          email: "Email",
+          actions: "Acciones",
+        },
+      },
+      contactImportModal: {
+        title: "Planilla de contactos",
+        labels: {
+          import: "Importar contactos",
+          result: "resultados",
+          added: "Agregados",
+          savedContact: "Contacto guardado",
+          errors: "Errores",
+        },
+        buttons: {
+          download: "Descargar planilla modelo",
+          import: "Importar contactos",
+        },
+      },
+      queueIntegrationModal: {
+        title: {
+          add: "Agregar proyecto",
+          edit: "Editar proyecto",
+        },
+        form: {
+          id: "ID",
+          type: "Tipo",
+          name: "Nombre",
+          projectName: "Nombre del Proyecto",
+          language: "Lenguaje",
+          jsonContent: "JsonContent",
+          urlN8N: "URL",
+          typebotSlug: "Typebot - Slug",
+          typebotExpires: "Tiempo en minutos para expirar una conversación",
+          typebotKeywordFinish: "Palabra para finalizar el ticket",
+          typebotKeywordRestart: "Palabra para reiniciar el flujo",
+          typebotRestartMessage: "Mensaje al reiniciar la conversación",
+          typebotUnknownMessage: "Mensaje de opción inválida",
+          typebotDelayMessage: "Intervalo (ms) entre mensajes",
+        },
+        buttons: {
+          okAdd: "Agregar",
+          okEdit: "Guardar",
+          cancel: "Cancelar",
+          test: "Probar Bot",
+        },
+        messages: {
+          testSuccess: "¡Integración probada con éxito!",
+          addSuccess: "Integración agregada con éxito.",
+          editSuccess: "Integración editada con éxito.",
+        },
+      },
+      sideMenu: {
+        name: "Menú Lateral Inicial",
+        note: "Si está habilitado, el menú lateral iniciará cerrado",
+        options: {
+          enabled: "Abierto",
+          disabled: "Cerrado",
+        },
+      },
+      promptModal: {
+        form: {
+          name: "Nombre",
+          prompt: "Prompt",
+          model: "Modelo",
+          max_tokens: "Máximo de Tokens en la respuesta",
+          temperature: "Temperatura",
+          apikey: "API Key",
+          max_messages: "Máximo de mensajes en el Historial",
+        },
+        formErrors: {
+          name: {
+            short: "Nombre demasiado corto",
+            long: "Nombre demasiado largo",
+            required: "El nombre es obligatorio",
+          },
+          prompt: {
+            short: "Prompt demasiado corto",
+            required: "Describa el entrenamiento para la Inteligencia Artificial",
+          },
+          modal: {
+            required: "Informe el modelo deseado para el Prompt",
+          },
+          maxTokens: {
+            required: "Informe el número máximo de tokens en la respuesta",
+          },
+          temperature: {
+            required: "Informe la temperatura",
+          },
+          apikey: {
+            required: "Informe la API Key",
+          },
+          queueId: {
+            required: "Informe la cola",
+          },
+          maxMessages: {
+            required: "Informe el número máximo de mensajes en el historial",
+          },
+        },
+        success: "¡Prompt guardado con éxito!",
+        setor: "Informe el sector",
+        title: {
+          add: "Agregar Prompt",
+          edit: "Editar Prompt",
+        },
+        buttons: {
+          okAdd: "Agregar",
+          okEdit: "Guardar",
+          cancel: "Cancelar",
+        },
+      },
+      prompts: {
+        title: "Prompts",
+        table: {
+          name: "Nombre",
+          queue: "Sector/Cola",
+          max_tokens: "Máximo Tokens Respuesta",
+          actions: "Acciones",
+        },
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteMessage: "¿Está seguro? ¡Esta acción no puede ser revertida!",
+        },
+        buttons: {
+          add: "Agregar Prompt",
+        },
+      },
+      contactModal: {
+        title: {
+          add: "Agregar contacto",
+          edit: "Editar contacto",
+        },
+        form: {
+          mainInfo: "Datos del contacto",
+          extraInfo: "Información adicional",
+          name: "Nombre",
+          number: "Número de WhatsApp",
+          email: "Email",
+          extraName: "Nombre del campo",
+          extraValue: "Valor",
+          whatsapp: "Conexión Origen: ",
+        },
+        formErrors: {
+          name: {
+            required: "El nombre es obligatorio",
+            short: "Nombre demasiado corto",
+            long: "Nombre demasiado largo",
+          },
+          phone: {
+            short: "Número demasiado corto",
+            long: "Número demasiado largo",
+          },
+          email: {
+            invalid: "Email inválido",
+          },
+        },
+        buttons: {
+          addExtraInfo: "Agregar información",
+          okAdd: "Agregar",
+          okEdit: "Guardar",
+          cancel: "Cancelar",
+        },
+        success: "Contacto guardado con éxito.",
+      },
+      queueModal: {
+        title: {
+          add: "Agregar cola",
+          edit: "Editar cola",
+        },
+        form: {
+          name: "Nombre",
+          nameShort: "Nombre corto",
+          nameLong: "Nombre largo",
+          nameRequired: "El nombre es obligatorio",
+          color: "Color",
+          colorShort: "Color corto",
+          colorLong: "Color largo",
+          greetingMessage: "Mensaje de bienvenida",
+          complationMessage: "Mensaje de conclusión",
+          outOfHoursMessage: "Mensaje fuera de horario",
+          ratingMessage: "Mensaje de evaluación",
+          token: "Token",
+          orderQueue: "Orden de la cola (Bot)",
+          integrationId: "Integración",
+        },
+        buttons: {
+          okAdd: "Agregar",
+          okEdit: "Guardar",
+          cancel: "Cancelar",
+        },
+        toasts: {
+          success: "Cola guardada con éxito.",
+          info: "Haga clic en guardar para registrar los cambios",
+        },
+        tabs: {
+          queueData: "Datos de la cola",
+          attendanceTime: "Horarios de Atención",
+        },
+      },
+      userModal: {
+        title: {
+          add: "Agregar usuario",
+          edit: "Editar usuario",
+        },
+        form: {
+          name: "Nombre",
+          email: "Email",
+          password: "Contraseña",
+          profile: "Perfil",
+          whatsapp: "Conexión Predeterminada",
+          allTicket: "Ticket Sin Cola [Invisible]",
+          allTicketEnabled: "Habilitado",
+          allTicketDesabled: "Deshabilitado",
+        },
+        formErrors: {
+          name: {
+            required: "El nombre es obligatorio",
+            short: "Nombre demasiado corto",
+            long: "Nombre demasiado largo",
+          },
+          password: {
+            short: "Contraseña demasiado corta",
+            long: "Contraseña demasiado larga",
+          },
+          email: {
+            required: "El email es obligatorio",
+            invalid: "Email inválido",
+          },
+        },
+        labels: {
+          liberations: "Liberaciones",
+        },
+        buttons: {
+          okAdd: "Agregar",
+          okEdit: "Guardar",
+          cancel: "Cancelar",
+        },
+        success: "Usuario guardado con éxito.",
+      },
+      scheduleModal: {
+        title: {
+          add: "Nueva Programación",
+          edit: "Editar Programación",
+        },
+        form: {
+          body: "Mensaje",
+          contact: "Contacto",
+          sendAt: "Fecha de Programación",
+          sentAt: "Fecha de Envío",
+        },
+        buttons: {
+          okAdd: "Agregar",
+          okEdit: "Guardar",
+          cancel: "Cancelar",
+        },
+        success: "Programación guardada con éxito.",
+      },
+      tagModal: {
+        title: {
+          add: "Nueva Etiqueta",
+          edit: "Editar Etiqueta",
+        },
+        form: {
+          name: "Nombre",
+          color: "Color",
+        },
+        buttons: {
+          okAdd: "Agregar",
+          okEdit: "Guardar",
+          cancel: "Cancelar",
+        },
+        success: "Etiqueta guardada con éxito.",
+      },
+      chat: {
+        toasts: {
+          fillTitle: "Por favor, complete el título de la conversación.",
+          fillUser: "Por favor, seleccione al menos un usuario.",
+        },
+        modal: {
+          title: "Conversación",
+          titleField: "Título",
+        },
+        confirm: {
+          title: "Eliminar Conversación",
+          message: "Esta acción no puede ser revertida, ¿confirmar?",
+        },
+        chats: "Chats",
+        messages: "Mensajes",
+        noTicketMessage: "Seleccione un ticket para comenzar a chatear.",
+        buttons: {
+          close: "Cerrar",
+          save: "Guardar",
+          new: "Nueva",
+          newChat: "Nuevo",
+        },
+      },
+      uploads: {
+        titles: {
+          titleUploadMsgDragDrop: "ARRASTRE Y SUELTE ARCHIVOS EN EL CAMPO DE ABAJO",
+          titleFileList: "Lista de archivo(s)",
+        },
+      },
+      ticketsManager: {
+        buttons: {
+          newTicket: "Nuevo",
+        },
+      },
+      ticketsQueueSelect: {
+        placeholder: "Colas",
+      },
+      tickets: {
+        toasts: {
+          deleted: "La atención que estabas atendiendo fue eliminada.",
+          unauthorized: "Acceso no permitido",
+        },
+        filters: {
+          user: "Filtrar por usuarios",
+          tags: "Filtrar por etiquetas",
+        },
+        notification: {
+          message: "Mensaje de",
+        },
+        tabs: {
+          open: { title: "Abiertos" },
+          closed: { title: "Resueltos" },
+          search: { title: "Búsqueda" },
+        },
+        search: {
+          placeholder: "Buscar atención y mensajes",
+        },
+        buttons: {
+          showAll: "Todos",
+        },
+      },
+      transferTicketModal: {
+        title: "Transferir Ticket",
+        fieldLabel: "Escriba para buscar usuarios",
+        fieldQueueLabel: "Transferir a cola",
+        fieldQueuePlaceholder: "Seleccione una cola",
+        noOptions: "Ningún usuario encontrado con ese nombre",
+        buttons: {
+          ok: "Transferir",
+          cancel: "Cancelar",
+        },
+      },
+      ticketsList: {
+        pendingHeader: "En espera",
+        assignedHeader: "En atención",
+        noTicketsTitle: "¡Nada aquí!",
+        noTicketsMessage:
+            "Ninguna atención encontrada con ese estado o término buscado",
+        buttons: {
+          accept: "Aceptar",
+          closed: "Finalizar",
+          reopen: "Reabrir",
+        },
+      },
+      ticketsListItem: {
+        tooltip: {
+          chatbot: "Chatbot",
+          peek: "Espiar Conversación",
+        },
+        noQueue: "SIN COLA",
+      },
+      ticketAdvanced: {
+        selectTicket: "Seleccionar Ticket",
+        ticketNav: "Ticket",
+        attendanceNav: "Atenciones",
+      },
+      newTicketModal: {
+        title: "Crear Ticket",
+        fieldLabel: "Escriba para buscar el contacto",
+        add: "Agregar",
+        searchQueueError:
+            "Ocurrió un error inesperado al intentar buscar las colas",
+        selectQueue: "Seleccione una cola",
+        selectConection: "Seleccione una conexión",
+        buttons: {
+          ok: "Guardar",
+          cancel: "Cancelar",
+        },
+      },
+      locationPreview: {
+        button: "Visualizar",
+      },
+      mainDrawer: {
+        listItems: {
+          dashboard: "Dashboard",
+          connections: "Conexiones",
+          tickets: "Atenciones",
+          quickMessages: "Respuestas Rápidas",
+          tasks: "Tareas",
+          contacts: "Contactos",
+          queues: "Colas & Chatbot",
+          tags: "Etiquetas",
+          administration: "Administración",
+          users: "Usuarios",
+          settings: "Configuraciones",
+          helps: "Ayuda",
+          messagesAPI: "API",
+          schedules: "Programaciones",
+          campaigns: "Campañas",
+          annoucements: "Informativos",
+          chats: "Chat Interno",
+          financeiro: "Financiero",
+          files: "Lista de archivos",
+          prompts: "Open.AI",
+          queueIntegration: "Integraciones",
+        },
+        appBar: {
+          refresh: "Recargar página",
+          notRegister: "Sin notificaciones",
+          greeting: {
+            hello: "Hola",
+            welcome: "Bienvenido a",
+            active: "Activo hasta",
+          },
+          user: {
+            profile: "Perfil",
+            logout: "Salir",
+          },
+        },
+      },
+      queueIntegration: {
+        title: "Integraciones",
+        table: {
+          id: "ID",
+          type: "Tipo",
+          name: "Nombre",
+          projectName: "Nombre del Proyecto",
+          language: "Lenguaje",
+          lastUpdate: "Última actualización",
+          actions: "Acciones",
+        },
+        buttons: {
+          add: "Agregar Proyecto",
+        },
+        searchPlaceholder: "Buscar...",
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteMessage:
+              "¿Está seguro? ¡Esta acción no puede ser revertida! y será eliminada de las colas y conexiones vinculadas",
+        },
+      },
+      files: {
+        title: "Lista de archivos",
+        table: {
+          name: "Nombre",
+          contacts: "Contactos",
+          actions: "Acción",
+        },
+        toasts: {
+          deleted: "¡Lista eliminada con éxito!",
+          deletedAll: "¡Todas las listas fueron eliminadas con éxito!",
+        },
+        buttons: {
+          add: "Agregar",
+          deleteAll: "Eliminar Todos",
+        },
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteAllTitle: "Eliminar Todos",
+          deleteMessage: "¿Está seguro que desea eliminar esta lista?",
+          deleteAllMessage: "¿Está seguro que desea eliminar todas las listas?",
+        },
+      },
+      messagesAPI: {
+        title: "API",
+        labels: {
+          doc: "Documentación para envío de mensajes",
+          method: "Métodos de Envío",
+          textMessage: "Mensaje de Texto",
+          mediaMessage: "Mensaje Multimedia",
+          instructions: "Instrucciones",
+          observations: "Observaciones importantes",
+          before1: "Antes de enviar mensajes, es necesario registrar el token vinculado a la conexión que enviará los mensajes.",
+          before2: "Para realizar el registro acceda al menú 'Conexiones', haga clic en el botón editar de la conexión e inserte el token en el campo correspondiente.",
+          numberDescription: "El número para envío no debe tener máscara o caracteres especiales y debe estar compuesto por:",
+          countryCode: "Código del País",
+          number: "Número",
+          textMessage2: "1. Mensajes de Texto",
+          textMessageInstructions: "A continuación la lista de información necesaria para enviar mensajes de texto:",
+          method2: "Método",
+          e: "y",
+          tests: "Prueba de Envío",
+          mediaMessage2: "2. Mensajes Multimedia",
+        },
+        textMessage: {
+          number: "Número",
+          body: "Mensaje",
+          token: "Token registrado",
+        },
+        mediaMessage: {
+          number: "Número",
+          body: "Nombre del archivo",
+          media: "Archivo",
+          token: "Token registrado",
+        },
+        toasts: {
+          unauthorized: "¡Esta empresa no tiene permiso para acceder a esta página! Le estamos redirigiendo.",
+          success: "¡Mensaje enviado con éxito!",
+        },
+        buttons: {
+          send: "Enviar",
+        },
+      },
+      notifications: {
+        noTickets: "Ninguna notificación.",
+      },
+      quickMessages: {
+        title: "Respuestas Rápidas",
+        searchPlaceholder: "Buscar...",
+        noAttachment: "Sin adjunto",
+        confirmationModal: {
+          deleteTitle: "Eliminación",
+          deleteMessage: "¡Esta acción es irreversible! ¿Desea continuar?",
+        },
+        buttons: {
+          add: "Agregar",
+          attach: "Adjuntar Archivo",
+          cancel: "Cancelar",
+          edit: "Editar",
+        },
+        toasts: {
+          success: "¡Atajo agregado con éxito!",
+          deleted: "¡Atajo eliminado con éxito!",
+        },
+        dialog: {
+          title: "Mensaje Rápido",
+          shortcode: "Atajo",
+          message: "Respuesta",
+          save: "Guardar",
+          cancel: "Cancelar",
+          geral: "Permitir editar",
+          add: "Agregar",
+          edit: "Editar",
+          visao: "Permitir visión",
+        },
+        table: {
+          shortcode: "Atajo",
+          message: "Mensaje",
+          actions: "Acciones",
+          mediaName: "Nombre del Archivo",
+          status: "Estado",
+        },
+      },
+      messageVariablesPicker: {
+        label: "Variables disponibles",
+        vars: {
+          contactFirstName: "Primer Nombre",
+          contactName: "Nombre",
+          greeting: "Saludo",
+          protocolNumber: "Protocolo",
+          date: "Fecha",
+          hour: "Hora",
+        },
+      },
+      contactLists: {
+        title: "Listas de Contactos",
+        table: {
+          name: "Nombre",
+          contacts: "Contactos",
+          actions: "Acciones",
+        },
+        buttons: {
+          add: "Nueva Lista",
+        },
+        dialog: {
+          name: "Nombre",
+          nameShort: "Nombre corto",
+          nameLong: "Nombre largo",
+          nameRequired: "El nombre es obligatorio",
+          company: "Empresa",
+          okEdit: "Editar",
+          okAdd: "Agregar",
+          add: "Agregar",
+          edit: "Editar",
+          cancel: "Cancelar",
+        },
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteMessage: "Esta acción no puede ser revertida.",
+        },
+        toasts: {
+          deleted: "Registro eliminado",
+          success: "Operación realizada con éxito",
+        },
+      },
+      campaigns: {
+        title: "Campañas",
+        searchPlaceholder: "Buscar",
+        report: {
+          title: "Informe de",
+          title2: "Campaña",
+          of: "de",
+          validContacts: "Contactos válidos",
+          delivered: "Entregados",
+          connection: "Conexión",
+          contactList: "Lista de Contactos",
+          schedule: "Programación",
+          conclusion: "Conclusión",
+        },
+        config: {
+          interval: "Intervalos",
+          randomInterval: "Intervalo Aleatorio de Envío",
+          biggerInterval: "Intervalo Mayor Después de",
+          greaterInterval: "Intervalo de Envío Mayor",
+          noInterval: "Sin Intervalo",
+          second: "segundo",
+          seconds: "segundos",
+          notDefined: "No definido",
+          addVariable: "Agregar Variable",
+          save: "Guardar Configuración",
+          shortcut: "Atajo",
+          content: "Contenido",
+          close: "Cerrar",
+          add: "Agregar",
+        },
+        buttons: {
+          add: "Nueva Campaña",
+          contactLists: "Listas de Contactos",
+        },
+        status: {
+          inactive: "Inactiva",
+          programmed: "Programada",
+          inProgress: "En progreso",
+          canceled: "Cancelada",
+          finished: "Finalizada",
+        },
+        table: {
+          name: "Nombre",
+          whatsapp: "Conexión",
+          contactList: "Lista de Contactos",
+          status: "Estado",
+          scheduledAt: "Programación",
+          completedAt: "Completada",
+          confirmation: "Confirmación",
+          actions: "Acciones",
+          notDefined: "No definida",
+          notDefined2: "No definido",
+          notScheduled: "Sin programación",
+          notConcluded: "No concluida",
+          stopCampaign: "Detener Campaña",
+        },
+        dialog: {
+          new: "Nueva Campaña",
+          update: "Editar Campaña",
+          readonly: "Solo Lectura",
+          form: {
+            name: "Nombre",
+            nameShort: "Nombre corto",
+            nameLong: "Nombre largo",
+            helper: "Utilice variables como {nombre}, {numero}, {email} o defina variables personalizadas.",
+            nameRequired: "El nombre es obligatorio",
+            message1: "Mensaje 1",
+            message2: "Mensaje 2",
+            message3: "Mensaje 3",
+            message4: "Mensaje 4",
+            message5: "Mensaje 5",
+            messagePlaceholder: "Contenido del mensaje",
+            whatsapp: "Conexión",
+            status: "Estado",
+            scheduledAt: "Programación",
+            confirmation: "Confirmación",
+            contactList: "Lista de Contactos",
+            tagList: "Lista de Etiquetas",
+            fileList: "Lista de Archivos",
+          },
+          buttons: {
+            add: "Agregar",
+            edit: "Actualizar",
+            okadd: "Ok",
+            cancel: "Cancelar Envíos",
+            restart: "Reiniciar Envíos",
+            close: "Cerrar",
+            attach: "Adjuntar Archivo",
+          },
+        },
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteMessage: "Esta acción no puede ser revertida.",
+        },
+        toasts: {
+          configSaved: "Configuración guardada",
+          success: "Operación realizada con éxito",
+          cancel: "Campaña cancelada",
+          restart: "Campaña reiniciada",
+          deleted: "Registro eliminado",
+        },
+      },
+      subscription: {
+        title: "Suscripción",
+        testPeriod: "Período de Prueba",
+        remainingTest: "Su período de prueba termina en",
+        remainingTest2: "días!",
+        chargeEmail: "Email de facturación",
+        signNow: "¡Suscribirse ahora!",
+      },
+      announcements: {
+        active: "Activo",
+        inactive: "Inactivo",
+        title: "Informativos",
+        searchPlaceholder: "Buscar",
+        high: "Alta",
+        medium: "Media",
+        low: "Baja",
+        buttons: {
+          add: "Nuevo Informativo",
+          contactLists: "Listas de Informativos",
+        },
+        table: {
+          priority: "Prioridad",
+          title: "Título",
+          text: "Texto",
+          mediaName: "Archivo",
+          status: "Estado",
+          actions: "Acciones",
+        },
+        dialog: {
+          edit: "Edición de Informativo",
+          add: "Nuevo Informativo",
+          update: "Editar Informativo",
+          readonly: "Solo Lectura",
+          form: {
+            priority: "Prioridad",
+            required: "Campo obligatorio",
+            title: "Título",
+            text: "Texto",
+            mediaPath: "Archivo",
+            status: "Estado",
+          },
+          buttons: {
+            add: "Agregar",
+            edit: "Actualizar",
+            okadd: "Ok",
+            cancel: "Cancelar",
+            close: "Cerrar",
+            attach: "Adjuntar Archivo",
+          },
+        },
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteMessage: "Esta acción no puede ser revertida.",
+        },
+        toasts: {
+          success: "Operación realizada con éxito",
+          deleted: "Registro eliminado",
+          info: "¡Esta empresa no tiene permiso para acceder a esta página! Le estamos redirigiendo.",
+        },
+      },
+      campaignsConfig: {
+        title: "Configuración de Campañas",
+      },
+      queues: {
+        title: "Colas & Chatbot",
+        table: {
+          id: "ID",
+          name: "Nombre",
+          color: "Color",
+          greeting: "Mensaje de bienvenida",
+          actions: "Acciones",
+          orderQueue: "Ordenación de la cola (bot)",
+        },
+        buttons: {
+          add: "Agregar cola",
+        },
+        toasts: {
+          success: "Cola eliminada con éxito.",
+        },
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteMessage: "¿Está seguro? ¡Esta acción no puede ser revertida! Las atenciones de esta cola seguirán existiendo, pero no tendrán ninguna cola asignada.",
+        },
+      },
+      queueSelect: {
+        inputLabel: "Colas",
+      },
+      users: {
+        title: "Usuarios",
+        table: {
+          id: "ID",
+          name: "Nombre",
+          email: "Email",
+          profile: "Perfil",
+          actions: "Acciones",
+        },
+        buttons: {
+          add: "Agregar usuario",
+        },
+        toasts: {
+          deleted: "Usuario eliminado con éxito.",
+        },
+        confirmationModal: {
+          deleteTitle: "Eliminar",
+          deleteMessage: "Todos los datos del usuario se perderán. Las atenciones abiertas de este usuario serán movidas a la cola.",
+        },
+      },
+      todolist: {
+        input: "Nueva tarea",
+        buttons: {
+          add: "Agregar",
+          save: "Guardar",
+        },
+      },
+      helps: {
+        title: "Centro de Ayuda",
+      },
+      schedules: {
+        title: "Programaciones",
+        confirmationModal: {
+          deleteTitle: "¿Está seguro que desea eliminar esta Programación?",
+          deleteMessage: "Esta acción no puede ser revertida.",
+        },
+        table: {
+          contact: "Contacto",
+          body: "Mensaje",
+          sendAt: "Fecha de Programación",
+          sentAt: "Fecha de Envío",
+          status: "Estado",
+          actions: "Acciones",
+        },
+        messages: {
+          date: "Fecha",
+          time: "Hora",
+          event: "Evento",
+          allDay: "Todo el Día",
+          week: "Semana",
+          work_week: "Programaciones",
+          day: "Día",
+          month: "Mes",
+          previous: "Anterior",
+          next: "Siguiente",
+          yesterday: "Ayer",
+          tomorrow: "Mañana",
+          today: "Hoy",
+          agenda: "Agenda",
+          noEventsInRange: "No hay programaciones en el período.",
+          showMore: "más",
+        },
+        buttons: {
+          add: "Nueva Programación",
+        },
+        toasts: {
+          deleted: "Programación eliminada con éxito.",
+        },
+      },
+      tags: {
+        title: "Etiquetas",
+        confirmationModal: {
+          deleteTitle: "¿Está seguro que desea eliminar esta Etiqueta?",
+          deleteMessage: "Esta acción no puede ser revertida.",
+          deleteAllMessage: "¿Está seguro que desea eliminar todas las Etiquetas?",
+          deleteAllTitle: "Eliminar Todas",
+        },
+        table: {
+          name: "Nombre",
+          color: "Color",
+          tickets: "Registros Etiquetados",
+          actions: "Acciones",
+        },
+        buttons: {
+          add: "Nueva Etiqueta",
+          deleteAll: "Eliminar Todas",
+        },
+        toasts: {
+          deletedAll: "¡Todas las Etiquetas eliminadas con éxito!",
+          deleted: "Etiqueta eliminada con éxito.",
+        },
+      },
+      settings: {
+        schedulesUpdated: "Horarios actualizados con éxito.",
+        success: "Configuración guardada con éxito.",
+        title: "Configuración",
+        tabs: {
+          options: "Opciones",
+          schedules: "Horarios",
+          companies: "Empresas",
+          plans: "Planes",
+          helps: "Ayuda",
+        },
+        options: {
+          toasts: {
+            success: "Operación actualizada con éxito.",
+          },
+          fields: {
+            ratings: {
+              title: "Evaluaciones",
+              disabled: "Deshabilitadas",
+              enabled: "Habilitadas",
+            },
+            expedientManager: {
+              title: "Gestión de Horario Laboral",
+              queue: "Cola",
+              company: "Empresa",
+            },
+            ignoreMessages: {
+              title: "Ignorar Mensajes de Grupos",
+            },
+            acceptCall: {
+              title: "Aceptar Llamada",
+              disabled: "No aceptar",
+              enabled: "Aceptar",
+            },
+            chatbotType: {
+              title: "Tipo Chatbot",
+              text: "Texto",
+            },
+            sendGreetingAccepted: {
+              title: "Enviar saludo al aceptar el ticket",
+            },
+            sendMsgTransfTicket: {
+              title: "Enviar mensaje de transferencia de Cola/agente",
+            },
+            sendGreetingMessageOneQueues: {
+              title: "Enviar saludo cuando haya solo 1 cola",
+            },
+            disabled: "Deshabilitado",
+            active: "Activo",
+            enabled: "Habilitado",
+          },
+          updating: "Actualizando...",
+          tabs: {
+            integrations: "INTEGRACIONES",
+          },
+        },
+        helps: {
+          toasts: {
+            errorList: "No fue posible cargar la lista de registros",
+            errorOperation: "No fue posible realizar la operación",
+            error: "No fue posible realizar la operación. Verifique si ya existe una ayuda con el mismo nombre o si los campos fueron completados correctamente",
+            success: "¡Operación realizada con éxito!",
+          },
+          buttons: {
+            clean: "Limpiar",
+            delete: "Eliminar",
+            save: "Guardar",
+          },
+          grid: {
+            title: "Título",
+            description: "Descripción",
+            video: "Video",
+          },
+          confirmModal: {
+            title: "Eliminación de Registro",
+            confirm: "¿Desea realmente eliminar este registro?",
+          },
+        },
+        company: {
+          toasts: {
+            errorList: "No fue posible cargar la lista de registros",
+            errorOperation: "No fue posible realizar la operación",
+            error: "No fue posible realizar la operación. Verifique si ya existe una empresa con el mismo nombre o si los campos fueron completados correctamente",
+            success: "¡Operación realizada con éxito!",
+          },
+          confirmModal: {
+            title: "Eliminación de Registro",
+            confirm: "¿Desea realmente eliminar este registro?",
+          },
+          form: {
+            name: "Nombre",
+            email: "Email",
+            phone: "Teléfono",
+            plan: "Plan",
+            status: "Estado",
+            yes: "Sí",
+            no: "No",
+            campanhas: "Campañas",
+            enabled: "Habilitadas",
+            disabled: "Deshabilitadas",
+            dueDate: "Fecha de vencimiento",
+            recurrence: "Recurrencia",
+            monthly: "Mensual",
+            expire: "Vencimiento",
+            createdAt: "Creada En",
+          },
+          buttons: {
+            clear: "Limpiar",
+            delete: "Eliminar",
+            expire: "+ Vencimiento",
+            user: "Usuario",
+            save: "Guardar",
+          },
+        },
+        schedules: {
+          form: {
+            weekday: "Día de la Semana",
+            initialHour: "Hora Inicial",
+            finalHour: "Hora Final",
+            save: "Guardar",
+          },
+        },
+        settings: {
+          userCreation: {
+            name: "Creación de usuario",
+            options: {
+              enabled: "Activado",
+              disabled: "Desactivado",
+            },
+          },
+        },
+      },
+      messagesList: {
+        header: {
+          assignedTo: "Asignado a:",
+          buttons: {
+            return: "Regresar",
+            resolve: "Resolver",
+            reopen: "Reabrir",
+            accept: "Aceptar",
+            download: "Descargar",
+          },
+        },
+        lostCall: "Llamada de voz/video perdida a las",
+        deletedMessage: "Este mensaje fue borrado por el contacto",
+        edited: "Editado",
+        saudation: "¡Saluda a tu nuevo contacto!",
+      },
+      messagesInput: {
+        placeholderOpen: "Escribe un mensaje",
+        placeholderClosed: "Reabre o acepta este ticket para enviar un mensaje.",
+        signMessage: "Firmar",
+      },
+      contactDrawer: {
+        header: "Datos del contacto",
+        buttons: {
+          edit: "Editar contacto",
+        },
+        extraInfo: "Otra información",
+      },
+      fileModal: {
+        title: {
+          add: "Agregar lista de archivos",
+          edit: "Editar lista de archivos",
+        },
+        buttons: {
+          okAdd: "Guardar",
+          okEdit: "Editar",
+          cancel: "Cancelar",
+          fileOptions: "Agregar archivo",
+        },
+        form: {
+          name: "Nombre de la lista de archivos",
+          message: "Detalles de la lista",
+          fileOptions: "Lista de archivos",
+          extraName: "Mensaje para enviar con archivo",
+          extraValue: "Valor de la opción",
+        },
+        formErrors: {
+          name: {
+            required: "El nombre es obligatorio",
+            short: "Nombre muy corto",
+          },
+          message: {
+            required: "El mensaje es obligatorio",
+          },
+        },
+        success: "¡Lista de archivos guardada con éxito!",
+      },
+      ticketOptionsMenu: {
+        schedule: "Programación",
+        delete: "Eliminar",
+        transfer: "Transferir",
+        registerAppointment: "Observaciones del Contacto",
+        appointmentsModal: {
+          title: "Observaciones del Contacto",
+          textarea: "Observación",
+          placeholder: "Ingrese aquí la información que desea registrar",
+        },
+        confirmationModal: {
+          title: "Eliminar el ticket",
+          titleFrom: "del contacto ",
+          message: "¡Atención! Todos los mensajes relacionados al ticket se perderán.",
+        },
+        buttons: {
+          delete: "Eliminar",
+          cancel: "Cancelar",
+        },
+      },
+      confirmationModal: {
+        buttons: {
+          confirm: "Ok",
+          cancel: "Cancelar",
+        },
+      },
+      messageOptionsMenu: {
+        delete: "Eliminar",
+        reply: "Responder",
+        confirmationModal: {
+          title: "¿Borrar mensaje?",
+          message: "Esta acción no puede ser revertida.",
+        },
+      },
+      backendErrors: {
+        ERR_INTERNAL_SERVER_ERROR: "Ocurrió un error inesperado. Por favor, intente nuevamente más tarde",
+        ERR_NO_OTHER_WHATSAPP: "Debe haber al menos un WhatsApp predeterminado.",
+        ERR_NO_DEF_WAPP_FOUND: "No se encontró WhatsApp predeterminado. Verifique la página de conexiones.",
+        ERR_WAPP_NOT_INITIALIZED: "Esta sesión de WhatsApp no fue inicializada. Verifique la página de conexiones.",
+        ERR_WAPP_CHECK_CONTACT: "No fue posible verificar el contacto de WhatsApp. Verifique la página de conexiones",
+        ERR_WAPP_INVALID_CONTACT: "Este no es un número de WhatsApp válido.",
+        ERR_WAPP_DOWNLOAD_MEDIA: "No fue posible descargar el archivo multimedia de WhatsApp. Verifique la página de conexiones.",
+        ERR_INVALID_CREDENTIALS: "Error de autenticación. Por favor, intente nuevamente.",
+        ERR_USER_DONT_EXISTS: "Usuario no encontrado. Verifique el email proporcionado.",
+        ERR_SENDING_WAPP_MSG: "Error al enviar mensaje de WhatsApp. Verifique la página de conexiones.",
+        ERR_DELETE_WAPP_MSG: "No fue posible eliminar el mensaje de WhatsApp.",
+        ERR_OTHER_OPEN_TICKET: "Ya existe un ticket abierto para este contacto.",
+        ERR_SESSION_EXPIRED: "Sesión expirada. Por favor inicie sesión.",
+        ERR_USER_CREATION_DISABLED: "La creación de usuarios fue deshabilitada por el administrador.",
+        ERR_NO_PERMISSION: "No tiene permiso para acceder a este recurso.",
+        ERR_DUPLICATED_CONTACT: "Ya existe un contacto con este número.",
+        ERR_NO_SETTING_FOUND: "No se encontró ninguna configuración con este ID.",
+        ERR_NO_CONTACT_FOUND: "No se encontró ningún contacto con este ID.",
+        ERR_NO_TICKET_FOUND: "No se encontró ningún ticket con este ID.",
+        ERR_NO_USER_FOUND: "No se encontró ningún usuario con este ID.",
+        ERR_NO_WAPP_FOUND: "No se encontró ningún WhatsApp con este ID.",
+        ERR_CREATING_MESSAGE: "Error al crear mensaje en la base de datos.",
+        ERR_CREATING_TICKET: "Error al crear ticket en la base de datos.",
+        ERR_FETCH_WAPP_MSG: "Error al buscar el mensaje en WhatsApp, tal vez sea muy antiguo.",
+        ERR_QUEUE_COLOR_ALREADY_EXISTS: "Este color ya está en uso, elija otro.",
+        ERR_WAPP_GREETING_REQUIRED: "El mensaje de saludo es obligatorio cuando hay más de una cola.",
+      },
+    }
+  }
+};
+
+export { messages };

+ 11 - 0
frontend/src/translate/languages/index.js

@@ -0,0 +1,11 @@
+import { messages as portugueseMessages } from "./pt";
+import { messages as englishMessages } from "./en";
+import { messages as spanishMessages } from "./es";
+
+const messages = {
+	...portugueseMessages,
+	...englishMessages,
+	...spanishMessages,
+};
+
+export { messages };

+ 1638 - 0
frontend/src/translate/languages/pt.js

@@ -0,0 +1,1638 @@
+const messages = {
+  pt: {
+    translations: {
+      selectLanguage: "Selecione um idioma",
+      signup: {
+        title: "Cadastre-se",
+        toasts: {
+          success: "Usuário criado com sucesso! Faça seu login!!!.",
+          fail: "Erro ao criar usuário. Verifique os dados informados.",
+        },
+        form: {
+          name: "Nome da empresa",
+          email: "Email",
+          phone: "Telefone com (DDD)",
+          plan: "Plano",
+          password: "Senha",
+        },
+        formErrors: {
+          name: {
+            required: "Nome da empresa é obrigatório",
+            short: "Nome muito curto",
+            long: "Nome muito longo",
+          },
+          password: {
+            short: "Senha muito curta",
+            long: "Senha muito longa",
+          },
+          email: {
+            required: "Email é obrigatório",
+            invalid: "Email inválido",
+          },
+        },
+        buttons: {
+          submit: "Cadastrar",
+          login: "Já tem uma conta? Entre!",
+        },
+        plan: {
+          attendant: "Atendente",
+          whatsapp: "WhatsApp",
+          queues: "Filas",
+        },
+      },
+      login: {
+        title: "Login",
+        form: {
+          email: "Email",
+          password: "Senha",
+        },
+        buttons: {
+          submit: "Entrar",
+          register: "Registre-se, agora mesmo!",
+        },
+      },
+      resetPassword: {
+        title: "Redefinir Senha",
+        toasts: {
+          emailSent: "Email enviado com sucesso!",
+          emailNotFound: "Email não encontrado!",
+          passwordUpdated: "Senha atualizada com sucesso!",
+        },
+        formErrors: {
+          email: {
+            required: "Email é obrigatório",
+            invalid: "Email inválido",
+          },
+          newPassword: {
+            required: "Nova senha é obrigatória",
+            matches:
+                "Sua senha precisa ter no mínimo 8 caracteres, sendo uma letra maiúscula, uma minúscula e um número.",
+          },
+          confirmPassword: {
+            required: "Confirmação de senha é obrigatória",
+            matches: "As senhas não correspondem",
+          },
+        },
+        form: {
+          email: "Email",
+          verificationCode: "Código de verificação",
+          newPassword: "Nova senha",
+          confirmPassword: "Confirme a nova senha",
+        },
+        buttons: {
+          submitEmail: "Enviar email",
+          submitPassword: "Redefinir senha",
+          back: "Não tem uma conta? Cadastre-se!",
+        },
+      },
+      dashboard: {
+        toasts: {
+          selectFilterError: "Parametrize o filtro",
+          userChartError: "Erro ao obter informações da conversa",
+          dateChartError: "Erro ao obter informações da conversa",
+        },
+        filters: {
+          initialDate: "Data Inicial",
+          finalDate: "Data Final",
+          filterType: {
+            title: "Tipo de Filtro",
+            options: {
+              perDate: "Filtro por Data",
+              perPeriod: "Filtro por Período",
+            },
+            helper: "Selecione o tipo de filtro desejado",
+          },
+        },
+        periodSelect: {
+          title: "Período",
+          options: {
+            none: "Nenhum selecionado",
+            last3: "Últimos 3 dias",
+            last7: "Últimos 7 dias",
+            last15: "Últimos 15 dias",
+            last30: "Últimos 30 dias",
+            last60: "Últimos 60 dias",
+            last90: "Últimos 90 dias",
+          },
+          helper: "Selecione o período desejado",
+        },
+        counters: {
+          inTalk: "Em conversa",
+          waiting: "Aguardando",
+          finished: "Finalizados",
+          newContacts: "Novos contatos",
+          averageTalkTime: "T.M. de Conversa",
+          averageWaitTime: "T.M. de Espera",
+        },
+        buttons: {
+          filter: "Filtrar",
+        },
+        onlineTable: {
+          ratingLabel: "1 - Insatisfeito, 2 - Satisfeito, 3 - Muito Satisfeito",
+          name: "Nome",
+          ratings: "Avaliações",
+          avgSupportTime: "T.M. de Atendimento",
+          status: "Status (Atual)",
+        },
+        charts: {
+          user: {
+            label: "Gráfico de Conversas",
+            title: "Total de Conversas por Usuários",
+            start: "Início",
+            end: "Fim",
+            filter: "Filtrar",
+          },
+          date: {
+            label: "Gráfico de Conversas",
+            title: "Total",
+            start: "Início",
+            end: "Fim",
+            filter: "Filtrar",
+          },
+        },
+      },
+      plans: {
+        toasts: {
+          errorList: "Não foi possível carregar a lista de registros",
+          errorOperation: "Não foi possível realizar a operação",
+          error:
+              "Não foi possível realizar a operação. Verifique se já existe uma plano com o mesmo nome ou se os campos foram preenchidos corretamente",
+          success: "Operação realizada com sucesso!",
+        },
+        confirm: {
+          title: "Exclusão de Registro",
+          message: "Deseja realmente excluir o registro?",
+        },
+        form: {
+          name: "Nome",
+          users: "Usuários",
+          connections: "Conexões",
+          queues: "Filas",
+          value: "Valor",
+          internalChat: "Chat Interno",
+          externalApi: "API Externa",
+          kanban: "Kanban",
+          integrations: "Integrações",
+          campaigns: "Campanhas",
+          schedules: "Agendamentos",
+          enabled: "Habilitadas",
+          disabled: "Desabilitadas",
+          clear: "Cancelar",
+          delete: "Excluir",
+          save: "Salvar",
+          yes: "Sim",
+          no: "Não",
+          money: "R$",
+        },
+      },
+      kanban: {
+        toasts: {
+          removed: "Ticket Tag Removido!",
+          added: "Ticket Tag Adicionado com Sucesso!",
+        },
+        open: "Em aberto",
+        seeTicket: "Ver Ticket",
+      },
+      invoices: {
+        title: "Faturas",
+        paid: "Pago",
+        open: "Em Aberto",
+        expired: "Vencido",
+        details: "Detalhes",
+        value: "Valor",
+        dueDate: "Data Venc.",
+        status: "Status",
+        action: "Ação",
+        PAY: "PAGAR",
+        PAID: "PAGO",
+      },
+      checkoutPage: {
+        steps: {
+          data: "Dados",
+          customize: "Personalizar",
+          review: "Revisar",
+        },
+        success:
+            "Assinatura realizada com sucesso!, aguardando a realização do pagamento",
+        closeToEnd: "Falta pouco!",
+        BACK: "VOLTAR",
+        PAY: "PAGAR",
+        NEXT: "PRÓXIMO",
+        review: {
+          title: "Resumo da assinatura",
+          details: "Detalhes do plano",
+          users: "Usuários",
+          whatsapp: "Whatsapp",
+          charges: "Cobrança: Mensal",
+          total: "Total",
+        },
+        form: {
+          firstName: {
+            label: "Nome completo*",
+            required: "Nome completo é obrigatório",
+          },
+          lastName: {
+            label: "Sobrenome*",
+            required: "Sobrenome é obrigatório",
+          },
+          address1: {
+            label: "Endereço*",
+            required: "Endereço é obrigatório",
+          },
+          city: {
+            label: "Cidade*",
+            required: "Cidade é obrigatório",
+          },
+          state: {
+            label: "Estado*",
+            required: "Estado é obrigatório",
+          },
+          zipcode: {
+            label: "CEP*",
+            required: "CEP é obrigatório",
+            invalid: "Formato de CEP inválido",
+          },
+          country: {
+            label: "País*",
+            required: "País é obrigatório",
+          },
+          useAddressForPaymentDetails: {
+            label: "Use este endereço para os detalhes de pagamento",
+          },
+          invoiceId: {
+            label: "Use este invoiceId",
+          },
+          nameOnCard: {
+            label: "Nome no cartão*",
+            required: "Nome no cartão é obrigatório",
+          },
+          cardNumber: {
+            label: "Número do cartão*",
+            required: "Número do cartão é obrigatório",
+            invalid: "Número do cartão inválido (ex: 4111111111111)",
+          },
+          expiryDate: {
+            label: "Data de validade*",
+            required: "Data de validade é obrigatória",
+            invalid: "Data de validade inválida"
+          },
+          cvv: {
+            label: "CVV*",
+            required: "CVV é obrigatório",
+            invalid: "CVV inválido (ex: 123)",
+          },
+        },
+        pricing: {
+          users: "Usuários",
+          connection: "Conexão",
+          queues: "Filas",
+          SELECT: "SELECIONAR",
+          month: "mês",
+        },
+      },
+      companies: {
+        title: "Cadastrar Empresa",
+        form: {
+          name: "Nome da Empresa",
+          plan: "Plano",
+          token: "Token",
+          submit: "Cadastrar",
+          success: "Empresa criada com sucesso!",
+        },
+      },
+      auth: {
+        toasts: {
+          success: "Login efetuado com sucesso!",
+        },
+        token: "Token",
+      },
+      connections: {
+        title: "Conexões",
+        toasts: {
+          deleted: "Conexão com o WhatsApp excluída com sucesso!",
+        },
+        confirmationModal: {
+          deleteTitle: "Deletar",
+          deleteMessage: "Você tem certeza? Essa ação não pode ser revertida.",
+          disconnectTitle: "Desconectar",
+          disconnectMessage:
+              "Tem certeza? Você precisará ler o QR Code novamente.",
+        },
+        buttons: {
+          add: "Adicionar WhatsApp",
+          disconnect: "desconectar",
+          tryAgain: "Tentar novamente",
+          qrcode: "QR CODE",
+          newQr: "Novo QR CODE",
+          connecting: "Conectando",
+        },
+        toolTips: {
+          disconnected: {
+            title: "Falha ao iniciar sessão do WhatsApp",
+            content:
+                "Certifique-se de que seu celular esteja conectado à internet e tente novamente, ou solicite um novo QR Code",
+          },
+          qrcode: {
+            title: "Esperando leitura do QR Code",
+            content:
+                "Clique no botão 'QR CODE' e leia o QR Code com o seu celular para iniciar a sessão",
+          },
+          connected: {
+            title: "Conexão estabelecida!",
+          },
+          timeout: {
+            title: "A conexão com o celular foi perdida",
+            content:
+                "Certifique-se de que seu celular esteja conectado à internet e o WhatsApp esteja aberto, ou clique no botão 'Desconectar' para obter um novo QR Code",
+          },
+        },
+        table: {
+          name: "Nome",
+          status: "Status",
+          lastUpdate: "Última atualização",
+          default: "Padrão",
+          actions: "Ações",
+          session: "Sessão",
+        },
+      },
+      whatsappModal: {
+        title: {
+          add: "Adicionar WhatsApp",
+          edit: "Editar WhatsApp",
+        },
+        formErrors: {
+          name: {
+            required: "Nome é obrigatório",
+            short: "Nome muito curto",
+            long: "Nome muito longo",
+          },
+        },
+        tabs: {
+          general: "Geral",
+          messages: "Mensagens",
+          assessments: "Avaliações",
+          integrations: "Integrações",
+          schedules: "Horário de expediente",
+        },
+        form: {
+          name: "Nome",
+          default: "Padrão",
+          sendIdQueue: "Fila",
+          timeSendQueue: "Redirecionar para fila em X minutos",
+          queueRedirection: "Redirecionamento de Fila",
+          outOfHoursMessage: "Mensagem de fora de expediente",
+          queueRedirectionDesc:
+              "Selecione uma fila para os contatos que não possuem fila serem redirecionados",
+          prompt: "Prompt",
+          queue: "Fila de Transferência",
+          timeToTransfer: "Transferir após x (minutos)",
+          //maxUseBotQueues: "Enviar bot x vezes",
+          //timeUseBotQueues: "Intervalo em minutos entre envio de bot",
+          expiresTicket: "Encerrar chats abertos após x minutos",
+          expiresInactiveMessage: "Mensagem de encerramento por inatividade",
+          greetingMessage: "Mensagem de saudação",
+          complationMessage: "Mensagem de conclusão",
+        },
+        buttons: {
+          okAdd: "Adicionar",
+          okEdit: "Salvar",
+          cancel: "Cancelar",
+        },
+        success: "WhatsApp salvo com sucesso.",
+      },
+      qrCodeModal: {
+        title: "Utilize o seu WhatsApp:",
+        steps: {
+          one: "1 - Abra o WhatsApp no seu celular",
+          two: {
+            partOne: "2 - Toque em Mais opções no Android",
+            partTwo: "ou em Configurações",
+            partThree: "no iPhone",
+          },
+          three:
+              "3 - Toque em Dispositivos conectados e, em seguida, em Conectar dispositivos",
+          four: "4 - Aponte seu celular para essa tela para capturar o QR Code",
+        },
+        waiting: "Aguardando leitura do QR Code",
+      },
+      qrCode: {
+        message: "Leia o QrCode para iniciar a sessão",
+      },
+      contacts: {
+        title: "Contatos",
+        toasts: {
+          deleted: "Contato excluído com sucesso!",
+          deletedAll: "Todos contatos excluídos com sucesso!",
+        },
+        searchPlaceholder: "Pesquisar...",
+        confirmationModal: {
+          deleteTitle: "Deletar ",
+          deleteAllTitle: "Deletar Todos",
+          importTitle: "Importar contatos",
+          deleteMessage:
+              "Tem certeza que deseja deletar este contato? Todos os tickets relacionados serão perdidos.",
+          deleteAllMessage:
+              "Tem certeza que deseja deletar todos os contatos? Todos os tickets relacionados serão perdidos.",
+          importMessage: "Deseja importar todos os contatos do telefone?",
+        },
+        buttons: {
+          import: "Importar Contatos",
+          add: "Adicionar Contato",
+          export: "Exportar Contatos",
+          delete: "Excluir Todos Contatos",
+        },
+        table: {
+          name: "Nome",
+          whatsapp: "WhatsApp",
+          email: "Email",
+          actions: "Ações",
+        },
+      },
+      contactImportModal: {
+        title: "Planílha de contatos",
+        labels: {
+          import: "Importar contatos",
+          result: "resultados",
+          added: "Adicionados",
+          savedContact: "Contato salvo",
+          errors: "Erros",
+        },
+        buttons: {
+          download: "Baixar planílha modelo",
+          import: "Importar contatos",
+        },
+      },
+      queueIntegrationModal: {
+        title: {
+          add: "Adicionar projeto",
+          edit: "Editar projeto",
+        },
+        form: {
+          id: "ID",
+          type: "Tipo",
+          name: "Nome",
+          projectName: "Nome do Projeto",
+          language: "Linguagem",
+          jsonContent: "JsonContent",
+          urlN8N: "URL",
+          typebotSlug: "Typebot - Slug",
+          typebotExpires: "Tempo em minutos para expirar uma conversa",
+          typebotKeywordFinish: "Palavra para finalizar o ticket",
+          typebotKeywordRestart: "Palavra para reiniciar o fluxo",
+          typebotRestartMessage: "Mensagem ao reiniciar a conversa",
+          typebotUnknownMessage: "Mensagem de opção inválida",
+          typebotDelayMessage: "Intervalo (ms) entre mensagens",
+        },
+        buttons: {
+          okAdd: "Adicionar",
+          okEdit: "Salvar",
+          cancel: "Cancelar",
+          test: "Testar Bot",
+        },
+        messages: {
+          testSuccess: "Integração testada com sucesso!",
+          addSuccess: "Integração adicionada com sucesso.",
+          editSuccess: "Integração editada com sucesso.",
+        },
+      },
+      sideMenu: {
+        name: "Menu Lateral Inicial",
+        note: "Se habilitado, o menu lateral irá iniciar fechado",
+        options: {
+          enabled: "Aberto",
+          disabled: "Fechado",
+        },
+      },
+      promptModal: {
+        form: {
+          name: "Nome",
+          prompt: "Prompt",
+          model: "Modelo",
+          max_tokens: "Máximo de Tokens na resposta",
+          temperature: "Temperatura",
+          apikey: "API Key",
+          max_messages: "Máximo de mensagens no Histórico",
+        },
+        formErrors: {
+          name: {
+            short: "Nome muito curto",
+            long: "Nome muito longo",
+            required: "Nome é obrigatório",
+          },
+          prompt: {
+            short: "Prompt muito curto",
+            required: "Descreva o treinamento para Inteligência Artificial",
+          },
+          modal: {
+            required: "Informe o modelo desejado para o Prompt",
+          },
+          maxTokens: {
+            required: "Informe o número máximo de tokens na resposta",
+          },
+          temperature: {
+            required: "Informe a temperatura",
+          },
+          apikey: {
+            required: "Informe a API Key",
+          },
+          queueId: {
+            required: "Informe a fila",
+          },
+          maxMessages: {
+            required: "Informe o número máximo de mensagens no histórico",
+          },
+        },
+        success: "Prompt salvo com sucesso!",
+        setor: "Informe o setor",
+        title: {
+          add: "Adicionar Prompt",
+          edit: "Editar Prompt",
+        },
+        buttons: {
+          okAdd: "Adicionar",
+          okEdit: "Salvar",
+          cancel: "Cancelar",
+        },
+      },
+      prompts: {
+        title: "Prompts",
+        table: {
+          name: "Nome",
+          queue: "Setor/Fila",
+          max_tokens: "Máximo Tokens Resposta",
+          actions: "Ações",
+        },
+        confirmationModal: {
+          deleteTitle: "Excluir",
+          deleteMessage: "Você tem certeza? Essa ação não pode ser revertida!",
+        },
+        buttons: {
+          add: "Adicionar Prompt",
+        },
+      },
+      contactModal: {
+        title: {
+          add: "Adicionar contato",
+          edit: "Editar contato",
+        },
+        form: {
+          mainInfo: "Dados do contato",
+          extraInfo: "Informações adicionais",
+          name: "Nome",
+          number: "Número do Whatsapp",
+          email: "Email",
+          extraName: "Nome do campo",
+          extraValue: "Valor",
+          whatsapp: "Conexão Origem: ",
+        },
+        formErrors: {
+          name: {
+            required: "Nome é obrigatório",
+            short: "Nome muito curto",
+            long: "Nome muito longo",
+          },
+          phone: {
+            short: "Número muito curto",
+            long: "Número muito longo",
+          },
+          email: {
+            invalid: "Email inválido",
+          },
+        },
+        buttons: {
+          addExtraInfo: "Adicionar informação",
+          okAdd: "Adicionar",
+          okEdit: "Salvar",
+          cancel: "Cancelar",
+        },
+        success: "Contato salvo com sucesso.",
+      },
+      queueModal: {
+        title: {
+          add: "Adicionar fila",
+          edit: "Editar fila",
+        },
+        form: {
+          name: "Nome",
+          nameShort: "Nome curto",
+          nameLong: "Nome longo",
+          nameRequired: "Nome é obrigatório",
+          color: "Cor",
+          colorShort: "Cor curta",
+          colorLong: "Cor longa",
+          greetingMessage: "Mensagem de saudação",
+          complationMessage: "Mensagem de conclusão",
+          outOfHoursMessage: "Mensagem de fora de expediente",
+          ratingMessage: "Mensagem de avaliação",
+          token: "Token",
+          orderQueue: "Ordem da fila (Bot)",
+          integrationId: "Integração",
+        },
+        buttons: {
+          okAdd: "Adicionar",
+          okEdit: "Salvar",
+          cancel: "Cancelar",
+        },
+        toasts: {
+          success: "Fila salva com sucesso.",
+          info: "Clique em salvar para registar as alterações",
+        },
+        tabs: {
+          queueData: "Dados da fila",
+          attendanceTime: "Horários de Atendimento",
+        },
+      },
+      userModal: {
+        title: {
+          add: "Adicionar usuário",
+          edit: "Editar usuário",
+        },
+        form: {
+          name: "Nome",
+          email: "Email",
+          password: "Senha",
+          profile: "Perfil",
+          whatsapp: "Conexão Padrão",
+
+          allTicket: "Ticket Sem Fila [Invisível]",
+          allTicketEnabled: "Habilitado",
+          allTicketDesabled: "Desabilitado",
+        },
+        formErrors: {
+          name: {
+            required: "Nome é obrigatório",
+            short: "Nome muito curto",
+            long: "Nome muito longo",
+          },
+          password: {
+            short: "Senha muito curta",
+            long: "Senha muito longa",
+          },
+          email: {
+            required: "Email é obrigatório",
+            invalid: "Email inválido",
+          },
+        },
+        labels: {
+          liberations: "Liberações",
+        },
+        buttons: {
+          okAdd: "Adicionar",
+          okEdit: "Salvar",
+          cancel: "Cancelar",
+        },
+        success: "Usuário salvo com sucesso.",
+      },
+      scheduleModal: {
+        title: {
+          add: "Novo Agendamento",
+          edit: "Editar Agendamento",
+        },
+        form: {
+          body: "Mensagem",
+          contact: "Contato",
+          sendAt: "Data de Agendamento",
+          sentAt: "Data de Envio",
+        },
+        buttons: {
+          okAdd: "Adicionar",
+          okEdit: "Salvar",
+          cancel: "Cancelar",
+        },
+        success: "Agendamento salvo com sucesso.",
+      },
+      tagModal: {
+        title: {
+          add: "Nova Tag",
+          edit: "Editar Tag",
+        },
+        form: {
+          name: "Nome",
+          color: "Cor",
+        },
+        buttons: {
+          okAdd: "Adicionar",
+          okEdit: "Salvar",
+          cancel: "Cancelar",
+        },
+        success: "Tag salvo com sucesso.",
+      },
+      chat: {
+        toasts: {
+          fillTitle: "Por favor, preencha o título da conversa.",
+          fillUser: "Por favor, selecione pelo menos um usuário.",
+        },
+        modal: {
+          title: "Conversa",
+          titleField: "Título",
+        },
+        confirm: {
+          title: "Excluir Conversa",
+          message: "Esta ação não pode ser revertida, confirmar?",
+        },
+        chats: "Chats",
+        messages: "Mensagens",
+        noTicketMessage: "Selecione um ticket para começar a conversar.",
+        buttons: {
+          close: "Fechar",
+          save: "Salvar",
+          new: "Nova",
+          newChat: "Novo",
+        },
+      },
+      uploads: {
+        titles: {
+          titleUploadMsgDragDrop: "ARRASTE E SOLTE ARQUIVOS NO CAMPO ABAIXO",
+          titleFileList: "Lista de arquivo(s)",
+        },
+      },
+      ticketsManager: {
+        buttons: {
+          newTicket: "Novo",
+        },
+      },
+      ticketsQueueSelect: {
+        placeholder: "Filas",
+      },
+      tickets: {
+        toasts: {
+          deleted: "O atendimento que você estava foi deletado.",
+          unauthorized: "Acesso não permitido",
+        },
+        filters: {
+          user: "Filtro por usuários",
+          tags: "Filtro por tags",
+        },
+        notification: {
+          message: "Mensagem de",
+        },
+        tabs: {
+          open: { title: "Abertas" },
+          closed: { title: "Resolvidos" },
+          search: { title: "Busca" },
+        },
+        search: {
+          placeholder: "Buscar atendimento e mensagens",
+        },
+        buttons: {
+          showAll: "Todos",
+        },
+      },
+      transferTicketModal: {
+        title: "Transferir Ticket",
+        fieldLabel: "Digite para buscar usuários",
+        fieldQueueLabel: "Transferir para fila",
+        fieldQueuePlaceholder: "Selecione uma fila",
+        noOptions: "Nenhum usuário encontrado com esse nome",
+        buttons: {
+          ok: "Transferir",
+          cancel: "Cancelar",
+        },
+      },
+      ticketsList: {
+        pendingHeader: "Aguardando",
+        assignedHeader: "Atendendo",
+        noTicketsTitle: "Nada aqui!",
+        noTicketsMessage:
+            "Nenhum atendimento encontrado com esse status ou termo pesquisado",
+        buttons: {
+          accept: "Aceitar",
+          closed: "Finalizar",
+          reopen: "Reabrir",
+        },
+      },
+      ticketsListItem: {
+        tooltip: {
+          chatbot: "Chatbot",
+          peek: "Espiar Conversa",
+        },
+        noQueue: "SEM FILA",
+      },
+      ticketAdvanced: {
+        selectTicket: "Selecionar Ticket",
+        ticketNav: "Ticket",
+        attendanceNav: "Atendimentos",
+      },
+      newTicketModal: {
+        title: "Criar Ticket",
+        fieldLabel: "Digite para pesquisar o contato",
+        add: "Adicionar",
+        searchQueueError:
+            "Ocorreu um erro inesperado ao tentar buscar as filas",
+        selectQueue: "Selecione uma fila",
+        selectConection: "Selecione uma conexão",
+        buttons: {
+          ok: "Salvar",
+          cancel: "Cancelar",
+        },
+      },
+      locationPreview: {
+        button: "Visualizar",
+      },
+      mainDrawer: {
+        listItems: {
+          dashboard: "Dashboard",
+          connections: "Conexões",
+          tickets: "Atendimentos",
+          quickMessages: "Respostas Rápidas",
+          tasks: "Tarefas",
+          contacts: "Contatos",
+          queues: "Filas & Chatbot",
+          tags: "Tags",
+          administration: "Administração",
+          users: "Usuários",
+          settings: "Configurações",
+          helps: "Ajuda",
+          messagesAPI: "API",
+          schedules: "Agendamentos",
+          campaigns: "Campanhas",
+          annoucements: "Informativos",
+          chats: "Chat Interno",
+          financeiro: "Financeiro",
+          files: "Lista de arquivos",
+          prompts: "Open.Ai",
+          queueIntegration: "Integrações",
+        },
+        appBar: {
+          refresh: "Recarregar página",
+          notRegister: "Sem notificações",
+          greeting: {
+						hello: "Olá",
+						welcome: "Bem vindo a",
+						active: "Ativo até",
+					},
+          user: {
+            profile: "Perfil",
+            logout: "Sair",
+          },
+        },
+      },
+      queueIntegration: {
+        title: "Integrações",
+        table: {
+          id: "ID",
+          type: "Tipo",
+          name: "Nome",
+          projectName: "Nome do Projeto",
+          language: "Linguagem",
+          lastUpdate: "Ultima atualização",
+          actions: "Ações",
+        },
+        buttons: {
+          add: "Adicionar Projeto",
+        },
+        searchPlaceholder: "Pesquisar...",
+        confirmationModal: {
+          deleteTitle: "Excluir",
+          deleteMessage:
+              "Você tem certeza? Essa ação não pode ser revertida! e será removida das filas e conexões vinculadas",
+        },
+      },
+      files: {
+        title: "Lista de arquivos",
+        table: {
+          name: "Nome",
+          contacts: "Contatos",
+          actions: "Ação",
+        },
+        toasts: {
+          deleted: "Lista excluída com sucesso!",
+          deletedAll: "Todas as listas foram excluídas com sucesso!",
+        },
+        buttons: {
+          add: "Adicionar",
+          deleteAll: "Deletar Todos",
+        },
+        confirmationModal: {
+          deleteTitle: "Deletar",
+          deleteAllTitle: "Deletar Todos",
+          deleteMessage: "Tem certeza que deseja deletar esta lista?",
+          deleteAllMessage: "Tem certeza que deseja deletar todas as listas?",
+        },
+      },
+      messagesAPI: {
+        title: "API",
+        labels: {
+          doc: "Documentação para envio de mensagens",
+          method: "Métodos de Envio",
+          textMessage: "Mensagem de Texto",
+          mediaMessage: "Mensagem de Mídia",
+          instructions: "Instruções",
+          observations: "Observações importantes",
+          before1:
+              "Antes de enviar mensagens, é necessário o cadastro do token vinculado à conexão que enviará as mensagens.",
+          before2:
+              "Para realizar o cadastro acesse o menu 'Conexões', clique no botão editar da conexão e insira o token no devido campo.",
+          numberDescription:
+              "O número para envio não deve ter mascara ou caracteres especiais e deve ser composto por:",
+          countryCode: "Código do País",
+          number: "Número",
+          textMessage2: "1. Mensagens de Texto",
+          textMessageInstructions:
+              "Seguem abaixo a lista de informações necessárias para envio das mensagens de texto:",
+          method2: "Método",
+          e: "e",
+          tests: "Teste de Envio",
+          mediaMessage2: "2. Mensagens de Mídia",
+        },
+        textMessage: {
+          number: "Número",
+          body: "Mensagem",
+          token: "Token cadastrado",
+        },
+        mediaMessage: {
+          number: "Número",
+          body: "Nome do arquivo",
+          media: "Arquivo",
+          token: "Token cadastrado",
+        },
+        toasts: {
+          unauthorized:
+              "Esta empresa não possui permissão para acessar essa página! Estamos lhe redirecionando.",
+          success: "Mensagem enviada com sucesso!",
+        },
+        buttons: {
+          send: "Enviar",
+        },
+      },
+      notifications: {
+        noTickets: "Nenhuma notificação.",
+      },
+      quickMessages: {
+        title: "Respostas Rápidas",
+        searchPlaceholder: "Pesquisar...",
+        noAttachment: "Sem anexo",
+        confirmationModal: {
+          deleteTitle: "Exclusão",
+          deleteMessage: "Esta ação é irreversível! Deseja prosseguir?",
+        },
+        buttons: {
+          add: "Adicionar",
+          attach: "Anexar Arquivo",
+          cancel: "Cancelar",
+          edit: "Editar",
+        },
+        toasts: {
+          success: "Atalho adicionado com sucesso!",
+          deleted: "Atalho removido com sucesso!",
+        },
+        dialog: {
+          title: "Mensagem Rápida",
+          shortcode: "Atalho",
+          message: "Resposta",
+          save: "Salvar",
+          cancel: "Cancelar",
+          geral: "Permitir editar",
+          add: "Adicionar",
+          edit: "Editar",
+          visao: "Permitir visão",
+        },
+        table: {
+          shortcode: "Atalho",
+          message: "Mensagem",
+          actions: "Ações",
+          mediaName: "Nome do Arquivo",
+          status: "Status",
+        },
+      },
+      messageVariablesPicker: {
+        label: "Variavéis disponíveis",
+        vars: {
+          contactFirstName: "Primeiro Nome",
+          contactName: "Nome",
+          greeting: "Saudação",
+          protocolNumber: "Protocolo",
+          date: "Data",
+          hour: "Hora",
+        },
+      },
+      contactLists: {
+        title: "Listas de Contatos",
+        table: {
+          name: "Nome",
+          contacts: "Contatos",
+          actions: "Ações",
+        },
+        buttons: {
+          add: "Nova Lista",
+        },
+        dialog: {
+          name: "Nome",
+          nameShort: "Nome curto",
+          nameLong: "Nome longo",
+          nameRequired: "Nome é obrigatório",
+          company: "Empresa",
+          okEdit: "Editar",
+          okAdd: "Adicionar",
+          add: "Adicionar",
+          edit: "Editar",
+          cancel: "Cancelar",
+        },
+        confirmationModal: {
+          deleteTitle: "Excluir",
+          deleteMessage: "Esta ação não pode ser revertida.",
+        },
+        toasts: {
+          deleted: "Registro excluído",
+          success: "Operação realizada com sucesso",
+        },
+      },
+      contactListItems: {
+        title: "Contatos",
+        searchPlaceholder: "Pesquisa",
+        buttons: {
+          add: "Novo",
+          lists: "Listas",
+          import: "Importar",
+        },
+        download: "Clique aqui para baixar planilha exemplo.",
+        dialog: {
+          name: "Nome",
+          nameShort: "Nome curto",
+          nameLong: "Nome longo",
+          nameRequired: "Nome é obrigatório",
+          number: "Número",
+          numberShort: "Número curto",
+          numberLong: "Número longo",
+          whatsapp: "Whatsapp",
+          email: "E-mail",
+          emailInvalid: "E-mail inválido",
+          okEdit: "Editar",
+          okAdd: "Adicionar",
+          add: "Adicionar",
+          edit: "Editar",
+          cancel: "Cancelar",
+        },
+        table: {
+          name: "Nome",
+          number: "Número",
+          whatsapp: "Whatsapp",
+          email: "E-mail",
+          actions: "Ações",
+        },
+        confirmationModal: {
+          deleteTitle: "Excluir",
+          deleteMessage: "Esta ação não pode ser revertida.",
+          importMessage: "Deseja importar os contatos desta planilha? ",
+          importTitlte: "Importar",
+        },
+        toasts: {
+          deleted: "Registro excluído",
+        },
+      },
+      campaigns: {
+        title: "Campanhas",
+        searchPlaceholder: "Pesquisa",
+        report: {
+          title: "Relatório de",
+          title2: "Campanha",
+          of: "de",
+          validContacts: "Contatos válidos",
+          delivered: "Entregues",
+          connection: "Conexão",
+          contactList: "Lista de Contatos",
+          schedule: "Agendamento",
+          conclusion: "Conclusão",
+        },
+        config: {
+          interval: "Intervalos",
+          randomInterval: "Intervalo Randômico de Disparo",
+          biggerInterval: "Intervalo Maior Após",
+          greaterInterval: "Intervalo de Disparo Maior",
+          noInterval: "Sem Intervalo",
+          second: "segundo",
+          seconds: "segundos",
+          notDefined: "Não definido",
+          addVariable: "Adicionar Variável",
+          save: "Salvar Configurações",
+          shortcut: "Atalho",
+          content: "Conteúdo",
+          close: "Fechar",
+          add: "Adicionar",
+        },
+        buttons: {
+          add: "Nova Campanha",
+          contactLists: "Listas de Contatos",
+        },
+        status: {
+          inactive: "Inativa",
+          programmed: "Programada",
+          inProgress: "Em andamento",
+          canceled: "Cancelada",
+          finished: "Finalizada",
+        },
+        table: {
+          name: "Nome",
+          whatsapp: "Conexão",
+          contactList: "Lista de Contatos",
+          status: "Status",
+          scheduledAt: "Agendamento",
+          completedAt: "Concluída",
+          confirmation: "Confirmação",
+          actions: "Ações",
+          notDefined: "Não definida",
+          notDefined2: "Não definido",
+          notScheduled: "Sem agendamento",
+          notConcluded: "Não concluída",
+          stopCampaign: "Parar Campanha",
+        },
+        dialog: {
+          new: "Nova Campanha",
+          update: "Editar Campanha",
+          readonly: "Apenas Visualização",
+          form: {
+            name: "Nome",
+            nameShort: "Nome curto",
+            nameLong: "Nome longo",
+            helper:
+                "Utilize variáveis como {nome}, {numero}, {email} ou defina variáveis personalziadas.",
+            nameRequired: "Nome é obrigatório",
+            message1: "Mensagem 1",
+            message2: "Mensagem 2",
+            message3: "Mensagem 3",
+            message4: "Mensagem 4",
+            message5: "Mensagem 5",
+            messagePlaceholder: "Conteúdo da mensagem",
+            whatsapp: "Conexão",
+            status: "Status",
+            scheduledAt: "Agendamento",
+            confirmation: "Confirmação",
+            contactList: "Lista de Contato",
+            tagList: "Lista de Tags",
+            fileList: "Lista de Arquivos",
+          },
+          buttons: {
+            add: "Adicionar",
+            edit: "Atualizar",
+            okadd: "Ok",
+            cancel: "Cancelar Disparos",
+            restart: "Reiniciar Disparos",
+            close: "Fechar",
+            attach: "Anexar Arquivo",
+          },
+        },
+        confirmationModal: {
+          deleteTitle: "Excluir",
+          deleteMessage: "Esta ação não pode ser revertida.",
+        },
+        toasts: {
+          configSaved: "Configurações salvas",
+          success: "Operação realizada com sucesso",
+          cancel: "Campanha cancelada",
+          restart: "Campanha reiniciada",
+          deleted: "Registro excluído",
+        },
+      },
+      subscription: {
+        title: "Assinatura",
+        testPeriod: "Período de Teste",
+        remainingTest: "Seu período de teste termina em",
+        remainingTest2: "dias!",
+        chargeEmail: "E-mail de cobrança",
+        signNow: "Assinar agora!",
+      },
+      announcements: {
+        active: "Ativo",
+        inactive: "Inativo",
+        title: "Informativos",
+        searchPlaceholder: "Pesquisa",
+        high: "Alta",
+        medium: "Média",
+        low: "Baixa",
+        buttons: {
+          add: "Novo Informativo",
+          contactLists: "Listas de Informativos",
+        },
+        table: {
+          priority: "Prioridade",
+          title: "Title",
+          text: "Texto",
+          mediaName: "Arquivo",
+          status: "Status",
+          actions: "Ações",
+        },
+        dialog: {
+          edit: "Edição de Informativo",
+          add: "Novo Informativo",
+          update: "Editar Informativo",
+          readonly: "Apenas Visualização",
+          form: {
+            priority: "Prioridade",
+            required: "Campo obrigatório",
+            title: "Title",
+            text: "Texto",
+            mediaPath: "Arquivo",
+            status: "Status",
+          },
+          buttons: {
+            add: "Adicionar",
+            edit: "Atualizar",
+            okadd: "Ok",
+            cancel: "Cancelar",
+            close: "Fechar",
+            attach: "Anexar Arquivo",
+          },
+        },
+        confirmationModal: {
+          deleteTitle: "Excluir",
+          deleteMessage: "Esta ação não pode ser revertida.",
+        },
+        toasts: {
+          success: "Operação realizada com sucesso",
+          deleted: "Registro excluído",
+          info: "Esta empresa não possui permissão para acessar essa página! Estamos lhe redirecionando.",
+        },
+      },
+      campaignsConfig: {
+        title: "Configurações de Campanhas",
+      },
+      queues: {
+        title: "Filas & Chatbot",
+        table: {
+          id: "ID",
+          name: "Nome",
+          color: "Cor",
+          greeting: "Mensagem de saudação",
+          actions: "Ações",
+          orderQueue: "Ordenação da fila (bot)",
+        },
+        buttons: {
+          add: "Adicionar fila",
+        },
+        toasts: {
+          success: "Fila deletada com sucesso.",
+        },
+        confirmationModal: {
+          deleteTitle: "Excluir",
+          deleteMessage:
+              "Você tem certeza? Essa ação não pode ser revertida! Os atendimentos dessa fila continuarão existindo, mas não terão mais nenhuma fila atribuída.",
+        },
+      },
+      queueSelect: {
+        inputLabel: "Filas",
+      },
+      users: {
+        title: "Usuários",
+        table: {
+          id: "ID",
+          name: "Nome",
+          email: "Email",
+          profile: "Perfil",
+          actions: "Ações",
+        },
+        buttons: {
+          add: "Adicionar usuário",
+        },
+        toasts: {
+          deleted: "Usuário excluído com sucesso.",
+        },
+        confirmationModal: {
+          deleteTitle: "Excluir",
+          deleteMessage:
+              "Todos os dados do usuário serão perdidos. Os atendimento abertos deste usuário serão movidos para a fila.",
+        },
+      },
+      todolist: {
+        input: "Nova tarefa",
+        buttons: {
+          add: "Adicionar",
+          save: "Salvar",
+        },
+      },
+      helps: {
+        title: "Central de Ajuda",
+      },
+      schedules: {
+        title: "Agendamentos",
+        confirmationModal: {
+          deleteTitle: "Você tem certeza que quer excluir este Agendamento?",
+          deleteMessage: "Esta ação não pode ser revertida.",
+        },
+        table: {
+          contact: "Contato",
+          body: "Mensagem",
+          sendAt: "Data de Agendamento",
+          sentAt: "Data de Envio",
+          status: "Status",
+          actions: "Ações",
+        },
+        messages: {
+          date: "Data",
+          time: "Hora",
+          event: "Evento",
+          allDay: "Dia Todo",
+          week: "Semana",
+          work_week: "Agendamentos",
+          day: "Dia",
+          month: "Mês",
+          previous: "Anterior",
+          next: "Próximo",
+          yesterday: "Ontem",
+          tomorrow: "Amanhã",
+          today: "Hoje",
+          agenda: "Agenda",
+          noEventsInRange: "Não há agendamentos no período.",
+          showMore: "mais",
+        },
+        buttons: {
+          add: "Novo Agendamento",
+        },
+        toasts: {
+          deleted: "Agendamento excluído com sucesso.",
+        },
+      },
+      tags: {
+        title: "Tags",
+        confirmationModal: {
+          deleteTitle: "Você tem certeza que quer excluir esta Tag?",
+          deleteMessage: "Esta ação não pode ser revertida.",
+          deleteAllMessage: "Tem certeza que deseja deletar todas as Tags?",
+          deleteAllTitle: "Deletar Todos",
+        },
+        table: {
+          name: "Nome",
+          color: "Cor",
+          tickets: "Registros Tagdos",
+          actions: "Ações",
+        },
+        buttons: {
+          add: "Nova Tag",
+          deleteAll: "Deletar Todas",
+        },
+        toasts: {
+          deletedAll: "Todas Tags excluídas com sucesso!",
+          deleted: "Tag excluído com sucesso.",
+        },
+      },
+      settings: {
+        schedulesUpdated: "Horários atualizados com sucesso.",
+        success: "Configurações salvas com sucesso.",
+        title: "Configurações",
+        tabs: {
+          options: "Opções",
+          schedules: "Horários",
+          companies: "Empresas",
+          plans: "Planos",
+          helps: "Ajuda",
+        },
+        options: {
+          toasts: {
+            success: "Operação atualizada com sucesso.",
+          },
+          fields: {
+            ratings: {
+              title: "Avaliações",
+              disabled: "Desabilitadas",
+              enabled: "Habilitadas",
+            },
+            expedientManager: {
+              title: "Gerenciamento de Expediente",
+              queue: "Fila",
+              company: "Empresa",
+            },
+            ignoreMessages: {
+              title: "Ignorar Mensagens de Grupos",
+            },
+            acceptCall: {
+              title: "Aceitar Chamada",
+              disabled: "Não aceitar",
+              enabled: "Aceitar",
+            },
+            chatbotType: {
+              title: "Tipo Chatbot",
+              text: "Texto",
+            },
+            sendGreetingAccepted: {
+              title: "Enviar saudação ao aceitar o ticket",
+            },
+            sendMsgTransfTicket: {
+              title: "Enviar mensagem de transferencia de Fila/agente",
+            },
+            sendGreetingMessageOneQueues: {
+              title: "Enviar saudação quando houver somente 1 fila<",
+            },
+            disabled: "Desabilitado",
+            active: "Ativo",
+            enabled: "Habilitado",
+          },
+          updating: "Atualizando...",
+          tabs: {
+            integrations: "INTEGRAÇÕES",
+          },
+        },
+        helps: {
+          toasts: {
+            errorList: "Não foi possível carregar a lista de registros",
+            errorOperation: "Não foi possível realizar a operação",
+            error:
+                "Não foi possível realizar a operação. Verifique se já existe uma helpo com o mesmo nome ou se os campos foram preenchidos corretamente",
+            success: "Operação realizada com sucesso!",
+          },
+          buttons: {
+            clean: "Limpar",
+            delete: "Excluir",
+            save: "Salvar",
+          },
+          grid: {
+            title: "Título",
+            description: "Descrição",
+            video: "Vídeo",
+          },
+          confirmModal: {
+            title: "Exclusão de Registro",
+            confirm: "Deseja realmente excluir esse registro?",
+          },
+        },
+        company: {
+          toasts: {
+            errorList: "Não foi possível carregar a lista de registros",
+            errorOperation: "Não foi possível realizar a operação",
+            error:
+                "Não foi possível realizar a operação. Verifique se já existe uma empresa com o mesmo nome ou se os campos foram preenchidos corretamente",
+            success: "Operação realizada com sucesso!",
+          },
+          confirmModal: {
+            title: "Exclusão de Registro",
+            confirm: "Deseja realmente excluir esse registro?",
+          },
+          form: {
+            name: "Nome",
+            email: "E-mail",
+            phone: "Telefone",
+            plan: "Plano",
+            status: "Status",
+            yes: "Sim",
+            no: "Não",
+            campanhas: "Campanhas",
+            enabled: "Habilitadas",
+            disabled: "Desabilitadas",
+            dueDate: "Data de vencimento",
+            recurrence: "Recorrência",
+            monthly: "Mensal",
+            expire: "Vencimento",
+            createdAt: "Criada Em",
+          },
+          buttons: {
+            clear: "Limpar",
+            delete: "Excluir",
+            expire: "+ Vencimento",
+            user: "Usuário",
+            save: "Salvar",
+          },
+        },
+        schedules: {
+          form: {
+            weekday: "Dia da Semana",
+            initialHour: "Hora Inicial",
+            finalHour: "Hora Final",
+            save: "Salvar",
+          },
+        },
+        settings: {
+          userCreation: {
+            name: "Criação de usuário",
+            options: {
+              enabled: "Ativado",
+              disabled: "Desativado",
+            },
+          },
+        },
+      },
+      messagesList: {
+        header: {
+          assignedTo: "Atribuído à:",
+          buttons: {
+            return: "Retornar",
+            resolve: "Resolver",
+            reopen: "Reabrir",
+            accept: "Aceitar",
+            download: "Baixar",
+          },
+        },
+        lostCall: "Chamada de voz/vídeo perdida às",
+        deletedMessage: "Essa mensagem foi apagada pelo contato",
+        edited: "Editada",
+        saudation: "Diga olá para seu novo contato!",
+      },
+      messagesInput: {
+        placeholderOpen: "Digite uma mensagem",
+        placeholderClosed:
+            "Reabra ou aceite esse ticket para enviar uma mensagem.",
+        signMessage: "Assinar",
+      },
+      contactDrawer: {
+        header: "Dados do contato",
+        buttons: {
+          edit: "Editar contato",
+        },
+        extraInfo: "Outras informações",
+      },
+      fileModal: {
+        title: {
+          add: "Adicionar lista de arquivos",
+          edit: "Editar lista de arquivos",
+        },
+        buttons: {
+          okAdd: "Salvar",
+          okEdit: "Editar",
+          cancel: "Cancelar",
+          fileOptions: "Adicionar arquivo",
+        },
+        form: {
+          name: "Nome da lista de arquivos",
+          message: "Detalhes da lista",
+          fileOptions: "Lista de arquivos",
+          extraName: "Mensagem para enviar com arquivo",
+          extraValue: "Valor da opção",
+        },
+        formErrors: {
+          name: {
+            required: "Nome é obrigatório",
+            short: "Nome muito curto",
+          },
+          message: {
+            required: "Mensagem é obrigatória",
+          },
+        },
+        success: "Lista de arquivos salva com sucesso!",
+      },
+      ticketOptionsMenu: {
+        schedule: "Agendamento",
+        delete: "Deletar",
+        transfer: "Transferir",
+        registerAppointment: "Observações do Contato",
+        appointmentsModal: {
+          title: "Observações do Contato",
+          textarea: "Observação",
+          placeholder: "Insira aqui a informação que deseja registrar",
+        },
+        confirmationModal: {
+          title: "Deletar o ticket",
+          titleFrom: "do contato ",
+          message:
+              "Atenção! Todas as mensagens relacionadas ao ticket serão perdidas.",
+        },
+        buttons: {
+          delete: "Excluir",
+          cancel: "Cancelar",
+        },
+      },
+      confirmationModal: {
+        buttons: {
+          confirm: "Ok",
+          cancel: "Cancelar",
+        },
+      },
+      messageOptionsMenu: {
+        delete: "Deletar",
+        reply: "Responder",
+        confirmationModal: {
+          title: "Apagar mensagem?",
+          message: "Esta ação não pode ser revertida.",
+        },
+      },
+      backendErrors: {
+        ERR_INTERNAL_SERVER_ERROR:
+            "Ocorreu um erro inesperado. Por favor, tente novamente mais tarde",
+        ERR_NO_OTHER_WHATSAPP: "Deve haver pelo menos um WhatsApp padrão.",
+        ERR_NO_DEF_WAPP_FOUND:
+            "Nenhum WhatsApp padrão encontrado. Verifique a página de conexões.",
+        ERR_WAPP_NOT_INITIALIZED:
+            "Esta sessão do WhatsApp não foi inicializada. Verifique a página de conexões.",
+        ERR_WAPP_CHECK_CONTACT:
+            "Não foi possível verificar o contato do WhatsApp. Verifique a página de conexões",
+        ERR_WAPP_INVALID_CONTACT: "Este não é um número de Whatsapp válido.",
+        ERR_WAPP_DOWNLOAD_MEDIA:
+            "Não foi possível baixar mídia do WhatsApp. Verifique a página de conexões.",
+        ERR_INVALID_CREDENTIALS:
+            "Erro de autenticação. Por favor, tente novamente.",
+        ERR_USER_DONT_EXISTS:
+            "Usuário não encontrado. Verifique o e-mail informado.",
+        ERR_SENDING_WAPP_MSG:
+            "Erro ao enviar mensagem do WhatsApp. Verifique a página de conexões.",
+        ERR_DELETE_WAPP_MSG: "Não foi possível excluir a mensagem do WhatsApp.",
+        ERR_OTHER_OPEN_TICKET: "Já existe um tíquete aberto para este contato.",
+        ERR_SESSION_EXPIRED: "Sessão expirada. Por favor entre.",
+        ERR_USER_CREATION_DISABLED:
+            "A criação do usuário foi desabilitada pelo administrador.",
+        ERR_NO_PERMISSION: "Você não tem permissão para acessar este recurso.",
+        ERR_DUPLICATED_CONTACT: "Já existe um contato com este número.",
+        ERR_NO_SETTING_FOUND: "Nenhuma configuração encontrada com este ID.",
+        ERR_NO_CONTACT_FOUND: "Nenhum contato encontrado com este ID.",
+        ERR_NO_TICKET_FOUND: "Nenhum tíquete encontrado com este ID.",
+        ERR_NO_USER_FOUND: "Nenhum usuário encontrado com este ID.",
+        ERR_NO_WAPP_FOUND: "Nenhum WhatsApp encontrado com este ID.",
+        ERR_CREATING_MESSAGE: "Erro ao criar mensagem no banco de dados.",
+        ERR_CREATING_TICKET: "Erro ao criar tíquete no banco de dados.",
+        ERR_FETCH_WAPP_MSG:
+            "Erro ao buscar a mensagem no WhtasApp, talvez ela seja muito antiga.",
+        ERR_QUEUE_COLOR_ALREADY_EXISTS:
+            "Esta cor já está em uso, escolha outra.",
+        ERR_WAPP_GREETING_REQUIRED:
+            "A mensagem de saudação é obrigatório quando há mais de uma fila.",
+      },
+    },
+  },
+};
+
+export { messages };