mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-10-07 22:16:39 +00:00
chore(i18n): auto-fill missing translations in messages/{locale}/common.json
Source: d5bce37
Triggered by: workflow_dispatch
This commit is contained in:
@@ -1822,6 +1822,12 @@
|
||||
},
|
||||
"other": {
|
||||
"label": "Otro"
|
||||
},
|
||||
"hardware": {
|
||||
"label": "Hardware"
|
||||
},
|
||||
"system": {
|
||||
"label": "Sistema"
|
||||
}
|
||||
},
|
||||
"eventTypes": {
|
||||
@@ -1920,7 +1926,9 @@
|
||||
"post_install_update": "Actualizaciones de optimización de ProxMenux disponibles",
|
||||
"secure_gateway_update_available": "Actualización de Secure Gateway disponible",
|
||||
"nvidia_driver_update_available": "Actualización del controlador NVIDIA disponible",
|
||||
"coral_driver_update_available": "Actualización del controlador Coral TPU disponible"
|
||||
"coral_driver_update_available": "Actualización del controlador Coral TPU disponible",
|
||||
"lxc_update_applied": "actualización LXC aplicada",
|
||||
"docker_stack_update_available": "Docker actualizaciones disponibles"
|
||||
},
|
||||
"ui": {
|
||||
"quietHours": "Horas tranquilas",
|
||||
@@ -1982,7 +1990,10 @@
|
||||
"systemHostname": "Nombre de host del sistema",
|
||||
"displayNameHint": "Nombre que se muestra en las notificaciones. Edítelo o déjelo vacío para usar el nombre de host del sistema.",
|
||||
"activeFooter": "Las notificaciones están activas. Cada canal sigue su propia categoría y selección de eventos.",
|
||||
"inactiveFooter": "Habilite notificaciones para recibir alertas del sistema, de salud y de seguridad a través de los canales configurados."
|
||||
"inactiveFooter": "Habilite notificaciones para recibir alertas del sistema, de salud y de seguridad a través de los canales configurados.",
|
||||
"notificationLanguage": "idioma de notificación",
|
||||
"selectNotificationLanguage": "seleccione el idioma de notificación",
|
||||
"notificationLanguageHint": "se utiliza para notificaciones deterministas en tiempo de ejecución incluso cuando la IA está deshabilitada."
|
||||
},
|
||||
"ai": {
|
||||
"title": "mejora de la IA",
|
||||
@@ -5173,7 +5184,8 @@
|
||||
},
|
||||
"lynisTest": "Test",
|
||||
"lynisWarning": "Aviso",
|
||||
"couldNotRead": "No se pudo leer"
|
||||
"couldNotRead": "No se pudo leer",
|
||||
"readOnlyScope": "La evaluación inspecciona la configuración y el estado del host.Puede escribir informes y registros;Las comprobaciones del estado de arranque pueden montar temporalmente particiones del sistema EFI."
|
||||
},
|
||||
"title": "Auditoría e informes",
|
||||
"loading": "Cargando evaluación…",
|
||||
@@ -5406,7 +5418,8 @@
|
||||
"synchronised": "Las {total} particiones de arranque llevan los mismos kernels",
|
||||
"attention": "{count} de {total} particiones de arranque requieren revisión",
|
||||
"evaluationFailed": "No se pudo evaluar la comprobación"
|
||||
}
|
||||
},
|
||||
"rationale": "El sistema EFI particiona los informes proxmox-boot-tool y los kernels que lleva cada uno.proxmox-boot-tool status puede montar temporalmente particiones del sistema EFI;no se intenta ningún arranque."
|
||||
},
|
||||
"failed_units": {
|
||||
"title": "Servicios esenciales y unidades fallidas",
|
||||
@@ -5924,7 +5937,8 @@
|
||||
"security": "Exposición y acceso del host.",
|
||||
"backup": "Protección de los invitados y su alcance real.",
|
||||
"capacity": "Margen de crecimiento y desgaste de los discos."
|
||||
}
|
||||
},
|
||||
"scopeReadOnly": "La evaluación inspecciona la configuración y el estado del host.Puede escribir informes y registros;Las comprobaciones del estado de arranque pueden montar temporalmente particiones del sistema EFI."
|
||||
},
|
||||
"results": "Resultados",
|
||||
"classifications": {
|
||||
@@ -6079,6 +6093,739 @@
|
||||
"withLynis": "Ejecutar con Lynis",
|
||||
"withoutLynis": "Ejecutar sin Lynis",
|
||||
"cancel": "Cancelar"
|
||||
},
|
||||
"readOnlyNotice": "La evaluación inspecciona la configuración y el estado del host.Puede escribir informes y registros;Las comprobaciones del estado de arranque pueden montar temporalmente particiones del sistema EFI."
|
||||
},
|
||||
"runtime": {
|
||||
"notifications": {
|
||||
"templates": {
|
||||
"state_change": {
|
||||
"title": "{hostname}: {category} cambió a {current}{entity_suffix}",
|
||||
"body": "el estado de {category} cambió de {previous} a {current}.\n{reason}",
|
||||
"label": "El estado de salud cambió"
|
||||
},
|
||||
"new_error": {
|
||||
"title": "{hostname}: Nuevo {severity} - {category}{entity_suffix}",
|
||||
"body": "{reason}",
|
||||
"label": "Nuevo problema de salud"
|
||||
},
|
||||
"error_resolved": {
|
||||
"title": "{hostname}: Resuelto - {category}{entity_suffix}",
|
||||
"body": "El problema {category} se ha resuelto.\n{reason}\n🚦 Gravedad anterior: {original_severity}\n⏱️ Duración: {duration}",
|
||||
"label": "notificación de recuperación"
|
||||
},
|
||||
"error_escalated": {
|
||||
"title": "{hostname}: escalado a {severity} - {category}{entity_suffix}",
|
||||
"body": "{reason}",
|
||||
"label": "El problema de salud se intensificó"
|
||||
},
|
||||
"health_degraded": {
|
||||
"title": "{title_or_default}",
|
||||
"body": "{reason}",
|
||||
"label": "Control de salud degradado"
|
||||
},
|
||||
"lxc_updates_available": {
|
||||
"title": "{hostname}: {count} LXC(s) con actualizaciones de paquetes disponibles",
|
||||
"body": "📊 {count} LXC(s) con actualizaciones de paquetes pendientes (📦 {total_packages} total, 🔒 {security_count} seguridad):\n\n{ct_list}",
|
||||
"label": "LXC actualizaciones disponibles (experimental)"
|
||||
},
|
||||
"lxc_update_applied": {
|
||||
"title": "{hostname}: LXC {ct_name} ({vmid}) actualización {result}",
|
||||
"body": "{details}",
|
||||
"label": "actualización LXC aplicada"
|
||||
},
|
||||
"app_update_available": {
|
||||
"title": "{hostname}: {app_name} actualización disponible en CT {vmid}",
|
||||
"body": "{app_name} en CT {vmid} ({ct_name}) tiene una nueva versión:\n{installed} → {latest}",
|
||||
"label": "actualización de la aplicación disponible"
|
||||
},
|
||||
"docker_stack_update_available": {
|
||||
"title": "{hostname}: Docker actualizaciones disponibles en CT {vmid}",
|
||||
"body": "El contenedor {ct_name} (CT {vmid}) tiene {count} Docker actualizaciones:\n{details}",
|
||||
"label": "Docker actualizaciones disponibles"
|
||||
},
|
||||
"vm_start": {
|
||||
"title": "{hostname}: VM {vmname} ({vmid}) iniciada",
|
||||
"body": "La máquina virtual {vmname} (ID: {vmid}) ya se está ejecutando.",
|
||||
"label": "VM iniciada"
|
||||
},
|
||||
"vm_start_warning": {
|
||||
"title": "{hostname}: VM {vmname} ({vmid}) comenzó con advertencias",
|
||||
"body": "La máquina virtual {vmname} (ID: {vmid}) se inició correctamente pero tiene advertencias.\nAdvertencias: {reason}",
|
||||
"label": "VM iniciada (advertencias)"
|
||||
},
|
||||
"vm_stop": {
|
||||
"title": "{hostname}: VM {vmname} ({vmid}) detenida",
|
||||
"body": "La máquina virtual {vmname} (ID: {vmid}) se ha detenido.",
|
||||
"label": "VM detenida"
|
||||
},
|
||||
"vm_shutdown": {
|
||||
"title": "{hostname}: VM {vmname} ({vmid}) apagada",
|
||||
"body": "La máquina virtual {vmname} (ID: {vmid}) se ha cerrado limpiamente.",
|
||||
"label": "apagado de VM"
|
||||
},
|
||||
"vm_fail": {
|
||||
"title": "{hostname}: VM {vmname} ({vmid}) FALLÓ",
|
||||
"body": "La máquina virtual {vmname} (ID: {vmid}) falló o no pudo iniciarse.\nMotivo: {reason}",
|
||||
"label": "VM FALLÓ"
|
||||
},
|
||||
"vm_restart": {
|
||||
"title": "{hostname}: VM {vmname} ({vmid}) reiniciada",
|
||||
"body": "Se ha reiniciado la máquina virtual {vmname} (ID: {vmid}).",
|
||||
"label": "VM reiniciada"
|
||||
},
|
||||
"ct_start": {
|
||||
"title": "{hostname}: CT {vmname} ({vmid}) iniciado",
|
||||
"body": "el contenedor {vmname} (ID: {vmid}) ya se está ejecutando.",
|
||||
"label": "CT iniciado"
|
||||
},
|
||||
"ct_start_warning": {
|
||||
"title": "{hostname}: CT {vmname} ({vmid}) comenzó con advertencias",
|
||||
"body": "El contenedor {vmname} (ID: {vmid}) se inició correctamente pero tiene advertencias.\nAdvertencias: {reason}",
|
||||
"label": "CT iniciado (advertencias)"
|
||||
},
|
||||
"ct_stop": {
|
||||
"title": "{hostname}: CT {vmname} ({vmid}) detenido",
|
||||
"body": "El contenedor {vmname} (ID: {vmid}) se ha detenido.",
|
||||
"label": "CT detenido"
|
||||
},
|
||||
"ct_shutdown": {
|
||||
"title": "{hostname}: CT {vmname} ({vmid}) apagado",
|
||||
"body": "El contenedor {vmname} (ID: {vmid}) se cerró limpiamente.",
|
||||
"label": "apagado de CT"
|
||||
},
|
||||
"ct_restart": {
|
||||
"title": "{hostname}: CT {vmname} ({vmid}) reiniciado",
|
||||
"body": "Se ha reiniciado el contenedor {vmname} (ID: {vmid}).",
|
||||
"label": "CT reiniciado"
|
||||
},
|
||||
"ct_fail": {
|
||||
"title": "{hostname}: CT {vmname} ({vmid}) FALLÓ",
|
||||
"body": "El contenedor {vmname} (ID: {vmid}) falló o no pudo iniciarse.\nMotivo: {reason}",
|
||||
"label": "CT FALLÓ"
|
||||
},
|
||||
"migration_start": {
|
||||
"title": "{hostname}: Migración iniciada: {vmname} ({vmid})",
|
||||
"body": "Se ha iniciado la migración en vivo de {vmname} (ID: {vmid}) al nodo {target_node}.",
|
||||
"label": "La migración comenzó"
|
||||
},
|
||||
"migration_complete": {
|
||||
"title": "{hostname}: Migración completa: {vmname} ({vmid})",
|
||||
"body": "{vmname} (ID: {vmid}) migró correctamente al nodo {target_node}.",
|
||||
"label": "Migración completa"
|
||||
},
|
||||
"migration_warning": {
|
||||
"title": "{hostname}: Migración completa con advertencias: {vmname} ({vmid})",
|
||||
"body": "{vmname} (ID: {vmid}) migró al nodo {target_node} pero encontró advertencias.\nAdvertencias: {reason}",
|
||||
"label": "Migración (advertencias)"
|
||||
},
|
||||
"migration_fail": {
|
||||
"title": "{hostname}: La migración FALLÓ — {vmname} ({vmid})",
|
||||
"body": "Error en la migración de {vmname} (ID: {vmid}) al nodo {target_node}.\nMotivo: {reason}",
|
||||
"label": "Migración FALLÓ"
|
||||
},
|
||||
"replication_fail": {
|
||||
"title": "{hostname}: La replicación FALLÓ — {vmname} ({vmid})",
|
||||
"body": "Error en la replicación de {vmname} (ID: {vmid}).\nMotivo: {reason}",
|
||||
"label": "Replicación FALLADA"
|
||||
},
|
||||
"replication_complete": {
|
||||
"title": "{hostname}: Replicación completa: {vmname} ({vmid})",
|
||||
"body": "La replicación de {vmname} (ID: {vmid}) se completó correctamente.",
|
||||
"label": "Replicación completa"
|
||||
},
|
||||
"backup_start": {
|
||||
"title": "{hostname}: la copia de seguridad se inició el {storage}",
|
||||
"body": "el trabajo de copia de seguridad se inició en el almacenamiento {storage}.\n{reason}",
|
||||
"label": "Copia de seguridad iniciada"
|
||||
},
|
||||
"backup_complete": {
|
||||
"title": "{hostname} → {storage}: Copia de seguridad completada — {vmname} ({vmid})",
|
||||
"body": "La copia de seguridad de {vmname} (ID: {vmid}) se completó correctamente el {storage}.\nTamaño: {size}",
|
||||
"label": "Copia de seguridad completa"
|
||||
},
|
||||
"backup_warning": {
|
||||
"title": "{hostname} → {storage}: Copia de seguridad completa con advertencias — {vmname} ({vmid})",
|
||||
"body": "Copia de seguridad de {vmname} (ID: {vmid}) en {storage} completada pero encontró advertencias.\nAdvertencias: {reason}",
|
||||
"label": "Copia de seguridad (advertencias)"
|
||||
},
|
||||
"backup_fail": {
|
||||
"title": "{hostname} → {storage}: Copia de seguridad FALLÓ - {vmname} ({vmid})",
|
||||
"body": "La copia de seguridad de {vmname} (ID: {vmid}) falló el {storage}.\nMotivo: {reason}",
|
||||
"label": "Copia de seguridad FALLÓ"
|
||||
},
|
||||
"host_backup_start": {
|
||||
"title": "{hostname}: copia de seguridad del host iniciada → {backend_label}",
|
||||
"body": "Trabajo: {job_id}\nServidor: {backend_label}\nDestino: {destination}\nPerfil: {profile_mode}",
|
||||
"label": "Se inició la copia de seguridad del host"
|
||||
},
|
||||
"host_backup_complete": {
|
||||
"title": "{hostname}: copia de seguridad del host completada → {backend_label}",
|
||||
"body": "Trabajo: {job_id}\nServidor: {backend_label}\nDestino: {destination}\nTamaño de datos: {data_size}\nTamaño del archivo: {archive_size}\nDuración: {duration}",
|
||||
"label": "Copia de seguridad del host completa"
|
||||
},
|
||||
"host_backup_fail": {
|
||||
"title": "{hostname}: la copia de seguridad del host FALLÓ → {backend_label}",
|
||||
"body": "Trabajo: {job_id}\nServidor: {backend_label}\nDestino: {destination}\nDuración antes del fallo: {duration}\nMotivo: {reason}\nRegistro: {log_file}",
|
||||
"label": "Copia de seguridad del host FALLÓ"
|
||||
},
|
||||
"snapshot_complete": {
|
||||
"title": "{hostname}: instantánea creada: {vmname} ({vmid})",
|
||||
"body": "instantánea \"{snapshot_name}\" creada para {vmname} (ID: {vmid}).",
|
||||
"label": "Instantánea creada"
|
||||
},
|
||||
"snapshot_fail": {
|
||||
"title": "{hostname}: Instantánea FALLÓ - {vmname} ({vmid})",
|
||||
"body": "Error al crear una instantánea para {vmname} (ID: {vmid}).\nMotivo: {reason}",
|
||||
"label": "Instantánea FALLÓ"
|
||||
},
|
||||
"cpu_high": {
|
||||
"title": "{hostname}: uso elevado de CPU: {value}%",
|
||||
"body": "el uso de la CPU ha alcanzado el {value}% en {cores} núcleos.\n{details}",
|
||||
"label": "uso elevado de CPU"
|
||||
},
|
||||
"ram_high": {
|
||||
"title": "{hostname}: uso elevado de memoria: {value}%",
|
||||
"body": "Uso de memoria: {used} / {total} ({value}%).\n{details}",
|
||||
"label": "uso elevado de memoria"
|
||||
},
|
||||
"temp_high": {
|
||||
"title": "{hostname}: Temperatura alta de la CPU: {value}°C",
|
||||
"body": "la temperatura de la CPU ha alcanzado {value}°C (umbral: {threshold}°C).\n{details}",
|
||||
"label": "alta temperatura"
|
||||
},
|
||||
"disk_space_low": {
|
||||
"title": "{hostname}: poco espacio en disco en {mount}",
|
||||
"body": "Sistema de archivos {mount}: {used}% usado ({available} disponible).\nLibere espacio en disco para evitar interrupciones en el servicio.",
|
||||
"label": "poco espacio en disco"
|
||||
},
|
||||
"disk_io_error": {
|
||||
"title": "{hostname}: Fallo de disco detectado — {device}",
|
||||
"body": "Error de E/S o falla de disco detectada en el dispositivo {device}.\n{reason}",
|
||||
"label": "Fallo de disco/error de E/S"
|
||||
},
|
||||
"storage_unavailable": {
|
||||
"title": "{hostname}: Almacenamiento no disponible — {storage_name}",
|
||||
"body": "No se puede acceder al almacenamiento PVE \"{storage_name}\" (tipo: {storage_type}).\nMotivo: {reason}",
|
||||
"label": "Almacenamiento no disponible"
|
||||
},
|
||||
"smart_test_complete": {
|
||||
"title": "{hostname}: prueba SMART completada — {device}",
|
||||
"body": "La prueba SMART {test_type} en /dev/{device} se ha completado.\nResultado: {result}\nDuración: {duration}",
|
||||
"label": "prueba SMART completada"
|
||||
},
|
||||
"smart_test_failed": {
|
||||
"title": "{hostname}: Prueba SMART FALLÓ - {device}",
|
||||
"body": "La prueba SMART {test_type} en /dev/{device} falló.\nResultado: {result}\nMotivo: {reason}",
|
||||
"label": "Prueba INTELIGENTE FALLÓ"
|
||||
},
|
||||
"gpu_mode_switch": {
|
||||
"title": "{hostname}: el modo GPU cambió a {new_mode}",
|
||||
"body": "Se ha cambiado el modo de transferencia de GPU.\nGPU: {gpu_name} ({gpu_pci})\nModo anterior: {old_mode}\nNuevo modo: {new_mode}\n{details}",
|
||||
"label": "modo GPU cambiado"
|
||||
},
|
||||
"gpu_passthrough_blocked": {
|
||||
"title": "{hostname}: {guest_type} {guest_id} bloqueado al inicio",
|
||||
"body": "La protección de paso a través de PCIe impidió que se iniciara {guest_type} {guest_id} ({guest_name}).\nMotivo: {reason}\n{details}",
|
||||
"label": "paso de GPU bloqueado"
|
||||
},
|
||||
"pci_passthrough_conflict": {
|
||||
"title": "{hostname}: Se detectó un conflicto en el dispositivo PCIe: {device_pci}",
|
||||
"body": "un dispositivo PCIe está asignado a varios invitados.\nDispositivo: {device_pci}\nInvitados en conflicto: {guest_list}\nAcción requerida: detener a uno de los invitados o reasignar el dispositivo.",
|
||||
"label": "conflicto de dispositivo PCIe"
|
||||
},
|
||||
"load_high": {
|
||||
"title": "{hostname}: carga alta del sistema: {value}",
|
||||
"body": "El promedio de carga del sistema es {value} en {cores} núcleos.\n{details}",
|
||||
"label": "Alta carga del sistema"
|
||||
},
|
||||
"network_down": {
|
||||
"title": "{hostname}: Se perdió la conectividad de red{entity_suffix}",
|
||||
"body": "el nodo ha perdido la conectividad de la red.\nMotivo: {reason}",
|
||||
"label": "Se perdió la conectividad de red"
|
||||
},
|
||||
"network_latency": {
|
||||
"title": "{hostname}: latencia de red alta: {value}ms",
|
||||
"body": "Latencia a la puerta de enlace: {value}ms (umbral: {threshold}ms).\nEsto puede indicar congestión de la red o problemas de hardware.",
|
||||
"label": "alta latencia de red"
|
||||
},
|
||||
"auth_fail": {
|
||||
"title": "{hostname}: error de autenticación",
|
||||
"body": "Se detectó un intento fallido de inicio de sesión.\nIP de origen: {source_ip}\nUsuario: {username}\nServicio: {service}",
|
||||
"label": "error de autenticación"
|
||||
},
|
||||
"ip_block": {
|
||||
"title": "{hostname}: IP bloqueada por Fail2Ban",
|
||||
"body": "la dirección IP {source_ip} ha sido prohibida.\nCárcel: {jail}\nIntentos fallidos: {failures}",
|
||||
"label": "IP bloqueada por Fail2Ban"
|
||||
},
|
||||
"firewall_issue": {
|
||||
"title": "{hostname}: Problema de firewall detectado{entity_suffix}",
|
||||
"body": "se ha detectado un problema de configuración del firewall.\nMotivo: {reason}",
|
||||
"label": "Se detectó un problema de firewall"
|
||||
},
|
||||
"user_permission_change": {
|
||||
"title": "{hostname}: permiso de usuario cambiado",
|
||||
"body": "Usuario: {username}\nCambio: {change_details}",
|
||||
"label": "permiso de usuario cambiado"
|
||||
},
|
||||
"split_brain": {
|
||||
"title": "{hostname}: CEREBRO DIVIDIDO detectado",
|
||||
"body": "Se ha detectado una condición de cerebro dividido en racimos.Es posible que se pierda el quórum.\nEstado del quórum: {quorum}",
|
||||
"label": "CEREBRO DIVIDIDO detectado"
|
||||
},
|
||||
"node_disconnect": {
|
||||
"title": "{hostname}: Nodo {node_name} desconectado",
|
||||
"body": "el nodo {node_name} se ha desconectado del clúster.",
|
||||
"label": "Nodo desconectado"
|
||||
},
|
||||
"node_reconnect": {
|
||||
"title": "{hostname}: Nodo {node_name} reconectado",
|
||||
"body": "el nodo {node_name} se ha reincorporado al clúster correctamente.",
|
||||
"label": "Nodo reconectado"
|
||||
},
|
||||
"system_startup": {
|
||||
"title": "{hostname}: {reason}",
|
||||
"body": "{summary}",
|
||||
"label": "informe de inicio del sistema"
|
||||
},
|
||||
"system_shutdown": {
|
||||
"title": "{hostname}: Sistema apagándose",
|
||||
"body": "El nodo se está cerrando.\n{reason}",
|
||||
"label": "Sistema apagándose"
|
||||
},
|
||||
"system_reboot": {
|
||||
"title": "{hostname}: reinicio del sistema",
|
||||
"body": "El nodo se está reiniciando.\n{reason}",
|
||||
"label": "reinicio del sistema"
|
||||
},
|
||||
"system_restore_completed": {
|
||||
"title": "{hostname}: restauración del host finalizada",
|
||||
"body": "Tareas posteriores a la restauración completadas en segundo plano.\n\nInvitados solicitados: {guests}\nTalones de montaje enlazado: {stubs}\nSe eliminaron los directorios de nodos obsoletos: {stale_nodes}\nComponentes reinstalados: {components}\nDuración: {duration}\n{warnings_block}\nEl nodo ahora está completamente listo para usar.",
|
||||
"label": "restauración del host completada"
|
||||
},
|
||||
"system_problem": {
|
||||
"title": "{hostname}: Problema del sistema detectado{entity_suffix}",
|
||||
"body": "se ha detectado un problema a nivel del sistema.\nMotivo: {reason}",
|
||||
"label": "Problema del sistema detectado"
|
||||
},
|
||||
"service_fail": {
|
||||
"title": "{hostname}: Error en el servicio: {service_name}",
|
||||
"body": "El servicio del sistema \"{service_name}\" ha fallado.\nMotivo: {reason}",
|
||||
"label": "el servicio falló"
|
||||
},
|
||||
"oom_kill": {
|
||||
"title": "{hostname}: OOM Kill - {process}",
|
||||
"body": "El administrador de memoria insuficiente eliminó el proceso \"{process}\".\n{reason}",
|
||||
"label": "Matar sin memoria"
|
||||
},
|
||||
"service_fail_batch": {
|
||||
"title": "{hostname}: {service_count} servicios fallidos{entity_suffix}",
|
||||
"body": "{reason}",
|
||||
"label": "lote de errores de servicio"
|
||||
},
|
||||
"cron_output": {
|
||||
"title": "{hostname}: {pve_title}",
|
||||
"body": "{reason}",
|
||||
"label": "Salida del trabajo cron (salida estándar por cron por correo)"
|
||||
},
|
||||
"system_mail": {
|
||||
"title": "{hostname}: {pve_title}",
|
||||
"body": "{reason}",
|
||||
"label": "Smartd / rebotes de correo (correo del sistema PVE)"
|
||||
},
|
||||
"apt_listchanges": {
|
||||
"title": "{hostname}: {pve_title}",
|
||||
"body": "información del paquete ascendente reenviada por Proxmox VE a través de apt-listchanges.El siguiente texto proviene del responsable del paquete y no es una recomendación ProxMenux.\n\n{reason}",
|
||||
"label": "avisos del paquete apt-listchanges"
|
||||
},
|
||||
"webhook_test": {
|
||||
"title": "{hostname}: prueba de webhook recibida",
|
||||
"body": "Prueba de conectividad del webhook PVE exitosa.\n{reason}",
|
||||
"label": "prueba de webhook"
|
||||
},
|
||||
"update_available": {
|
||||
"title": "{hostname}: Actualizaciones disponibles",
|
||||
"body": "Actualizaciones totales: {total_count}\nSeguridad: {security_count}\nProxmox: {pve_count}\nNúcleo: {kernel_count}\nPaquetes importantes:\n{important_list}",
|
||||
"label": "Actualizaciones disponibles (heredadas)"
|
||||
},
|
||||
"unknown_persistent": {
|
||||
"title": "{hostname}: Marcar no disponible - {category}{entity_suffix}",
|
||||
"body": "La verificación de estado de {category} no ha estado disponible durante más de 3 ciclos.\n{reason}",
|
||||
"label": "Marcar no disponible"
|
||||
},
|
||||
"health_persistent": {
|
||||
"title": "{hostname}: {count} problema(s) de salud activo{entity_suffix}",
|
||||
"body": "Los siguientes problemas de salud siguen sin resolverse:\n{issue_list}\n\nEste resumen se envía una vez cada 24 horas mientras persistan los problemas.",
|
||||
"label": "Problemas de salud activos (diarios)"
|
||||
},
|
||||
"health_issue_new": {
|
||||
"title": "{hostname}: Nuevo problema de salud: {category}{entity_suffix}",
|
||||
"body": "Nuevo problema {severity} detectado en: {category}\nDetalles: {reason}",
|
||||
"label": "Nuevo problema de salud"
|
||||
},
|
||||
"health_issue_resolved": {
|
||||
"title": "{hostname}: Resuelto - {category}{entity_suffix}",
|
||||
"body": "el problema {category} se ha resuelto.\n{reason}\nDuración: {duration}",
|
||||
"label": "problema de salud resuelto"
|
||||
},
|
||||
"update_summary": {
|
||||
"title": "{hostname}: Actualizaciones disponibles",
|
||||
"body": "Actualizaciones totales: {total_count}\nActualizaciones de seguridad: {security_count}\nActualizaciones relacionadas con Proxmox: {pve_count}\nActualizaciones del kernel: {kernel_count}\nPaquetes importantes:\n{important_list}",
|
||||
"label": "actualizaciones del paquete de host"
|
||||
},
|
||||
"pve_update": {
|
||||
"title": "{hostname}: Proxmox VE {new_version} disponible",
|
||||
"body": "Hay disponible una nueva versión Proxmox VE.\nActual: {current_version}\nNuevo: {new_version}\n{details}",
|
||||
"label": "Proxmox Actualización de VE disponible"
|
||||
},
|
||||
"update_complete": {
|
||||
"title": "{hostname}: actualización del sistema completada",
|
||||
"body": "los paquetes del sistema se han actualizado correctamente.\n{details}",
|
||||
"label": "Actualización del host completada"
|
||||
},
|
||||
"ai_model_migrated": {
|
||||
"title": "{hostname}: modelo de IA actualizado",
|
||||
"body": "el modelo de IA para notificaciones se ha actualizado automáticamente.\nProveedor: {provider}\nModelo anterior: {old_model}\nNuevo modelo: {new_model}\n\n{message}",
|
||||
"label": "modelo de IA actualizado automáticamente"
|
||||
},
|
||||
"proxmenux_update": {
|
||||
"title": "{hostname}: ProxMenux {new_version} disponible",
|
||||
"body": "hay disponible una nueva versión de ProxMenux.\nActual: {current_version}\nNuevo: {new_version}",
|
||||
"label": "ProxMenux actualización disponible"
|
||||
},
|
||||
"mount_stale": {
|
||||
"title": "{hostname}: montaje remoto obsoleto {mount_target}",
|
||||
"body": "El montaje remoto {mount_target} ({fstype}) de {mount_source} está obsoleto{lxc_scope}.\nSe agotó el tiempo de espera de la estadística o se devolvió un error: {error}\n\nLas aplicaciones que escriban en esta ruta aterrizarán silenciosamente en el sistema de archivos subyacente y pueden llenar el disco.Vuelva a montar o arregle la conectividad lo antes posible.",
|
||||
"label": "Montaje remoto obsoleto"
|
||||
},
|
||||
"mount_readonly": {
|
||||
"title": "{hostname}: el montaje remoto {mount_target} es de solo lectura",
|
||||
"body": "El montaje remoto {mount_target} ({fstype}) de {mount_source} está montado como de solo lectura {lxc_scope}.Las escrituras fallarán.Si esto no fue intencional, vuelva a montar con rw.",
|
||||
"label": "Montaje remoto de solo lectura"
|
||||
},
|
||||
"lxc_disk_low": {
|
||||
"title": "{hostname}: CT {vmid} rootfs en {usage_percent}%",
|
||||
"body": "CT {vmid} ({name}) rootfs está en {usage_percent}% ({disk_bytes_human} / {maxdisk_bytes_human}).\n\nUn rootfs LXC completo impide que el contenedor se inicie limpiamente.Expanda los rootfs (pct resize {vmid} rootfs +1G) o libere espacio dentro del contenedor.",
|
||||
"label": "LXC rootfs casi completo"
|
||||
},
|
||||
"vm_disk_low": {
|
||||
"title": "{hostname}: VM {vmid} sistemas de archivos al {usage_percent}%",
|
||||
"body": "Los sistemas de archivos invitados de VM {vmid} ({name}) están en {usage_percent}% ({disk_bytes_human} / {maxdisk_bytes_human}).\n\nReportado por el agente invitado QEMU.Incluye todos los sistemas de archivos persistentes que el invitado monta en un dispositivo de bloque, tanto discos virtuales como unidades de paso PCI.Libere espacio dentro del huésped o amplíe el almacenamiento afectado antes de que las escrituras comiencen a fallar.",
|
||||
"label": "sistemas de archivos VM casi llenos"
|
||||
},
|
||||
"lxc_mount_low": {
|
||||
"title": "{hostname}: CT {vmid} monte {mount} en {usage_percent}%",
|
||||
"body": "El montaje {mount} dentro de CT {vmid} ({name}) está al {usage_percent}% de uso.\nTipo de sistema de archivos: {fstype}\n\nUn montaje completo dentro de un contenedor a menudo bloquea la aplicación de forma silenciosa: las escrituras fallan o, peor aún, aterrizan en rootfs y activan la alerta de rootfs a continuación.Libere espacio en el soporte o amplíelo.",
|
||||
"label": "LXC montaje casi completo"
|
||||
},
|
||||
"pve_storage_full": {
|
||||
"title": "{hostname}: almacenamiento PVE {storage_name} al {usage_percent}%",
|
||||
"body": "Proxmox el almacenamiento \"{storage_name}\" (tipo: {storage_type}) está al {usage_percent}% de uso.\n\nUna vez lleno, no se puede aprovisionar ninguna VM/CT nueva y es posible que los invitados existentes no puedan escribir.Mueva/elimine volúmenes no utilizados o expanda la imagen subyacente del grupo/LV/RBD.",
|
||||
"label": "Almacenamiento PVE casi lleno"
|
||||
},
|
||||
"zfs_pool_full": {
|
||||
"title": "{hostname}: ZFS grupo {pool_name} al {usage_percent}%",
|
||||
"body": "ZFS grupo \"{pool_name}\" está al {usage_percent}% de su capacidad.\n\nEl rendimiento de ZFS y la confiabilidad de escritura se degradan drásticamente por encima del ~80 % de la capacidad (CoW necesita espacio libre para nuevos bloques).Libere instantáneas, elimine conjuntos de datos antiguos o agregue más vdev al grupo.",
|
||||
"label": "ZFS piscina casi llena"
|
||||
},
|
||||
"post_install_update": {
|
||||
"title": "{hostname}: {count} ProxMenux actualizaciones de optimización disponibles",
|
||||
"body": "{count} ProxMenux actualizaciones de optimización disponibles en este host.\n\n🛠️ Versiones disponibles:\n{tool_list}\n\n💡 Aplicar desde:\n• ProxMenux Monitor → Configuración → ProxMenux Optimizaciones\n• O ejecute el menú posterior a la instalación (opción 2) → \"Aplicar actualizaciones disponibles\"",
|
||||
"label": "ProxMenux actualizaciones de optimización disponibles"
|
||||
},
|
||||
"secure_gateway_update_available": {
|
||||
"title": "{hostname}: {app_name} actualización disponible{update_title_suffix}",
|
||||
"body": "{app_name} (administrado por ProxMenux) tiene 📦 {package_count} actualizaciones de paquete pendientes en su contenedor.\n{version_line}\n\n💡 Abra ProxMenux Monitor > Configuración > Secure Gateway y haga clic en \"Actualizar\" para aplicar.\n\n🗂️ Paquetes:\n{package_list}",
|
||||
"label": "Actualización de Secure Gateway disponible"
|
||||
},
|
||||
"nvidia_driver_update_available": {
|
||||
"title": "{hostname}: actualización del controlador NVIDIA disponible: v{latest_version}",
|
||||
"body": "Hay disponible una versión de mantenimiento más reciente para la rama de controladores NVIDIA instalada.\n🔹 Actualmente instalado: v{current_version}\n🟢 Último disponible: v{latest_version}\n\n{upgrade_reason}\n\n💡 Para reinstalar:\n• Desde el menú posterior a la instalación ProxMenux: {menu_label}\n\nLa reinstalación reconstruye el módulo DKMS con el kernel en ejecución y requiere un reinicio para cargar el nuevo controlador.",
|
||||
"label": "Actualización del controlador NVIDIA disponible"
|
||||
},
|
||||
"coral_driver_update_available": {
|
||||
"title": "{hostname}: Coral Actualización del controlador TPU disponible: {latest_version}",
|
||||
"body": "hay disponible un {variant_label} más nuevo.\n🔹 Actualmente instalado: {current_version}\n🟢 Último disponible: {latest_version}\n\n{upgrade_reason}\n\n💡 Para reinstalar:\n• Desde el menú posterior a la instalación ProxMenux: {menu_label}\n\n{reboot_note}",
|
||||
"label": "Coral Actualización del controlador TPU disponible"
|
||||
},
|
||||
"burst_auth_fail": {
|
||||
"title": "{hostname}: +{count} más errores de autenticación en {window}",
|
||||
"body": "+{count} errores de autenticación adicionales detectados en {window} ({total_count} en total).\nFuentes: {entity_list}",
|
||||
"label": "Los fallos de autenticación estallan"
|
||||
},
|
||||
"burst_ip_block": {
|
||||
"title": "{hostname}: Fail2Ban prohibido +{count} IP más en {window}",
|
||||
"body": "+{count} IP adicionales prohibidas por Fail2Ban en {window} ({total_count} en total).\nIP: {entity_list}",
|
||||
"label": "ráfaga de bloque de IP"
|
||||
},
|
||||
"burst_disk_io": {
|
||||
"title": "{hostname}: +{count} más errores de E/S de disco en {entity_list}",
|
||||
"body": "+{count} errores de E/S adicionales detectados en {window} ({total_count} en total).\nDispositivos: {entity_list}",
|
||||
"label": "Explosión de E/S de disco"
|
||||
},
|
||||
"burst_cluster": {
|
||||
"title": "{hostname}: Se detectó aleteo del grupo (+{count} cambios más)",
|
||||
"body": "el estado del clúster cambió +{count} veces más en {window} ({total_count} en total).\nNodos: {entity_list}",
|
||||
"label": "Explosión de aleteo de racimo"
|
||||
},
|
||||
"burst_service_fail": {
|
||||
"title": "{hostname}: +{count} más servicios fallaron en {window}",
|
||||
"body": "+{count} fallas de servicio adicionales detectadas en {window} ({total_count} en total).\nNormalmente, esto indica un reinicio del nodo o del servicio PVE.\n\nFallos adicionales:\n{details}",
|
||||
"label": "Explosión de falla del servicio"
|
||||
},
|
||||
"burst_system": {
|
||||
"title": "{hostname}: +{count} más problemas del sistema en {window}",
|
||||
"body": "+{count} problemas adicionales del sistema detectados en {window} ({total_count} en total).\n\nProblemas adicionales:\n{details}",
|
||||
"label": "Los problemas del sistema estallan"
|
||||
},
|
||||
"burst_generic": {
|
||||
"title": "{hostname}: +{count} más {event_type} eventos en {window}",
|
||||
"body": "+{count} eventos adicionales de tipo {event_type} en {window} ({total_count} total).\n\nEventos adicionales:\n{details}",
|
||||
"label": "ráfaga genérica"
|
||||
},
|
||||
"kernel_warning": {
|
||||
"title": "{hostname}: Se detectó un evento de diagnóstico del kernel",
|
||||
"body": "El kernel registró un evento de diagnóstico: {kernel_details}",
|
||||
"label": "advertencias del kernel y seguimientos de diagnóstico"
|
||||
}
|
||||
},
|
||||
"lxcUpdate": {
|
||||
"status": {
|
||||
"success": "tuvo éxito",
|
||||
"failure": "fallido",
|
||||
"partial": "completado parcialmente",
|
||||
"deferred": "diferido",
|
||||
"skipped": "omitido"
|
||||
},
|
||||
"source": {
|
||||
"scheduled": "programado",
|
||||
"manual": "manual"
|
||||
},
|
||||
"sourceLabel": "Fuente",
|
||||
"targets": "Objetivos",
|
||||
"osPending": "paquetes de sistema operativo pendientes: {before} → {after}",
|
||||
"osUnverified": "paquetes de sistema operativo: comando de actualización ejecutado;resultado no verificado",
|
||||
"applications": "Aplicaciones: {items}",
|
||||
"applicationsUnverified": "Aplicaciones: actualizador ejecutado;no se observó ningún cambio de versión rastreado",
|
||||
"dockerEngineChange": "Docker Motor: {before} → {after}",
|
||||
"dockerEngineVerified": "Docker Motor: verificado en {version}",
|
||||
"dockerEngineUnverified": "Docker Motor: comando de actualización ejecutado;versión no verificada",
|
||||
"dockerImagesPending": "Docker imágenes pendientes: {before} → {after}",
|
||||
"dockerImagesChanged": "Docker imágenes cambiadas: {images}",
|
||||
"deferredTargets": "Objetivos diferidos: {targets}",
|
||||
"reason": "Razón: {reason}",
|
||||
"restartRequired": "Reiniciar requerido: {value}",
|
||||
"yes": "si",
|
||||
"no": "no",
|
||||
"verificationPending": "Verificación pendiente hasta que el contenedor se esté ejecutando",
|
||||
"verificationWarning": "Advertencia de verificación: {error}",
|
||||
"duration": "Duración: {duration}"
|
||||
},
|
||||
"fallback": {
|
||||
"unknownTitle": "{hostname}: {event_type}",
|
||||
"healthCheckDegraded": "Control de salud degradado",
|
||||
"none": "ninguno"
|
||||
},
|
||||
"fields": {
|
||||
"vmid": "VM/CT",
|
||||
"name": "Nombre",
|
||||
"device": "Dispositivo",
|
||||
"sourceIp": "IP de origen",
|
||||
"node": "Nodo",
|
||||
"category": "Categoría",
|
||||
"service": "Servicio",
|
||||
"jail": "cárcel",
|
||||
"user": "Usuario",
|
||||
"count": "contar",
|
||||
"window": "ventana",
|
||||
"affected": "Afectado"
|
||||
},
|
||||
"vzdump": {
|
||||
"size": "Tamaño: {value}",
|
||||
"duration": "Duración: {value}",
|
||||
"file": "Archivo",
|
||||
"backups": "{count} copias de seguridad",
|
||||
"failed": "{count} falló",
|
||||
"total": "Total: {value}",
|
||||
"time": "Hora: {value}"
|
||||
},
|
||||
"startup": {
|
||||
"issuesTitle": "{hostname}: Inicio del sistema: {count} problemas detectados",
|
||||
"completeTitle": "{hostname}: inicio del sistema completado",
|
||||
"operational": "Todos los sistemas operativos.",
|
||||
"vmCountOne": "{count} máquina virtual",
|
||||
"vmCountMany": "{count} máquinas virtuales",
|
||||
"ctCountOne": "{count} CT",
|
||||
"ctCountMany": "{count} CT",
|
||||
"started": "✅ {counts} iniciado",
|
||||
"vmFailed": "❌ VM falló: {name} - {reason}",
|
||||
"ctFailed": "❌ CT falló: {name} - {reason}",
|
||||
"unknownError": "error desconocido",
|
||||
"storageUnavailable": "⚠️ Almacenamiento: {count} no disponible ({names})",
|
||||
"servicesFailed": "⚠️ Servicios: {count} falló ({names})",
|
||||
"duration": "⏱️ Inicio completado en {minutes} min"
|
||||
},
|
||||
"appUpdates": {
|
||||
"singleTitle": "{hostname}: {app_name} actualización disponible en CT {vmid}",
|
||||
"singleBody": "{app_name} en CT {vmid} ({ct_name}) tiene una nueva versión:\n{installed} → {latest}",
|
||||
"emptyTitle": "{hostname}: actualizaciones de la aplicación disponibles",
|
||||
"emptyBody": "las actualizaciones de la aplicación están disponibles.",
|
||||
"batchTitle": "{hostname}: {count} actualizaciones de la aplicación disponibles",
|
||||
"batchLeadOneContainer": "las aplicaciones {count} en el contenedor {container_count} LXC tienen una versión más reciente:",
|
||||
"batchLeadManyContainers": "Las aplicaciones {count} en contenedores {container_count} LXC tienen una versión más reciente:",
|
||||
"additional": "… {count} aplicaciones adicionales",
|
||||
"app": "aplicación",
|
||||
"unknown": "desconocido"
|
||||
},
|
||||
"healthDegraded": {
|
||||
"categories": {
|
||||
"cpu": "uso y temperatura de la CPU",
|
||||
"memory": "Memoria e intercambio",
|
||||
"storage": "soportes de almacenamiento y espacio",
|
||||
"disks": "E/S de disco y errores",
|
||||
"network": "interfaces de red",
|
||||
"vms": "máquinas virtuales y contenedores",
|
||||
"services": "servicios PVE",
|
||||
"logs": "registros del sistema",
|
||||
"updates": "actualizaciones del sistema",
|
||||
"security": "Seguridad"
|
||||
},
|
||||
"severity": {
|
||||
"critical": "Crítico",
|
||||
"warning": "Advertencia"
|
||||
},
|
||||
"reasons": {
|
||||
"cpuSustained": "la CPU está por encima del {threshold}% para {duration}s."
|
||||
},
|
||||
"singleTitle": "{hostname}: {severity} estado de salud – {category}",
|
||||
"multipleTitle": "{hostname}: {count} controles de estado degradados",
|
||||
"multipleLine": "• {severity}: {category}\n{reason}"
|
||||
},
|
||||
"digest": {
|
||||
"groups": {
|
||||
"vm_ct": "VM y CT",
|
||||
"backup": "copia de seguridad",
|
||||
"resources": "Recursos",
|
||||
"storage": "Almacenamiento",
|
||||
"network": "Red",
|
||||
"security": "Seguridad",
|
||||
"cluster": "Clúster",
|
||||
"services": "Servicios",
|
||||
"health": "Salud",
|
||||
"updates": "Actualizaciones",
|
||||
"hardware": "Hardware",
|
||||
"system": "Sistema",
|
||||
"other": "Otro"
|
||||
},
|
||||
"title": "{hostname}: resumen de 24 horas ({timestamp})",
|
||||
"readFailed": "lectura de resumen fallida: {error}",
|
||||
"empty": "No hay eventos INFO almacenados en el búfer para esta ventana de resumen.",
|
||||
"lead": "{count} INFORMACIÓN de eventos agrupados por categoría:",
|
||||
"more": "• … y {count} más",
|
||||
"footer": "(Los eventos críticos/de advertencia llegaron en el momento en que ocurrieron, no en este resumen).",
|
||||
"quietTitle": "{hostname}: {count} eventos almacenados en búfer durante las horas de silencio"
|
||||
},
|
||||
"test": {
|
||||
"title": "ProxMenux Prueba",
|
||||
"welcome": "¡Bienvenido a ProxMenux Monitor!",
|
||||
"verify": "este es un mensaje de prueba para verificar que su canal de notificaciones esté funcionando correctamente.",
|
||||
"configuration": "Configuración del canal:",
|
||||
"iconsEnabled": "Iconos: habilitado",
|
||||
"iconsDisabled": "Iconos: deshabilitado",
|
||||
"aiEnabled": "AI: habilitado ({info})",
|
||||
"aiDisabled": "AI: deshabilitado",
|
||||
"alerts": "recibirá alertas sobre eventos del sistema, cambios en el estado de salud e incidentes de seguridad.",
|
||||
"photoCaption": "puedes usar esta imagen como foto de perfil para tu robot de notificaciones."
|
||||
},
|
||||
"channels": {
|
||||
"discord": {
|
||||
"category": "Categoría",
|
||||
"host": "Anfitrión",
|
||||
"severity": "Severidad"
|
||||
},
|
||||
"email": {
|
||||
"severity": {
|
||||
"critical": "Crítico",
|
||||
"warning": "Advertencia",
|
||||
"info": "Información",
|
||||
"ok": "Resuelto",
|
||||
"default": "Aviso"
|
||||
},
|
||||
"groups": {
|
||||
"vm_ct": "Máquina virtual / Contenedor",
|
||||
"backup": "copia de seguridad e instantánea",
|
||||
"resources": "Recursos del sistema",
|
||||
"storage": "Almacenamiento",
|
||||
"network": "Red",
|
||||
"security": "Seguridad",
|
||||
"cluster": "Clúster",
|
||||
"services": "Servicios del sistema",
|
||||
"health": "Monitor de salud",
|
||||
"updates": "Actualizaciones del sistema",
|
||||
"system": "Sistema",
|
||||
"hardware": "Hardware",
|
||||
"other": "Notificación del sistema"
|
||||
},
|
||||
"fields": {
|
||||
"vmCtId": "ID de VM/CT",
|
||||
"name": "Nombre",
|
||||
"action": "Acción",
|
||||
"targetNode": "Nodo de destino",
|
||||
"reason": "Razón",
|
||||
"storage": "Almacenamiento",
|
||||
"status": "Estado",
|
||||
"size": "Tamaño",
|
||||
"duration": "Duración",
|
||||
"snapshot": "instantánea",
|
||||
"metric": "Métrico",
|
||||
"currentValue": "Valor actual",
|
||||
"threshold": "Umbral",
|
||||
"cpuCores": "Núcleos de CPU",
|
||||
"memory": "Memoria",
|
||||
"temperature": "Temperatura",
|
||||
"mountPoint": "Punto de montaje",
|
||||
"usage": "uso",
|
||||
"available": "Disponible",
|
||||
"device": "Dispositivo",
|
||||
"severity": "Severidad",
|
||||
"storageName": "Nombre de almacenamiento",
|
||||
"type": "escribir",
|
||||
"interface": "Interfaz",
|
||||
"latency": "Latencia",
|
||||
"event": "Evento",
|
||||
"sourceIp": "IP de origen",
|
||||
"username": "nombre de usuario",
|
||||
"service": "Servicio",
|
||||
"jail": "cárcel",
|
||||
"failures": "fracasos",
|
||||
"change": "cambiar",
|
||||
"node": "Nodo",
|
||||
"quorum": "Quórum",
|
||||
"nodesAffected": "Nodos afectados",
|
||||
"process": "Proceso",
|
||||
"category": "Categoría",
|
||||
"previousSeverity": "Gravedad anterior",
|
||||
"activeIssues": "Problemas activos",
|
||||
"totalUpdates": "Actualizaciones totales",
|
||||
"securityUpdates": "Actualizaciones de seguridad",
|
||||
"proxmoxUpdates": "Proxmox Actualizaciones",
|
||||
"kernelUpdates": "Actualizaciones del kernel",
|
||||
"importantPackages": "Paquetes importantes",
|
||||
"currentVersion": "Versión actual",
|
||||
"newVersion": "Nueva Versión"
|
||||
},
|
||||
"status": {
|
||||
"failed": "fallido",
|
||||
"completed": "Completado",
|
||||
"started": "iniciado"
|
||||
},
|
||||
"report": "{group} Informe",
|
||||
"details": "Detalles",
|
||||
"host": "Anfitrión",
|
||||
"footer": "ProxMenux Servicio de notificación"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user