- Implemented asset and resource list query state helpers to manage loading, error, and availability states. - Created EntityListStatus component for displaying status messages and retry options based on entity list state. - Added EntityTableSkeleton component for rendering loading placeholders in tables. - Defined EntityListState type and entityListState function for consistent state management across components. - Developed comprehensive UI tests for list states using Playwright, covering various scenarios including loading, error handling, and responsiveness.
693 lines
37 KiB
JSON
693 lines
37 KiB
JSON
{
|
|
"brands": {
|
|
"title": "Marcas",
|
|
"introduction": "Gestiona las marcas disponibles para los activos de todas las compañías.",
|
|
"entityLabel": "marcas",
|
|
"new": "Añadir marca",
|
|
"edit": "Editar marca",
|
|
"delete": "Eliminar marca",
|
|
"deleting": "Eliminando…",
|
|
"deleteConfirm": "¿Quieres eliminar la marca «{{name}}»? Esta acción no se puede deshacer.",
|
|
"deleteGuidance": "Solo se pueden eliminar marcas personalizadas sin referencias en activos ni en su historial. Si está en uso, puedes desactivarla desde Editar.",
|
|
"deleteError": "No se ha podido eliminar la marca.",
|
|
"active": "Activa",
|
|
"inactive": "Inactiva",
|
|
"name": "Marca",
|
|
"logo": {
|
|
"label": "Logotipo",
|
|
"none": "Sin logotipo",
|
|
"help": "Opcional: SVG vectorial sin fondo, hasta 32 KiB. Exporta como SVG simple, con viewBox, sin scripts, animaciones, imágenes incrustadas ni referencias externas.",
|
|
"remove": "Quitar logotipo",
|
|
"invalid": "El archivo no es un SVG estático compatible o supera los 32 KiB.",
|
|
"readError": "No se ha podido leer el archivo. Selecciónalo de nuevo."
|
|
},
|
|
"all": "Todas",
|
|
"search": "Buscar por marca...",
|
|
"loading": "Cargando marcas…",
|
|
"loadError": "No se han podido cargar las marcas.",
|
|
"empty": "No hay marcas que coincidan con la búsqueda.",
|
|
"noBrand": "Sin especificar",
|
|
"legacy": "Valor anterior",
|
|
"quickNotice": "La marca se guardará en el catálogo global aunque después canceles el activo.",
|
|
"help": "Una marca identifica al fabricante de un activo. Es común a todas las compañías y no define sus modelos comerciales.",
|
|
"examples": "Ejemplos: LG, HP, Microsoft, Kyocera, Zebra o Clónico para equipos montados con componentes de distintos fabricantes.",
|
|
"guidance": "Puedes añadir marcas y cambiar su disponibilidad. Las marcas de serie conservan su nombre; las personalizadas se pueden renombrar. Desactivar no borra los activos ni su historial.",
|
|
"errors": {
|
|
"INVALID_REQUEST": "Indica un nombre de marca válido.",
|
|
"NAME_EXISTS": "Ya existe una marca con ese nombre, incluso si está desactivada.",
|
|
"BUILTIN_PROTECTED": "Las marcas de serie no se pueden eliminar ni renombrar.",
|
|
"BRAND_IN_USE": "Esta marca está vinculada a activos o a su historial y no se puede eliminar. Puedes desactivarla desde Editar.",
|
|
"BRAND_NOT_FOUND": "La marca ya no está disponible.",
|
|
"INTERNAL_ERROR": "No se ha podido completar la operación con la marca.",
|
|
"FORBIDDEN": "La sesión no permite esta operación. Vuelve a iniciar sesión.",
|
|
"UNAUTHENTICATED": "Vuelve a iniciar sesión."
|
|
}
|
|
},
|
|
"support": {
|
|
"title": "Asistencia técnica remota",
|
|
"new": "Añadir método",
|
|
"edit": "Editar método",
|
|
"tool": "Herramienta",
|
|
"choose": "Selecciona una herramienta",
|
|
"chooseState": "Selecciona un estado",
|
|
"newTool": "Nueva herramienta",
|
|
"destination": "Identificador o destino",
|
|
"requiresVpn": "Requiere VPN",
|
|
"preferred": "Método preferido",
|
|
"state": "Estado",
|
|
"pending": "Pendiente de configurar",
|
|
"available": "Disponible",
|
|
"retired": "Retirado",
|
|
"notes": "Notas",
|
|
"empty": "No hay métodos de asistencia registrados para este activo.",
|
|
"showRetired": "Mostrar métodos retirados",
|
|
"history": "Historial",
|
|
"loading": "Cargando asistencia remota…",
|
|
"loadError": "No se pudo cargar la asistencia remota.",
|
|
"help": "¿Para qué sirve este método?",
|
|
"description": "Registra cómo un técnico puede prestar soporte remoto a este activo.",
|
|
"guidance": "Puedes registrar varios métodos. Solo uno disponible puede ser el preferido. Documentar un método no establece una conexión ni concede permisos de teletrabajo.",
|
|
"examples": "AnyDesk: 123 456 789; Supremo Control: su identificador; Escritorio remoto: PORT-ANA-01, con VPN si es necesaria.",
|
|
"examplesLabel": "Ejemplos y recomendaciones",
|
|
"scope": "No introduzcas contraseñas ni claves de acceso en el identificador o las notas.",
|
|
"review": "Revisar: el activo está retirado o la herramienta está desactivada.",
|
|
"errors": {
|
|
"INVALID_REQUEST": "Revisa los campos. Solo un método disponible puede marcarse como preferido.",
|
|
"ASSET_NOT_FOUND": "El activo no pertenece a esta compañía o ya no está disponible.",
|
|
"ASSET_RETIRED": "En un activo retirado solo se pueden guardar métodos retirados.",
|
|
"TOOL_UNAVAILABLE": "Selecciona un recurso de asistencia activo de esta compañía.",
|
|
"CONNECTION_NOT_FOUND": "El método ya no está disponible.",
|
|
"PREFERRED_EXISTS": "Ya hay un método preferido. Desmárcalo antes de elegir otro.",
|
|
"CONNECTION_EXISTS": "Ya existe este método con el mismo identificador o destino.",
|
|
"INTERNAL_ERROR": "No se pudo completar la operación."
|
|
}
|
|
},
|
|
"assetPanel": "Ficha del activo seleccionado",
|
|
"closeAssetPanel": "Cerrar ficha lateral",
|
|
"showAssetPanel": "Mostrar detalle seleccionado",
|
|
"inventory": "Activos",
|
|
"allAssets": "Todo",
|
|
"filterByTemplate": "Filtrar activos por plantilla",
|
|
"chooseValue": "Selecciona una opción",
|
|
"relatedNotice": "El elemento se guarda por separado y se conserva aunque después canceles el formulario principal.",
|
|
"newAsset": "Nuevo activo",
|
|
"editAsset": "Editar activo",
|
|
"deleteAsset": "Eliminar activo",
|
|
"deleteAssetDescription": "Se eliminarán el activo «{{name}}» y su historial. No se puede eliminar si está relacionado con otros registros.",
|
|
"deletingAsset": "Eliminando activo…",
|
|
"deleteAssetError": "No se ha podido eliminar el activo. Inténtalo de nuevo.",
|
|
"viewAsset": "Ficha e historial",
|
|
"assetWorkstation": {
|
|
"create": "Crear puesto de trabajo",
|
|
"view": "Ver puesto de trabajo",
|
|
"viewNamed": "Ver puesto: {{name}}"
|
|
},
|
|
"assetType": "Tipo de activo",
|
|
"template": "Plantilla",
|
|
"site": "Sede",
|
|
"person": "Persona asignada",
|
|
"status": "Estado",
|
|
"notes": "Notas",
|
|
"available": "Disponible",
|
|
"in_use": "En uso",
|
|
"maintenance": "En mantenimiento",
|
|
"retired": "Retirado",
|
|
"noAssets": "Esta compañía todavía no tiene activos.",
|
|
"noAssignment": "Sin asignar",
|
|
"noValue": "—",
|
|
"characteristics": "Características",
|
|
"history": "Historial",
|
|
"recordedBy": "Registrado por {{name}}",
|
|
"snapshotNotice": "Los cambios de la plantilla actualizan esta ficha. Los campos eliminados que tienen valor se conservan y el historial mantiene su estructura original.",
|
|
"newSite": "Nueva sede",
|
|
"newPerson": "Nueva persona",
|
|
"assetDescription": "Un activo es un elemento informático concreto de esta compañía. La plantilla indica qué características puedes registrar.",
|
|
"assetExamples": "Portátil de Ana, monitor de recepción o switch de la sede central.",
|
|
"assetGuidance": "Solo son obligatorios el nombre, la plantilla y los campos exigidos por tu plantilla. Puedes completar el resto más adelante. Retirar un activo conserva su historial y su pertenencia histórica a puestos.",
|
|
"assetScope": "El activo pertenece a esta compañía. La sede es opcional y debe pertenecer a ella; la relación con una persona se registra desde un puesto de trabajo o un perfil de usuario.",
|
|
"saveAssetError": "No se pudo guardar el activo.",
|
|
"inventoryErrors": {
|
|
"BRAND_UNAVAILABLE": "La marca no está disponible para nuevas asignaciones.",
|
|
"SELF_RELATIONSHIP": "Un activo no puede relacionarse consigo mismo.",
|
|
"RELATIONSHIP_EXISTS": "Ya existe esa relación entre estos activos.",
|
|
"RELATIONSHIP_NOT_FOUND": "La relación no existe en esta compañía.",
|
|
"RELATION_TYPE_UNAVAILABLE": "El tipo de relación debe estar activo en esta compañía.",
|
|
"INVALID_MEMBERS": "Selecciona activos distintos y válidos.",
|
|
"WORKSTATION_NOT_FOUND": "El puesto no existe en esta compañía.",
|
|
"ASSET_IN_WORKSTATION": "Un activo ya pertenece a otro puesto activo. Retíralo de allí antes de asignarlo.",
|
|
"ASSET_IN_USE": "No se puede eliminar el activo porque está relacionado con otros registros.",
|
|
"INVALID_REQUEST": "Revisa los datos del formulario.",
|
|
"INVALID_CHARACTERISTICS": "Alguna característica no corresponde a su campo o tipo.",
|
|
"REQUIRED_CHARACTERISTICS": "Completa las características obligatorias de la plantilla.",
|
|
"TEMPLATE_FIXED": "No se puede cambiar la plantilla de un activo existente.",
|
|
"TEMPLATE_UNAVAILABLE": "La plantilla debe estar activa y disponible para esta compañía.",
|
|
"SITE_NOT_FOUND": "La sede no pertenece a esta compañía.",
|
|
"PERSON_UNAVAILABLE": "La persona debe estar activa y pertenecer a esta compañía.",
|
|
"COMPANY_NOT_FOUND": "Compañía no encontrada.",
|
|
"ASSET_NOT_FOUND": "Activo no encontrado en esta compañía.",
|
|
"INTERNAL_ERROR": "No se pudo completar la operación.",
|
|
"FORBIDDEN": "Vuelve a iniciar sesión.",
|
|
"UNAUTHENTICATED": "Vuelve a iniciar sesión.",
|
|
"ASSET_ASSIGNED": "Desvincula el activo de los puestos activos antes de retirarlo.",
|
|
"ASSET_NOT_OPERATIONAL": "Solo se pueden incorporar activos operativos a un puesto activo."
|
|
},
|
|
"workstations": "Puestos de trabajo",
|
|
"newWorkstation": "Nuevo puesto",
|
|
"editWorkstation": "Editar puesto",
|
|
"workstationPerson": "Responsable del puesto",
|
|
"workstationSuggestedName": "Puesto {{computer}} en {{site}}",
|
|
"workstationHistory": "Historial del puesto",
|
|
"workstationAssets": "Activos del puesto",
|
|
"noWorkstations": "Esta compañía todavía no tiene puestos de trabajo.",
|
|
"noWorkstationAssets": "Este puesto todavía no tiene activos.",
|
|
"workstationAssetsEmptyDescription": "Selecciona el ordenador y los periféricos que formarán este puesto. Puedes añadir varios activos a la vez.",
|
|
"addWorkstationAsset": "Añadir activos",
|
|
"workstationOccupied": "{{name}} · ocupado en otro puesto",
|
|
"removeWorkstationAsset": "Retirar {{name}} del puesto",
|
|
"workstationCount": "{{count}} activos",
|
|
"workstationCount_one": "{{count}} activo",
|
|
"workstationCount_other": "{{count}} activos",
|
|
"workstationDescription": "Un puesto reúne un ordenador y sus periféricos. Su responsable es opcional e independiente de las personas que tienen perfiles en él.",
|
|
"workstationExamples": "Puesto de Ana: portátil, dos monitores y una impresora. Una persona puede tener varios puestos.",
|
|
"workstationGuidance": "Selecciona la sede, añade al menos un activo y designa el ordenador principal. Cada activo solo puede pertenecer a un puesto activo. Desactivar conserva la composición y libera sus activos; reactivar comprueba su disponibilidad.",
|
|
"workstationScope": "Todos los elementos deben pertenecer a esta compañía. Los cambios de persona, sede y composición conservan historial.",
|
|
"workstationInAsset": "Puesto de trabajo",
|
|
"noWorkstation": "Sin puesto activo",
|
|
"relations": "Relaciones",
|
|
"newRelation": "Nuevo tipo de relación",
|
|
"editRelation": "Editar tipo de relación",
|
|
"inverseName": "Nombre visto desde el otro activo",
|
|
"symmetric": "Mismo nombre en ambos sentidos",
|
|
"directional": "Relación con dirección",
|
|
"relationDescription": "Un tipo de relación describe cómo se vinculan dos activos de una misma compañía.",
|
|
"relationExamples": "Portátil → Conectado a → Monitor. Máquina virtual → Alojado en → Servidor; desde el servidor se lee «Aloja».",
|
|
"relationGuidance": "Puedes desactivar tipos sin perder los vínculos existentes. La dirección queda fija tras el alta. Las relaciones conservan los nombres que tenían al crearse.",
|
|
"linkAsset": "Relacionar activo",
|
|
"relationshipType": "Tipo de relación",
|
|
"targetAsset": "Otro activo",
|
|
"chooseRelation": "Selecciona una relación",
|
|
"chooseAsset": "Selecciona un activo",
|
|
"noRelationships": "Este activo no tiene relaciones vigentes.",
|
|
"endedRelationships": "Relaciones retiradas",
|
|
"endRelationship": "Retirar relación",
|
|
"endRelationshipConfirm": "Se conservará el historial de esta relación.",
|
|
"relationshipHelp": "Vincula equipos que trabajan juntos o dependen de otros. Solo se muestran activos de esta compañía.",
|
|
"relationshipExample": "Por ejemplo: este portátil está conectado a un monitor externo.",
|
|
"relationshipGuidance": "Selecciona primero el tipo y después el otro activo. Retirar una relación no elimina los activos.",
|
|
"quickRelationNotice": "El tipo se guardará para esta compañía aunque después canceles la relación.",
|
|
"relationCreated": "Creada por {{name}} · {{date}}",
|
|
"relationEnded": "Retirada por {{name}} · {{date}}",
|
|
"yes": "Sí",
|
|
"no": "No",
|
|
"title": "Catálogo de activos",
|
|
"companyTitle": "Catálogo de activos",
|
|
"introduction": "Define las características y plantillas que utilizarás al registrar activos.",
|
|
"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",
|
|
"editTemplate": "Editar plantilla",
|
|
"registeredOn": "Fecha de alta",
|
|
"registeredOnHelp": "Fecha de incorporación del activo a la compañía. Opcional e independiente de la fecha de compra.",
|
|
"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",
|
|
"active": "Activo",
|
|
"inactive": "Inactivo",
|
|
"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…",
|
|
"delete": "Eliminar",
|
|
"deleting": "Eliminando…",
|
|
"deleteDefinitionConfirm": "¿Quieres eliminar «{{name}}»? Esta acción no se puede deshacer.",
|
|
"deleteDefinitionGuidance": "Solo se pueden eliminar definiciones globales personalizadas que no estén en uso. Las de serie y las que se conservan en activos, historial, relaciones o plantillas no se eliminan.",
|
|
"deleteError": "No se ha podido eliminar la definición.",
|
|
"cancel": "Cancelar",
|
|
"selectField": "Añadir campos a la plantilla",
|
|
"choose": "Selecciona un campo",
|
|
"addField": "Nuevo campo",
|
|
"clear": "Quitar selección",
|
|
"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 activo.",
|
|
"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 activo. Puedes reutilizarlo en varias plantillas.",
|
|
"fieldExamples": "Ejemplos: Procesador (texto), Pulgadas (número), Fin de garantía (fecha), PoE (sí/no) o Estado de batería (lista).",
|
|
"fieldGuidance": "Elige una unidad si ayuda, por ejemplo GB. 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 activo. No es un equipo concreto ni una marca o modelo comercial.",
|
|
"templateExamples": "Monitor: pulgadas, resolución y conexiones. Portátil: procesador, memoria RAM y almacenamiento.",
|
|
"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": {
|
|
"RELATION_DIRECTION_FIXED": "La dirección de una relación no se puede cambiar.",
|
|
"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 del catálogo global o de esta compañía.",
|
|
"FIELD_TYPE_FIXED": "El tipo de dato no se puede cambiar ni se pueden eliminar valores existentes de una lista.",
|
|
"BUILTIN_PROTECTED": "Los tipos de relación de serie no se pueden modificar.",
|
|
"DEFINITION_NOT_FOUND": "La definición no está disponible en este ámbito.",
|
|
"DEFINITION_PROTECTED": "Solo se pueden eliminar definiciones globales personalizadas.",
|
|
"DEFINITION_IN_USE": "La definición está en uso en activos, historial, relaciones o plantillas y no se puede eliminar.",
|
|
"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": {
|
|
"entity_one": "campo",
|
|
"entity_other": "campos",
|
|
"helpLabel": "Sección y ayuda",
|
|
"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",
|
|
"clear": "Quitar selección",
|
|
"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 y asignación",
|
|
"template": "Datos de la plantilla",
|
|
"workstationAssociations": "Ubicación y responsable",
|
|
"workstationIdentity": "Identificación del puesto",
|
|
"workstationSummary": "Datos seleccionados"
|
|
},
|
|
"detailSections": {
|
|
"identification": "Identificación",
|
|
"assignment": "Ubicación y asignación",
|
|
"notes": "Observaciones"
|
|
},
|
|
"deleteRecord": {
|
|
"title": "Eliminar registro",
|
|
"description": "Se eliminarán este registro y su historial. Los activos, recursos, cuentas y personas relacionados se conservarán. Esta acción no se puede deshacer.",
|
|
"pending": "Eliminando…",
|
|
"error": "No se ha podido eliminar el registro. Inténtalo de nuevo."
|
|
},
|
|
"templateIcon": {
|
|
"label": "Icono",
|
|
"none": "Sin icono",
|
|
"help": "Identifica visualmente la plantilla y sus activos. Puedes cambiarlo o quitarlo en las plantillas personalizadas.",
|
|
"options": {
|
|
"laptop": "Portátil",
|
|
"desktop": "Ordenador de sobremesa",
|
|
"monitor": "Monitor",
|
|
"printer": "Impresora",
|
|
"router": "Router",
|
|
"shield": "Seguridad / firewall",
|
|
"network": "Switch / red",
|
|
"wifi": "Wi-Fi",
|
|
"hard-drive": "NAS / almacenamiento",
|
|
"server": "Servidor",
|
|
"smartphone": "Smartphone",
|
|
"battery": "SAI / batería",
|
|
"tablet": "Tablet",
|
|
"keyboard": "Teclado",
|
|
"mouse": "Ratón",
|
|
"headphones": "Auriculares",
|
|
"camera": "Cámara",
|
|
"box": "Otro activo"
|
|
}
|
|
},
|
|
"multiline": "Texto largo",
|
|
"workstationDetail": {
|
|
"actions": "Más acciones del puesto",
|
|
"back": "Volver a puestos de trabajo",
|
|
"subtitle": "Activos, perfiles de usuario y personas vinculadas a este puesto.",
|
|
"loadError": "No se ha podido cargar el puesto de trabajo.",
|
|
"notFound": "Este puesto de trabajo no existe en esta compañía.",
|
|
"assets": "Activos del puesto",
|
|
"profiles": "Perfiles de usuario",
|
|
"profilesHint": "Perfiles del ordenador principal. Los periféricos no alojan perfiles de este puesto.",
|
|
"profilesError": "No se han podido cargar los perfiles de usuario.",
|
|
"noProfiles": "Todavía no hay perfiles vinculados al ordenador principal.",
|
|
"people": "Personas relacionadas",
|
|
"noPeople": "No hay personas relacionadas con este puesto.",
|
|
"assignedPerson": "Responsable del puesto",
|
|
"profilePerson": "Con perfil en el ordenador principal",
|
|
"needsReview": "Referencias pendientes de revisión",
|
|
"missingAsset": "Activo no disponible.",
|
|
"information": "Información",
|
|
"created": "Alta del puesto",
|
|
"updated": "Actualización del puesto",
|
|
"noHistory": "No hay revisiones del puesto.",
|
|
"historyHint": "Revisiones de más reciente a más antigua, con los datos registrados en cada cambio.",
|
|
"software": "Software del ordenador",
|
|
"sections": "Secciones del puesto de trabajo",
|
|
"peripherals": "Otros activos y periféricos",
|
|
"noComputer": "Este puesto no tiene un ordenador principal disponible",
|
|
"completeComputer": "Edita el puesto para incorporar sus activos y elegir el ordenador principal.",
|
|
"profileUnavailable": "Para crear un perfil, el puesto debe estar activo y tener un ordenador principal disponible.",
|
|
"peopleHint": "Responsable y personas con perfiles en el ordenador principal.",
|
|
"searchProfiles": "Buscar por perfil o persona",
|
|
"review": "Revisión",
|
|
"rename": "Cambiar nombre del puesto",
|
|
"nameSaved": "Nombre actualizado.",
|
|
"nameInvalid": "Introduce un nombre válido para el puesto."
|
|
},
|
|
"workstationComputer": "Ordenador principal",
|
|
"workstationComputerHelp": "Pulsa la tarjeta del ordenador principal entre los activos del puesto. Los perfiles se crearán en él; el resto de activos son periféricos.",
|
|
"workstationLifecycle": {
|
|
"decommission": {
|
|
"title": "Desactivar",
|
|
"description": "Se desactivará «{{name}}» y se desvincularán su responsable, ordenador y activos. Se conservará el historial. Los activos, perfiles y software del ordenador conservarán sus registros.",
|
|
"pending": "Desactivando…",
|
|
"error": "No se pudo desactivar el puesto. Inténtalo de nuevo."
|
|
},
|
|
"delete": {
|
|
"title": "Eliminar definitivamente",
|
|
"description": "Se eliminarán «{{name}}», su historial y sus asociaciones. Los activos, personas, perfiles y software se conservarán. Esta acción no se puede deshacer. Si hay otros registros vinculados, utiliza Desactivar.",
|
|
"pending": "Eliminando…",
|
|
"error": "No se pudo eliminar el puesto. Inténtalo de nuevo."
|
|
},
|
|
"inUse": "El puesto está referenciado por otros registros, por ejemplo perfiles de usuario. Desactiva el puesto para conservar esas referencias."
|
|
},
|
|
"operational": "Operativo",
|
|
"broken": "Averiado",
|
|
"technicalStatus": "Estado técnico",
|
|
"technicalStatusHelp": "Disponible y En uso se calculan según los puestos activos. Una avería o mantenimiento conserva las asignaciones existentes.",
|
|
"workstationPersonOptional": "Responsable del puesto",
|
|
"workstationNameBySite": "Puesto en {{site}}",
|
|
"workstationSteps": {
|
|
"label": "Pasos del nuevo puesto",
|
|
"progress": "Paso {{step}} de {{total}}",
|
|
"completed": "Completado",
|
|
"location": "Sede y responsable",
|
|
"assets": "Activos",
|
|
"computer": "Ordenador principal",
|
|
"summary": "Resumen",
|
|
"locationDescription": "Selecciona una sede. Puedes dejar el responsable sin asignar.",
|
|
"assetsDescription": "Añade al menos un activo al puesto.",
|
|
"chooseComputer": "Elegir {{name}} como ordenador principal",
|
|
"computerDescription": "Pulsa la tarjeta del activo que alojará los perfiles de usuario.",
|
|
"summaryDescription": "Revisa los datos y el nombre del puesto antes de guardar.",
|
|
"singleComputer": "El único activo está seleccionado automáticamente como ordenador principal.",
|
|
"previous": "Anterior",
|
|
"next": "Siguiente"
|
|
},
|
|
"assetPicker": {
|
|
"entity_one": "activo",
|
|
"entity_other": "activos",
|
|
"single": "Seleccionar activo",
|
|
"multiple": "Seleccionar activos",
|
|
"select": "Selección",
|
|
"selectAsset": "Seleccionar {{name}}",
|
|
"selected": "{{count}} activos seleccionados",
|
|
"selected_one": "{{count}} activo seleccionado",
|
|
"selected_other": "{{count}} activos seleccionados",
|
|
"confirm": "Seleccionar",
|
|
"clear": "Quitar selección",
|
|
"required": "Obligatorio"
|
|
},
|
|
"creationSteps": {
|
|
"label": "Pasos del nuevo activo",
|
|
"progress": "Paso {{step}} de {{total}}",
|
|
"template": "Elegir plantilla",
|
|
"fields": "Completar campos",
|
|
"name": "Identificación y notas",
|
|
"next": "Siguiente",
|
|
"previous": "Anterior",
|
|
"nameHelp": "Nombre propuesto a partir de los campos del activo. Puedes modificarlo.",
|
|
"completed": " (completado)",
|
|
"templateDescription": "Selecciona la plantilla que define las características del activo.",
|
|
"fieldsDescription": "Completa los datos de la plantilla. Los campos marcados con * son obligatorios.",
|
|
"nameDescription": "Revisa el nombre propuesto, el estado técnico, la sede y la fecha de alta. Añade notas si necesitas aportar más contexto."
|
|
},
|
|
"infrastructure": {
|
|
"title": "Infraestructura",
|
|
"description": "Consulta equipos compartidos, interfaces, direcciones y conexiones entre activos.",
|
|
"edit": "Editar infraestructura",
|
|
"add": "Añadir a infraestructura",
|
|
"rolesTitle": "Funciones del equipo",
|
|
"roles": {
|
|
"network": "Red",
|
|
"server": "Servidor",
|
|
"storage": "Almacenamiento",
|
|
"shared_peripheral": "Periférico compartido"
|
|
},
|
|
"interfaces": "Interfaces y direcciones",
|
|
"connections": "Conexiones entre equipos",
|
|
"usage": "Dónde se utiliza",
|
|
"kind": "Tipo de interfaz",
|
|
"kinds": {
|
|
"ethernet": "Ethernet",
|
|
"wifi": "Wi-Fi",
|
|
"other": "Otra"
|
|
},
|
|
"mac": "Dirección MAC",
|
|
"addresses": "Direcciones IP",
|
|
"addAddress": "Añadir IP",
|
|
"addInterface": "Añadir interfaz",
|
|
"removeInterface": "Quitar interfaz",
|
|
"interfacePosition": "Interfaz {{count}}",
|
|
"addressPosition": "Dirección IP {{count}}",
|
|
"removeAddressPosition": "Quitar dirección IP {{count}}",
|
|
"invalid": "Revisa los campos. Los nombres de interfaz deben ser únicos y no puede repetirse una IP dentro de la misma interfaz.",
|
|
"invalidIp": "Introduce una dirección IPv4 o IPv6 válida, sin máscara.",
|
|
"invalidMac": "Introduce una MAC válida, por ejemplo AA:BB:CC:DD:EE:FF, o deja el campo vacío.",
|
|
"emptyInterfaces": "No hay interfaces documentadas.",
|
|
"all": "Todas las funciones",
|
|
"helpTitle": "Interfaces y uso compartido",
|
|
"help": "Documenta las funciones del equipo y las interfaces cuya IP necesitas conocer. Una interfaz puede no tener IP o tener varias.",
|
|
"examplesLabel": "Ejemplo",
|
|
"examples": "Impresora con Ethernet 192.168.5.201 y Wi-Fi 192.168.5.202.",
|
|
"guidance": "Las conexiones entre equipos se registran en Relaciones. El detalle de puertos permanece en UniFi. No se modifican características ni asignaciones del puesto."
|
|
},
|
|
"assetDetail": {
|
|
"information": "Información",
|
|
"sections": "Secciones del activo",
|
|
"back": "Volver a activos",
|
|
"created": "Activo creado",
|
|
"updated": "Activo actualizado",
|
|
"relationshipCreated": "Relación creada",
|
|
"relationshipEnded": "Relación finalizada",
|
|
"historyHint": "Cambios del activo, interfaces y conexiones, de más reciente a más antiguo.",
|
|
"noHistory": "Este activo todavía no tiene historial."
|
|
},
|
|
"assetColumns": {
|
|
"technicalStatus": "Estado técnico",
|
|
"assigned": "Asignado a un puesto",
|
|
"createdAt": "Creado el",
|
|
"createdBy": "Creado por",
|
|
"updatedAt": "Última modificación",
|
|
"updatedBy": "Modificado por",
|
|
"roles": "Funciones de infraestructura",
|
|
"interfaces": "Interfaces",
|
|
"ipAddresses": "Direcciones IP de interfaces",
|
|
"macAddresses": "Direcciones MAC de interfaces",
|
|
"interfaceNotes": "Notas de interfaces",
|
|
"infrastructureError": "No se pudieron cargar los datos de infraestructura de las columnas opcionales.",
|
|
"groups": {
|
|
"general": "General",
|
|
"stateLocation": "Estado y ubicación",
|
|
"audit": "Auditoría",
|
|
"infrastructure": "Infraestructura",
|
|
"characteristics": "Características del catálogo"
|
|
}
|
|
},
|
|
"directoryMembership": {
|
|
"domain": "Dominio Windows",
|
|
"members": "Activos del dominio"
|
|
},
|
|
"directoryUi": {
|
|
"domain": "Dominio Windows",
|
|
"asset": "Activo",
|
|
"dns": "DNS",
|
|
"relationships": "Pertenencias a dominios",
|
|
"members": "Activos del dominio",
|
|
"role": "Rol",
|
|
"membershipState": "Pertenencia",
|
|
"roles": {
|
|
"member": "Miembro del dominio",
|
|
"domain-controller": "Controlador de dominio"
|
|
},
|
|
"states": {
|
|
"active": "Vigente",
|
|
"ended": "Finalizada"
|
|
},
|
|
"join": "Asociar a dominio",
|
|
"roleAction": "Cambiar rol",
|
|
"transfer": "Trasladar de dominio",
|
|
"end": "Finalizar pertenencia",
|
|
"chooseDomain": "Seleccionar dominio Windows",
|
|
"search": "Buscar por nombre o DNS",
|
|
"noDomain": "Este activo no tiene ningún dominio Windows asociado.",
|
|
"notInferred": "La pertenencia es explícita e independiente de las cuentas de los perfiles.",
|
|
"empty": "No hay pertenencias en esta página.",
|
|
"noDomains": "No hay dominios activos que coincidan con la búsqueda.",
|
|
"readError": "No se pudieron consultar las pertenencias. Reintenta o vuelve a la primera página.",
|
|
"error": "No se pudo guardar la pertenencia. Revisa los datos y vuelve a intentarlo.",
|
|
"previous": "Anterior",
|
|
"next": "Siguiente",
|
|
"restart": "Primera página",
|
|
"controllersOnPage": "Controladores vigentes en esta página",
|
|
"noControllersOnPage": "Esta página no contiene controladores vigentes.",
|
|
"pageScope": "Miembros y controladores comparten la paginación del servidor. El resumen corresponde únicamente a la página visible.",
|
|
"manageFromAsset": "Asociar o gestionar desde un activo",
|
|
"history": "Consultar historial de pertenencias",
|
|
"endConfirmation": "Se finalizará la pertenencia vigente. Sus datos e historial se conservarán.",
|
|
"transferConfirmation": "Al guardar, se cerrará la pertenencia actual y se creará la nueva en una sola operación. Confirma que el dominio elegido es correcto.",
|
|
"helpTitle": "Pertenencia explícita a un dominio",
|
|
"help": "Documenta a qué dominio pertenece el equipo y su función. Esto no ejecuta cambios en Active Directory.",
|
|
"example": "Por ejemplo, un servidor puede ser controlador y un portátil puede ser miembro.",
|
|
"guidance": "El dominio y la compatibilidad se vuelven a validar al guardar. Trasladar conserva el periodo anterior.",
|
|
"examples": "Ámbito y ejemplos",
|
|
"errors": {
|
|
"MEMBERSHIP_CONFLICT": "La pertenencia ha cambiado o el activo ya está asociado. Actualiza la ficha y revisa la operación.",
|
|
"MEMBERSHIP_NOT_FOUND": "La pertenencia ya no existe en este activo.",
|
|
"MEMBERSHIP_ENDED": "La pertenencia ya está finalizada. Consulta el estado vigente.",
|
|
"ASSET_INCOMPATIBLE": "El activo no es compatible con el rol elegido.",
|
|
"ASSET_INACTIVE": "El activo debe estar operativo para esta operación.",
|
|
"DOMAIN_INACTIVE": "El dominio está desactivado. Selecciona otro dominio activo.",
|
|
"DOMAIN_NOT_FOUND": "El dominio ya no está disponible en esta compañía.",
|
|
"ASSET_NOT_FOUND": "El activo ya no está disponible en esta compañía.",
|
|
"INVALID_REQUEST": "Revisa los campos de la pertenencia.",
|
|
"FORBIDDEN": "La sesión o el ámbito de compañía ya no permiten esta consulta.",
|
|
"UNAUTHENTICATED": "Inicia sesión para continuar.",
|
|
"INVALID_QUERY": "La consulta o el cursor ya no son válidos. Vuelve a la primera página.",
|
|
"UNAVAILABLE": "El activo o el dominio ya no está disponible en esta compañía."
|
|
}
|
|
},
|
|
"networkSharePublication": {
|
|
"resources": "Recursos SMB publicados",
|
|
"publisher": "Activo publicador"
|
|
},
|
|
"shareUi": {
|
|
"published": "Recursos compartidos publicados",
|
|
"publisher": "Publicado por",
|
|
"publish": "Asignar publicación",
|
|
"transfer": "Cambiar publicador",
|
|
"end": "Finalizar publicación",
|
|
"resource": "Carpeta compartida",
|
|
"address": "Dirección UNC",
|
|
"publication": "Publicación",
|
|
"period": "Periodo de vigencia",
|
|
"actor": "Actores (UUID)",
|
|
"current": "Vigente",
|
|
"readError": "No se han podido cargar las publicaciones. Actualiza los datos.",
|
|
"writeError": "No se ha podido guardar la publicación. Actualiza los datos y revisa la operación.",
|
|
"emptyAsset": "Este activo no publica carpetas compartidas.",
|
|
"emptyPublisher": "No se ha indicado qué activo publica este recurso.",
|
|
"history": "Historial de publicadores",
|
|
"selection": "Seleccionar",
|
|
"select": "Seleccionar",
|
|
"confirm": "Confirmar",
|
|
"noOptions": "No hay elementos disponibles para esta búsqueda.",
|
|
"helpTitle": "Publicación de carpetas SMB",
|
|
"help": "Documenta qué activo publica una carpeta compartida.",
|
|
"transferHelp": "El traslado finaliza la publicación anterior y crea la nueva en una única operación. Si ha cambiado, revisa el conflicto antes de iniciar otra operación.",
|
|
"endHelp": "Confirma la finalización de esta publicación. El recurso, el activo y su historial se conservarán.",
|
|
"publishHelp": "Selecciona el elemento existente. No se crean recursos ni activos desde este diálogo.",
|
|
"documentary": "Esta relación es documental. No comprueba conectividad ni permisos SMB efectivos.",
|
|
"examples": "Ejemplo",
|
|
"example": "NAS-01 publica la carpeta de Administración.",
|
|
"states": {
|
|
"active": "Vigente",
|
|
"ended": "Finalizada"
|
|
},
|
|
"choose": {
|
|
"asset": "Seleccionar activo publicador",
|
|
"share": "Seleccionar carpeta compartida"
|
|
},
|
|
"errors": {
|
|
"PUBLICATION_CONFLICT": "La publicación ha cambiado. Actualiza los datos y revisa el historial antes de iniciar otra operación.",
|
|
"PUBLICATION_NOT_FOUND": "La publicación ya no está disponible.",
|
|
"ASSET_INACTIVE": "El activo no está operativo. Selecciona otro activo.",
|
|
"ASSET_NOT_FOUND": "El activo ya no está disponible.",
|
|
"SMB_RESOURCE_INACTIVE": "La carpeta está inactiva.",
|
|
"SMB_RESOURCE_NOT_FOUND": "La carpeta ya no está disponible."
|
|
}
|
|
},
|
|
"listState": {
|
|
"forbidden": "No tienes permiso para consultar esta información de la compañía.",
|
|
"retryCatalog": "Reintentar catálogo",
|
|
"retryInfrastructure": "Reintentar infraestructura",
|
|
"inventory": {
|
|
"loading": "Cargando activos…",
|
|
"unavailable": "No se pudieron cargar los activos. Puedes volver a intentarlo.",
|
|
"refreshing": "Actualizando activos…",
|
|
"stale": "No se pudieron actualizar los activos. Se muestran los últimos datos disponibles."
|
|
},
|
|
"catalog": {
|
|
"loading": "Cargando las plantillas de activos. La configuración de columnas y el alta estarán disponibles al terminar.",
|
|
"unavailable": "No se pudo cargar el catálogo. Se muestran los datos de las instantáneas; la configuración de columnas y el alta no están disponibles.",
|
|
"refreshing": "Actualizando catálogo…",
|
|
"stale": "No se pudo actualizar el catálogo. Se conservan sus últimas definiciones disponibles."
|
|
},
|
|
"infrastructure": {
|
|
"loading": "Cargando los datos de red; el inventario de activos ya está disponible.",
|
|
"unavailable": "No se pudieron cargar los datos de red. El inventario de activos sigue disponible.",
|
|
"refreshing": "Actualizando datos de red…",
|
|
"stale": "No se pudieron actualizar los datos de red. Se muestran los últimos datos de red disponibles."
|
|
}
|
|
}
|
|
}
|