fix: notification history, Ctrl+D in web terminals, repository and VFIO rule fixes, translation corrections

- Notification settings show the last 20 notifications with the result of each send, the error when one failed and every daily digest run, also on days with nothing to send; the history is read without the flag the API never returned, and the page does not offer to erase it, as Audit & Report reads it.
- The Ctrl menu of the three web terminals sends Ctrl+D, which ends a text pasted in the terminal, also from a phone or a tablet.
- The repository check lists every Proxmox VE or Enterprise Ceph repository whose suite does not match the installed version, with its channel and file, and says where to disable it; repository addresses are never shown.
- Adding an NVIDIA GPU to a VM writes its VFIO udev rule again when it is missing or was edited, and the pre-check counts a missing rule as a pending host change.
- New texts in English and Spanish, modelled in the translation steady-state test, and the notifications docs page describes the history section.
- Corrected the automatic translations of the new LXC update and power control texts, and the start, shutdown, reboot and stop buttons of VMs and LXCs in German, French, Portuguese and Swedish.
- Tests for the history panel, the terminal Ctrl+D, the repository message and the VFIO rule.
This commit is contained in:
MacRimi
2026-10-15 18:30:53 +02:00
parent 983ed38e3b
commit 89fdfd0952
21 changed files with 389 additions and 136 deletions
+30 -18
View File
@@ -1080,8 +1080,8 @@
"reboot": "Reiniciar",
"forceStop": "Parar",
"working": "Procesando...",
"startPending": "Empezando...",
"shutdownPending": "Cerrando...",
"startPending": "Iniciando...",
"shutdownPending": "Apagando...",
"rebootPending": "Reiniciando...",
"stopPending": "Parando..."
},
@@ -1133,7 +1133,7 @@
"removeCustomCommandConfirm": "¿Eliminar el comando de actualización personalizado para \"{name}\"?",
"removeCustomCommandFailed": "No se pudo eliminar el comando de actualización personalizado: {message}",
"hideNoticeFailed": "No se pudo ocultar este aviso: {message}",
"controlNotConfirmed": "La operación no se ha confirmado completa.Verifique el estado del invitado antes de volver a intentarlo."
"controlNotConfirmed": "No se ha confirmado que la operación haya terminado. Compruebe el estado de la VM o del contenedor antes de volver a intentarlo."
},
"backupModal": {
"title": "Backup de {type} {vmid} ({name})",
@@ -1454,21 +1454,21 @@
"postApplyNothingPending": "Nada pendiente — todo actualizado.",
"postApplyPartial": "{pending} paquete(s) siguen pendientes tras la ejecución.",
"postApplyPartialSubline": "{applied} aplicados. Algunas actualizaciones no finalizaron — revisa la salida del terminal.",
"checkNow": "Comprobar ahora",
"checkNow": "Comprobar actualizaciones",
"checkReadOnlyHelp": "Lee el sistema operativo actual y los paquetes pendientes a partir de los índices existentes. No instala nada ni actualiza los índices de paquetes.",
"checkCooldown": "Ya hay una comprobación en curso o se ha solicitado hace poco. Inténtalo de nuevo en {seconds} segundos.",
"checkStale": "Comprobación caducada",
"checkStaleHelp": "Este resultado tiene más de 48 horas o no tiene una fecha de comprobación válida. Lanza una nueva comprobación antes de fiarte de él.",
"checkSystemPackages": "comprobar los paquetes del sistema",
"checkInProgress": "Verificación en progreso",
"refreshCheckHelp": "actualiza los índices de paquetes y verifica las actualizaciones pendientes mientras el contenedor se está ejecutando.No hay nada instalado.",
"notCheckedYet": "Las actualizaciones aún no se han verificado.",
"checkStillRunning": "La verificación aún se está ejecutando.Su resultado se guardará cuando finalice.",
"checkBeforeUpdate": "Check updates first",
"startBeforeCheck": "inicie el contenedor y luego busque actualizaciones.No tener insignia no significa que no haya actualizaciones.",
"runCustomCommand": "ejecutar comando personalizado",
"installedVersionUnverified": "la versión instalada no está verificada.No se pudo confirmar la disponibilidad de la actualización.",
"versionStatusUnknown": "La disponibilidad de la actualización no está verificada.La información de la versión no está disponible o está incompleta."
"checkSystemPackages": "Comprobar paquetes del sistema",
"checkInProgress": "Comprobación en curso",
"refreshCheckHelp": "Renueva los índices de paquetes y comprueba las actualizaciones pendientes mientras el contenedor está en marcha. No instala nada.",
"notCheckedYet": "Las actualizaciones aún no se han comprobado.",
"checkStillRunning": "La comprobación sigue en curso. Su resultado se guardará al terminar.",
"checkBeforeUpdate": "Comprobar actualizaciones primero",
"startBeforeCheck": "Inicie el contenedor y después compruebe las actualizaciones. Que no aparezca el indicador no significa que no haya actualizaciones.",
"runCustomCommand": "Ejecutar comando personalizado",
"installedVersionUnverified": "La versión instalada no está verificada. No se pudo confirmar si hay una actualización disponible.",
"versionStatusUnknown": "No se ha verificado si hay una actualización disponible. La información de versión falta o está incompleta."
},
"bulkUpdate": {
"title": "Actualización en bloque",
@@ -1477,7 +1477,7 @@
"notConfigured": "No configurada.",
"configure": "Configurar",
"edit": "Editar",
"apply": "Aplicar actualizaciones",
"apply": "Iniciar actualización masiva",
"osTarget": "SO",
"osRequired": "Obligatorio en una actualización en bloque.",
"includesDependencies": "Incluye también las dependencias declaradas: {names}",
@@ -1494,9 +1494,9 @@
"deleteFailed": "No se pudo eliminar la configuración de actualización en bloque.",
"planFailed": "No se pudo preparar la actualización en bloque. Edite la configuración y revise los métodos no disponibles.",
"loadFailed": "no se pudo cargar la configuración de actualización masiva.",
"osDockerScope": "las actualizaciones del sistema operativo también incluyen Docker cuando se instala como paquete del sistema.",
"unverifiedTargetsHelp": "la disponibilidad de actualizaciones para algunos elementos seleccionados no está verificada.Al iniciar se ejecutarán los métodos de actualización seleccionados incluso sin una nueva versión confirmada.",
"dockerImageMethod": "imagen Docker"
"osDockerScope": "Las actualizaciones del sistema operativo también incluyen Docker cuando está instalado como paquete del sistema.",
"unverifiedTargetsHelp": "No se ha verificado si hay actualización para algunos de los elementos seleccionados. Al iniciar se ejecutarán los métodos de actualización elegidos aunque no haya una versión nueva confirmada.",
"dockerImageMethod": "Imagen Docker"
},
"appEditor": {
"dockerDetectedWithWorkloads": "Docker detectado con {count} aplicaciones en contenedores",
@@ -2195,6 +2195,17 @@
"localPveApi": "La dirección no puede apuntar a la API PVE local (localhost:8006/8007).",
"metadataIp": "La IP de metadatos del enlace local no se puede utilizar como punto final de Gotify."
},
"history": {
"title": "Historial de notificaciones",
"description": "Las últimas 20 notificaciones enviadas, incluida cada ejecución del resumen diario, con el resultado de cada una.",
"empty": "Todavía no se ha enviado ninguna notificación.",
"loadFailed": "No se pudo cargar el historial de notificaciones.",
"sent": "Enviada",
"notSent": "No enviada",
"severityInfo": "Info",
"severityWarning": "Advertencia",
"severityCritical": "Crítico"
},
"customPromptInfo": {
"title": "Modo de aviso personalizado",
"description": "Cree su propio mensaje de IA para las notificaciones de ProxMenux Monitor",
@@ -5219,6 +5230,7 @@
"processing": "Tratamiento...",
"controlSequences": "Secuencias de control",
"cancelInterrupt": "Cancelar/Interrumpir",
"endOfInput": "Fin de la entrada",
"exitNano": "Salir (nano)",
"searchHistory": "Historial de búsqueda",
"clipboard": "Portapapeles",