{ "escalationManager": { "unsavedChanges_one": "{{count}} cambio sin guardar", "unsavedChanges_other": "{{count}} cambios sin guardar" }, "page": { "title": "Configuración de administración" }, "tabs": { "general": "General", "experimentalFeatures": "Funciones experimentales", "clientPortal": "Portal de clientes", "users": "Usuarios", "teams": "Equipos", "language": "Idioma", "ticketing": "Gestión de tickets", "projects": "Proyectos", "interactions": "Interacciones", "notifications": "Notificaciones", "timeEntry": "Registro de tiempo", "billing": "Facturación", "secrets": "Secretos", "importExport": "Importar/Exportar", "email": "Correo", "integrations": "Integraciones", "extensions": "Extensiones", "ticketingSettings": "Configuración de tickets", "loadingTicketing": "Cargando configuración de tickets...", "teamManagement": "Gestión de equipo", "loadingTeam": "Cargando configuración del equipo...", "loadingExperimental": "Cargando configuración de funciones experimentales...", "loadingInteractions": "Cargando configuración de interacciones...", "keyboardShortcuts": "Atajos de teclado" }, "unsavedChanges": { "title": "Cambios sin guardar", "message": "Tiene cambios sin guardar. ¿Está seguro de que desea salir? Sus cambios se perderán." }, "general": { "title": "Configuración general", "description": "Administre el nombre de su organización y el cliente predeterminado. El cliente predeterminado se utiliza con fines de configuración y representa a su MSP.", "fields": { "organizationName": { "label": "Nombre de la organización" }, "defaultTimezone": { "label": "Zona horaria predeterminada", "help": "Se utiliza para correos electrónicos y notificaciones cuando un usuario no ha configurado su propia zona horaria." } }, "actions": { "saveOrganizationName": "Guardar nombre de la organización", "saveDefaultTimezone": "Guardar zona horaria predeterminada" }, "clients": { "title": "Clientes", "table": { "name": "Nombre", "default": "Predeterminado", "actions": "Acciones" }, "placeholder": "Seleccione un cliente para agregar", "addClient": "Agregar cliente" }, "messages": { "success": { "tenantNameUpdated": "Nombre del inquilino actualizado correctamente", "timezoneUpdated": "Zona horaria predeterminada actualizada correctamente", "clientAdded": "Cliente agregado correctamente", "clientRemoved": "Cliente eliminado correctamente", "defaultClientUpdated": "Cliente predeterminado actualizado correctamente" }, "error": { "loadTenantData": "Error al cargar los datos del inquilino", "updateTenantName": "Error al actualizar el nombre del inquilino", "updateTimezone": "Error al actualizar la zona horaria", "selectClient": "Seleccione un cliente", "clientNotFound": "Cliente no encontrado", "addClient": "Error al agregar el cliente", "removeClient": "Error al eliminar el cliente", "setDefaultClient": "Error al establecer el cliente predeterminado", "loadClients": "Error al cargar los clientes" } } }, "experimentalFeatures": { "title": "Funciones experimentales", "description": "Habilite o deshabilite funciones experimentales para su inquilino.", "alert": { "title": "Experimental", "description": "Las funciones experimentales pueden cambiar o eliminarse sin previo aviso." }, "features": { "aiAssistant": { "name": "Asistente de IA", "description": "Habilitar la consulta rápida y la barra lateral de chat con tecnología de IA.", "restriction": "Solo disponible para el inquilino de facturación principal." } }, "actions": { "save": "Guardar", "saving": "Guardando...", "retry": "Reintentar" }, "loading": "Cargando funciones experimentales...", "messages": { "success": { "saved": "Configuración de funciones experimentales guardada. Recargue la página para aplicar los cambios." }, "error": { "loadFailed": "Error al cargar la configuración de funciones experimentales.", "saveFailed": "Error al guardar la configuración de funciones experimentales." } } }, "users": { "title": "Gestión de usuarios", "description": { "msp": "Administrar usuarios y permisos de MSP", "client": "Administrar usuarios del portal del cliente y su acceso" }, "viewSwitcher": { "msp": "MSP", "clientPortal": "Portal de clientes" }, "license": { "usage": "Usuarios MSP: {{used}}{{limit}} licencias utilizadas", "noLimit": " (Sin límite)", "ofLimit": " de {{limit}}", "addLicensePrompt": "Para agregar un nuevo usuario debe adquirir licencias adicionales", "addLicense": "Agregar licencia" }, "search": "Buscar usuarios", "filter": { "all": "Todos los usuarios", "active": "Usuarios activos", "inactive": "Usuarios inactivos", "selectStatus": "Seleccionar estado" }, "tabs": { "list": "Lista", "structure": "Estructura", "listDescription": "Administrar usuarios individuales, roles y permisos.", "structureDescription": "Visualizar y administrar la jerarquía organizacional de reportes." }, "actions": { "createNewUser": "Crear nuevo usuario", "createNewClientUser": "Crear nuevo usuario del portal", "copyPortalLink": "Copiar enlace de inicio de sesión del portal", "copying": "Copiando...", "createUser": "Crear usuario", "sendInvitation": "Enviar invitación al portal", "cancel": "Cancelar" }, "form": { "title": { "msp": "Crear nuevo usuario MSP", "client": "Crear nuevo usuario del portal del cliente" }, "fields": { "firstName": "Nombre", "lastName": "Apellido", "email": "Correo electrónico", "client": "Cliente", "clientOptional": "(opcional)", "primaryRole": "Rol principal", "selectRole": "Seleccionar rol", "reportsTo": "Reporta a", "reportsToOptional": "(opcional)", "selectManager": "Seleccionar gerente", "existingContact": "Contacto existente", "existingContactOptional": "(opcional)", "selectExistingContact": "Seleccionar contacto existente (opcional)", "selectExistingContactRequired": "Seleccionar contacto existente", "selectContactToInvite": "Seleccionar contacto para invitar", "password": "Contraseña", "passwordOptional": "(Dejar en blanco para enviar invitación)", "passwordPlaceholder": { "msp": "Ingrese la contraseña", "client": "Dejar en blanco para enviar invitación" }, "selectClient": "Seleccionar cliente" }, "passwordAlert": { "withPassword": "Establecer una contraseña creará el usuario de inmediato. Podrá iniciar sesión de inmediato.", "withoutPassword": "No se requiere contraseña; enviaremos una invitación al portal para que el usuario la establezca." }, "requirePasswordChange": "Requerir cambio de contraseña en el primer inicio de sesión" }, "table": { "firstName": "Nombre", "lastName": "Apellido", "email": "Correo electrónico", "client": "Cliente", "role": "Rol", "lastLogin": "Último inicio de sesión", "actions": "Acciones", "noClient": "Sin cliente", "noRole": "Sin rol", "never": "Nunca", "viaMethod": "vía {{method}}", "loading": "Cargando...", "openMenu": "Abrir menú", "edit": "Editar", "remove": "Eliminar" }, "loading": "Cargando usuarios...", "messages": { "success": { "portalInvitationSent": "Invitación al portal enviada correctamente.", "clientPortalUserCreated": "Usuario del portal del cliente creado correctamente.", "copiedVanityLink": "Enlace personalizado de inicio de sesión del portal copiado al portapapeles", "copiedCanonicalLink": "Enlace canónico de inicio de sesión del portal copiado al portapapeles" }, "error": { "fetchUsers": "Error al obtener los usuarios", "fetchRoles": "Error al obtener los roles", "fetchClients": "Error al obtener los clientes", "createUser": "Error al crear el usuario", "sendInvitation": "Error al enviar la invitación", "sendInvitationManual": "Error al enviar la invitación. Puede enviarla manualmente desde la lista de usuarios.", "createClientPortalUser": "Error al crear el usuario del portal del cliente", "clipboardUnavailable": "La API del portapapeles no está disponible en este navegador.", "copyPortalLink": "Error al copiar el enlace de inicio de sesión del portal", "fillRequiredFields": "Complete todos los campos obligatorios", "fixValidationErrors": "Corrija los errores de validación antes de continuar", "fixValidationBeforeInvitation": "Corrija los errores de validación antes de enviar la invitación", "emailAlreadyInUse": "Esta dirección de correo electrónico ya está en uso. Utilice una dirección de correo electrónico diferente.", "portalUserExists": "Ya existe un usuario del portal para este contacto o dirección de correo electrónico.", "portalUserExistsForContact": "Ya existe un usuario del portal para este contacto. Utilice el restablecimiento de contraseña para el usuario existente.", "selectAppropriateRole": "Seleccione un rol apropiado para este tipo de usuario", "contactMissingEmail": "El contacto \"{{name}}\" no tiene dirección de correo electrónico. Actualice el correo electrónico del contacto antes de enviar una invitación.", "licenseLimit": "No se puede activar el usuario: se alcanzó el límite de licencias. Desactive otro usuario o actualice su licencia.", "permissionDeniedInvite": "No tienes permiso para invitar usuarios.", "permissionDeniedCreate": "No tienes permiso para crear usuarios.", "emailNotConfigured": "El servicio de correo electrónico está deshabilitado o no está configurado.", "contactNotFound": "Contacto no encontrado.", "contactMissingEmailGeneric": "El contacto no tiene dirección de correo electrónico. Agrega una dirección de correo al contacto antes de enviar una invitación.", "contactInvalidEmail": "El contacto tiene una dirección de correo electrónico no válida. Actualiza el contacto con una dirección válida antes de enviar una invitación.", "noDefaultClient": "No hay un cliente predeterminado configurado para este tenant. Configura un cliente predeterminado en Configuración General.", "noDefaultLocation": "El cliente predeterminado debe tener una ubicación predeterminada configurada para enviar invitaciones al portal.", "noLocationEmail": "La ubicación del cliente predeterminado debe tener un correo electrónico de contacto configurado.", "noBaseUrl": "La URL base no está configurada para las invitaciones al portal.", "passwordTooShort": "La contraseña debe tener al menos 8 caracteres.", "roleRequired": "Se requiere un rol", "invalidRole": "El rol seleccionado no es válido", "licenseLimitReached": "Ha alcanzado el límite de licencias de usuario MSP.", "soloPlanLimit": "El plan Solo está limitado a 1 usuario. Actualice a Pro para agregar más usuarios." } } }, "userDetails": { "title": "Detalles del usuario", "fields": { "firstName": { "label": "Nombre", "placeholder": "Ingrese el nombre" }, "lastName": { "label": "Apellido", "placeholder": "Ingrese el apellido" }, "email": { "label": "Correo electrónico", "placeholder": "Ingrese el correo electrónico" }, "reportsTo": { "label": "Reporta a", "placeholder": "Seleccionar gerente" }, "lastLogin": "Último inicio de sesión", "roles": "Roles", "status": "Estado", "statusHelp": "Establecer el estado de la cuenta del usuario", "newPassword": "Nueva contraseña" }, "status": { "active": "Activo", "inactive": "Inactivo", "inactiveTag": "(Inactivo)" }, "actions": { "addRole": "Agregar rol", "selectRoleToAdd": "Seleccionar rol para agregar", "removeRole": "Eliminar", "setPassword": "Establecer contraseña", "cancel": "Cancelar", "saveChanges": "Guardar cambios" }, "dialog": { "setPassword": { "title": "Establecer contraseña del usuario (Administrador)" } }, "messages": { "success": { "passwordChanged": "Contraseña cambiada correctamente", "userUpdated": "Usuario actualizado correctamente", "roleAdded": "Rol añadido correctamente", "roleRemoved": "Rol eliminado correctamente" }, "error": { "userNotFound": "Usuario no encontrado", "loadFailed": "Error al cargar los detalles del usuario. Inténtelo de nuevo.", "addRoleFailed": "Error al agregar el rol. Inténtelo de nuevo.", "removeRoleFailed": "Error al eliminar el rol. Inténtelo de nuevo.", "updateUserNotFound": "Error al actualizar el usuario. Usuario no encontrado.", "updateFailed": "Error al actualizar el usuario. Inténtelo de nuevo.", "passwordTooShort": "La contraseña debe tener al menos 8 caracteres", "passwordChangeFailed": "Error al cambiar la contraseña", "passwordChangeError": "Se produjo un error al cambiar la contraseña", "emailAlreadyExists": "Ya existe un usuario con esta dirección de correo electrónico", "reportsToSelf": "Un usuario no puede reportarse a sí mismo", "reportsToCycle": "Esto crearía una cadena de reporte circular", "permissionDenied": "No tienes permiso para cambiar los roles de usuario." } }, "loading": "Cargando detalles del usuario..." }, "teams": { "title": "Gestión de equipos", "description": "Crear y administrar equipos, asignar líderes de equipo y organizar miembros en toda su organización", "loading": "Cargando equipos...", "emptyState": "Seleccione un equipo para administrar sus miembros", "list": { "title": "Equipos", "addNewTeam": "Agregar nuevo equipo", "createTeam": "Crear equipo", "cancel": "Cancelar", "delete": "Eliminar", "placeholder": "Ingrese el nombre del nuevo equipo", "selectManager": "Seleccionar un gerente" }, "details": { "loading": "Cargando detalles del equipo...", "notFound": "No se encontró el equipo", "fields": { "teamLead": "Líder del equipo", "addMember": "Agregar miembro" }, "placeholders": { "teamName": "Ingrese el nombre del equipo", "selectTeamLead": "Seleccionar un líder de equipo", "selectUserToAdd": "Seleccionar un usuario para agregar" }, "alert": { "unsavedChanges": "Tiene cambios sin guardar" }, "actions": { "discard": "Descartar", "saveChanges": "Guardar cambios", "saveName": "Guardar nombre", "cancel": "Cancelar", "editName": "Editar nombre", "remove": "Eliminar" }, "table": { "teamMembers": "Miembros del equipo", "member": "Miembro", "role": "Rol" }, "badge": { "new": "Nuevo", "lead": "Líder" }, "leadName": "Líder: {{name}}", "memberCount_one": "{{count}} miembro", "memberCount_other": "{{count}} miembros" }, "messages": { "error": { "loadFailed": "Error al cargar los equipos. Inténtelo de nuevo.", "fetchUsers": "Error al obtener los usuarios", "createFailed": "Error al crear el equipo: {{error}}", "deleteFailed": "Error al eliminar el equipo", "updateName": "No se pudo actualizar el nombre del equipo", "saveChanges": "No se pudieron guardar los cambios. Inténtalo de nuevo." } } }, "ticketing": { "title": "Configuración de tickets", "tabs": { "display": "Visualización", "ticketNumbering": "Numeración de tickets", "boards": "Tableros", "statuses": "Estados", "priorities": "Prioridades", "categories": "Categorías", "checklistTemplates": "Plantillas de lista de verificación" }, "numbering": { "title": "Formato de numeración", "description": "Defina el prefijo, el relleno de dígitos y la secuencia actual", "fields": { "prefix": { "label": "Prefijo del número de ticket", "placeholder": "TK-", "help": "Prefijo opcional para los números de ticket. Déjelo vacío para no usar prefijo o ingrese un prefijo personalizado (p. ej., 'TK-')" }, "minimumDigits": { "label": "Dígitos mínimos", "help": "Número mínimo de dígitos para el número secuencial. Por ejemplo, 6 convierte '1' en '000001'" }, "initialValue": { "label": "Valor inicial", "placeholder": "Ingrese el valor", "help": "Establezca el número inicial de la secuencia. Solo se puede establecer una vez." }, "lastUsedNumber": { "label": "Último número utilizado", "help": "El último número que fue asignado. El siguiente número será uno mayor que este valor." }, "nextPreview": { "label": "Vista previa del siguiente número de ticket", "help": "Este es el número que se asignará al siguiente ticket" } }, "actions": { "saveChanges": "Guardar cambios", "cancel": "Cancelar" }, "dialog": { "title": "Actualizar configuración de numeración de tickets", "message": "Cambiar esta configuración afectará cómo se generan los nuevos números de ticket. Este cambio no afectará a los tickets existentes. ¿Está seguro de que desea continuar?", "confirm": "Actualizar configuración" }, "loading": "Cargando...", "messages": { "error": { "noSettings": "No se encontró la configuración de numeración de tickets. Comuníquese con su administrador.", "loadFailed": "Error al cargar la configuración de numeración de tickets", "updateFailed": "Error al actualizar la configuración", "updatePaddingFailed": "No se pudo actualizar la longitud de relleno", "updateLastNumberFailed": "No se pudo actualizar el último número", "updateInitialValueFailed": "No se pudo actualizar el valor inicial" }, "success": { "updated": "Configuración de numeración de tickets actualizada correctamente" } } }, "statuses": { "title": "Estados de tickets", "alert": "Estado predeterminado: cuando los clientes crean tickets a través del portal del cliente, se les asignará automáticamente el estado marcado como predeterminado. Solo se puede establecer un estado como predeterminado a la vez.", "table": { "name": "Nombre", "status": "Estado", "default": "Predeterminado", "order": "Orden", "actions": "Acciones" }, "statusLabels": { "closed": "Cerrado", "open": "Abierto", "closedHelp": "Los tickets con este estado se marcarán como cerrados", "openHelp": "Los tickets con este estado permanecerán abiertos", "defaultHelp": "Estado predeterminado para nuevos tickets desde el portal del cliente" }, "actions": { "addStatus": "Agregar estado", "importStandard": "Importar desde estados estándar", "edit": "Editar", "delete": "Eliminar" }, "retiredAlert": "Los estados de tickets ahora se gestionan dentro de cada tablero. Use la pestaña Tableros para editar los ciclos de vida de tickets de un tablero específico.", "messages": { "success": { "deleted": "Estado eliminado correctamente", "updated": "Estado actualizado correctamente" }, "error": { "lastClosed": "Al menos un estado debe permanecer marcado como cerrado", "deleteLastClosed": "No se puede eliminar el último estado cerrado para este tipo.", "removeDefault": "No se puede eliminar el estado predeterminado del último estado predeterminado" } } }, "boards": { "title": "Tableros", "alert": "Los tableros organizan los tickets en grupos lógicos. Cada tablero puede tener su propio agente predeterminado, prioridad y política SLA.", "table": { "name": "Nombre", "description": "Descripción", "status": "Estado", "default": "Predeterminado", "defaultAgent": "Agente predeterminado", "defaultPriority": "Prioridad predeterminada", "boardManager": "Responsable del tablero", "order": "Orden", "itilBoard": "Tablero ITIL", "actions": "Acciones" }, "statusLabels": { "active": "Activo", "inactive": "Inactivo" }, "actions": { "addBoard": "Agregar tablero", "importStandard": "Importar desde tableros estándar", "edit": "Editar", "delete": "Eliminar", "cancel": "Cancelar", "close": "Cerrar", "create": "Crear", "update": "Actualizar", "importSelected": "Importar selección", "up": "Subir", "down": "Bajar", "remove": "Eliminar", "addStatus": "Agregar estado" }, "fields": { "boardName": { "label": "Nombre del tablero", "placeholder": "Ingrese el nombre del tablero" }, "description": { "label": "Descripción", "placeholder": "Ingrese la descripción del tablero" }, "displayOrder": { "label": "Orden de visualización", "placeholder": "Ingrese el orden de visualización", "help": "Controla el orden en que aparecen los tableros en la lista" }, "inactive": "Marcar como inactivo", "itilCompliant": "Conforme con ITIL", "boardConfiguration": "Configuración del tablero", "boardManager": { "label": "Responsable del tablero", "placeholder": "Seleccione un responsable del tablero", "help": "El usuario responsable de la gestión de este tablero" }, "defaultAssignedAgent": { "label": "Agente asignado predeterminado", "placeholder": "Seleccione el agente predeterminado", "help": "Los nuevos tickets en este tablero se asignarán a este agente de forma predeterminada" }, "defaultPriority": { "label": "Prioridad predeterminada", "placeholder": "Seleccione la prioridad predeterminada", "help": "Los nuevos tickets en este tablero utilizarán esta prioridad de forma predeterminada", "none": "Ninguna" }, "slaPolicy": { "label": "Política SLA", "placeholder": "Seleccione la política SLA", "help": "La política SLA que se aplicará a los tickets de este tablero", "none": "Ninguna" }, "ticketStatusSetup": { "label": "Configuración de estados de tickets", "help": "Elija si este tablero comienza desde un ciclo de vida existente o desde una nueva lista de estados en línea.", "copyExisting": "Copiar desde tablero existente", "createInline": "Crear estados en línea" }, "copyTicketStatuses": { "label": "Copiar estados de tickets desde", "help": "Los tableros nuevos clonan su ciclo de vida de tickets desde un tablero existente.", "selectSource": "Seleccionar un tablero de origen", "noSourceAvailable": "No hay tableros de origen disponibles", "unnamedBoard": "Tablero sin nombre" }, "ticketStatuses": { "labelEditing": "Estados de tickets del tablero", "labelCopied": "Estados de tickets copiados", "labelInline": "Estados de tickets en línea", "helpEditing": "Edite el ciclo de vida de tickets solo para este tablero.", "helpCopied": "Revise y ajuste el ciclo de vida copiado antes de guardar el nuevo tablero.", "helpInline": "Cree el ciclo de vida inicial de tickets del tablero antes de guardar.", "loading": "Cargando estados de tickets del tablero…", "statusName": "Nombre del estado", "closed": "Cerrado", "default": "Predeterminado" }, "inboundReplyReopen": { "enabledLabel": "Reabrir tickets cerrados con respuestas entrantes", "enabledHelp": "Se aplica a las respuestas en hilo coincidentes con tickets ya cerrados en este tablero.", "cutoffHoursLabel": "Límite de reapertura (horas)", "cutoffHoursHelp": "Las respuestas recibidas después de este plazo crean nuevos tickets en lugar de reabrir los antiguos.", "statusLabel": "Estado al reabrir (opcional)", "statusPlaceholder": "Seleccionar estado de reapertura", "statusUseDefault": "Usar el estado abierto predeterminado del tablero", "suppressAiLabel": "Suprimir reapertura para respuestas ACK cortas (IA)", "suppressAiHelp": "Solo complemento Enterprise AI Assistant. Si no está disponible, las respuestas reabren normalmente." }, "liveTimer": { "label": "Activar temporizador de tickets en vivo", "help": "Muestra el temporizador en vivo y los intervalos registrados en los tickets de este tablero. La entrada manual de tiempo sigue disponible." } }, "dialog": { "addBoard": "Agregar tablero", "editBoard": "Editar tablero", "deleteBoardTitle": "Eliminar tablero", "deleteBoardMessage": "Esta acción eliminará permanentemente el tablero.", "cleanupItilTitle": "Limpiar tablero ITIL", "cleanupItilMessage": "Esta acción eliminará las categorías ITIL y la matriz de prioridad asociadas a este tablero.", "deleteOnly": "Solo eliminar", "deleteAndCleanup": "Eliminar y limpiar", "deleteAll": "Eliminar todo", "importTitle": "Importar tableros estándar", "importDescription": "Seleccione los tableros estándar para importar a su organización:", "importEmpty": "No hay tableros estándar disponibles para importar.", "conflictsTitle": "Resolver conflictos de importación", "conflictsDescription": "Los siguientes elementos tienen conflictos que deben resolverse:", "nameConflict": "El nombre ya existe", "skipItem": "Omitir este elemento", "importNewName": "Importar con un nombre diferente:", "importWithResolutions": "Importar con resoluciones", "orderConflict": "El orden {{order}} ya está en uso", "importWithOrder": "Importar con orden {{order}}" }, "importTable": { "active": "Activo" }, "itilInfo": { "title": "Información ITIL", "tooltip": "Este tablero sigue las mejores prácticas ITIL", "categoriesTitle": "Categorías ITIL", "priorityMatrixTitle": "Matriz de prioridad", "impactDescription": "Los niveles de impacto definen el alcance del problema", "urgencyDescription": "Los niveles de urgencia definen la rapidez con que se necesita la resolución", "priorityDescription": "La prioridad se calcula a partir del impacto y la urgencia", "categories": { "serviceRequest": "Solicitud de servicio" }, "priorityMatrix": { "urgencyHeaderLine1": { "high": "Alta", "mediumHigh": "Media-Alta", "medium": "Media", "mediumLow": "Media-Baja", "low": "Baja" }, "urgencyHeaderLine2": { "high": "Urgencia (1)", "mediumHigh": "Urgencia (2)", "medium": "Urgencia (3)", "mediumLow": "Urgencia (4)", "low": "Urgencia (5)" }, "impact": { "high": "Impacto alto (1)", "mediumHigh": "Impacto medio-alto (2)", "medium": "Impacto medio (3)", "mediumLow": "Impacto medio-bajo (4)", "low": "Impacto bajo (5)" }, "priority": { "critical": "Crítica (1)", "high": "Alta (2)", "medium": "Media (3)", "low": "Baja (4)", "planning": "Planificación (5)" } } }, "messages": { "success": { "created": "Tablero creado correctamente", "updated": "Tablero actualizado correctamente", "deleted": "Tablero eliminado correctamente", "imported": "Tableros importados correctamente" }, "error": { "fetchFailed": "Error al cargar los tableros", "fetchAvailableFailed": "Error al obtener los tableros disponibles para importar", "nameRequired": "El nombre del tablero es obligatorio", "saveFailed": "Error al guardar el tablero", "lastDefault": "No se puede eliminar el último tablero predeterminado", "statusRequired": "Agrega al menos un estado de ticket antes de guardar el tablero.", "duplicateStatusName": "Los nombres de estado de ticket deben ser únicos dentro de un tablero.", "invalidOpenDefault": "Selecciona exactamente un estado de ticket abierto predeterminado antes de guardar el tablero.", "nameAlreadyExists": "Ya existe un tablero con este nombre.", "selectBoardToCopy": "Selecciona un tablero existente desde el cual copiar los estados de ticket.", "fetchStatusesFailed": "No se pudieron cargar los estados de ticket del tablero.", "deleteFailed": "No se pudo eliminar el tablero", "importFailed": "No se pudieron importar los tableros", "updateStatusFailed": "No se pudo actualizar el estado del tablero", "updateDefaultFailed": "No se pudo actualizar el tablero predeterminado" } }, "closeRules": { "enabledLabel": "Reglas de cierre", "enabledHelp": "Requiere que se cumplan condiciones antes de poder cerrar los tickets de este tablero.", "requireResolutionCommentLabel": "Requerir comentario de resolución", "requireResolutionCommentHelp": "Debe existir un comentario de resolución antes de que el ticket pueda cerrarse.", "requireTimeEntryLabel": "Requerir registro de tiempo", "requireTimeEntryHelp": "Debe haber al menos un registro de tiempo antes de que el ticket pueda cerrarse.", "requireChecklistCompleteLabel": "Requerir lista de verificación completada", "requireChecklistCompleteHelp": "Todos los elementos obligatorios de la lista de verificación deben estar marcados antes de que el ticket pueda cerrarse.", "requireNoOpenChildrenLabel": "Requerir tickets agrupados cerrados", "requireNoOpenChildrenHelp": "Un ticket maestro no puede cerrarse mientras los tickets hijos agrupados sigan abiertos.", "requiredFieldsLabel": "Campos obligatorios al cerrar", "requiredFieldsHelp": "Estos campos del ticket deben completarse antes de que el ticket pueda cerrarse.", "autoCloseLabel": "Reglas de cierre automático", "autoCloseHelp": "Cierra automáticamente los tickets que permanecen en un estado sin actividad. Se puede enviar un correo de aviso al contacto antes del cierre.", "addAutoCloseRule": "Agregar regla", "triggerStatusLabel": "Cuando el ticket está en estado", "triggerStatusPlaceholder": "Seleccionar estado", "targetStatusLabel": "Cerrar con estado", "targetStatusPlaceholder": "Seleccionar estado cerrado", "inactivityDaysLabel": "Días de inactividad", "warningDaysLabel": "Días de aviso antes del cierre", "warningDaysPlaceholder": "Sin aviso", "ruleEnabledLabel": "Habilitado", "removeRule": "Eliminar", "messages": { "fetchFailed": "Error al cargar las reglas de cierre de este tablero", "autoCloseStatusRequired": "Cada regla de cierre automático requiere un estado de activación y un estado de destino cerrado", "autoCloseDaysInvalid": "Los días de inactividad del cierre automático deben ser un número entero positivo", "autoCloseWarningInvalid": "El tiempo de aviso previo debe ser menor que los días de inactividad" } } }, "priorities": { "title": { "ticket": "Prioridades de tickets", "projectTask": "Prioridades de tareas de proyecto" }, "alert": { "header": "Gestión de prioridades:", "description": "Cree prioridades personalizadas para su organización o importe desde plantillas estándar.", "itilNote": "Las prioridades estándar ITIL no se pueden editar ni eliminar.", "nonItilNote": "Todas las prioridades se pueden editar o eliminar para adaptarse a su flujo de trabajo." }, "table": { "name": "Nombre", "type": "Tipo", "color": "Color", "order": "Orden", "actions": "Acciones", "standardTag": "(Estándar)", "itilProtected": "Protegido" }, "itemTypes": { "ticket": "Ticket", "projectTask": "Tarea de proyecto" }, "actions": { "addPriority": "Agregar prioridad", "importStandard": "Importar desde prioridades estándar", "openMenu": "Abrir menú", "edit": "Editar", "delete": "Eliminar", "cancel": "Cancelar" }, "dialog": { "addTitle": "Agregar nueva prioridad", "editTitle": "Editar prioridad", "submitAdd": "Agregar prioridad", "submitUpdate": "Actualizar prioridad" }, "fields": { "priorityName": { "label": "Nombre de la prioridad", "placeholder": "p. ej., Urgente" }, "orderNumber": { "label": "Número de orden (1-100, los números más altos aparecen primero)", "help": "Controla el orden en que las prioridades aparecen en los menús desplegables de la plataforma. Los números más altos aparecen primero para las prioridades.", "used": "Números de orden usados: {{numbers}}", "noneUsed": "Aún no se han usado números de orden" }, "color": { "label": "Color", "chooseButton": "Elegir color" } }, "import": { "title": "Importar prioridades estándar", "submit": "Importar ({{count}})", "allImportedTicket": "Todas las prioridades estándar ya se han importado para los tickets.", "allImportedProjectTask": "Todas las prioridades estándar ya se han importado para las tareas de proyecto.", "instructions": "Seleccione las prioridades estándar que desea importar. Se copiarán a las prioridades de su organización." }, "messages": { "success": { "deleted": "Prioridad eliminada correctamente", "imported": "{{count}} prioridades importadas correctamente", "skipped": "{{count}} prioridades omitidas (ya existen)" }, "error": { "orderTaken": "El número de orden {{order}} ya está en uso por «{{name}}». Elija un número de orden diferente.", "uniqueConstraint": "Este número de orden ya está en uso. Elija un número de orden diferente.", "saveFailed": "No se pudo guardar la prioridad", "deleteFailed": "No se pudo eliminar la prioridad", "deleteValidationFailed": "No se pudo validar la eliminación. Inténtelo de nuevo.", "importFailed": "No se pudieron importar las prioridades" } }, "entity": { "fallback": "esta prioridad" } }, "checklistTemplates": { "title": "Plantillas de lista de verificación", "alert": "Las plantillas de lista de verificación definen listas reutilizables para tickets. Los elementos de la plantilla se copian en los tickets al aplicarse, por lo que editar una plantilla nunca modifica las listas ya añadidas a los tickets.", "table": { "name": "Nombre", "description": "Descripción", "items": "Elementos", "status": "Estado", "actions": "Acciones" }, "statusLabels": { "active": "Activo", "inactive": "Inactivo" }, "actions": { "addTemplate": "Agregar plantilla", "edit": "Editar", "delete": "Eliminar", "cancel": "Cancelar", "close": "Cerrar", "create": "Crear", "update": "Actualizar", "up": "Subir", "down": "Bajar", "remove": "Eliminar", "addItem": "Agregar elemento", "addRule": "Agregar regla" }, "fields": { "name": { "label": "Nombre de la plantilla", "placeholder": "Ingrese el nombre de la plantilla" }, "description": { "label": "Descripción", "placeholder": "Ingrese la descripción" }, "active": "Activo", "items": { "label": "Elementos de la lista de verificación", "help": "Los elementos se añaden a los tickets en este orden cuando se aplica la plantilla.", "itemName": "Nombre del elemento", "required": "Obligatorio", "newItemLabel": "Nuevo elemento", "newItemPlaceholder": "Ingrese el nombre del elemento" }, "rules": { "label": "Reglas de aplicación automática", "help": "La plantilla se aplica automáticamente a los nuevos tickets que coincidan con alguna de estas reglas. Deje un campo como \"Cualquiera\" para coincidir con todos los valores.", "empty": "Sin reglas de aplicación automática. Esta plantilla puede aplicarse manualmente a los tickets.", "board": "Tablero", "category": "Categoría", "subcategory": "Subcategoría", "priority": "Prioridad", "any": "Cualquiera" } }, "dialog": { "addTemplate": "Agregar plantilla de lista de verificación", "editTemplate": "Editar plantilla de lista de verificación", "createFirstHelp": "Cree la plantilla primero y luego añada elementos de lista de verificación y reglas de aplicación automática.", "deleteTitle": "Eliminar plantilla de lista de verificación", "deleteMessage": "¿Está seguro de que desea eliminar \"{{name}}\"? Las listas de verificación ya añadidas a los tickets no se verán afectadas." }, "messages": { "success": { "created": "Plantilla de lista de verificación creada correctamente", "updated": "Plantilla de lista de verificación actualizada correctamente", "deleted": "Plantilla de lista de verificación eliminada correctamente" }, "error": { "fetchFailed": "Error al obtener las plantillas de lista de verificación", "fetchRulesFailed": "Error al obtener las reglas de aplicación automática", "nameRequired": "El nombre de la plantilla es obligatorio", "saveFailed": "Error al guardar la plantilla de lista de verificación", "deleteFailed": "Error al eliminar la plantilla de lista de verificación", "updateStatusFailed": "Error al actualizar el estado de la plantilla", "itemSaveFailed": "Error al guardar el elemento de la lista de verificación", "ruleSaveFailed": "Error al guardar la regla de aplicación automática" } } } }, "interactions": { "title": "Configuración de interacciones", "tabs": { "types": "Tipos de interacción", "statuses": "Estados de interacción" }, "types": { "title": "Tipos de interacción", "loading": "Cargando tipos de interacción...", "table": { "name": "Nombre", "order": "Orden", "actions": "Acciones" }, "actions": { "addType": "Agregar tipo de interacción", "importStandard": "Importar desde tipos de interacción estándar", "edit": "Editar", "delete": "Eliminar", "cancel": "Cancelar", "importSelected": "Importar seleccionados" }, "dialog": { "import": { "title": "Importar tipos de interacción estándar", "description": "Seleccione los tipos de interacción estándar para importar en su organización:", "empty": "No hay tipos de interacción estándar disponibles para importar." }, "conflicts": { "title": "Resolver conflictos de importación", "description": "Los siguientes elementos tienen conflictos que deben resolverse:", "nameConflict": "El nombre ya existe", "orderConflict": "El orden {{order}} ya está en uso", "skipItem": "Omitir este elemento", "importDifferentName": "Importar con nombre diferente:", "importDifferentOrder": "Importar con orden {{order}}", "resolve": "Importar con resoluciones" } }, "messages": { "success": { "deleted": "Tipo de interacción eliminado", "imported_one": "Se importó {{count}} tipo de interacción", "imported_other": "Se importaron {{count}} tipos de interacción" }, "error": { "fetchFailed": "Error al obtener los tipos de interacción", "validateDeleteFailed": "Error al validar la eliminación del tipo de interacción", "deleteFailed": "Error al eliminar el tipo de interacción", "checkConflicts": "Error al verificar conflictos", "importFailed": "Error al importar los tipos de interacción", "fetchAvailable": "Error al obtener los tipos de interacción disponibles para importar" } } }, "statuses": { "title": "Estados de interacción", "alert": "Estados de interacción: rastree el estado de las interacciones con clientes, como llamadas, correos electrónicos y reuniones.", "table": { "name": "Nombre", "status": "Estado", "order": "Orden", "actions": "Acciones" }, "statusLabels": { "closedHelp": "Las interacciones con este estado se marcarán como cerradas", "openHelp": "Las interacciones con este estado permanecerán abiertas" }, "actions": { "addStatus": "Agregar estado", "importStandard": "Importar desde estándar", "edit": "Editar", "delete": "Eliminar" }, "messages": { "success": { "updated": "Estado actualizado correctamente", "deleted": "Estado eliminado correctamente", "imported": "Se importaron {{count}} estados correctamente" }, "error": { "lastClosed": "Al menos un estado debe permanecer marcado como cerrado", "deleteLastClosed": "No se puede eliminar el último estado cerrado para este tipo.", "skipped": "Se omitieron {{count}} estados ({{reason}})", "importFailed": "No se pudieron importar los estados" } } }, "quickAdd": { "dialog": { "createTitle": "Crear tipo de interacción", "editTitle": "Editar tipo de interacción" }, "fields": { "name": { "label": "Nombre del tipo de interacción:", "placeholder": "p. ej., 'Llamada de incorporación de cliente', 'Demo de ventas', 'Revisión de proyecto'" }, "displayOrder": { "label": "Orden de visualización:", "placeholder": "p. ej., 1, 2, 3..." }, "icon": { "label": "Elija un icono:" } }, "preview": { "title": "Vista previa:", "empty": "Ingrese el nombre del tipo arriba" }, "actions": { "cancel": "Cancelar", "create": "Crear tipo", "update": "Actualizar tipo", "creating": "Creando...", "updating": "Actualizando..." }, "messages": { "error": { "nameRequired": "Ingrese un nombre para el tipo de interacción.", "saveFailed": "Error al {{action}} el tipo de interacción. Inténtelo de nuevo." } } }, "openMenu": "Abrir menú" }, "clientPortal": { "branding": { "title": "Marca y apariencia", "description": "Personalice la apariencia de su portal del cliente con la marca de su empresa.", "fields": { "companyName": "Nombre de la empresa", "companyLogo": "Logotipo de la empresa", "colorPalette": "Paleta de colores", "primaryColor": "Color primario", "secondaryColor": "Color secundario", "supportEmail": "Correo de soporte", "supportPhone": "Teléfono de soporte" }, "help": { "companyName": "Esto se mostrará en el encabezado del portal del cliente", "companyLogo": "Recomendado: PNG o SVG, máximo 2 MB, fondo transparente", "primaryColor": "Se utiliza para botones, enlaces y elementos destacados", "secondaryColor": "Se utiliza para acentos y acciones secundarias", "supportEmail": "Se muestra a los clientes en las confirmaciones de citas y otros correos salientes como dirección de contacto para obtener ayuda.", "supportPhone": "Opcional. Se muestra junto al correo de soporte en los correos enviados a los clientes." }, "preview": "Vista previa", "previewDarkMode": "Vista previa en modo oscuro", "actions": { "saveBranding": "Guardar configuración de marca", "previewDashboard": "Vista previa del panel del cliente", "hideDashboard": "Ocultar panel del cliente", "previewSignIn": "Vista previa de la página de inicio de sesión", "hideSignIn": "Ocultar página de inicio de sesión" }, "customDomainRequired": "Debe tener configurado un dominio personalizado" }, "dashboardPreview": { "title": "Su portal del cliente", "welcome": "Bienvenido de nuevo.", "subtitle": "Aquí tiene un resumen de la actividad de su cuenta", "openTickets": "Tickets abiertos", "activeProjects": "Proyectos activos", "invoices": "Facturas", "urgent": "{{count}} urgente(s)", "nearDeadline": "{{count}} próximo(s) a vencer", "dueThisMonth": "Vencen este mes", "recentActivity": "Actividad reciente", "ticketUpdated": "El ticket #1234 fue actualizado", "hoursAgo": "Hace {{count}} horas", "newInvoice": "Nueva factura generada", "milestoneCompleted": "Hito del proyecto completado", "dayAgo": "Hace 1 día", "createTicket": "Crear ticket", "viewProjects": "Ver proyectos", "activeDevices": "Dispositivos activos", "basicSupport": "Soporte básico", "dashboardTitle": "Panel de control", "greeting": "Buenos días, Alex 👋", "navAppointments": "Citas", "navDashboard": "Panel de control", "navDevices": "Mis dispositivos", "navProjects": "Proyectos", "navServiceRequests": "Solicitudes de servicio", "navTickets": "Tickets", "serviceRequests": "Solicitudes de servicio", "upcomingShort": "Próximas", "upcomingVisits": "Próximas visitas", "welcomeBack": "Bienvenido de nuevo", "workspaceSection": "Espacio de trabajo" }, "signInPreview": { "portalTitle": "Portal de clientes", "welcome": "Bienvenido a su portal del cliente", "subtitle": "Administre sus tickets de soporte y manténgase conectado", "features": { "submitTickets": { "title": "Enviar tickets de soporte", "description": "Cree y administre sus solicitudes de soporte" }, "trackStatus": { "title": "Seguimiento del estado de tickets", "description": "Supervise el progreso en tiempo real" }, "ticketHistory": { "title": "Historial de tickets", "description": "Acceda a su historial completo de soporte" }, "documentation": { "title": "Acceso a documentación", "description": "Consulte documentos y recursos compartidos" } }, "signIn": { "title": "Iniciar sesión", "description": "Ingrese sus credenciales para acceder a su cuenta.", "email": "Correo electrónico", "emailPlaceholder": "Ingrese su correo electrónico", "password": "Contraseña", "passwordPlaceholder": "Ingrese su contraseña", "forgotPassword": "¿Olvidó su contraseña?", "mspStaffLogin": "¿Personal de MSP? Inicie sesión aquí →" } }, "domain": { "title": "Dominio personalizado", "description": "Configure un nombre de host con marca propia para su portal del cliente. Aprovisionaremos los certificados TLS automáticamente una vez verificado el DNS.", "currentStatus": "Estado actual", "noDomainConfigured": "No hay un dominio personalizado configurado", "defaultStatusMessage": "Aún no se ha registrado ningún dominio personalizado.", "lastChecked": "Última verificación: {{value}}", "updatingDomainPrefix": "Actualizando dominio a ", "updatingDomainSuffix": ". El aprovisionamiento se reiniciará una vez que se actualice.", "editInstructions": "Para cambiar su dominio, edite el valor a continuación y envíelo para iniciar una nueva ejecución de aprovisionamiento.", "actions": { "refresh": "Actualizar", "refreshing": "Actualizando...", "retry": "Reintentar", "retrying": "Reintentando…", "removeDomain": "Eliminar dominio", "saveDomain": "Guardar dominio", "updateDomain": "Actualizar dominio", "submitting": "Enviando…", "cancelEdit": "Cancelar edición" }, "form": { "label": "Dominio personalizado", "helpTextPrefix": "Agregue un registro CNAME apuntando a ", "helpTextSuffix": " antes de enviar.", "placeholder": "portal.ejemplo.com" }, "checklist": { "title": "Lista de verificación de configuración", "step1Prefix": "Cree un registro CNAME para el host elegido apuntando a ", "step1Suffix": ".", "step2": "Haga clic en \"Guardar dominio\" para activar la verificación de DNS y el aprovisionamiento del certificado.", "step3": "Use el botón Actualizar para consultar el progreso del aprovisionamiento. Enviaremos un correo electrónico a sus administradores si el aprovisionamiento falla.", "canonicalHostFallback": "host canónico" }, "badges": { "pending_dns": "DNS pendiente", "verifying_dns": "Verificando DNS", "dns_failed": "DNS fallido", "pending_certificate": "Certificado pendiente", "certificate_issuing": "Emitiendo certificado", "certificate_failed": "Certificado fallido", "deploying": "Implementando", "active": "Activo", "disabled": "Deshabilitado", "unknown": "Desconocido" }, "messages": { "requestSubmitted": "Solicitud de dominio personalizado enviada.", "retryQueued": "Reintento en cola. Vuelva a comprobar el estado en unos momentos.", "removalRequested": "Eliminación de dominio personalizado solicitada.", "enterDomainFirst": "Ingrese un dominio antes de enviar.", "confirmRemove": "¿Eliminar el dominio personalizado actual? El tráfico volverá a la dirección alojada predeterminada.", "loadFailed": "No se pudo cargar el estado del dominio del portal.", "registerFailed": "Error al registrar el dominio personalizado.", "refreshFailed": "Error al actualizar el estado del dominio.", "retryFailed": "Reintento fallido.", "disableFailed": "Error al deshabilitar el dominio personalizado." } }, "yourCompanyName": "Nombre de su empresa", "brandingPreviewMode": "Modo de tema de vista previa de marca", "brandingUpdated": "Configuración de marca actualizada" }, "mspLanguage": { "title": "Idioma de la organización", "description": "Establezca el idioma predeterminado para toda la organización: personal MSP, usuarios del portal del cliente y notificaciones por correo electrónico. Cada usuario o cliente puede anularlo individualmente.", "fields": { "defaultLanguage": "Idioma predeterminado", "availableLanguages": "Idiomas disponibles" }, "help": { "defaultLanguage": "Se aplica en todas partes salvo que lo anule la preferencia personal de un usuario o el idioma configurado para un cliente específico.", "availableLanguages": "Seleccione entre qué idiomas pueden elegir los usuarios." } }, "notifications": { "title": "Configuración de notificaciones", "description": { "email": "Configure cómo su inquilino envía notificaciones por correo electrónico", "internal": "Configure cómo su inquilino envía notificaciones internas" }, "viewSwitcher": { "email": "Notificaciones por correo electrónico", "internal": "Notificaciones internas" }, "emailTabs": { "settings": "Configuración", "emailTemplates": "Plantillas de correo electrónico", "categories": "Categorías", "telemetry": "Telemetría" }, "internalTabs": { "categories": "Categorías", "categoriesTypes": "Categorías y tipos" }, "loading": { "settings": "Cargando configuración...", "templates": "Cargando plantillas...", "categories": "Cargando categorías..." }, "unsaved": { "title": "Cambios sin guardar", "message": "Tiene configuración de notificaciones sin guardar. ¿Está seguro de que desea salir? Sus cambios se perderán." }, "tenantDescription": { "email": "Configure los ajustes de notificaciones por correo electrónico para todo el inquilino", "internal": "Configure los ajustes de notificaciones internas para todo el inquilino" }, "sections": { "globalSettings": { "title": "Configuración global", "description": "Configure los ajustes globales de notificaciones" }, "emailTemplates": { "title": "Plantillas de correo electrónico", "description": "Administrar plantillas de notificaciones por correo electrónico" }, "categories": { "title": "Categorías de notificaciones", "description": "Administrar categorías y tipos de notificaciones" }, "internalCategories": { "title": "Categorías de notificaciones internas", "description": "Administrar categorías y tipos de notificaciones internas" }, "telemetry": { "title": "Telemetría y análisis", "description": "Administrar sus preferencias de telemetría y análisis" } } }, "timeEntry": { "title": "Configuración de registro de tiempo", "description": "Administre la configuración de registro de tiempo y los períodos de tiempo" }, "billing": { "title": "Configuración de facturación", "description": "Administre su facturación y suscripción" }, "secrets": { "title": "Gestión de secretos", "description": "Administre secretos cifrados para su uso en flujos de trabajo. Los secretos se pueden referenciar en las acciones de flujos de trabajo utilizando la sintaxis $secret.", "list": { "title": "Secretos", "description": "Administre secretos para su uso en flujos de trabajo. Los secretos están cifrados y se pueden referenciar usando { $secret: \"SECRET_NAME\" }", "search": "Buscar secretos...", "createSecret": "Crear secreto", "table": { "name": "Nombre", "description": "Descripción", "lastUpdated": "Última actualización", "lastAccessed": "Último acceso", "actions": "Acciones", "never": "Nunca", "empty": "-" }, "tooltips": { "edit": "Editar secreto", "delete": "Eliminar secreto" } }, "dialog": { "createTitle": "Crear secreto", "editTitle": "Editar secreto", "deleteTitle": "Eliminar secreto", "fields": { "name": { "label": "Nombre *", "placeholder": "MY_API_KEY", "help": "Use solo letras mayúsculas, números y guiones bajos" }, "value": { "label": "Valor *", "placeholder": "Ingrese el valor del secreto", "editPlaceholder": "Ingrese un nuevo valor para actualizar", "editHelp": "Déjelo vacío para mantener el valor actual" }, "description": { "label": "Descripción", "placeholder": "¿Para qué se utiliza este secreto?" } }, "delete": { "confirmation": "¿Está seguro de que desea eliminar el secreto {{name}}?", "usedByWorkflows": "Este secreto es utilizado por {{count}} flujo(s) de trabajo", "usedByWarning": "Eliminarlo provocará que esos flujos de trabajo fallen cuando intenten acceder a este secreto.", "cannotUndo": "Esta acción no se puede deshacer.", "typeToConfirm": "Escriba {{name}} para confirmar:", "placeholder": "Ingrese el nombre del secreto" }, "actions": { "cancel": "Cancelar", "create": "Crear secreto", "update": "Actualizar secreto", "delete": "Eliminar secreto", "saving": "Guardando...", "deleting": "Eliminando..." } }, "messages": { "success": { "created": "Secreto \"{{name}}\" creado", "updated": "Secreto \"{{name}}\" actualizado", "deleted": "Secreto \"{{name}}\" eliminado" }, "error": { "loadFailed": "Error al cargar los secretos", "deleteFailed": "Error al eliminar el secreto", "saveFailed": "Error al guardar el secreto", "nameRequired": "El nombre del secreto es obligatorio", "valueRequired": "El valor del secreto es obligatorio", "noChanges": "No hay cambios para guardar", "fixValidation": "Corrija los errores de validación" } } }, "importExport": { "title": "Importar y exportar espacio de trabajo", "description": "Configure importaciones, exportaciones y flujos de datos automatizados desde un único centro de control.", "history": { "title": "Historial de importación y exportación", "description": "Revise cada trabajo de importación o exportación en un solo lugar.", "empty": "No se encontraron trabajos de importación o exportación. Genere una vista previa para crear el primer trabajo.", "table": { "date": "Fecha", "source": "Origen", "file": "Archivo", "status": "Estado", "created": "Creados", "duplicates": "Duplicados", "errors": "Errores" } }, "tabs": { "assetImport": "Importar activos", "assetExport": "Exportar activos", "templatesAutomation": "Plantillas y automatización" }, "import": { "fields": { "importSource": "Origen de importación", "uploadFile": "Cargar archivo", "fieldMapping": "Mapeo de campos", "rememberMapping": "Recordar este mapeo para futuras importaciones" }, "placeholders": { "noSources": "No hay orígenes de importación disponibles", "selectSource": "Seleccione un origen de importación", "sourceColumn": "Nombre de la columna de origen", "example": "p. ej., {{example}}" }, "help": { "fieldMapping": "Ingrese los nombres de las columnas de su archivo que corresponden a cada campo de activo requerido. Deje los campos opcionales en blanco para omitirlos." }, "alerts": { "selectSource": "Seleccione un origen de importación para continuar.", "chooseFile": "Elija un archivo CSV o XLSX para continuar.", "validationIssues": "Se detectaron problemas de validación." }, "actions": { "generatePreview": "Generar vista previa", "preparingPreview": "Preparando vista previa...", "proceedWithImport": "Proceder con la importación", "startingImport": "Iniciando importación...", "refresh": "Actualizar", "refreshing": "Actualizando...", "cancel": "Cancelar", "importSelected": "Importar seleccionados" }, "preview": { "title": "Vista previa de importación", "description": "Mostrando hasta las primeras 10 filas de {{totalRows}} registros en total.", "stats": { "total": "Total", "valid": "Válidos", "duplicates": "Duplicados", "errors": "Errores" }, "table": { "row": "Fila", "values": "Valores", "issues": "Problemas" }, "empty": "No hay filas de vista previa disponibles." } }, "export": { "comingSoon": "Las herramientas de exportación de activos estarán disponibles próximamente. Las capacidades previstas incluyen la exportación de listas de activos filtradas, datos de auditoría y plantillas de mapeo directamente a CSV/XLSX." }, "templates": { "comingSoon": "Las plantillas de mapeo y las importaciones programadas se ubicarán aquí. Guarde mapeos de columnas, compártalos con el equipo y configure trabajos recurrentes." }, "jobDetails": { "title": "Detalles del trabajo de importación", "stats": { "totalRows": "Filas totales", "processed": "Procesados", "created": "Creados", "updated": "Actualizados", "duplicates": "Duplicados", "errors": "Errores" }, "sections": { "summary": "Resumen", "records": "Registros ({{count}})", "errors": "Errores ({{count}})", "duplicates": "Duplicados ({{count}})" }, "fields": { "source": "Origen", "originalFileName": "Nombre del archivo original", "storedFileId": "ID del archivo almacenado", "documentId": "ID del documento", "documentAssociation": "Asociación del documento", "clientAssociation": "Asociación del cliente", "associatedClient": "Cliente asociado", "defaultClientContext": "Contexto del cliente predeterminado", "tenantClientFallback": "Respaldo del cliente del inquilino", "externalId": "ID externo", "status": "Estado", "sampleValues": "Valores de muestra", "error": "Error", "duplicateMatch": "Coincidencia de duplicado" }, "empty": { "noRecords": "Aún no hay registros procesados.", "noErrors": "No se registraron errores de validación.", "noDuplicates": "No se detectaron duplicados para este trabajo.", "noValues": "Sin valores" }, "truncated": "Mostrando los primeros {{count}} registros. Descargue los resultados del trabajo para el historial completo." }, "messages": { "error": { "loadImportData": "No se pudieron cargar los datos de importación", "createPreview": "No se pudo crear la vista previa", "selectPreviewFirst": "Selecciona una vista previa para aprobar antes de importar.", "startImportJob": "No se pudo iniciar el trabajo de importación", "loadJobDetails": "No se pudieron cargar los detalles del trabajo", "refreshHistory": "No se pudo actualizar el historial de importación" } }, "selectJobHint": "Seleccione un trabajo de importación para inspeccionar sus resultados." }, "email": { "title": "Configuración de correo electrónico", "description": "Configure proveedores de correo electrónico, dominios y ajustes" }, "extensions": { "title": "Gestión de extensiones", "description": "Instale, configure y administre extensiones para ampliar la funcionalidad de Alga PSA.", "tabs": { "manage": "Administrar", "install": "Instalar" }, "enterpriseOnly": { "title": "Función empresarial", "description": "Las extensiones están disponibles en la edición Enterprise de Alga PSA." }, "links": { "needLogs": "¿Necesita registros de extensiones?", "debugConsole": "Abrir consola de depuración de demostración del proxy de servicio" }, "loading": { "extensions": "Cargando extensiones...", "installer": "Cargando instalador..." } }, "security": { "title": "Configuración de seguridad", "tabs": { "roles": "Roles", "sessions": "Sesiones", "sso": "Inicio de sesión único", "permissions": "Permisos", "userRoles": "Roles de usuario", "policies": "Políticas", "apiKeys": "Claves API" }, "loading": { "roles": "Cargando configuración de roles...", "permissions": "Cargando configuración de permisos...", "userRoles": "Cargando configuración de roles de usuario...", "policies": "Cargando configuración de políticas...", "apiKeys": "Cargando configuración de claves API...", "sso": "Cargando herramientas de gestión de SSO...", "sessions": "Cargando sesiones activas..." }, "userRoles": { "title": "Asignar roles a usuarios", "description": { "msp": "Administrar asignaciones de roles de usuario para usuarios de MSP", "client": "Administrar asignaciones de roles de usuario para usuarios del portal del cliente" }, "viewSwitcher": { "msp": "MSP", "clientPortal": "Portal de clientes" }, "showInactive": "Mostrar usuarios inactivos", "fields": { "selectUser": "Seleccionar usuario", "selectRole": "Seleccionar rol" }, "actions": { "assignRole": "Asignar rol" }, "table": { "user": "Usuario", "email": "Correo electrónico", "roles": "Roles", "actions": "Acciones" }, "noRolesAssigned": "No hay roles asignados", "removeRole": "Eliminar {{role}}", "emptyState": { "noUsers": "No se encontraron usuarios de tipo {{type}}", "inactiveHidden": "(usuarios inactivos ocultos)" }, "inactiveTag": "(Inactivo)" }, "sessions": { "title": "Todas las sesiones de usuarios", "filters": { "search": "Buscar", "searchPlaceholder": "Buscar por nombre, correo electrónico, dispositivo o IP...", "user": "Usuario", "allUsers": "Todos los usuarios", "loginMethod": "Método de inicio de sesión", "allMethods": "Todos los métodos", "userType": "Tipo de usuario", "allTypes": "Todos los tipos", "from": "Desde", "to": "Hasta", "selectDate": "Seleccionar fecha", "reset": "Restablecer" }, "loginMethods": { "password": "Contraseña", "google": "OAuth de Google", "microsoft": "OAuth de Microsoft", "keycloak": "Keycloak" }, "userTypes": { "internal": "Interno", "client": "Cliente" }, "session": { "yourSession": "Su sesión", "unknownDevice": "Dispositivo desconocido", "lastActive": "Última actividad hace {{time}}", "logout": "Cerrar sesión", "revoke": "Revocar", "revoking": "Revocando..." }, "oauthWarning": "Revocar esta sesión no revocará el acceso de OAuth de {{provider}}. Revoque el acceso desde la configuración de su cuenta de {{provider}}.", "confirmLogout": "¿Está seguro de que desea cerrar sesión en este dispositivo?", "messages": { "loggingOut": "Cerrando sesión...", "revoked": "Sesión revocada correctamente" }, "emptyState": { "loading": "Cargando sesiones...", "noMatch": "Ninguna sesión coincide con su búsqueda", "noSessions": "No se encontraron sesiones activas" }, "subtitle_one": "{{sessionCount}} sesión activa en {{userCount}} usuario", "subtitle_other": "{{sessionCount}} sesiones activas en {{userCount}} usuarios" } }, "ssoBulk": { "loading": { "title": "Inicio de sesión único", "description": "Cargando herramientas de asignación masiva de SSO..." }, "autoLink": { "title": "Configurar SSO automáticamente para nuevos usuarios internos", "description": "Active esta opción para aprovisionar cada nueva cuenta de personal con su proveedor SSO corporativo de inmediato, de modo que nunca necesiten un inicio de sesión basado en contraseña.", "body": "Cuando está habilitado, los nuevos usuarios MSP añadidos pueden iniciar sesión con Google o Microsoft utilizando su correo electrónico de trabajo. No tendrán que vincular su cuenta manualmente.", "toggleLabel": "Alternar coincidencia automática de SSO", "disabledInfo": "Active este interruptor para permitir que el personal nuevo y existente omita el flujo de \"Conectar SSO\" cuando su correo electrónico ya coincide con un proveedor configurado. Aún registraremos cada vínculo automático." }, "bulk": { "title": "Asignación masiva de inicio de sesión único", "description": "Seleccione los usuarios internos de la lista a continuación y vincúlelos a un proveedor de Google o Microsoft configurado. Use la vista previa para verificar el impacto antes de ejecutar.", "noProviders": "Aún no hay proveedores SSO configurados. Agregue credenciales OAuth para continuar con las asignaciones masivas." }, "errors": { "loadProviders": "No se pudo cargar la configuración del proveedor SSO.", "updatePreferences": "No se pudieron actualizar las preferencias de SSO." }, "form": { "title": "Elegir proveedor y seleccionar usuarios", "description": "Elija el proveedor SSO configurado para su personal, luego busque y seleccione los usuarios que deben vincularse.", "providerLabel": "Proveedor", "notConfigured": "No configurado", "providerNotConfiguredAlert": "Proporcione credenciales OAuth para este proveedor antes de vincular cuentas.", "actionLabel": "Acción", "linkSelected": "Vincular usuarios seleccionados", "unlinkSelected": "Desvincular usuarios seleccionados", "actionPlaceholder": "Seleccionar acción masiva de SSO", "actionDescription": "Vincular agrega el proveedor a cada usuario seleccionado. Desvincular elimina el proveedor para que el usuario regrese al inicio de sesión con contraseña/TOTP hasta que vuelva a vincularse.", "searchLabel": "Buscar usuarios internos", "searchPlaceholder": "Buscar por correo electrónico o nombre", "noneSelected": "Aún no hay usuarios seleccionados.", "selected_one": "{{count}} usuario seleccionado.", "selected_other": "{{count}} usuarios seleccionados.", "clearSelection": "Limpiar selección", "loadingUsers": "Cargando usuarios...", "noMatch": "Ningún usuario coincide con esta búsqueda.", "noUsers": "No se encontraron usuarios internos.", "clientPortalComing": "Las asignaciones masivas del portal del cliente estarán disponibles próximamente. Por ahora, esta herramienta se aplica solo a usuarios MSP internos.", "loadUsersFailed": "No se pudieron cargar los usuarios asignables.", "actions": { "previewLink": "Vista previa de asignación", "previewUnlink": "Vista previa de desvinculación", "link": "Vincular cuentas", "unlink": "Desvincular cuentas", "preparingPreview": "Preparando vista previa…", "linking": "Vinculando cuentas…", "unlinking": "Desvinculando cuentas…", "bulkLabel": "Acciones masivas SSO {{location}}" }, "table": { "email": "Email", "id": "ID", "name": "Nombre", "status": "Estado", "active": "Activo", "inactive": "Inactivo", "linkedProviders": "Proveedores vinculados", "unlinked": "Sin vincular", "lastLogin": "Último inicio de sesión" }, "toast": { "providerRequiredTitle": "Proveedor requerido", "providerRequiredDescription": "Seleccione un proveedor configurado antes de continuar.", "noUsersTitle": "No hay usuarios seleccionados", "noUsersDescription": "Seleccione al menos un usuario de la tabla.", "failedTitle": "Error en la asignación masiva", "failedDescription": "No se pudo procesar la asignación masiva de SSO.", "linkCompleteTitle": "Vinculación completada", "unlinkCompleteTitle": "Desvinculación completada", "previewReadyTitle": "Vista previa lista", "linkedCount": "Se vincularon {{count}} cuentas mediante {{provider}}.", "unlinkedCount": "Se desvincularon {{count}} cuentas mediante {{provider}}.", "previewUnlink_one": "Vista previa lista. Desvincularemos {{count}} usuario seleccionado.", "previewUnlink_other": "Vista previa lista. Desvincularemos {{count}} usuarios seleccionados.", "previewLink": "Vista previa lista. Revise el resumen antes de vincular las cuentas." }, "results": { "completeTitle": "Asignación completada", "previewTitle": "Resultados de la vista previa", "noneMatched": "Ninguno de los usuarios seleccionados coincide con los filtros actuales.", "processed_one": "Se procesó {{count}} usuario.", "processed_other": "Se procesaron {{count}} usuarios.", "candidatesSelected": "{{count}} seleccionados", "unlinked": "Desvinculados", "wouldUnlink": "Se desvincularía", "linked": "Vinculados", "wouldLink": "Se vincularía", "alreadyUnlinked": "Ya desvinculados", "alreadyLinked": "Ya vinculados", "skippedInactive": "Omitidos (inactivos)" }, "providerNames": { "google": "Google Workspace", "microsoft": "Microsoft 365" } } }, "profile": { "tabs": { "profile": "Perfil", "security": "Seguridad", "sso": "Inicio de sesión único", "apiKeys": "Claves API", "notifications": "Notificaciones", "calendar": "Calendario" }, "basicInfo": { "title": "Información básica" }, "fields": { "firstName": { "label": "Nombre *" }, "lastName": { "label": "Apellido *" }, "email": { "label": "Correo electrónico *" }, "phoneNumber": { "label": "Número de teléfono" }, "timeZone": { "label": "Zona horaria" } }, "actions": { "saveChanges": "Guardar cambios" }, "notifications": { "title": "Preferencias de notificaciones", "viewSwitcher": { "email": "Correo electrónico", "internal": "Internas" } }, "loading": "Cargando perfil...", "messages": { "success": { "profileUpdated": "Perfil actualizado correctamente" }, "error": { "userNotFound": "Usuario no encontrado", "fillRequiredFields": "Complete todos los campos obligatorios", "saveFailed": "No se pudo guardar el perfil", "emailAlreadyExists": "Ya existe un usuario con esta dirección de correo electrónico", "reportsToSelf": "Un usuario no puede reportarse a sí mismo", "reportsToCycle": "Esto crearía una cadena de reporte circular" } }, "validation": { "firstNameRequired": "El nombre es obligatorio", "lastNameRequired": "El apellido es obligatorio" }, "pageTitle": "Su perfil" }, "password": { "changePassword": "Cambiar contraseña", "fields": { "currentPassword": "Contraseña actual", "newPassword": "Nueva contraseña", "confirmNewPassword": "Confirmar nueva contraseña" }, "messages": { "success": { "changed": "Contraseña cambiada correctamente" }, "error": { "mismatch": "Las nuevas contraseñas no coinciden", "tooShort": "La contraseña debe tener al menos 8 caracteres", "changeFailed": "Se produjo un error al cambiar la contraseña" } } }, "integrations": { "betaNotice": "Algunas integraciones aún están en desarrollo. Por favor, trabaje en un entorno sandbox al evaluar y comparta sus comentarios para ayudarnos a mejorar.", "emptyCategory": "No hay integraciones disponibles en esta categoría.", "rmmEnterpriseNote": "Las integraciones RMM están disponibles en la edición Enterprise.", "categoryHeading": "Integraciones de {{label}}", "loading": { "payments": "Cargando configuración de pagos..." }, "categories": { "accounting": { "label": "Contabilidad", "description": "Seleccione un paquete contable para configurar la sincronización de facturas, pagos y datos fiscales." }, "rmm": { "label": "RMM", "description": "Conecte herramientas de monitoreo y gestión remota" }, "itDocumentation": { "label": "Documentación de TI", "description": "Conecte plataformas de documentación de TI para mostrar la documentación, los activos y las credenciales de los clientes en contexto." }, "communication": { "label": "Comunicación", "description": "Conecte superficies de bandeja de entrada y colaboración para procesamiento de tickets, flujos de trabajo de operadores y acceso a Microsoft Teams." }, "calendar": { "label": "Calendario", "description": "Sincronización de calendario exclusiva de Enterprise para Google y Outlook mantiene el despacho y las citas con clientes alineados." }, "providers": { "label": "Proveedores", "description": { "ee": "Configure credenciales compartidas de proveedores utilizadas por correo electrónico, calendario, MSP SSO y otras integraciones.", "oss": "Configure credenciales compartidas de proveedores utilizadas por correo electrónico, MSP SSO y otras integraciones." } }, "identity": { "label": "Identidad", "description": "Conecte proveedores de identidad para descubrimiento de inquilinos y sincronización de contactos." }, "payments": { "label": "Pagos", "description": "Acepte pagos en línea para facturas" } }, "items": { "accountingSetup": { "name": "Integraciones contables", "description": "Configure la sincronización y exportaciones contables" }, "rmmSetup": { "name": "Integraciones RMM", "description": "Seleccione y configure su proveedor RMM" }, "hudu": { "name": "Hudu", "description": "Conecte una instancia de Hudu para ver la documentación y las credenciales de los clientes dentro de AlgaPSA." }, "email": { "name": "Correo entrante", "description": "Procese correos entrantes como tickets", "cardTitle": "Integración de correo entrante", "cardDescription": "Configure proveedores de correo electrónico para procesar automáticamente correos entrantes como tickets" }, "teams": { "name": "Microsoft Teams", "description": "Configure superficies de colaboración de Teams para técnicos MSP", "upgradeDescription": "Configure superficies de colaboración de Microsoft Teams para técnicos MSP. Actualice a Pro para desbloquear esta función." }, "calendarSync": { "name": "Sincronización de calendario", "description": "Sincronice entradas de programación con calendarios de Google o Microsoft" }, "google": { "name": "Google", "description": { "ee": "Credenciales de Google Cloud propiedad del inquilino para Gmail y Calendario", "oss": "Credenciales de Google Cloud propiedad del inquilino para Gmail y flujos de soporte MSP SSO" }, "cardTitle": "Credenciales de proveedor", "cardDescription": { "ee": "Configure Google y Microsoft primero, luego conecte cuentas de proveedores desde las pantallas de integración de correo entrante y calendario. El descubrimiento de dominios MSP SSO utiliza estas credenciales de proveedor con asignaciones de dominios de inicio de sesión del inquilino.", "oss": "Configure Google y Microsoft primero, luego conecte cuentas de proveedores desde la pantalla de integración de correo entrante. El descubrimiento de dominios MSP SSO utiliza estas credenciales de proveedor con asignaciones de dominios de inicio de sesión del inquilino." } }, "entra": { "name": "Microsoft Entra", "description": "Descubra inquilinos Microsoft administrados y sincronice usuarios a contactos", "upgradeDescription": "Descubra inquilinos Microsoft Entra administrados y sincronice usuarios a contactos. Actualice a Premium para desbloquear esta función." }, "stripe": { "name": "Stripe", "description": "Acepte pagos con tarjeta de crédito para facturas a través de Stripe" } } }, "orgChart": { "emptyState": "No hay usuarios disponibles.", "roles": { "client": "Usuario del cliente", "internal": "Usuario interno" }, "badge": { "inactive": "Inactivo" } }, "permissions": { "messages": { "adminLocked": "Los permisos del rol de administrador no se pueden modificar", "permissionsUpdated": "Permisos actualizados correctamente" } }, "sla": { "messages": { "scheduleNotFound": "Horario no encontrado", "scheduleUpdated": "Horario actualizado correctamente", "scheduleCreated": "Horario creado correctamente", "scheduleDeleted": "Horario eliminado correctamente", "defaultHoursCreated": "Horario de atención predeterminado creado", "scheduleRequired": "Seleccione primero un horario", "holidayNameRequired": "El nombre del festivo es obligatorio", "holidayDateRequired": "La fecha del festivo es obligatoria", "holidayAdded": "Festivo añadido correctamente", "holidayDeleted": "Festivo eliminado correctamente" } }, "clientPortalLanguage": { "title": "Idioma del portal del cliente", "description": "Anule el idioma predeterminado solo para los usuarios del portal del cliente. El personal MSP mantiene el predeterminado de la organización.", "fields": { "defaultLanguage": "Idioma predeterminado" }, "help": { "defaultLanguage": "Cuando se define, los usuarios del portal del cliente ven este idioma, a menos que lo anule su preferencia individual o el idioma configurado para su cliente." }, "placeholder": "Seleccione un idioma", "inheritOption": "Usar el predeterminado de la organización ({{language}})", "unsetHint": "Para eliminar la anulación del portal del cliente, cambie el predeterminado de la organización en Configuración → Idioma.", "updated": "Idioma predeterminado del portal del cliente actualizado a {{language}}" }, "language": { "selectLanguage": "Seleccionar un idioma", "languagesUpdated": "Idiomas disponibles actualizados" }, "settings": { "assetTypes": { "tab": "Activos", "title": "Tipos de activos", "description": "Administre los tipos de activos disponibles en su módulo de activos. Los tipos personalizados llevan un esquema de campos que define sus formularios de creación y edición.", "loading": "Cargando tipos de activos...", "table": { "name": "Nombre", "builtin": "Integrado", "slug": "Identificador", "fieldCount": "Campos", "order": "Orden", "actions": "Acciones", "openMenu": "Abrir menú" }, "actions": { "addType": "Agregar tipo de activo", "edit": "Editar", "delete": "Eliminar", "cancel": "Cancelar", "save": "Guardar", "create": "Crear", "confirmDelete": "Eliminar" }, "dialog": { "createTitle": "Agregar tipo de activo", "editTitle": "Editar tipo de activo", "nameLabel": "Nombre", "namePlaceholder": "p. ej., Firewall", "displayOrderLabel": "Orden de visualización", "iconLabel": "Icono", "builtinSchemaHint": "Los tipos integrados usan formularios fijos administrados por AlgaPSA, por lo que su esquema de campos no se puede editar. Aún puede cambiar el nombre del tipo o su icono." }, "deleteDialog": { "title": "Eliminar tipo de activo", "message": "Esto elimina permanentemente \"{{name}}\" del registro de tipos de activos." }, "messages": { "created": "Tipo de activo creado", "updated": "Tipo de activo actualizado", "deleted": "Tipo de activo eliminado" }, "errors": { "fetchFailed": "No se pudieron cargar los tipos de activos.", "saveFailed": "No se pudo guardar el tipo de activo.", "deleteFailed": "No se pudo eliminar el tipo de activo.", "invalidName": "Ingrese un nombre para este tipo de activo.", "invalidSchema": "El esquema de campos no es válido. Corrija los campos resaltados e inténtelo de nuevo.", "reservedSlug": "El identificador \"{{slug}}\" está reservado para un tipo integrado. Elija otro nombre.", "slugConflict": "Ya existe un tipo de activo con el identificador \"{{slug}}\".", "notFound": "Este tipo de activo ya no existe.", "builtinImmutable": "Los tipos integrados solo permiten cambiar el nombre y el icono.", "builtinUndeletable": "Los tipos integrados no se pueden eliminar.", "inUse": "Este tipo todavía lo usan {{assetCount}} activo(s). Reasigne esos activos antes de eliminarlo.", "unknown": "Algo salió mal." }, "editor": { "title": "Campos", "empty": "Aún no hay campos. Agregue campos para construir el formulario de creación/edición de este tipo.", "addField": "Agregar campo", "fieldLabel": "Etiqueta", "fieldLabelPlaceholder": "p. ej., Número de serie", "fieldKey": "Clave", "fieldKeyPlaceholder": "p. ej., serial_number", "fieldKind": "Tipo", "fieldRequired": "Obligatorio", "fieldOptions": "Opciones (separadas por comas)", "fieldOptionsPlaceholder": "p. ej., Oro, Plata, Bronce", "moveUp": "Mover campo hacia arriba", "moveDown": "Mover campo hacia abajo", "removeField": "Quitar campo", "kinds": { "text": "Texto", "number": "Número", "date": "Fecha", "select": "Selección", "url": "URL", "boolean": "Sí / No" }, "errors": { "invalidKey": "La clave debe comenzar con una letra minúscula y usar solo letras minúsculas, números y guiones bajos.", "duplicateKey": "Cada clave de campo debe ser única.", "missingLabel": "La etiqueta es obligatoria.", "invalidKind": "Elija un tipo de campo válido.", "invalidRequired": "\"Obligatorio\" debe estar activado o desactivado.", "missingOptions": "Los campos de selección necesitan al menos una opción.", "invalidOptions": "Las opciones no pueden estar vacías.", "invalidField": "Este campo no es válido." } } } } }