metis-desk/modules/resources/src/common/locales/es.json
David 72c2a5101d feat: implement resource lifecycle management with delete functionality
- Added `verifyResourceLifecycle` integration to handle resource lifecycle operations.
- Introduced `remove` method in `IResourceRepository` and implemented it in `SequelizeResourceRepository`.
- Created `DeleteResourceDialog` component for confirming resource deletion.
- Updated `resource.use-cases` to include `remove` and `setActive` methods for managing resource states.
- Enhanced API routes to support resource status updates and deletions.
- Added tests for resource lifecycle operations, ensuring correct behavior for activation, deactivation, and deletion.
- Updated UI components to integrate new deletion functionality and provide feedback on resource status changes.
- Improved localization for resource lifecycle actions in both English and Spanish.
2026-10-17 13:58:29 +02:00

229 lines
12 KiB
JSON

{
"templateIcon": {
"label": "Icono",
"none": "Sin icono",
"help": "Se muestra en el catálogo y en los recursos de esta plantilla.",
"options": {
"mail": "Correo",
"key": "Acceso",
"folder": "Carpeta",
"headphones": "Asistencia",
"monitor": "Sistema operativo",
"layers": "Aplicación",
"shield": "Certificado",
"file-key": "Licencia",
"box": "Recurso"
}
},
"resourcePanel": "Ficha del recurso",
"closeResourcePanel": "Cerrar panel del recurso",
"showResourcePanel": "Mostrar panel del recurso",
"allResources": "Todo",
"filterByTemplate": "Filtrar por plantilla",
"inventory": "Recursos",
"mailboxKind": "Tipo de buzón",
"corporate": "Corporativo",
"external": "Externo",
"relatedAccount": "Cuenta relacionada",
"resourceTypeId": "Tipo de acceso",
"systemId": "Sistema",
"environmentId": "Entorno",
"newResource": "Nuevo recurso",
"editResource": "Editar recurso",
"viewResource": "Ficha e historial",
"template": "Plantilla de recurso",
"status": "Estado",
"active": "Activo",
"inactive": "Inactivo",
"notes": "Notas",
"characteristics": "Características",
"chooseValue": "Selecciona un valor",
"noValue": "—",
"history": "Historial",
"recordedBy": "Registrado por {{name}}",
"snapshotNotice": "La ficha conserva los campos de la plantilla utilizados al dar de alta el recurso.",
"resourceDescription": "Registra un buzón, carpeta compartida, aplicación, certificado, licencia de software o herramienta de asistencia de esta compañía.",
"resourceExamples": "Ejemplos: administracion@empresa.es, carpeta Administración, Zoom corporativo, certificado de firma o suscripción Microsoft 365.",
"resourceGuidance": "Las características son opcionales salvo que la plantilla indique lo contrario. No registres contraseñas ni claves privadas.",
"resourceScope": "Este registro identifica el recurso de la compañía. Su disponibilidad y su configuración en los equipos se gestionan por separado.",
"licenseDescription": "Registra una licencia o suscripción de software contratada por esta compañía.",
"licenseExamples": "Ejemplos: Microsoft 365 Business Standard por usuario, ESET Endpoint por dispositivo o una licencia perpetua de ERP.",
"licenseGuidance": "Todos los campos son opcionales. Cantidad contratada indica las plazas o unidades del contrato. Caducidad y renovación pueden ser distintas; una licencia perpetua puede no tener caducidad. No registres claves de activación.",
"licenseScope": "La aplicación utilizada y la licencia contratada son recursos distintos. Este registro no asigna plazas ni calcula cuántas quedan disponibles.",
"relatedNotice": "La plantilla se guardará aunque después canceles el recurso.",
"inventoryErrors": {
"INVALID_REQUEST": "Revisa los datos del formulario.",
"INVALID_EMAIL": "Introduce una dirección de correo válida.",
"CONTEXT_FIXED": "El tipo y contexto del recurso no se pueden cambiar.",
"REFERENCE_UNAVAILABLE": "Selecciona referencias válidas de esta compañía.",
"INVALID_CHARACTERISTICS": "Una característica no pertenece a la plantilla o tiene un valor inválido.",
"REQUIRED_CHARACTERISTICS": "Completa las características obligatorias de la plantilla.",
"TEMPLATE_FIXED": "La plantilla de un recurso no puede cambiar.",
"TEMPLATE_UNAVAILABLE": "Selecciona una plantilla activa de recursos de este ámbito.",
"NAME_EXISTS": "Ya existe un recurso con ese nombre y plantilla en esta compañía.",
"RESOURCE_NOT_FOUND": "No se ha encontrado el recurso.",
"COMPANY_NOT_FOUND": "No se ha encontrado la compañía.",
"FORBIDDEN": "La sesión no permite esta operación. Vuelve a iniciar sesión.",
"UNAUTHENTICATED": "Vuelve a iniciar sesión.",
"INTERNAL_ERROR": "No se ha podido completar la operación.",
"RESOURCE_IN_USE": "El recurso tiene asociaciones actuales o históricas. Desactívalo para conservarlas o retira sus asociaciones antes de eliminarlo."
},
"yes": "Sí",
"no": "No",
"title": "Catálogo de recursos",
"companyTitle": "Catálogo de recursos",
"introduction": "Define las características y plantillas que utilizarás al registrar recursos.",
"companyIntroduction": "Utiliza las definiciones globales y añade las que necesite esta compañía.",
"fields": "Campos",
"templates": "Plantillas",
"newField": "Nuevo campo",
"editField": "Editar campo",
"newTemplate": "Nueva plantilla",
"templateUsage": "Uso de la plantilla",
"templateUsageHelp": "Permite utilizar estos recursos como aplicaciones de perfiles, sistemas operativos, certificados, herramientas de asistencia remota o licencias de software. El uso se fija al crear la plantilla.",
"usage": {
"general": "General",
"application": "Aplicación",
"certificate": "Certificado digital",
"support": "Asistencia remota",
"os": "Sistema operativo",
"license": "Licencia de software"
},
"editTemplate": "Editar plantilla",
"name": "Nombre",
"description": "Descripción",
"type": "Tipo de dato",
"unit": "Unidad",
"choices": "Valores de la lista",
"choicesHelp": "Escribe un valor por línea. Los valores existentes se conservan; puedes añadir otros.",
"text": "Texto",
"number": "Número",
"date": "Fecha",
"boolean": "Sí / No",
"choice": "Lista de valores",
"activate": "Activar",
"deactivate": "Desactivar",
"inherited": "Configuración global",
"overridden": "Personalizado en esta compañía",
"reset": "Usar configuración global",
"builtin": "De serie",
"global": "Global",
"own": "De la compañía",
"custom": "Personalizado",
"origin": "Origen",
"actions": "Acciones",
"edit": "Editar",
"copy": "Crear copia",
"copyName": "{{name}} (copia)",
"fieldCount": "{{count}} campos",
"search": "Buscar",
"empty": "No hay resultados.",
"loading": "Cargando catálogo…",
"retry": "Reintentar",
"save": "Guardar",
"saving": "Guardando…",
"cancel": "Cancelar",
"selectField": "Añadir campos a la plantilla",
"choose": "Selecciona un campo",
"addField": "Nuevo campo",
"required": "Obligatorio",
"chooseType": "Selecciona un tipo",
"view": "Ver",
"close": "Cerrar",
"viewDefinition": "{{name}}",
"remove": "Retirar campo: {{name}}",
"noFields": "Añade al menos un campo. Todos son opcionales inicialmente.",
"fieldHelpText": "Texto de ayuda",
"fieldHelpHint": "Se muestra junto al campo al crear o editar un recurso.",
"protected": "Las plantillas y campos de serie se pueden editar desde el catálogo global. El tipo de dato de un campo se mantiene fijo. Puedes cambiar la disponibilidad o crear una copia de una plantilla para una compañía.",
"helpTitle": "¿Qué es y para qué sirve?",
"examplesLabel": "Ver ejemplos y recomendaciones",
"fieldDescription": "Un campo describe una característica que podrás rellenar en un recurso. Puedes reutilizarlo en varias plantillas.",
"fieldExamples": "Ejemplos: Dirección de correo (texto), Caducidad (fecha), URL (texto) o Proveedor (texto).",
"fieldGuidance": "Añade una unidad solo si resulta útil. No guardes contraseñas ni secretos. El tipo de dato queda fijo después del alta.",
"templateDescription": "Una plantilla reúne los campos que se mostrarán para un tipo de recurso. No representa un buzón, carpeta, aplicación o certificado concreto.",
"templateExamples": "Buzón: dirección y proveedor. Carpeta compartida: ruta UNC. Certificado: titular, emisor y caducidad.",
"templateGuidance": "Las características son opcionales por defecto. Marca como obligatorio solo lo que siempre se conozca. Retirar un campo de una plantilla no elimina el campo del catálogo.",
"globalHelp": "Ámbito global: disponible para todas las compañías.",
"companyHelp": "Ámbito de compañía: estas adiciones y cambios de disponibilidad solo afectan a esta compañía.",
"disabledField": "Campo inactivo: se conserva en esta plantilla.",
"disabledFieldsNotice": "Esta plantilla contiene campos inactivos. Puedes activarlos en el catálogo antes de utilizarla.",
"quickNotice": "El campo se guardará aunque después canceles la plantilla.",
"errors": {
"INVALID_REQUEST": "Revisa los datos del formulario.",
"INVALID_CHOICES": "Una lista necesita valores únicos y no vacíos. Los demás tipos no admiten valores de lista.",
"INVALID_FIELDS": "La plantilla necesita campos distintos y válidos.",
"NAME_EXISTS": "Ya existe una definición de este tipo con ese nombre.",
"FIELD_UNAVAILABLE": "Solo puedes añadir campos activos de recursos del catálogo global o de esta compañía.",
"FIELD_TYPE_FIXED": "El tipo de dato y el uso de la plantilla quedan fijos; tampoco se pueden eliminar valores existentes de una lista.",
"BUILTIN_PROTECTED": "Los campos de serie no se pueden modificar.",
"DEFINITION_NOT_FOUND": "La definición no está disponible en este ámbito.",
"COMPANY_NOT_FOUND": "No se ha encontrado la compañía.",
"INTERNAL_ERROR": "No se ha podido completar la operación.",
"FORBIDDEN": "La sesión no permite esta operación. Vuelve a iniciar sesión.",
"UNAUTHENTICATED": "Vuelve a iniciar sesión.",
"INVALID_SECTIONS": "Las secciones deben tener nombres únicos y cada campo debe pertenecer a una sección de esta plantilla."
},
"fieldPicker": {
"destination": "Sección de destino: {{name}}",
"limit": "Has alcanzado el límite de campos de la plantilla. Desmarca campos de esta selección o retira alguno de la plantilla para añadir otros.",
"open": "Seleccionar campos",
"title": "Añadir campos a la plantilla",
"help": "Selecciona uno o más campos y confirma para añadirlos como opcionales en la sección de destino. Solo se muestran campos activos que todavía no están en la plantilla.",
"select": "Seleccionar",
"selectField": "Seleccionar {{name}}",
"selected": "Campos seleccionados: {{count}}",
"confirm": "Añadir campos",
"empty": "No hay más campos disponibles para añadir.",
"invalid": "La selección supera el límite de campos de la plantilla."
},
"sections": {
"addField": "Añadir campo",
"expand": "Desplegar sección",
"collapse": "Plegar sección",
"reorder": "Reordenar",
"reorderHelp": "Arrastra desde el asa y suelta en la parte superior o inferior del destino. También puedes enfocar el asa y usar las flechas arriba y abajo. Los campos se ordenan dentro de su sección.",
"fields": "Campos",
"title": "Secciones de la plantilla",
"add": "Añadir sección",
"name": "Nombre de la sección",
"description": "Descripción",
"ungrouped": "Sin sección",
"moveUp": "Mover hacia arriba",
"moveDown": "Mover hacia abajo",
"remove": "Eliminar sección",
"removeField": "Quitar campo",
"required": "Obligatorio",
"assign": "Sección",
"help": "Organiza los campos sin cambiar sus valores ni su obligatoriedad. Al eliminar una sección, sus campos pasan a «Sin sección».",
"empty": "Esta sección aún no tiene campos."
},
"formLayout": {
"identity": "Identificación del recurso",
"template": "Datos de la plantilla"
},
"creationSteps": {
"label": "Pasos del nuevo recurso",
"progress": "Paso {{step}} de {{total}}",
"template": "Elegir plantilla",
"fields": "Completar campos",
"name": "Nombre y notas",
"next": "Siguiente",
"previous": "Anterior",
"nameHelp": "Nombre propuesto a partir de los campos del recurso. Puedes modificarlo.",
"completed": " (completado)",
"templateDescription": "Selecciona la plantilla que define los campos y la configuración del recurso.",
"fieldsDescription": "Completa los datos de la plantilla. Los campos marcados con * son obligatorios.",
"nameDescription": "Revisa el nombre propuesto y añade notas si necesitas aportar más contexto."
},
"resourceLifecycle": {
"activate": "Activar recurso",
"deactivate": "Desactivar recurso",
"delete": "Eliminar definitivamente",
"description": "¿Quieres eliminar «{{name}}»? Se borrarán el recurso y su historial. Esta acción no se puede deshacer.",
"pending": "Eliminando…",
"error": "No se ha podido eliminar el recurso.",
"inUse": "El recurso tiene asociaciones actuales o históricas. Desactívalo para conservarlas o retira sus asociaciones antes de eliminarlo."
}
}