mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-10-08 06:26:39 +00:00
Improve LXC updater selection, error handling and dashboard consistency
This commit is contained in:
@@ -45,7 +45,8 @@
|
||||
"profile": "Profil",
|
||||
"node": "Knoten",
|
||||
"admin": "Admin",
|
||||
"menu": "Navigationsmenü"
|
||||
"menu": "Navigationsmenü",
|
||||
"audit": "Audit & Report"
|
||||
},
|
||||
"status": {
|
||||
"healthy": "Gesund",
|
||||
@@ -72,6 +73,8 @@
|
||||
"networkErrorWhileSaving": "Netzwerkfehler beim Speichern"
|
||||
},
|
||||
"overview": {
|
||||
"metricsTimeout": "Die Metrikabfrage hat länger als 30 Sekunden gedauert. ProxMenux versucht es automatisch erneut.",
|
||||
"metricsCachedWarning": "Die Metriken konnten nicht aktualisiert werden. Angezeigt werden die am {time} abgerufenen Daten.",
|
||||
"loadingTitle": "Systemübersicht wird geladen...",
|
||||
"loadingDescription": "Systemstatus und -metriken abrufen",
|
||||
"topProcessesCpu": "Top-Prozesse nach CPU anzeigen",
|
||||
@@ -1217,7 +1220,15 @@
|
||||
"humanWeekly": "Wöchentlich ({day} {time})",
|
||||
"humanMonthly": "Monatlich (Tag {day} um {time})",
|
||||
"humanHourly": "Stündlich",
|
||||
"weekdays": ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
|
||||
"weekdays": [
|
||||
"Sonntag",
|
||||
"Montag",
|
||||
"Dienstag",
|
||||
"Mittwoch",
|
||||
"Donnerstag",
|
||||
"Freitag",
|
||||
"Samstag"
|
||||
]
|
||||
},
|
||||
"cronChip": {
|
||||
"detected": "Host-Cron erkannt",
|
||||
@@ -1244,6 +1255,35 @@
|
||||
"osStatusUnavailable": "Der Status der Betriebssystemaktualisierungen konnte nicht ermittelt werden.",
|
||||
"installedByHelperPrefix": "Installiert von",
|
||||
"helperScriptsName": "Proxmox VE Helper-Scripts",
|
||||
"helperCommandEditHint": "Wenn du diesen Aufruf bearbeitest, wird er als benutzerdefinierter Befehl gespeichert.",
|
||||
"customOnlineDescription": "Oder verwende ein vom Entwickler bereitgestelltes Online-Skript:",
|
||||
"customOnlineExampleNote": "Ersetze die Beispiel-URL durch die URL des offiziellen Skripts deiner Anwendung.",
|
||||
"customExamplesHeading": "Beispiele zum Anpassen:",
|
||||
"updaterChoiceHint": "Wähle eine Aktualisierungsmethode und speichere sie.",
|
||||
"updaterMethodLabel": "Aktualisierungsmethode",
|
||||
"helperMethod": "Helper-Scripts",
|
||||
"customMethod": "Eigener Befehl",
|
||||
"helperMethodHelp": "Über Helper-Scripts",
|
||||
"customMethodHelp": "Über eigene Befehle",
|
||||
"helperDetectedChoice": "Helper-Scripts-Updater für diese Anwendung erkannt.",
|
||||
"helperUnavailableChoice": "Der ausgewählte Helper-Scripts-Updater ist nicht mehr verfügbar.",
|
||||
"disableUpdater": "Deaktivieren",
|
||||
"disableUpdaterConfirm": "Aktualisierungsmethode für {name} deaktivieren? Gespeicherte Pläne und Zeitpläne behalten ihre Auswahl, führen diese Anwendung aber erst wieder aus, wenn eine Methode konfiguriert ist.",
|
||||
"noUpdaterSelected": "Du hast keine Aktualisierungsmethode ausgewählt.",
|
||||
"helperMethodDescription": "ProxMenux führt den erkannten Updater in diesem LXC aus und zeigt dessen Protokoll und Ergebnis. Der Updater wird von Proxmox VE Helper-Scripts gepflegt.",
|
||||
"customMethodDescription": "Du kannst den Updater der Anwendung, einen Paketmanager oder eine neue Binärdatei verwenden. Der Befehl wird in diesem LXC mit Administratorrechten ausgeführt.",
|
||||
"updaterInstructions": "Lies die Hinweise des Updaters.",
|
||||
"helperDocumentation": "Aktualisierungsdokumentation",
|
||||
"helperSource": "Anwendungsskript",
|
||||
"customMethodExample": "Passe Namen, Pfade und Dienst an deine Anwendung an. Nur der gespeicherte Befehl wird ausgeführt.",
|
||||
"helperCommandLabel": "Befehl innerhalb des LXC",
|
||||
"helperCommandFallback": "Wenn wget nicht verfügbar ist, lädt ProxMenux dasselbe Skript mit curl -fsSL herunter.",
|
||||
"customScriptTitle": "Aktualisierungsskript",
|
||||
"customScriptDescription": "Führe ein bereits im LXC vorhandenes Aktualisierungsskript der Anwendung aus.",
|
||||
"customPackageTitle": "Debian/Ubuntu-Paket",
|
||||
"customPackageDescription": "Ersetze my-package durch das Paket, das du aktualisieren möchtest.",
|
||||
"customBinaryTitle": "Binärdatei",
|
||||
"customBinaryDescription": "Lade zuerst die offizielle Binärdatei für die richtige Version und Architektur nach /tmp/my-app.new herunter und überprüfe sie. Dieses Beispiel sichert die bisherige Binärdatei und startet den zugehörigen Dienst neu.",
|
||||
"helperUpdatesRun": "Installiert von Proxmox Helper-Scripts.",
|
||||
"installedPrefix": "installiert",
|
||||
"upstreamAvailable": "Version {version} verfügbar",
|
||||
@@ -4868,5 +4908,134 @@
|
||||
"customLinkDelete": "Delete",
|
||||
"customLinkSaveError": "Save failed",
|
||||
"customLinkDeleteError": "Delete failed"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Audit & Report",
|
||||
"loading": "Loading assessment…",
|
||||
"run": "Run assessment",
|
||||
"running": "Assessing…",
|
||||
"neverRun": "This host has not been assessed yet.",
|
||||
"lastRun": "Last assessed on {when}",
|
||||
"stale": "{days} days ago",
|
||||
"readOnlyNotice": "The assessment only reads the host. It makes no changes.",
|
||||
"noFindings": "No findings match the current filter.",
|
||||
"showPassing": "Show passing checks",
|
||||
"hidePassing": "Hide passing checks",
|
||||
"affectedCount": "{count} affected",
|
||||
"acceptedNotice": "{count} accepted risk(s) recorded on this host.",
|
||||
"states": {
|
||||
"fail": "Failed",
|
||||
"warn": "Warning",
|
||||
"accepted": "Accepted risk",
|
||||
"pass": "Passed",
|
||||
"not_applicable": "Not applicable"
|
||||
},
|
||||
"areas": {
|
||||
"all": "All",
|
||||
"system": "System",
|
||||
"storage": "Storage",
|
||||
"network": "Network",
|
||||
"security": "Security",
|
||||
"backup": "Backup",
|
||||
"guests": "Guests",
|
||||
"hardware": "Hardware"
|
||||
},
|
||||
"detail": {
|
||||
"why": "Context",
|
||||
"evidence": "Evidence",
|
||||
"affected": "Affected",
|
||||
"acceptedRisk": "Accepted risk"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "The assessment could not be started."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
"guest_coverage": {
|
||||
"title": "Backup coverage",
|
||||
"rationale": "Compares the guest inventory against what each backup job selects. A job selects by VMID list, by pool, or with `all 1`, minus its `exclude` list. Jobs carrying `enabled 0` are not considered.",
|
||||
"summary": {
|
||||
"noJobs": "No backup job is defined on this node",
|
||||
"covered": "All {total} guests are covered by a backup job",
|
||||
"uncovered": "{count} of {total} guests are not covered by any enabled backup job"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"pending_reboot": {
|
||||
"title": "Restart state",
|
||||
"rationale": "Checks for `/var/run/reboot-required` and, when present, the packages listed in `/var/run/reboot-required.pkgs`. Also reports the running kernel.",
|
||||
"summary": {
|
||||
"none": "No restart is pending",
|
||||
"pending": "The host has a pending restart"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Enterprise repository",
|
||||
"rationale": "Looks for references to `enterprise.proxmox.com` in `/etc/apt/sources.list` and `sources.list.d`, and contrasts the result with the status returned by `pvesubscription get`.",
|
||||
"summary": {
|
||||
"notEnabled": "The enterprise repository is not enabled",
|
||||
"subscribed": "The enterprise repository is backed by a subscription",
|
||||
"unsubscribed": "The enterprise repository is enabled without an active subscription"
|
||||
}
|
||||
}
|
||||
},
|
||||
"guests": {
|
||||
"privileged_containers": {
|
||||
"title": "Container privileges",
|
||||
"rationale": "Reviews each container configuration. Proxmox marks unprivileged containers with `unprivileged: 1`; its absence indicates a privileged container, which shares the host user namespace.",
|
||||
"summary": {
|
||||
"allUnprivileged": "All {total} containers are unprivileged",
|
||||
"privileged": "{count} of {total} containers run privileged"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Guest agent on virtual machines",
|
||||
"rationale": "Reviews each virtual machine configuration for `agent: 1`. The guest agent enables ordered shutdown, filesystem quiescing for snapshots and real disk usage reporting.",
|
||||
"summary": {
|
||||
"allHaveAgent": "All {total} virtual machines declare the guest agent",
|
||||
"missingAgent": "{count} of {total} virtual machines do not declare the guest agent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"host_firewall_enabled": {
|
||||
"title": "Firewall state",
|
||||
"rationale": "Checks `enable: 1` in `/etc/pve/firewall/cluster.fw` and in the node's `host.fw`. Proxmox applies node rules only while the datacenter switch is on.",
|
||||
"summary": {
|
||||
"bothEnabled": "The firewall is enabled at datacenter and node level",
|
||||
"datacenterOff": "The firewall is disabled at datacenter level, so node rules are not applied",
|
||||
"nodeOff": "The firewall is enabled at datacenter level but not on this node"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"orphaned_volumes": {
|
||||
"title": "Volume assignment",
|
||||
"rationale": "Compares the volumes returned by `pvesm list` against the existing guest configurations. Only non-shared storage is examined: on shared storage a volume may belong to a guest running on another node.",
|
||||
"summary": {
|
||||
"none": "No orphaned volumes were found",
|
||||
"found": "{count} volume(s) belong to no existing guest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "The check could not be evaluated",
|
||||
"acceptRisk": {
|
||||
"action": "Accept risk",
|
||||
"revoke": "Return to active",
|
||||
"title": "Accept this risk",
|
||||
"reasonLabel": "Reason",
|
||||
"reasonHelp": "Required. It is recorded together with the author and the date.",
|
||||
"reasonPlaceholder": "e.g. Lab containers, not covered on purpose",
|
||||
"expiryLabel": "Review after",
|
||||
"expiryHelp": "When the period ends the finding becomes active again.",
|
||||
"expiryNever": "Does not expire",
|
||||
"expiry90": "90 days",
|
||||
"expiry180": "180 days",
|
||||
"expiry365": "1 year",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Accept risk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
"profile": "Profile",
|
||||
"node": "Node",
|
||||
"admin": "Admin",
|
||||
"menu": "Navigation Menu"
|
||||
"menu": "Navigation Menu",
|
||||
"audit": "Audit & Report"
|
||||
},
|
||||
"status": {
|
||||
"healthy": "Healthy",
|
||||
@@ -71,6 +72,8 @@
|
||||
"networkErrorWhileSaving": "Network error while saving"
|
||||
},
|
||||
"overview": {
|
||||
"metricsTimeout": "The metrics query exceeded 30 seconds. ProxMenux will retry automatically.",
|
||||
"metricsCachedWarning": "Could not refresh metrics. Showing data retrieved at {time}.",
|
||||
"loadingTitle": "Loading system overview...",
|
||||
"loadingDescription": "Fetching system status and metrics",
|
||||
"topProcessesCpu": "View top processes by CPU",
|
||||
@@ -1273,6 +1276,35 @@
|
||||
"osStatusUnavailable": "The OS update status could not be determined.",
|
||||
"installedByHelperPrefix": "Installed by",
|
||||
"helperScriptsName": "Proxmox VE Helper-Scripts",
|
||||
"helperCommandEditHint": "If you edit this launcher, it will be saved as a custom command.",
|
||||
"customOnlineDescription": "Or use an online script provided by the developer:",
|
||||
"customOnlineExampleNote": "Replace the example URL with the official script URL for your application.",
|
||||
"customExamplesHeading": "Examples to adapt:",
|
||||
"updaterChoiceHint": "Choose and save an update method.",
|
||||
"updaterMethodLabel": "Update method",
|
||||
"helperMethod": "Helper-Scripts",
|
||||
"customMethod": "Custom command",
|
||||
"helperMethodHelp": "About Helper-Scripts",
|
||||
"customMethodHelp": "About custom commands",
|
||||
"helperDetectedChoice": "Helper-Scripts updater detected for this application.",
|
||||
"helperUnavailableChoice": "The selected Helper-Scripts updater is no longer available.",
|
||||
"disableUpdater": "Disable",
|
||||
"disableUpdaterConfirm": "Disable the update method for {name}? Saved plans and schedules will keep their selections, but this application will not run until a method is configured again.",
|
||||
"noUpdaterSelected": "You have not selected an update method.",
|
||||
"helperMethodDescription": "ProxMenux runs the detected updater inside this LXC and displays its log and result. The updater is maintained by Proxmox VE Helper-Scripts.",
|
||||
"customMethodDescription": "You can use the application's own updater, a package manager or a new binary. The command runs inside this LXC with administrator privileges.",
|
||||
"updaterInstructions": "Review the updater's instructions.",
|
||||
"helperDocumentation": "Update documentation",
|
||||
"helperSource": "Application script",
|
||||
"customMethodExample": "Adapt the names, paths and service to your application. Only the command you save will run.",
|
||||
"helperCommandLabel": "Command inside the LXC",
|
||||
"helperCommandFallback": "If wget is unavailable, ProxMenux uses curl -fsSL to download the same script.",
|
||||
"customScriptTitle": "Update script",
|
||||
"customScriptDescription": "Run an existing application update script inside the LXC.",
|
||||
"customPackageTitle": "Debian/Ubuntu package",
|
||||
"customPackageDescription": "Replace my-package with the package you want to update.",
|
||||
"customBinaryTitle": "Binary",
|
||||
"customBinaryDescription": "First download and verify the official binary for the correct version and architecture at /tmp/my-app.new. This example keeps a backup of the previous binary and restarts its service.",
|
||||
"helperUpdatesRun": "Installed by Proxmox Helper-Scripts.",
|
||||
"installedPrefix": "installed",
|
||||
"upstreamAvailable": "upstream {version} available",
|
||||
@@ -4942,5 +4974,134 @@
|
||||
"customLinkDelete": "Delete",
|
||||
"customLinkSaveError": "Save failed",
|
||||
"customLinkDeleteError": "Delete failed"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Audit & Report",
|
||||
"loading": "Loading assessment…",
|
||||
"run": "Run assessment",
|
||||
"running": "Assessing…",
|
||||
"neverRun": "This host has not been assessed yet.",
|
||||
"lastRun": "Last assessed on {when}",
|
||||
"stale": "{days} days ago",
|
||||
"readOnlyNotice": "The assessment only reads the host. It makes no changes.",
|
||||
"noFindings": "No findings match the current filter.",
|
||||
"showPassing": "Show passing checks",
|
||||
"hidePassing": "Hide passing checks",
|
||||
"affectedCount": "{count} affected",
|
||||
"acceptedNotice": "{count} accepted risk(s) recorded on this host.",
|
||||
"states": {
|
||||
"fail": "Failed",
|
||||
"warn": "Warning",
|
||||
"accepted": "Accepted risk",
|
||||
"pass": "Passed",
|
||||
"not_applicable": "Not applicable"
|
||||
},
|
||||
"areas": {
|
||||
"all": "All",
|
||||
"system": "System",
|
||||
"storage": "Storage",
|
||||
"network": "Network",
|
||||
"security": "Security",
|
||||
"backup": "Backup",
|
||||
"guests": "Guests",
|
||||
"hardware": "Hardware"
|
||||
},
|
||||
"detail": {
|
||||
"why": "Context",
|
||||
"evidence": "Evidence",
|
||||
"affected": "Affected",
|
||||
"acceptedRisk": "Accepted risk"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "The assessment could not be started."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
"guest_coverage": {
|
||||
"title": "Backup coverage",
|
||||
"rationale": "Compares the guest inventory against what each backup job selects. A job selects by VMID list, by pool, or with `all 1`, minus its `exclude` list. Jobs carrying `enabled 0` are not considered.",
|
||||
"summary": {
|
||||
"noJobs": "No backup job is defined on this node",
|
||||
"covered": "All {total} guests are covered by a backup job",
|
||||
"uncovered": "{count} of {total} guests are not covered by any enabled backup job"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"pending_reboot": {
|
||||
"title": "Restart state",
|
||||
"rationale": "Checks for `/var/run/reboot-required` and, when present, the packages listed in `/var/run/reboot-required.pkgs`. Also reports the running kernel.",
|
||||
"summary": {
|
||||
"none": "No restart is pending",
|
||||
"pending": "The host has a pending restart"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Enterprise repository",
|
||||
"rationale": "Looks for references to `enterprise.proxmox.com` in `/etc/apt/sources.list` and `sources.list.d`, and contrasts the result with the status returned by `pvesubscription get`.",
|
||||
"summary": {
|
||||
"notEnabled": "The enterprise repository is not enabled",
|
||||
"subscribed": "The enterprise repository is backed by a subscription",
|
||||
"unsubscribed": "The enterprise repository is enabled without an active subscription"
|
||||
}
|
||||
}
|
||||
},
|
||||
"guests": {
|
||||
"privileged_containers": {
|
||||
"title": "Container privileges",
|
||||
"rationale": "Reviews each container configuration. Proxmox marks unprivileged containers with `unprivileged: 1`; its absence indicates a privileged container, which shares the host user namespace.",
|
||||
"summary": {
|
||||
"allUnprivileged": "All {total} containers are unprivileged",
|
||||
"privileged": "{count} of {total} containers run privileged"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Guest agent on virtual machines",
|
||||
"rationale": "Reviews each virtual machine configuration for `agent: 1`. The guest agent enables ordered shutdown, filesystem quiescing for snapshots and real disk usage reporting.",
|
||||
"summary": {
|
||||
"allHaveAgent": "All {total} virtual machines declare the guest agent",
|
||||
"missingAgent": "{count} of {total} virtual machines do not declare the guest agent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"host_firewall_enabled": {
|
||||
"title": "Firewall state",
|
||||
"rationale": "Checks `enable: 1` in `/etc/pve/firewall/cluster.fw` and in the node's `host.fw`. Proxmox applies node rules only while the datacenter switch is on.",
|
||||
"summary": {
|
||||
"bothEnabled": "The firewall is enabled at datacenter and node level",
|
||||
"datacenterOff": "The firewall is disabled at datacenter level, so node rules are not applied",
|
||||
"nodeOff": "The firewall is enabled at datacenter level but not on this node"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"orphaned_volumes": {
|
||||
"title": "Volume assignment",
|
||||
"rationale": "Compares the volumes returned by `pvesm list` against the existing guest configurations. Only non-shared storage is examined: on shared storage a volume may belong to a guest running on another node.",
|
||||
"summary": {
|
||||
"none": "No orphaned volumes were found",
|
||||
"found": "{count} volume(s) belong to no existing guest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "The check could not be evaluated",
|
||||
"acceptRisk": {
|
||||
"action": "Accept risk",
|
||||
"revoke": "Return to active",
|
||||
"title": "Accept this risk",
|
||||
"reasonLabel": "Reason",
|
||||
"reasonHelp": "Required. It is recorded together with the author and the date.",
|
||||
"reasonPlaceholder": "e.g. Lab containers, not covered on purpose",
|
||||
"expiryLabel": "Review after",
|
||||
"expiryHelp": "When the period ends the finding becomes active again.",
|
||||
"expiryNever": "Does not expire",
|
||||
"expiry90": "90 days",
|
||||
"expiry180": "180 days",
|
||||
"expiry365": "1 year",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Accept risk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
"profile": "Perfil",
|
||||
"node": "Nodo",
|
||||
"admin": "Administración",
|
||||
"menu": "Menú de navegación"
|
||||
"menu": "Menú de navegación",
|
||||
"audit": "Auditoría e informes"
|
||||
},
|
||||
"status": {
|
||||
"healthy": "OK",
|
||||
@@ -72,6 +73,8 @@
|
||||
"networkErrorWhileSaving": "Error de red al guardar"
|
||||
},
|
||||
"overview": {
|
||||
"metricsTimeout": "La consulta de métricas ha superado los 30 segundos. ProxMenux volverá a intentarlo automáticamente.",
|
||||
"metricsCachedWarning": "No se han podido actualizar las métricas. Se muestran los datos obtenidos el {time}.",
|
||||
"loadingTitle": "Cargando descripción general del sistema...",
|
||||
"loadingDescription": "Obtener el estado y las métricas del sistema",
|
||||
"topProcessesCpu": "Ver procesos principales por CPU",
|
||||
@@ -1217,7 +1220,15 @@
|
||||
"humanWeekly": "Semanal ({day} {time})",
|
||||
"humanMonthly": "Mensual (día {day} a las {time})",
|
||||
"humanHourly": "cada hora",
|
||||
"weekdays": ["domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"]
|
||||
"weekdays": [
|
||||
"domingo",
|
||||
"lunes",
|
||||
"martes",
|
||||
"miércoles",
|
||||
"jueves",
|
||||
"viernes",
|
||||
"sábado"
|
||||
]
|
||||
},
|
||||
"cronChip": {
|
||||
"detected": "cron del host detectado",
|
||||
@@ -1244,6 +1255,35 @@
|
||||
"osStatusUnavailable": "No se ha podido determinar el estado de las actualizaciones del SO.",
|
||||
"installedByHelperPrefix": "Instalado por",
|
||||
"helperScriptsName": "Proxmox VE Helper-Scripts",
|
||||
"helperCommandEditHint": "Si modificas este lanzador, se guardará como comando personalizado.",
|
||||
"customOnlineDescription": "O utiliza un script online proporcionado por el desarrollador:",
|
||||
"customOnlineExampleNote": "Sustituye la URL de ejemplo por la del script oficial de tu aplicación.",
|
||||
"customExamplesHeading": "Ejemplos para adaptar:",
|
||||
"updaterChoiceHint": "Elige y guarda un método de actualización.",
|
||||
"updaterMethodLabel": "Método de actualización",
|
||||
"helperMethod": "Helper-Scripts",
|
||||
"customMethod": "Comando personalizado",
|
||||
"helperMethodHelp": "Acerca de Helper-Scripts",
|
||||
"customMethodHelp": "Acerca del comando personalizado",
|
||||
"helperDetectedChoice": "Actualizador de Helper-Scripts detectado para esta aplicación.",
|
||||
"helperUnavailableChoice": "El actualizador de Helper-Scripts seleccionado ya no está disponible.",
|
||||
"disableUpdater": "Desactivar",
|
||||
"disableUpdaterConfirm": "¿Desactivar el método de actualización de {name}? Los planes y las programaciones conservarán sus selecciones, pero esta aplicación no se ejecutará hasta que vuelvas a configurar un método.",
|
||||
"noUpdaterSelected": "No has seleccionado un método de actualización.",
|
||||
"helperMethodDescription": "ProxMenux ejecuta el actualizador detectado dentro de este LXC y muestra su registro y resultado. Este lo mantiene Proxmox VE Helper-Scripts.",
|
||||
"customMethodDescription": "Puedes utilizar el actualizador de la aplicación, un gestor de paquetes o un binario nuevo. El comando se ejecuta dentro de este LXC con privilegios de administrador.",
|
||||
"updaterInstructions": "Revisa las indicaciones del actualizador.",
|
||||
"helperDocumentation": "Documentación de actualización",
|
||||
"helperSource": "Script de la aplicación",
|
||||
"customMethodExample": "Adapta los nombres, las rutas y el servicio a tu aplicación. Solo se ejecutará el comando que guardes.",
|
||||
"helperCommandLabel": "Comando dentro del LXC",
|
||||
"helperCommandFallback": "Si wget no está disponible, ProxMenux utiliza curl -fsSL para descargar el mismo script.",
|
||||
"customScriptTitle": "Script de actualización",
|
||||
"customScriptDescription": "Ejecuta un script de actualización de la aplicación que ya exista en el LXC.",
|
||||
"customPackageTitle": "Paquete Debian/Ubuntu",
|
||||
"customPackageDescription": "Sustituye my-package por el paquete que quieras actualizar.",
|
||||
"customBinaryTitle": "Binario",
|
||||
"customBinaryDescription": "Primero descarga y verifica el binario oficial de la versión y arquitectura correctas en /tmp/my-app.new. Este ejemplo conserva una copia del binario anterior y reinicia su servicio.",
|
||||
"helperUpdatesRun": "Instalado por Proxmox Helper-Scripts.",
|
||||
"installedPrefix": "instalado",
|
||||
"upstreamAvailable": "versión {version} disponible",
|
||||
@@ -4868,5 +4908,134 @@
|
||||
"customLinkDelete": "Eliminar",
|
||||
"customLinkSaveError": "Error al guardar",
|
||||
"customLinkDeleteError": "Error al eliminar"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Auditoría e informes",
|
||||
"loading": "Cargando evaluación…",
|
||||
"run": "Ejecutar evaluación",
|
||||
"running": "Evaluando…",
|
||||
"neverRun": "Este host aún no se ha evaluado.",
|
||||
"lastRun": "Última evaluación el {when}",
|
||||
"stale": "hace {days} días",
|
||||
"readOnlyNotice": "La evaluación solo lee el host. No realiza ningún cambio.",
|
||||
"noFindings": "Ningún hallazgo coincide con el filtro actual.",
|
||||
"showPassing": "Mostrar comprobaciones correctas",
|
||||
"hidePassing": "Ocultar comprobaciones correctas",
|
||||
"affectedCount": "{count} afectados",
|
||||
"acceptedNotice": "{count} riesgo(s) aceptado(s) registrados en este host.",
|
||||
"states": {
|
||||
"fail": "Fallo",
|
||||
"warn": "Aviso",
|
||||
"accepted": "Riesgo aceptado",
|
||||
"pass": "Correcto",
|
||||
"not_applicable": "No aplicable"
|
||||
},
|
||||
"areas": {
|
||||
"all": "Todas",
|
||||
"system": "Sistema",
|
||||
"storage": "Almacenamiento",
|
||||
"network": "Red",
|
||||
"security": "Seguridad",
|
||||
"backup": "Backups",
|
||||
"guests": "Invitados",
|
||||
"hardware": "Hardware"
|
||||
},
|
||||
"detail": {
|
||||
"why": "Contexto",
|
||||
"evidence": "Evidencia",
|
||||
"affected": "Afectados",
|
||||
"acceptedRisk": "Riesgo aceptado"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "No se pudo iniciar la evaluación."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
"guest_coverage": {
|
||||
"title": "Cobertura de backups",
|
||||
"rationale": "Compara el inventario de invitados con la selección de cada trabajo de backup. Un trabajo selecciona por lista de VMID, por pool o con `all 1`, restando su lista `exclude`. Los trabajos con `enabled 0` no se consideran.",
|
||||
"summary": {
|
||||
"noJobs": "No hay ningún trabajo de backup definido en este nodo",
|
||||
"covered": "Los {total} invitados están cubiertos por un trabajo de backup",
|
||||
"uncovered": "{count} de {total} invitados no están cubiertos por ningún trabajo de backup activo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"pending_reboot": {
|
||||
"title": "Estado de reinicio",
|
||||
"rationale": "Comprueba la presencia de `/var/run/reboot-required` y, cuando existe, los paquetes listados en `/var/run/reboot-required.pkgs`. Informa también del kernel en ejecución.",
|
||||
"summary": {
|
||||
"none": "No hay ningún reinicio pendiente",
|
||||
"pending": "El host tiene un reinicio pendiente"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Repositorio enterprise",
|
||||
"rationale": "Busca referencias a `enterprise.proxmox.com` en `/etc/apt/sources.list` y en `sources.list.d`, y contrasta el resultado con el estado que devuelve `pvesubscription get`.",
|
||||
"summary": {
|
||||
"notEnabled": "El repositorio enterprise no está habilitado",
|
||||
"subscribed": "El repositorio enterprise cuenta con suscripción",
|
||||
"unsubscribed": "El repositorio enterprise está habilitado sin suscripción activa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"guests": {
|
||||
"privileged_containers": {
|
||||
"title": "Privilegios de los contenedores",
|
||||
"rationale": "Revisa la configuración de cada contenedor. Proxmox marca los contenedores sin privilegios con `unprivileged: 1`; su ausencia indica un contenedor privilegiado, que comparte el espacio de nombres de usuario del host.",
|
||||
"summary": {
|
||||
"allUnprivileged": "Los {total} contenedores son sin privilegios",
|
||||
"privileged": "{count} de {total} contenedores se ejecutan con privilegios"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Agente invitado en máquinas virtuales",
|
||||
"rationale": "Revisa la configuración de cada máquina virtual en busca de `agent: 1`. El agente invitado habilita el apagado ordenado, la congelación del sistema de archivos para instantáneas y el informe de uso real de disco.",
|
||||
"summary": {
|
||||
"allHaveAgent": "Las {total} máquinas virtuales declaran el agente invitado",
|
||||
"missingAgent": "{count} de {total} máquinas virtuales no declaran el agente invitado"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"host_firewall_enabled": {
|
||||
"title": "Estado del firewall",
|
||||
"rationale": "Comprueba `enable: 1` en `/etc/pve/firewall/cluster.fw` y en el `host.fw` del nodo. Proxmox aplica las reglas del nodo solo mientras el interruptor del centro de datos está activo.",
|
||||
"summary": {
|
||||
"bothEnabled": "El firewall está habilitado en el centro de datos y en el nodo",
|
||||
"datacenterOff": "El firewall está deshabilitado en el centro de datos, así que las reglas del nodo no se aplican",
|
||||
"nodeOff": "El firewall está habilitado en el centro de datos pero no en este nodo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"orphaned_volumes": {
|
||||
"title": "Asignación de volúmenes",
|
||||
"rationale": "Compara los volúmenes que devuelve `pvesm list` con las configuraciones de invitado existentes. Solo examina almacenamiento no compartido: en almacenamiento compartido un volumen puede pertenecer a un invitado que se ejecuta en otro nodo.",
|
||||
"summary": {
|
||||
"none": "No se han encontrado volúmenes huérfanos",
|
||||
"found": "{count} volumen(es) no pertenecen a ningún invitado existente"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "No se pudo evaluar la comprobación",
|
||||
"acceptRisk": {
|
||||
"action": "Aceptar riesgo",
|
||||
"revoke": "Volver a activo",
|
||||
"title": "Aceptar este riesgo",
|
||||
"reasonLabel": "Motivo",
|
||||
"reasonHelp": "Obligatorio. Queda registrado junto al autor y la fecha.",
|
||||
"reasonPlaceholder": "p. ej. Contenedores de laboratorio, sin cobertura a propósito",
|
||||
"expiryLabel": "Revisar dentro de",
|
||||
"expiryHelp": "Al cumplirse el plazo el hallazgo vuelve a estado activo.",
|
||||
"expiryNever": "No caduca",
|
||||
"expiry90": "90 días",
|
||||
"expiry180": "180 días",
|
||||
"expiry365": "1 año",
|
||||
"cancel": "Cancelar",
|
||||
"confirm": "Aceptar riesgo"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
"profile": "Profil",
|
||||
"node": "Nœud",
|
||||
"admin": "Administrateur",
|
||||
"menu": "Menu de navigation"
|
||||
"menu": "Menu de navigation",
|
||||
"audit": "Audit et rapports"
|
||||
},
|
||||
"status": {
|
||||
"healthy": "En bonne santé",
|
||||
@@ -72,6 +73,8 @@
|
||||
"networkErrorWhileSaving": "Erreur réseau lors de l'enregistrement"
|
||||
},
|
||||
"overview": {
|
||||
"metricsTimeout": "La requête de métriques a dépassé 30 secondes. ProxMenux réessaiera automatiquement.",
|
||||
"metricsCachedWarning": "Les métriques n’ont pas pu être actualisées. Les données récupérées le {time} sont affichées.",
|
||||
"loadingTitle": "Chargement de l'aperçu du système...",
|
||||
"loadingDescription": "Récupération de l'état et des métriques du système",
|
||||
"topProcessesCpu": "Afficher les principaux processus par processeur",
|
||||
@@ -1217,7 +1220,15 @@
|
||||
"humanWeekly": "hebdomadaire ({day} {time})",
|
||||
"humanMonthly": "mensuel (jour {day} à {time})",
|
||||
"humanHourly": "Horaire",
|
||||
"weekdays": ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]
|
||||
"weekdays": [
|
||||
"Dimanche",
|
||||
"Lundi",
|
||||
"Mardi",
|
||||
"Mercredi",
|
||||
"Jeudi",
|
||||
"Vendredi",
|
||||
"Samedi"
|
||||
]
|
||||
},
|
||||
"cronChip": {
|
||||
"detected": "cron hôte détecté",
|
||||
@@ -1244,6 +1255,35 @@
|
||||
"osStatusUnavailable": "Impossible de déterminer l’état des mises à jour du système d’exploitation.",
|
||||
"installedByHelperPrefix": "Installé par",
|
||||
"helperScriptsName": "Proxmox VE Helper-Scripts",
|
||||
"helperCommandEditHint": "Si vous modifiez cette commande de lancement, elle sera enregistrée comme commande personnalisée.",
|
||||
"customOnlineDescription": "Ou utilisez un script en ligne fourni par le développeur :",
|
||||
"customOnlineExampleNote": "Remplacez l’URL d’exemple par celle du script officiel de votre application.",
|
||||
"customExamplesHeading": "Exemples à adapter:",
|
||||
"updaterChoiceHint": "Choisissez une méthode de mise à jour et enregistrez-la.",
|
||||
"updaterMethodLabel": "Méthode de mise à jour",
|
||||
"helperMethod": "Helper-Scripts",
|
||||
"customMethod": "Commande personnalisée",
|
||||
"helperMethodHelp": "À propos de Helper-Scripts",
|
||||
"customMethodHelp": "À propos des commandes personnalisées",
|
||||
"helperDetectedChoice": "Un programme de mise à jour Helper-Scripts a été détecté pour cette application.",
|
||||
"helperUnavailableChoice": "Le programme de mise à jour Helper-Scripts sélectionné n’est plus disponible.",
|
||||
"disableUpdater": "Désactiver",
|
||||
"disableUpdaterConfirm": "Désactiver la méthode de mise à jour de {name} ? Les plans et les programmations conserveront leurs sélections, mais cette application ne sera pas exécutée tant qu’une méthode n’aura pas été reconfigurée.",
|
||||
"noUpdaterSelected": "Vous n’avez pas sélectionné de méthode de mise à jour.",
|
||||
"helperMethodDescription": "ProxMenux exécute le programme de mise à jour détecté dans ce LXC et affiche son journal et son résultat. Ce programme est maintenu par Proxmox VE Helper-Scripts.",
|
||||
"customMethodDescription": "Vous pouvez utiliser le programme de mise à jour de l’application, un gestionnaire de paquets ou un nouveau binaire. La commande s’exécute dans ce LXC avec les droits administrateur.",
|
||||
"updaterInstructions": "Consultez les instructions du programme de mise à jour.",
|
||||
"helperDocumentation": "Documentation des mises à jour",
|
||||
"helperSource": "Script de l’application",
|
||||
"customMethodExample": "Adaptez les noms, les chemins et le service à votre application. Seule la commande enregistrée sera exécutée.",
|
||||
"helperCommandLabel": "Commande dans le LXC",
|
||||
"helperCommandFallback": "Si wget n’est pas disponible, ProxMenux utilise curl -fsSL pour télécharger le même script.",
|
||||
"customScriptTitle": "Script de mise à jour",
|
||||
"customScriptDescription": "Exécutez un script de mise à jour de l’application déjà présent dans le LXC.",
|
||||
"customPackageTitle": "Paquet Debian/Ubuntu",
|
||||
"customPackageDescription": "Remplacez my-package par le paquet à mettre à jour.",
|
||||
"customBinaryTitle": "Binaire",
|
||||
"customBinaryDescription": "Téléchargez d’abord le binaire officiel pour la version et l’architecture appropriées dans /tmp/my-app.new, puis vérifiez-le. Cet exemple conserve une copie du binaire précédent et redémarre son service.",
|
||||
"helperUpdatesRun": "Installé par Proxmox Helper-Scripts.",
|
||||
"installedPrefix": "installé",
|
||||
"upstreamAvailable": "version {version} disponible",
|
||||
@@ -4868,5 +4908,134 @@
|
||||
"customLinkDelete": "Delete",
|
||||
"customLinkSaveError": "Save failed",
|
||||
"customLinkDeleteError": "Delete failed"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Audit & Report",
|
||||
"loading": "Loading assessment…",
|
||||
"run": "Run assessment",
|
||||
"running": "Assessing…",
|
||||
"neverRun": "This host has not been assessed yet.",
|
||||
"lastRun": "Last assessed on {when}",
|
||||
"stale": "{days} days ago",
|
||||
"readOnlyNotice": "The assessment only reads the host. It makes no changes.",
|
||||
"noFindings": "No findings match the current filter.",
|
||||
"showPassing": "Show passing checks",
|
||||
"hidePassing": "Hide passing checks",
|
||||
"affectedCount": "{count} affected",
|
||||
"acceptedNotice": "{count} accepted risk(s) recorded on this host.",
|
||||
"states": {
|
||||
"fail": "Failed",
|
||||
"warn": "Warning",
|
||||
"accepted": "Accepted risk",
|
||||
"pass": "Passed",
|
||||
"not_applicable": "Not applicable"
|
||||
},
|
||||
"areas": {
|
||||
"all": "All",
|
||||
"system": "System",
|
||||
"storage": "Storage",
|
||||
"network": "Network",
|
||||
"security": "Security",
|
||||
"backup": "Backup",
|
||||
"guests": "Guests",
|
||||
"hardware": "Hardware"
|
||||
},
|
||||
"detail": {
|
||||
"why": "Context",
|
||||
"evidence": "Evidence",
|
||||
"affected": "Affected",
|
||||
"acceptedRisk": "Accepted risk"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "The assessment could not be started."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
"guest_coverage": {
|
||||
"title": "Backup coverage",
|
||||
"rationale": "Compares the guest inventory against what each backup job selects. A job selects by VMID list, by pool, or with `all 1`, minus its `exclude` list. Jobs carrying `enabled 0` are not considered.",
|
||||
"summary": {
|
||||
"noJobs": "No backup job is defined on this node",
|
||||
"covered": "All {total} guests are covered by a backup job",
|
||||
"uncovered": "{count} of {total} guests are not covered by any enabled backup job"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"pending_reboot": {
|
||||
"title": "Restart state",
|
||||
"rationale": "Checks for `/var/run/reboot-required` and, when present, the packages listed in `/var/run/reboot-required.pkgs`. Also reports the running kernel.",
|
||||
"summary": {
|
||||
"none": "No restart is pending",
|
||||
"pending": "The host has a pending restart"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Enterprise repository",
|
||||
"rationale": "Looks for references to `enterprise.proxmox.com` in `/etc/apt/sources.list` and `sources.list.d`, and contrasts the result with the status returned by `pvesubscription get`.",
|
||||
"summary": {
|
||||
"notEnabled": "The enterprise repository is not enabled",
|
||||
"subscribed": "The enterprise repository is backed by a subscription",
|
||||
"unsubscribed": "The enterprise repository is enabled without an active subscription"
|
||||
}
|
||||
}
|
||||
},
|
||||
"guests": {
|
||||
"privileged_containers": {
|
||||
"title": "Container privileges",
|
||||
"rationale": "Reviews each container configuration. Proxmox marks unprivileged containers with `unprivileged: 1`; its absence indicates a privileged container, which shares the host user namespace.",
|
||||
"summary": {
|
||||
"allUnprivileged": "All {total} containers are unprivileged",
|
||||
"privileged": "{count} of {total} containers run privileged"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Guest agent on virtual machines",
|
||||
"rationale": "Reviews each virtual machine configuration for `agent: 1`. The guest agent enables ordered shutdown, filesystem quiescing for snapshots and real disk usage reporting.",
|
||||
"summary": {
|
||||
"allHaveAgent": "All {total} virtual machines declare the guest agent",
|
||||
"missingAgent": "{count} of {total} virtual machines do not declare the guest agent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"host_firewall_enabled": {
|
||||
"title": "Firewall state",
|
||||
"rationale": "Checks `enable: 1` in `/etc/pve/firewall/cluster.fw` and in the node's `host.fw`. Proxmox applies node rules only while the datacenter switch is on.",
|
||||
"summary": {
|
||||
"bothEnabled": "The firewall is enabled at datacenter and node level",
|
||||
"datacenterOff": "The firewall is disabled at datacenter level, so node rules are not applied",
|
||||
"nodeOff": "The firewall is enabled at datacenter level but not on this node"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"orphaned_volumes": {
|
||||
"title": "Volume assignment",
|
||||
"rationale": "Compares the volumes returned by `pvesm list` against the existing guest configurations. Only non-shared storage is examined: on shared storage a volume may belong to a guest running on another node.",
|
||||
"summary": {
|
||||
"none": "No orphaned volumes were found",
|
||||
"found": "{count} volume(s) belong to no existing guest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "The check could not be evaluated",
|
||||
"acceptRisk": {
|
||||
"action": "Accept risk",
|
||||
"revoke": "Return to active",
|
||||
"title": "Accept this risk",
|
||||
"reasonLabel": "Reason",
|
||||
"reasonHelp": "Required. It is recorded together with the author and the date.",
|
||||
"reasonPlaceholder": "e.g. Lab containers, not covered on purpose",
|
||||
"expiryLabel": "Review after",
|
||||
"expiryHelp": "When the period ends the finding becomes active again.",
|
||||
"expiryNever": "Does not expire",
|
||||
"expiry90": "90 days",
|
||||
"expiry180": "180 days",
|
||||
"expiry365": "1 year",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Accept risk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
"profile": "Profilo",
|
||||
"node": "Nodo",
|
||||
"admin": "Ammin",
|
||||
"menu": "Menù di navigazione"
|
||||
"menu": "Menù di navigazione",
|
||||
"audit": "Audit e report"
|
||||
},
|
||||
"status": {
|
||||
"healthy": "Salutare",
|
||||
@@ -72,6 +73,8 @@
|
||||
"networkErrorWhileSaving": "Errore di rete durante il salvataggio"
|
||||
},
|
||||
"overview": {
|
||||
"metricsTimeout": "La richiesta delle metriche ha superato i 30 secondi. ProxMenux riproverà automaticamente.",
|
||||
"metricsCachedWarning": "Impossibile aggiornare le metriche. Sono visualizzati i dati recuperati il {time}.",
|
||||
"loadingTitle": "Caricamento panoramica del sistema...",
|
||||
"loadingDescription": "Recupero dello stato e delle metriche del sistema",
|
||||
"topProcessesCpu": "Visualizza i processi principali per CPU",
|
||||
@@ -1217,7 +1220,15 @@
|
||||
"humanWeekly": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: settimanale ({day} {time})",
|
||||
"humanMonthly": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: mensile (giorno {day} alle {time})",
|
||||
"humanHourly": "ogni ora",
|
||||
"weekdays": ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"]
|
||||
"weekdays": [
|
||||
"Domenica",
|
||||
"Lunedì",
|
||||
"Martedì",
|
||||
"Mercoledì",
|
||||
"Giovedì",
|
||||
"Venerdì",
|
||||
"Sabato"
|
||||
]
|
||||
},
|
||||
"cronChip": {
|
||||
"detected": "rilevato il cron dell'host",
|
||||
@@ -1244,6 +1255,35 @@
|
||||
"osStatusUnavailable": "Impossibile determinare lo stato degli aggiornamenti del sistema operativo.",
|
||||
"installedByHelperPrefix": "Installato da",
|
||||
"helperScriptsName": "Proxmox VE Helper-Scripts",
|
||||
"helperCommandEditHint": "Se modifichi questo comando di avvio, verrà salvato come comando personalizzato.",
|
||||
"customOnlineDescription": "Oppure usa uno script online fornito dallo sviluppatore:",
|
||||
"customOnlineExampleNote": "Sostituisci l’URL di esempio con quello dello script ufficiale della tua applicazione.",
|
||||
"customExamplesHeading": "Esempi da adattare:",
|
||||
"updaterChoiceHint": "Scegli e salva un metodo di aggiornamento.",
|
||||
"updaterMethodLabel": "Metodo di aggiornamento",
|
||||
"helperMethod": "Helper-Scripts",
|
||||
"customMethod": "Comando personalizzato",
|
||||
"helperMethodHelp": "Informazioni su Helper-Scripts",
|
||||
"customMethodHelp": "Informazioni sui comandi personalizzati",
|
||||
"helperDetectedChoice": "Rilevato un programma di aggiornamento Helper-Scripts per questa applicazione.",
|
||||
"helperUnavailableChoice": "Il programma di aggiornamento Helper-Scripts selezionato non è più disponibile.",
|
||||
"disableUpdater": "Disattiva",
|
||||
"disableUpdaterConfirm": "Disattivare il metodo di aggiornamento di {name}? I piani e le pianificazioni manterranno le selezioni, ma questa applicazione non verrà eseguita finché non sarà configurato nuovamente un metodo.",
|
||||
"noUpdaterSelected": "Non hai selezionato un metodo di aggiornamento.",
|
||||
"helperMethodDescription": "ProxMenux esegue il programma di aggiornamento rilevato in questo LXC e ne mostra il registro e il risultato. Il programma è mantenuto da Proxmox VE Helper-Scripts.",
|
||||
"customMethodDescription": "Puoi usare il programma di aggiornamento dell’applicazione, un gestore di pacchetti o un nuovo binario. Il comando viene eseguito in questo LXC con privilegi di amministratore.",
|
||||
"updaterInstructions": "Consulta le istruzioni del programma di aggiornamento.",
|
||||
"helperDocumentation": "Documentazione degli aggiornamenti",
|
||||
"helperSource": "Script dell’applicazione",
|
||||
"customMethodExample": "Adatta i nomi, i percorsi e il servizio alla tua applicazione. Verrà eseguito solo il comando salvato.",
|
||||
"helperCommandLabel": "Comando all’interno del LXC",
|
||||
"helperCommandFallback": "Se wget non è disponibile, ProxMenux usa curl -fsSL per scaricare lo stesso script.",
|
||||
"customScriptTitle": "Script di aggiornamento",
|
||||
"customScriptDescription": "Esegui uno script di aggiornamento dell’applicazione già presente nel LXC.",
|
||||
"customPackageTitle": "Pacchetto Debian/Ubuntu",
|
||||
"customPackageDescription": "Sostituisci my-package con il pacchetto da aggiornare.",
|
||||
"customBinaryTitle": "Binario",
|
||||
"customBinaryDescription": "Prima scarica e verifica il binario ufficiale per la versione e l’architettura corrette in /tmp/my-app.new. Questo esempio conserva una copia del binario precedente e riavvia il relativo servizio.",
|
||||
"helperUpdatesRun": "Installato da Proxmox Helper-Scripts.",
|
||||
"installedPrefix": "installato",
|
||||
"upstreamAvailable": "versione {version} disponibile",
|
||||
@@ -4868,5 +4908,134 @@
|
||||
"customLinkDelete": "Delete",
|
||||
"customLinkSaveError": "Save failed",
|
||||
"customLinkDeleteError": "Delete failed"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Audit & Report",
|
||||
"loading": "Loading assessment…",
|
||||
"run": "Run assessment",
|
||||
"running": "Assessing…",
|
||||
"neverRun": "This host has not been assessed yet.",
|
||||
"lastRun": "Last assessed on {when}",
|
||||
"stale": "{days} days ago",
|
||||
"readOnlyNotice": "The assessment only reads the host. It makes no changes.",
|
||||
"noFindings": "No findings match the current filter.",
|
||||
"showPassing": "Show passing checks",
|
||||
"hidePassing": "Hide passing checks",
|
||||
"affectedCount": "{count} affected",
|
||||
"acceptedNotice": "{count} accepted risk(s) recorded on this host.",
|
||||
"states": {
|
||||
"fail": "Failed",
|
||||
"warn": "Warning",
|
||||
"accepted": "Accepted risk",
|
||||
"pass": "Passed",
|
||||
"not_applicable": "Not applicable"
|
||||
},
|
||||
"areas": {
|
||||
"all": "All",
|
||||
"system": "System",
|
||||
"storage": "Storage",
|
||||
"network": "Network",
|
||||
"security": "Security",
|
||||
"backup": "Backup",
|
||||
"guests": "Guests",
|
||||
"hardware": "Hardware"
|
||||
},
|
||||
"detail": {
|
||||
"why": "Context",
|
||||
"evidence": "Evidence",
|
||||
"affected": "Affected",
|
||||
"acceptedRisk": "Accepted risk"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "The assessment could not be started."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
"guest_coverage": {
|
||||
"title": "Backup coverage",
|
||||
"rationale": "Compares the guest inventory against what each backup job selects. A job selects by VMID list, by pool, or with `all 1`, minus its `exclude` list. Jobs carrying `enabled 0` are not considered.",
|
||||
"summary": {
|
||||
"noJobs": "No backup job is defined on this node",
|
||||
"covered": "All {total} guests are covered by a backup job",
|
||||
"uncovered": "{count} of {total} guests are not covered by any enabled backup job"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"pending_reboot": {
|
||||
"title": "Restart state",
|
||||
"rationale": "Checks for `/var/run/reboot-required` and, when present, the packages listed in `/var/run/reboot-required.pkgs`. Also reports the running kernel.",
|
||||
"summary": {
|
||||
"none": "No restart is pending",
|
||||
"pending": "The host has a pending restart"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Enterprise repository",
|
||||
"rationale": "Looks for references to `enterprise.proxmox.com` in `/etc/apt/sources.list` and `sources.list.d`, and contrasts the result with the status returned by `pvesubscription get`.",
|
||||
"summary": {
|
||||
"notEnabled": "The enterprise repository is not enabled",
|
||||
"subscribed": "The enterprise repository is backed by a subscription",
|
||||
"unsubscribed": "The enterprise repository is enabled without an active subscription"
|
||||
}
|
||||
}
|
||||
},
|
||||
"guests": {
|
||||
"privileged_containers": {
|
||||
"title": "Container privileges",
|
||||
"rationale": "Reviews each container configuration. Proxmox marks unprivileged containers with `unprivileged: 1`; its absence indicates a privileged container, which shares the host user namespace.",
|
||||
"summary": {
|
||||
"allUnprivileged": "All {total} containers are unprivileged",
|
||||
"privileged": "{count} of {total} containers run privileged"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Guest agent on virtual machines",
|
||||
"rationale": "Reviews each virtual machine configuration for `agent: 1`. The guest agent enables ordered shutdown, filesystem quiescing for snapshots and real disk usage reporting.",
|
||||
"summary": {
|
||||
"allHaveAgent": "All {total} virtual machines declare the guest agent",
|
||||
"missingAgent": "{count} of {total} virtual machines do not declare the guest agent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"host_firewall_enabled": {
|
||||
"title": "Firewall state",
|
||||
"rationale": "Checks `enable: 1` in `/etc/pve/firewall/cluster.fw` and in the node's `host.fw`. Proxmox applies node rules only while the datacenter switch is on.",
|
||||
"summary": {
|
||||
"bothEnabled": "The firewall is enabled at datacenter and node level",
|
||||
"datacenterOff": "The firewall is disabled at datacenter level, so node rules are not applied",
|
||||
"nodeOff": "The firewall is enabled at datacenter level but not on this node"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"orphaned_volumes": {
|
||||
"title": "Volume assignment",
|
||||
"rationale": "Compares the volumes returned by `pvesm list` against the existing guest configurations. Only non-shared storage is examined: on shared storage a volume may belong to a guest running on another node.",
|
||||
"summary": {
|
||||
"none": "No orphaned volumes were found",
|
||||
"found": "{count} volume(s) belong to no existing guest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "The check could not be evaluated",
|
||||
"acceptRisk": {
|
||||
"action": "Accept risk",
|
||||
"revoke": "Return to active",
|
||||
"title": "Accept this risk",
|
||||
"reasonLabel": "Reason",
|
||||
"reasonHelp": "Required. It is recorded together with the author and the date.",
|
||||
"reasonPlaceholder": "e.g. Lab containers, not covered on purpose",
|
||||
"expiryLabel": "Review after",
|
||||
"expiryHelp": "When the period ends the finding becomes active again.",
|
||||
"expiryNever": "Does not expire",
|
||||
"expiry90": "90 days",
|
||||
"expiry180": "180 days",
|
||||
"expiry365": "1 year",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Accept risk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
"profile": "Perfil",
|
||||
"node": "Nó",
|
||||
"admin": "Administrador",
|
||||
"menu": "Menu de navegação"
|
||||
"menu": "Menu de navegação",
|
||||
"audit": "Auditoria e relatórios"
|
||||
},
|
||||
"status": {
|
||||
"healthy": "Saudável",
|
||||
@@ -72,6 +73,8 @@
|
||||
"networkErrorWhileSaving": "Erro de rede ao salvar"
|
||||
},
|
||||
"overview": {
|
||||
"metricsTimeout": "A consulta de métricas excedeu 30 segundos. O ProxMenux tentará novamente automaticamente.",
|
||||
"metricsCachedWarning": "Não foi possível atualizar as métricas. São apresentados os dados obtidos em {time}.",
|
||||
"loadingTitle": "Carregando visão geral do sistema...",
|
||||
"loadingDescription": "Buscando status e métricas do sistema",
|
||||
"topProcessesCpu": "Veja os principais processos por CPU",
|
||||
@@ -1217,7 +1220,15 @@
|
||||
"humanWeekly": "Semanal ({day} {time})",
|
||||
"humanMonthly": "Mensalmente (dia {day} às {time})",
|
||||
"humanHourly": "de hora em hora",
|
||||
"weekdays": ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"]
|
||||
"weekdays": [
|
||||
"Domingo",
|
||||
"Segunda-feira",
|
||||
"Terça-feira",
|
||||
"Quarta-feira",
|
||||
"Quinta-feira",
|
||||
"Sexta-feira",
|
||||
"Sábado"
|
||||
]
|
||||
},
|
||||
"cronChip": {
|
||||
"detected": "cron do host detectado",
|
||||
@@ -1244,6 +1255,35 @@
|
||||
"osStatusUnavailable": "Não foi possível determinar o estado das atualizações do sistema operativo.",
|
||||
"installedByHelperPrefix": "Instalado por",
|
||||
"helperScriptsName": "Proxmox VE Helper-Scripts",
|
||||
"helperCommandEditHint": "Se modificar este comando de arranque, será guardado como comando personalizado.",
|
||||
"customOnlineDescription": "Ou utilize um script online fornecido pelo programador:",
|
||||
"customOnlineExampleNote": "Substitua o URL de exemplo pelo do script oficial da sua aplicação.",
|
||||
"customExamplesHeading": "Exemplos para adaptar:",
|
||||
"updaterChoiceHint": "Escolha e guarde um método de atualização.",
|
||||
"updaterMethodLabel": "Método de atualização",
|
||||
"helperMethod": "Helper-Scripts",
|
||||
"customMethod": "Comando personalizado",
|
||||
"helperMethodHelp": "Sobre Helper-Scripts",
|
||||
"customMethodHelp": "Sobre comandos personalizados",
|
||||
"helperDetectedChoice": "Foi detetado um atualizador Helper-Scripts para esta aplicação.",
|
||||
"helperUnavailableChoice": "O atualizador Helper-Scripts selecionado já não está disponível.",
|
||||
"disableUpdater": "Desativar",
|
||||
"disableUpdaterConfirm": "Desativar o método de atualização de {name}? Os planos e agendamentos manterão as seleções, mas esta aplicação não será executada até configurar novamente um método.",
|
||||
"noUpdaterSelected": "Não selecionou um método de atualização.",
|
||||
"helperMethodDescription": "O ProxMenux executa o atualizador detetado dentro deste LXC e mostra o registo e o resultado. Este é mantido pelo Proxmox VE Helper-Scripts.",
|
||||
"customMethodDescription": "Pode utilizar o atualizador da aplicação, um gestor de pacotes ou um novo binário. O comando é executado dentro deste LXC com privilégios de administrador.",
|
||||
"updaterInstructions": "Consulte as instruções do atualizador.",
|
||||
"helperDocumentation": "Documentação de atualização",
|
||||
"helperSource": "Script da aplicação",
|
||||
"customMethodExample": "Adapte os nomes, os caminhos e o serviço à sua aplicação. Só será executado o comando que guardar.",
|
||||
"helperCommandLabel": "Comando dentro do LXC",
|
||||
"helperCommandFallback": "Se o wget não estiver disponível, o ProxMenux utiliza curl -fsSL para transferir o mesmo script.",
|
||||
"customScriptTitle": "Script de atualização",
|
||||
"customScriptDescription": "Execute um script de atualização da aplicação já existente no LXC.",
|
||||
"customPackageTitle": "Pacote Debian/Ubuntu",
|
||||
"customPackageDescription": "Substitua my-package pelo pacote que pretende atualizar.",
|
||||
"customBinaryTitle": "Binário",
|
||||
"customBinaryDescription": "Primeiro transfira e verifique o binário oficial da versão e arquitetura corretas em /tmp/my-app.new. Este exemplo conserva uma cópia do binário anterior e reinicia o respetivo serviço.",
|
||||
"helperUpdatesRun": "Instalado pelo Proxmox Helper-Scripts.",
|
||||
"installedPrefix": "instalado",
|
||||
"upstreamAvailable": "versão {version} disponível",
|
||||
@@ -4868,5 +4908,134 @@
|
||||
"customLinkDelete": "Delete",
|
||||
"customLinkSaveError": "Save failed",
|
||||
"customLinkDeleteError": "Delete failed"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Audit & Report",
|
||||
"loading": "Loading assessment…",
|
||||
"run": "Run assessment",
|
||||
"running": "Assessing…",
|
||||
"neverRun": "This host has not been assessed yet.",
|
||||
"lastRun": "Last assessed on {when}",
|
||||
"stale": "{days} days ago",
|
||||
"readOnlyNotice": "The assessment only reads the host. It makes no changes.",
|
||||
"noFindings": "No findings match the current filter.",
|
||||
"showPassing": "Show passing checks",
|
||||
"hidePassing": "Hide passing checks",
|
||||
"affectedCount": "{count} affected",
|
||||
"acceptedNotice": "{count} accepted risk(s) recorded on this host.",
|
||||
"states": {
|
||||
"fail": "Failed",
|
||||
"warn": "Warning",
|
||||
"accepted": "Accepted risk",
|
||||
"pass": "Passed",
|
||||
"not_applicable": "Not applicable"
|
||||
},
|
||||
"areas": {
|
||||
"all": "All",
|
||||
"system": "System",
|
||||
"storage": "Storage",
|
||||
"network": "Network",
|
||||
"security": "Security",
|
||||
"backup": "Backup",
|
||||
"guests": "Guests",
|
||||
"hardware": "Hardware"
|
||||
},
|
||||
"detail": {
|
||||
"why": "Context",
|
||||
"evidence": "Evidence",
|
||||
"affected": "Affected",
|
||||
"acceptedRisk": "Accepted risk"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "The assessment could not be started."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
"guest_coverage": {
|
||||
"title": "Backup coverage",
|
||||
"rationale": "Compares the guest inventory against what each backup job selects. A job selects by VMID list, by pool, or with `all 1`, minus its `exclude` list. Jobs carrying `enabled 0` are not considered.",
|
||||
"summary": {
|
||||
"noJobs": "No backup job is defined on this node",
|
||||
"covered": "All {total} guests are covered by a backup job",
|
||||
"uncovered": "{count} of {total} guests are not covered by any enabled backup job"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"pending_reboot": {
|
||||
"title": "Restart state",
|
||||
"rationale": "Checks for `/var/run/reboot-required` and, when present, the packages listed in `/var/run/reboot-required.pkgs`. Also reports the running kernel.",
|
||||
"summary": {
|
||||
"none": "No restart is pending",
|
||||
"pending": "The host has a pending restart"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Enterprise repository",
|
||||
"rationale": "Looks for references to `enterprise.proxmox.com` in `/etc/apt/sources.list` and `sources.list.d`, and contrasts the result with the status returned by `pvesubscription get`.",
|
||||
"summary": {
|
||||
"notEnabled": "The enterprise repository is not enabled",
|
||||
"subscribed": "The enterprise repository is backed by a subscription",
|
||||
"unsubscribed": "The enterprise repository is enabled without an active subscription"
|
||||
}
|
||||
}
|
||||
},
|
||||
"guests": {
|
||||
"privileged_containers": {
|
||||
"title": "Container privileges",
|
||||
"rationale": "Reviews each container configuration. Proxmox marks unprivileged containers with `unprivileged: 1`; its absence indicates a privileged container, which shares the host user namespace.",
|
||||
"summary": {
|
||||
"allUnprivileged": "All {total} containers are unprivileged",
|
||||
"privileged": "{count} of {total} containers run privileged"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Guest agent on virtual machines",
|
||||
"rationale": "Reviews each virtual machine configuration for `agent: 1`. The guest agent enables ordered shutdown, filesystem quiescing for snapshots and real disk usage reporting.",
|
||||
"summary": {
|
||||
"allHaveAgent": "All {total} virtual machines declare the guest agent",
|
||||
"missingAgent": "{count} of {total} virtual machines do not declare the guest agent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"host_firewall_enabled": {
|
||||
"title": "Firewall state",
|
||||
"rationale": "Checks `enable: 1` in `/etc/pve/firewall/cluster.fw` and in the node's `host.fw`. Proxmox applies node rules only while the datacenter switch is on.",
|
||||
"summary": {
|
||||
"bothEnabled": "The firewall is enabled at datacenter and node level",
|
||||
"datacenterOff": "The firewall is disabled at datacenter level, so node rules are not applied",
|
||||
"nodeOff": "The firewall is enabled at datacenter level but not on this node"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"orphaned_volumes": {
|
||||
"title": "Volume assignment",
|
||||
"rationale": "Compares the volumes returned by `pvesm list` against the existing guest configurations. Only non-shared storage is examined: on shared storage a volume may belong to a guest running on another node.",
|
||||
"summary": {
|
||||
"none": "No orphaned volumes were found",
|
||||
"found": "{count} volume(s) belong to no existing guest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "The check could not be evaluated",
|
||||
"acceptRisk": {
|
||||
"action": "Accept risk",
|
||||
"revoke": "Return to active",
|
||||
"title": "Accept this risk",
|
||||
"reasonLabel": "Reason",
|
||||
"reasonHelp": "Required. It is recorded together with the author and the date.",
|
||||
"reasonPlaceholder": "e.g. Lab containers, not covered on purpose",
|
||||
"expiryLabel": "Review after",
|
||||
"expiryHelp": "When the period ends the finding becomes active again.",
|
||||
"expiryNever": "Does not expire",
|
||||
"expiry90": "90 days",
|
||||
"expiry180": "180 days",
|
||||
"expiry365": "1 year",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Accept risk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
"profile": "Profil",
|
||||
"node": "Server",
|
||||
"admin": "Správa",
|
||||
"menu": "Navigačné menu"
|
||||
"menu": "Navigačné menu",
|
||||
"audit": "Audit a správy"
|
||||
},
|
||||
"status": {
|
||||
"healthy": "V poriadku",
|
||||
@@ -71,6 +72,8 @@
|
||||
"networkErrorWhileSaving": "Chyba siete pri ukladaní"
|
||||
},
|
||||
"overview": {
|
||||
"metricsTimeout": "Načítanie metrík trvalo dlhšie ako 30 sekúnd. ProxMenux to automaticky skúsi znova.",
|
||||
"metricsCachedWarning": "Metriky sa nepodarilo obnoviť. Zobrazujú sa údaje načítané {time}.",
|
||||
"loadingTitle": "Načítava sa prehľad systému...",
|
||||
"loadingDescription": "Zisťujem stav servera a základné údaje",
|
||||
"topProcessesCpu": "Zobraziť procesy s najvyšším využitím CPU",
|
||||
@@ -1273,6 +1276,35 @@
|
||||
"osStatusUnavailable": "Stav aktualizácií operačného systému sa nepodarilo zistiť.",
|
||||
"installedByHelperPrefix": "Nainštalované cez",
|
||||
"helperScriptsName": "Proxmox VE Helper-Scripts",
|
||||
"helperCommandEditHint": "Ak upravíte tento spúšťací príkaz, uloží sa ako vlastný príkaz.",
|
||||
"customOnlineDescription": "Alebo použite online skript poskytnutý vývojárom:",
|
||||
"customOnlineExampleNote": "Nahraďte vzorovú URL adresu adresou oficiálneho skriptu vašej aplikácie.",
|
||||
"customExamplesHeading": "Príklady na prispôsobenie:",
|
||||
"updaterChoiceHint": "Vyberte a uložte spôsob aktualizácie.",
|
||||
"updaterMethodLabel": "Spôsob aktualizácie",
|
||||
"helperMethod": "Helper-Scripts",
|
||||
"customMethod": "Vlastný príkaz",
|
||||
"helperMethodHelp": "O Helper-Scripts",
|
||||
"customMethodHelp": "O vlastných príkazoch",
|
||||
"helperDetectedChoice": "Pre túto aplikáciu bol zistený aktualizátor Helper-Scripts.",
|
||||
"helperUnavailableChoice": "Vybraný aktualizátor Helper-Scripts už nie je dostupný.",
|
||||
"disableUpdater": "Deaktivovať",
|
||||
"disableUpdaterConfirm": "Deaktivovať spôsob aktualizácie pre {name}? Uložené plány a naplánované úlohy si zachovajú svoj výber, ale táto aplikácia sa nespustí, kým znova nenastavíte spôsob aktualizácie.",
|
||||
"noUpdaterSelected": "Nevybrali ste spôsob aktualizácie.",
|
||||
"helperMethodDescription": "ProxMenux spustí zistený aktualizátor v tomto LXC a zobrazí jeho protokol a výsledok. Aktualizátor spravuje Proxmox VE Helper-Scripts.",
|
||||
"customMethodDescription": "Môžete použiť aktualizátor aplikácie, správcu balíkov alebo nový binárny súbor. Príkaz sa spustí v tomto LXC s oprávneniami správcu.",
|
||||
"updaterInstructions": "Prečítajte si pokyny aktualizátora.",
|
||||
"helperDocumentation": "Dokumentácia aktualizácií",
|
||||
"helperSource": "Skript aplikácie",
|
||||
"customMethodExample": "Prispôsobte názvy, cesty a službu svojej aplikácii. Spustí sa iba príkaz, ktorý uložíte.",
|
||||
"helperCommandLabel": "Príkaz v LXC",
|
||||
"helperCommandFallback": "Ak wget nie je dostupný, ProxMenux použije curl -fsSL na stiahnutie rovnakého skriptu.",
|
||||
"customScriptTitle": "Aktualizačný skript",
|
||||
"customScriptDescription": "Spustite aktualizačný skript aplikácie, ktorý už existuje v LXC.",
|
||||
"customPackageTitle": "Balík Debian/Ubuntu",
|
||||
"customPackageDescription": "Nahraďte my-package balíkom, ktorý chcete aktualizovať.",
|
||||
"customBinaryTitle": "Binárny súbor",
|
||||
"customBinaryDescription": "Najprv stiahnite a overte oficiálny binárny súbor správnej verzie a architektúry v /tmp/my-app.new. Tento príklad zachová kópiu predchádzajúceho binárneho súboru a reštartuje príslušnú službu.",
|
||||
"helperUpdatesRun": "Inštalované pomocou Proxmox Helper-Scripts.",
|
||||
"installedPrefix": "nainštalovaná verzia",
|
||||
"upstreamAvailable": "dostupná verzia {version}",
|
||||
@@ -4942,5 +4974,134 @@
|
||||
"customLinkDelete": "Odstrániť",
|
||||
"customLinkSaveError": "Odkaz sa nepodarilo uložiť",
|
||||
"customLinkDeleteError": "Odkaz sa nepodarilo odstrániť"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Audit & Report",
|
||||
"loading": "Loading assessment…",
|
||||
"run": "Run assessment",
|
||||
"running": "Assessing…",
|
||||
"neverRun": "This host has not been assessed yet.",
|
||||
"lastRun": "Last assessed on {when}",
|
||||
"stale": "{days} days ago",
|
||||
"readOnlyNotice": "The assessment only reads the host. It makes no changes.",
|
||||
"noFindings": "No findings match the current filter.",
|
||||
"showPassing": "Show passing checks",
|
||||
"hidePassing": "Hide passing checks",
|
||||
"affectedCount": "{count} affected",
|
||||
"acceptedNotice": "{count} accepted risk(s) recorded on this host.",
|
||||
"states": {
|
||||
"fail": "Failed",
|
||||
"warn": "Warning",
|
||||
"accepted": "Accepted risk",
|
||||
"pass": "Passed",
|
||||
"not_applicable": "Not applicable"
|
||||
},
|
||||
"areas": {
|
||||
"all": "All",
|
||||
"system": "System",
|
||||
"storage": "Storage",
|
||||
"network": "Network",
|
||||
"security": "Security",
|
||||
"backup": "Backup",
|
||||
"guests": "Guests",
|
||||
"hardware": "Hardware"
|
||||
},
|
||||
"detail": {
|
||||
"why": "Context",
|
||||
"evidence": "Evidence",
|
||||
"affected": "Affected",
|
||||
"acceptedRisk": "Accepted risk"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "The assessment could not be started."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
"guest_coverage": {
|
||||
"title": "Backup coverage",
|
||||
"rationale": "Compares the guest inventory against what each backup job selects. A job selects by VMID list, by pool, or with `all 1`, minus its `exclude` list. Jobs carrying `enabled 0` are not considered.",
|
||||
"summary": {
|
||||
"noJobs": "No backup job is defined on this node",
|
||||
"covered": "All {total} guests are covered by a backup job",
|
||||
"uncovered": "{count} of {total} guests are not covered by any enabled backup job"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"pending_reboot": {
|
||||
"title": "Restart state",
|
||||
"rationale": "Checks for `/var/run/reboot-required` and, when present, the packages listed in `/var/run/reboot-required.pkgs`. Also reports the running kernel.",
|
||||
"summary": {
|
||||
"none": "No restart is pending",
|
||||
"pending": "The host has a pending restart"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Enterprise repository",
|
||||
"rationale": "Looks for references to `enterprise.proxmox.com` in `/etc/apt/sources.list` and `sources.list.d`, and contrasts the result with the status returned by `pvesubscription get`.",
|
||||
"summary": {
|
||||
"notEnabled": "The enterprise repository is not enabled",
|
||||
"subscribed": "The enterprise repository is backed by a subscription",
|
||||
"unsubscribed": "The enterprise repository is enabled without an active subscription"
|
||||
}
|
||||
}
|
||||
},
|
||||
"guests": {
|
||||
"privileged_containers": {
|
||||
"title": "Container privileges",
|
||||
"rationale": "Reviews each container configuration. Proxmox marks unprivileged containers with `unprivileged: 1`; its absence indicates a privileged container, which shares the host user namespace.",
|
||||
"summary": {
|
||||
"allUnprivileged": "All {total} containers are unprivileged",
|
||||
"privileged": "{count} of {total} containers run privileged"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Guest agent on virtual machines",
|
||||
"rationale": "Reviews each virtual machine configuration for `agent: 1`. The guest agent enables ordered shutdown, filesystem quiescing for snapshots and real disk usage reporting.",
|
||||
"summary": {
|
||||
"allHaveAgent": "All {total} virtual machines declare the guest agent",
|
||||
"missingAgent": "{count} of {total} virtual machines do not declare the guest agent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"host_firewall_enabled": {
|
||||
"title": "Firewall state",
|
||||
"rationale": "Checks `enable: 1` in `/etc/pve/firewall/cluster.fw` and in the node's `host.fw`. Proxmox applies node rules only while the datacenter switch is on.",
|
||||
"summary": {
|
||||
"bothEnabled": "The firewall is enabled at datacenter and node level",
|
||||
"datacenterOff": "The firewall is disabled at datacenter level, so node rules are not applied",
|
||||
"nodeOff": "The firewall is enabled at datacenter level but not on this node"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"orphaned_volumes": {
|
||||
"title": "Volume assignment",
|
||||
"rationale": "Compares the volumes returned by `pvesm list` against the existing guest configurations. Only non-shared storage is examined: on shared storage a volume may belong to a guest running on another node.",
|
||||
"summary": {
|
||||
"none": "No orphaned volumes were found",
|
||||
"found": "{count} volume(s) belong to no existing guest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "The check could not be evaluated",
|
||||
"acceptRisk": {
|
||||
"action": "Accept risk",
|
||||
"revoke": "Return to active",
|
||||
"title": "Accept this risk",
|
||||
"reasonLabel": "Reason",
|
||||
"reasonHelp": "Required. It is recorded together with the author and the date.",
|
||||
"reasonPlaceholder": "e.g. Lab containers, not covered on purpose",
|
||||
"expiryLabel": "Review after",
|
||||
"expiryHelp": "When the period ends the finding becomes active again.",
|
||||
"expiryNever": "Does not expire",
|
||||
"expiry90": "90 days",
|
||||
"expiry180": "180 days",
|
||||
"expiry365": "1 year",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Accept risk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
"profile": "Profil",
|
||||
"node": "Nod",
|
||||
"admin": "Administration",
|
||||
"menu": "Navigationsmeny"
|
||||
"menu": "Navigationsmeny",
|
||||
"audit": "Granskning och rapporter"
|
||||
},
|
||||
"status": {
|
||||
"healthy": "Hälsosam",
|
||||
@@ -72,6 +73,8 @@
|
||||
"networkErrorWhileSaving": "Nätverksfel vid lagring"
|
||||
},
|
||||
"overview": {
|
||||
"metricsTimeout": "Mätvärdesfrågan tog längre än 30 sekunder. ProxMenux försöker igen automatiskt.",
|
||||
"metricsCachedWarning": "Mätvärdena kunde inte uppdateras. Data hämtade {time} visas.",
|
||||
"loadingTitle": "Laddar systemöversikt...",
|
||||
"loadingDescription": "Hämtar systemstatus och mätvärden",
|
||||
"topProcessesCpu": "Visa toppprocesser efter CPU",
|
||||
@@ -1217,7 +1220,15 @@
|
||||
"humanWeekly": "Varje vecka ({day} {time})",
|
||||
"humanMonthly": "Varje månad (dag {day} kl. {time})",
|
||||
"humanHourly": "Varje timme",
|
||||
"weekdays": ["söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"]
|
||||
"weekdays": [
|
||||
"söndag",
|
||||
"måndag",
|
||||
"tisdag",
|
||||
"onsdag",
|
||||
"torsdag",
|
||||
"fredag",
|
||||
"lördag"
|
||||
]
|
||||
},
|
||||
"cronChip": {
|
||||
"detected": "host cron upptäckt",
|
||||
@@ -1244,6 +1255,35 @@
|
||||
"osStatusUnavailable": "Statusen för operativsystemets uppdateringar kunde inte fastställas.",
|
||||
"installedByHelperPrefix": "Installerad av",
|
||||
"helperScriptsName": "Proxmox VE Helper-Scripts",
|
||||
"helperCommandEditHint": "Om du ändrar det här startkommandot sparas det som ett eget kommando.",
|
||||
"customOnlineDescription": "Eller använd ett onlineskript från utvecklaren:",
|
||||
"customOnlineExampleNote": "Ersätt exempeladressen med adressen till appens officiella skript.",
|
||||
"customExamplesHeading": "Exempel att anpassa:",
|
||||
"updaterChoiceHint": "Välj och spara en uppdateringsmetod.",
|
||||
"updaterMethodLabel": "Uppdateringsmetod",
|
||||
"helperMethod": "Helper-Scripts",
|
||||
"customMethod": "Eget kommando",
|
||||
"helperMethodHelp": "Om Helper-Scripts",
|
||||
"customMethodHelp": "Om egna kommandon",
|
||||
"helperDetectedChoice": "En Helper-Scripts-uppdaterare har identifierats för den här appen.",
|
||||
"helperUnavailableChoice": "Den valda Helper-Scripts-uppdateraren är inte längre tillgänglig.",
|
||||
"disableUpdater": "Inaktivera",
|
||||
"disableUpdaterConfirm": "Inaktivera uppdateringsmetoden för {name}? Sparade planer och scheman behåller sina val, men den här appen körs inte förrän en metod har konfigurerats igen.",
|
||||
"noUpdaterSelected": "Du har inte valt någon uppdateringsmetod.",
|
||||
"helperMethodDescription": "ProxMenux kör den identifierade uppdateraren i denna LXC och visar dess logg och resultat. Uppdateraren underhålls av Proxmox VE Helper-Scripts.",
|
||||
"customMethodDescription": "Du kan använda appens egen uppdaterare, en pakethanterare eller en ny binärfil. Kommandot körs i denna LXC med administratörsbehörighet.",
|
||||
"updaterInstructions": "Läs uppdaterarens anvisningar.",
|
||||
"helperDocumentation": "Uppdateringsdokumentation",
|
||||
"helperSource": "Appens skript",
|
||||
"customMethodExample": "Anpassa namn, sökvägar och tjänst till din app. Endast kommandot du sparar kommer att köras.",
|
||||
"helperCommandLabel": "Kommando i LXC",
|
||||
"helperCommandFallback": "Om wget inte är tillgängligt använder ProxMenux curl -fsSL för att hämta samma skript.",
|
||||
"customScriptTitle": "Uppdateringsskript",
|
||||
"customScriptDescription": "Kör ett uppdateringsskript för appen som redan finns i LXC.",
|
||||
"customPackageTitle": "Debian/Ubuntu-paket",
|
||||
"customPackageDescription": "Ersätt my-package med paketet du vill uppdatera.",
|
||||
"customBinaryTitle": "Binärfil",
|
||||
"customBinaryDescription": "Hämta och verifiera först den officiella binärfilen för rätt version och arkitektur på /tmp/my-app.new. Det här exemplet sparar en kopia av den tidigare binärfilen och startar om dess tjänst.",
|
||||
"helperUpdatesRun": "Installerad av Proxmox Helper-Scripts.",
|
||||
"installedPrefix": "installerat",
|
||||
"upstreamAvailable": "version {version} tillgänglig",
|
||||
@@ -4869,5 +4909,134 @@
|
||||
"customLinkDelete": "Delete",
|
||||
"customLinkSaveError": "Save failed",
|
||||
"customLinkDeleteError": "Delete failed"
|
||||
},
|
||||
"audit": {
|
||||
"title": "Audit & Report",
|
||||
"loading": "Loading assessment…",
|
||||
"run": "Run assessment",
|
||||
"running": "Assessing…",
|
||||
"neverRun": "This host has not been assessed yet.",
|
||||
"lastRun": "Last assessed on {when}",
|
||||
"stale": "{days} days ago",
|
||||
"readOnlyNotice": "The assessment only reads the host. It makes no changes.",
|
||||
"noFindings": "No findings match the current filter.",
|
||||
"showPassing": "Show passing checks",
|
||||
"hidePassing": "Hide passing checks",
|
||||
"affectedCount": "{count} affected",
|
||||
"acceptedNotice": "{count} accepted risk(s) recorded on this host.",
|
||||
"states": {
|
||||
"fail": "Failed",
|
||||
"warn": "Warning",
|
||||
"accepted": "Accepted risk",
|
||||
"pass": "Passed",
|
||||
"not_applicable": "Not applicable"
|
||||
},
|
||||
"areas": {
|
||||
"all": "All",
|
||||
"system": "System",
|
||||
"storage": "Storage",
|
||||
"network": "Network",
|
||||
"security": "Security",
|
||||
"backup": "Backup",
|
||||
"guests": "Guests",
|
||||
"hardware": "Hardware"
|
||||
},
|
||||
"detail": {
|
||||
"why": "Context",
|
||||
"evidence": "Evidence",
|
||||
"affected": "Affected",
|
||||
"acceptedRisk": "Accepted risk"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "The assessment could not be started."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
"guest_coverage": {
|
||||
"title": "Backup coverage",
|
||||
"rationale": "Compares the guest inventory against what each backup job selects. A job selects by VMID list, by pool, or with `all 1`, minus its `exclude` list. Jobs carrying `enabled 0` are not considered.",
|
||||
"summary": {
|
||||
"noJobs": "No backup job is defined on this node",
|
||||
"covered": "All {total} guests are covered by a backup job",
|
||||
"uncovered": "{count} of {total} guests are not covered by any enabled backup job"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system": {
|
||||
"pending_reboot": {
|
||||
"title": "Restart state",
|
||||
"rationale": "Checks for `/var/run/reboot-required` and, when present, the packages listed in `/var/run/reboot-required.pkgs`. Also reports the running kernel.",
|
||||
"summary": {
|
||||
"none": "No restart is pending",
|
||||
"pending": "The host has a pending restart"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Enterprise repository",
|
||||
"rationale": "Looks for references to `enterprise.proxmox.com` in `/etc/apt/sources.list` and `sources.list.d`, and contrasts the result with the status returned by `pvesubscription get`.",
|
||||
"summary": {
|
||||
"notEnabled": "The enterprise repository is not enabled",
|
||||
"subscribed": "The enterprise repository is backed by a subscription",
|
||||
"unsubscribed": "The enterprise repository is enabled without an active subscription"
|
||||
}
|
||||
}
|
||||
},
|
||||
"guests": {
|
||||
"privileged_containers": {
|
||||
"title": "Container privileges",
|
||||
"rationale": "Reviews each container configuration. Proxmox marks unprivileged containers with `unprivileged: 1`; its absence indicates a privileged container, which shares the host user namespace.",
|
||||
"summary": {
|
||||
"allUnprivileged": "All {total} containers are unprivileged",
|
||||
"privileged": "{count} of {total} containers run privileged"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Guest agent on virtual machines",
|
||||
"rationale": "Reviews each virtual machine configuration for `agent: 1`. The guest agent enables ordered shutdown, filesystem quiescing for snapshots and real disk usage reporting.",
|
||||
"summary": {
|
||||
"allHaveAgent": "All {total} virtual machines declare the guest agent",
|
||||
"missingAgent": "{count} of {total} virtual machines do not declare the guest agent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"host_firewall_enabled": {
|
||||
"title": "Firewall state",
|
||||
"rationale": "Checks `enable: 1` in `/etc/pve/firewall/cluster.fw` and in the node's `host.fw`. Proxmox applies node rules only while the datacenter switch is on.",
|
||||
"summary": {
|
||||
"bothEnabled": "The firewall is enabled at datacenter and node level",
|
||||
"datacenterOff": "The firewall is disabled at datacenter level, so node rules are not applied",
|
||||
"nodeOff": "The firewall is enabled at datacenter level but not on this node"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"orphaned_volumes": {
|
||||
"title": "Volume assignment",
|
||||
"rationale": "Compares the volumes returned by `pvesm list` against the existing guest configurations. Only non-shared storage is examined: on shared storage a volume may belong to a guest running on another node.",
|
||||
"summary": {
|
||||
"none": "No orphaned volumes were found",
|
||||
"found": "{count} volume(s) belong to no existing guest"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "The check could not be evaluated",
|
||||
"acceptRisk": {
|
||||
"action": "Accept risk",
|
||||
"revoke": "Return to active",
|
||||
"title": "Accept this risk",
|
||||
"reasonLabel": "Reason",
|
||||
"reasonHelp": "Required. It is recorded together with the author and the date.",
|
||||
"reasonPlaceholder": "e.g. Lab containers, not covered on purpose",
|
||||
"expiryLabel": "Review after",
|
||||
"expiryHelp": "When the period ends the finding becomes active again.",
|
||||
"expiryNever": "Does not expire",
|
||||
"expiry90": "90 days",
|
||||
"expiry180": "180 days",
|
||||
"expiry365": "1 year",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Accept risk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user