mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-09-29 10:06:41 +00:00
ProxMenux 1.2.6.2-beta: OCI containers in the Monitor, docs and fixes
OCI manager Apps - App tab: containers installed from an OCI image are identified from their installation record; the application and image versions are shown and an update is detected by image digest; repository link; Refresh data. - Updates tab for OCI containers: Update and Recreate run the same flow as the OCI menu in the Monitor terminal; the pre-update backup can be kept in a backup storage; scheduled image updates with an optional minimum age. - Logs tab: console output of the application, kept on the host (lxc.console.logfile + logrotate) and followed live. - The Proxmox console opens a shell (cmode: shell) when the image has one. - A damaged image download is fetched again before failing. - Multi-container applications open at their LAN address; volume mount points on block storage report their usage. Monitor - Proxmox notifications are delivered to a loopback-only HTTP listener when HTTPS is enabled, so they no longer fail certificate verification. - Log persistence counts recurring patterns only; an ended burst is not reported as persistent and its warning clears on its own (#386). - Proxmox notification config backups are deduplicated and capped at three. - The update icon on the Apps page opens the container on its Updates tab. - Version 1.2.6.2-beta and its release notes in every Monitor language. Docs - OCI manager Apps and Audit & Report rebuilt as per-page message files, with a new page for OCI containers in the Monitor. - Seven pages fixed where rich-text tags were missing from t.rich. Translations - Spanish fixes across the OCI engine, the Monitor and the TUI menus. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
386d33df6e
commit
4437a671d2
+145
-136
@@ -1487,7 +1487,6 @@
|
||||
"containerNameLabel": "Nom du conteneur",
|
||||
"containerNamePlaceholder": "par exemple, <votre-nom-de-conteneur>",
|
||||
"ociLabelKeyLabel": "Clé d'étiquette OCI",
|
||||
"ociLabelPlaceholder": "org.opencontainers.image.version",
|
||||
"pythonInterpreterLabel": "Chemin de l'interpréteur Python",
|
||||
"pythonInterpreterPlaceholder": "par exemple, /opt/<votre-application>/venv/bin/python",
|
||||
"pipDistLabel": "Nom de la distribution (paquet pip)",
|
||||
@@ -1534,11 +1533,8 @@
|
||||
"portHttps": "https",
|
||||
"portLogoLabel": "URL du logo pour ce lien (facultatif)",
|
||||
"portLogoPlaceholder": "par exemple, https://example.com/logo.webp",
|
||||
"portCategoryPlaceholder": "Category for the Apps dashboard (optional)",
|
||||
"portCategoryNone": "No category",
|
||||
"portCategoryAddNew": "+ Add new category…",
|
||||
"portCategoryCustomPlaceholder": "Type a category and press Enter (Esc to cancel)",
|
||||
"portCustomUrlPlaceholder": "Custom URL (e.g. https://vault.example.com) — overrides IP:port",
|
||||
"removePortTooltip": "Supprimer le port",
|
||||
"detectMethodDpkg": "dpkg ·",
|
||||
"detectMethodApk": "apk ·",
|
||||
@@ -1631,7 +1627,11 @@
|
||||
"notifyUpstreamLabel": "Me prévenir lorsqu'une nouvelle version en amont est disponible",
|
||||
"notifyUpstreamHelp": "envoie `app_update_available` aux canaux activés dans Paramètres → Notifications. Désactivez-la si cette application ne peut pas être mise à jour sur votre box.",
|
||||
"excludeFromBadgeLabel": "exclure du compteur de mises à jour LXC",
|
||||
"excludeFromBadgeHelp": "Ne comptez pas cette application dans le badge de mises à jour globales sur la carte de liste LXC.Utile lorsque vous êtes volontairement épinglé à une version spécifique (exigence de suivi, gel de la compatibilité).N'affecte pas l'état de l'onglet Application ni la notification sortante."
|
||||
"excludeFromBadgeHelp": "Ne comptez pas cette application dans le badge de mises à jour globales sur la carte de liste LXC.Utile lorsque vous êtes volontairement épinglé à une version spécifique (exigence de suivi, gel de la compatibilité).N'affecte pas l'état de l'onglet Application ni la notification sortante.",
|
||||
"ociLabelPlaceholder": "org.opencontainers.image.version",
|
||||
"portCategoryPlaceholder": "Catégorie pour le tableau de bord Apps (facultatif)",
|
||||
"portCategoryCustomPlaceholder": "Tapez une catégorie et appuyez sur Entrée (Esc pour annuler)",
|
||||
"portCustomUrlPlaceholder": "URL personnalisée (par exemple https://vault.example.com) — remplace IP:port"
|
||||
},
|
||||
"statusFilter": {
|
||||
"ariaLabel": "Filtrer les machines virtuelles et les conteneurs",
|
||||
@@ -2515,10 +2515,10 @@
|
||||
"scope": {
|
||||
"label": "Token permissions",
|
||||
"readOnly": "Read-only",
|
||||
"readOnlyHint": "Reads metrics and status. Recommended for dashboards and integrations.",
|
||||
"fullAdmin": "Full admin",
|
||||
"fullAdminHint": "Full control, like your own session.",
|
||||
"fullAdminWarning": "A full-admin token can do everything you can: power off or reboot the host, run updates and open a terminal. Share it only with fully trusted integrations."
|
||||
"readOnlyHint": "Lire les paramètres et l'état. Recommandé pour les tableaux de bord et les intégrations.",
|
||||
"fullAdminHint": "Contrôle complet, comme votre propre session.",
|
||||
"fullAdminWarning": "Un jeton entièrement administratif peut faire tout ce que vous pouvez : désactiver ou redémarrer l'hôte, lancer des mises à jour et ouvrir un terminal. Partagez-le seulement avec des intégrations entièrement fiables."
|
||||
}
|
||||
},
|
||||
"firewall": {
|
||||
@@ -3302,26 +3302,33 @@
|
||||
"gotIt": "J'ai compris!",
|
||||
"dontShowAgain": "Ne plus afficher pour cette version",
|
||||
"currentFeatures": {
|
||||
"appDetection": "Smarter app detection in the App tab: Docker is correctly promoted as the parent workload during cold start (Portainer/SearXNG no longer briefly show up as native apps), unregistered suggestions live in the startup cache, and 'Find applications' runs a fresh catalog-backed scan on demand.",
|
||||
"dockerUpdates": "The Updates tab now covers Docker end-to-end: Docker Engine and per-image update tracking follow the same 24-hour rolling cycle as OS packages, with a 'Check now' action for on-demand digest comparison — no more waiting for the daily collector.",
|
||||
"appCatalog": "New application detection catalog with over 380 tracked workloads, generated live from community-scripts across seven detector methods (file, binary, dpkg, apk, Python, Docker exec, Docker label). Primary and fallback detectors cover both new and historical LXC layouts.",
|
||||
"pushover": "Pushover joins Telegram, Gotify, Discord, Email and Apprise as a native notification channel — user/API key, device and sound selectors, priority 0 for regular messages, optional priority 1 for CRITICAL events. Suggested by @benginx (#308).",
|
||||
"appsDashboard": "New top-level Apps dashboard — a single launcher for every Web Link across the node. LXC-registered apps and user-defined Custom Web Links share the same grid with category badges, search, and one-click deep-links back to the guest modal.",
|
||||
"lxcAppsUpdates": "App tab inside every LXC modal registers installed apps, captures weblinks and tracks upstream versions. Reworked Updates tab applies OS packages and app updates from a single button; Docker Engine and per-image tracking follow the same 24-hour cycle, with a 'Check now' action on demand.",
|
||||
"multilingual": "The Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Swedish and Slovak. Huge thanks to @vaso73 for building the i18n scaffolding that made this possible.",
|
||||
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298).",
|
||||
"aiCustomEndpoint": "AI Assistant custom OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute and any self-hosted proxy on private IPs, loopback or Docker networks are recognised when loading the model catalogue. The dropdown surfaces the server's error (or the underlying network reason) directly under the Load button (#325, reported by @jorgeffonte).",
|
||||
"secureGatewayArch": "Secure Gateway wizard — the Alpine template download, local template selection and pct create all match the host's real architecture, so x86_64 hosts receive amd64 containers and arm64 hosts receive arm64 containers (#324, reported by @N0X4DD0).",
|
||||
"atomicNotifications": "Notification events reserve their deduplication fingerprint atomically before AI processing and channel delivery, so concurrent collectors, completion callbacks or parallel Monitor processes cannot send the same event twice. The reservation is released when no channel succeeds, preserving retries.",
|
||||
"borgSshPort": "Borg remote target — the Add Borg destination dialog and the shell TUI accept a custom SSH port. BORG_RSH, the auto key install flow and the capacity probe all honour it. Fully backwards compatible with existing entries created without an explicit port (suggested by @songochain in discussion #236).",
|
||||
"githubToken": "Settings → GitHub API accepts an optional personal access token for release and tag checks when the anonymous quota is exhausted. The token is encrypted at rest and never returned to the browser; the rate-limit error is translated in every Monitor language (suggested by @SystemIdleProcess in discussion #306).",
|
||||
"replicationContext": "Native Proxmox replication failure notifications resolve the replication job ID, affected VM/LXC ID and guest name; the exact error block from Proxmox is preserved as the reason, and each replication job deduplicates independently (reported by Ale R.).",
|
||||
"auditAssessment": "Audit & Report — a new page that documents and assesses the node. The Assessment runs a catalogue of checks across security, backups, capacity, storage, network, hardware, guests and system, classifying each finding as critical, warning, observation or conformant and stating what it read rather than judging it.",
|
||||
"changeJournal": "Change journal — a Changes view that lists exactly what ProxMenux modified on this host: every configuration file, package and service it touched, with the prior state of each, deduplicated to a current-state view that shows the host as it stands now rather than a log of every run.",
|
||||
"auditReports": "Reports — a full audit plus focused Security review, Backup assurance and Capacity & wear reports, each opening on its own posture header, and a printable Inventory; all export to PDF. A security assessment asks before running Lynis so a run stays fast.",
|
||||
"auditPolicyBaseline": "Policy and baseline — declare what the host is expected to be (backup requirements, firewall, root SSH login) so findings grade against it, mark a run as the reference, and see what changed since, with new, resolved and accepted findings kept apart.",
|
||||
"groupedAppUpdates": "Grouped application update notifications — one complete message per scan instead of one per application, grouped by LXC with the installed and available versions.",
|
||||
"adminTokenScope": "Administrative scope — opening a Monitor terminal and disabling authentication now require a full-admin token, so a read-only API token issued to a monitoring integration stays read-only (reported by @f3rs3n)."
|
||||
"appDetection": "La détection d'applications plus intelligentes dans l'onglet App : Docker est correctement promue en tant que charge de travail parent lors du démarrage à froid (Portainer/SearXNG ne s'affiche plus brièvement en tant qu'applications natives), suggestions non enregistrées en direct dans le cache de démarrage, et 'Trouver des applications' lance un nouveau scanner soutenu par catalogue à la demande.",
|
||||
"dockerUpdates": "L'onglet Mises à jour couvre maintenant le Docker de bout en bout : Docker Le suivi de la mise à jour du moteur et de l'image suit le même cycle de roulement de 24 heures que les paquets OS, avec une action 'Vérifiez maintenant' pour la comparaison de digest à la demande — pas plus attendre le collecteur quotidien.",
|
||||
"appCatalog": "Nouveau catalogue de détection d'applications avec plus de 380 charges de travail suivies, généré en direct à partir de scripts communautaires sur sept méthodes de détecteurs (fichier, binaire, dpkg, apk, Python, Docker exec, étiquette Docker). Les détecteurs primaires et les détecteurs de recul couvrent les mises en page nouvelles et historiques du LXC.",
|
||||
"pushover": "Pushover rejoint Telegram, Gotify, Discord, Email et Apprise en tant que canal de notification natif — touche utilisateur/API, sélecteurs de périphérique et de son, priorité 0 pour les messages réguliers, priorité 1 optionnelle pour les événements CRITIQUES. Proposé par @benginx (#308).",
|
||||
"appsDashboard": "Nouveau tableau de bord des applications de haut niveau — un lanceur unique pour chaque lien Web à travers le nœud. Applications enregistrées par LXC et Web personnalisé Les liens partagent la même grille avec les badges de catégorie, les liens de recherche et les liens profonds à un clic vers le modal invité.",
|
||||
"lxcAppsUpdates": "Onglet App à l'intérieur de chaque LXC modal enregistre les applications installées, capture les liens web et suit les versions en amont. L'onglet Mises à jour retravaillées applique les paquets OS et les mises à jour d'applications à partir d'un seul bouton; Docker Moteur et suivi par image suivent le même cycle de 24 heures, avec une action 'Vérifier maintenant' sur demande.",
|
||||
"multilingual": "Le moniteur parle maintenant 8 langues: anglais, espagnol, allemand, français, italien, portugais, suédois et slovaque. Un énorme merci à @vaso73 pour la construction de l'échafaudage i18n qui a rendu cela possible.",
|
||||
"nvidiaMultiGpu": "Le cycle de vie du pilote NVIDIA passe à la propriété par BDF de sorte qu'un hôte multi-GPU peut transmettre une carte à un VM et garder l'autre opérationnel sur l'hôte ou en LXCs, plus un noyau + branche + GPU-aware sélecteur de version (#298).",
|
||||
"aiCustomEndpoint": "AI Assistant personnalisé OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute et tout proxy auto-organisé sur les IP privées, les réseaux loopback ou Docker sont reconnus lors du chargement du catalogue modèle. Le menu déroulant couvre l'erreur du serveur (ou la raison réseau sous-jacente) directement sous le bouton Charger (#325, signalé par @jorgeffonte).",
|
||||
"secureGatewayArch": "Secure Gateway assistant — le téléchargement de modèle Alpine, la sélection de modèle local et pct create correspondent tous à l'architecture réelle de l'hôte, donc x86 64 hôtes reçoivent amd64 conteneurs et arm64 hôtes reçoivent arm64 conteneurs (#324, rapporté par @N0X4DD0).",
|
||||
"atomicNotifications": "Les événements de notification réservent leur empreinte digitale de duplication atomiquement avant le traitement de l'IA et la livraison du canal, de sorte que les collecteurs concurrents, les callbacks d'achèvement ou les processus Moniteur parallèles ne peuvent pas envoyer le même événement deux fois. La réservation est libérée lorsqu'aucun canal ne réussit, en préservant les relevés.",
|
||||
"borgSshPort": "Cible distante Borg — la boîte de dialogue Add Borg destination et le shell TUI acceptent un port SSH personnalisé. BORG RSH, la clé automatique installe le flux et la sonde de capacité tout l'honore. Entièrement en arrière compatible avec les entrées existantes créées sans port explicite (suggéré par @songochain dans la discussion #236).",
|
||||
"githubToken": "Paramètres → L'API GitHub accepte un jeton d'accès personnel optionnel pour la libération et vérifie les étiquettes lorsque le quota anonyme est épuisé. Le jeton est chiffré au repos et n'est jamais retourné dans le navigateur; l'erreur de limite de taux est traduite dans chaque langue Monitor (suggéré par @SystemIdleProcess dans la discussion #306).",
|
||||
"replicationContext": "Les notifications de défaillance de réplication natives Proxmox résolvent l'ID de la tâche de réplication, l'ID touché VM/LXC et le nom de l'invité; le bloc d'erreur exact de Proxmox est conservé comme raison, et chaque tâche de réplication se dédouble indépendamment (rapporté par Ale R.).",
|
||||
"auditAssessment": "Audit & Report — une nouvelle page qui documente et évalue le nœud. L'évaluation comporte un catalogue de vérifications de sécurité, de sauvegardes, de capacité, de stockage, de réseau, de matériel, d'invités et de système, classant chaque constatation comme critique, d'avertissement, d'observation ou conforme et indiquant ce qu'elle lit plutôt que de le juger.",
|
||||
"changeJournal": "Change journal — a Changes view that listes exact what ProxMenux modified on this host: every configuration file, package and service it touched, with the previous state of chaque, dupliquée to a current-state view that shows the host as it stands now plutôt qu'un journal de chaque exécution.",
|
||||
"auditReports": "Rapports — un audit complet plus un examen de sécurité ciblé, l'assurance de sauvegarde et rapports de capacité et d'usure, chaque ouverture sur son propre en-tête de posture, et un inventaire imprimable; tous exportent vers PDF. Une évaluation de sécurité demande avant de courir Lynis donc une course reste rapide.",
|
||||
"auditPolicyBaseline": "Politique et base de référence — déclarer ce que l'hôte est censé être (exigences de sauvegarde, pare-feu, connexion à la racine SSH) de sorte que les constatations notent contre elle, marquent une course comme référence, et voir ce qui a changé puisque, avec les nouvelles, les conclusions résolues et acceptées restent séparées.",
|
||||
"groupedAppUpdates": "Notifications groupées de mise à jour des applications — un message complet par balayage au lieu d'un message par application, groupé par LXC avec les versions installées et disponibles.",
|
||||
"adminTokenScope": "Champ d'application administratif — l'ouverture d'un terminal de monitoring et la désactivation de l'authentification nécessitent maintenant un jeton d'administration complet, de sorte qu'un jeton d'API en lecture seule émis à un monitoring intégré reste en lecture seule (rapporté par @f3rs3n).",
|
||||
"ociAppTab": "Conteneurs OCI dans l'onglet App — un conteneur installé par OCI manager Apps est reconnu à partir de son enregistrement d'installation : l'application et son image, une nouvelle image détectée par digest et un lien vers le dépôt de l'image.",
|
||||
"ociUpdatesTab": "Mises à jour des conteneurs OCI — Mettre à jour et Recréer ouvrent le même parcours que le menu OCI, la sauvegarde prise avant la mise à jour peut être conservée dans un stockage de sauvegardes et l'image peut être mise à jour de façon planifiée.",
|
||||
"ociLogsTab": "Onglet Logs pour les conteneurs OCI — la sortie console de l'application, conservée sur l'hôte et suivie en direct, avec un filtre et un téléchargement. La console Proxmox de ces conteneurs ouvre un shell.",
|
||||
"appsUpdateShortcut": "L'icône de mise à jour de la page Apps ouvre directement le conteneur sur son onglet Mises à jour.",
|
||||
"webhookHttps": "Les notifications de Proxmox atteignent le Monitor avec HTTPS activé — elles sont livrées sur une adresse uniquement locale et n'échouent plus sur une erreur de certificat.",
|
||||
"persistentLogs": "Une rafale d'erreurs de logs terminée n'est plus signalée comme persistante : un motif doit continuer d'apparaître pendant 15 minutes, et son avertissement se ferme de lui-même (signalé par @Joshua1264).",
|
||||
"mountsLanAddress": "Les points de montage sur LVM-thin et autres stockages en mode bloc affichent leur utilisation, et les applications multi-conteneurs s'ouvrent sur leur adresse LAN."
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
@@ -5027,23 +5034,20 @@
|
||||
"uncategorized": "Uncategorized",
|
||||
"openAriaLabel": "Open {name} in a new tab",
|
||||
"openGuestAriaLabel": "Ouvrir {name} ({type} {id})",
|
||||
"emptyTitle": "No apps with a web link yet.",
|
||||
"emptyHint": "Register a Web Link for any app (App tab of a CT) to see it here.",
|
||||
"customLinkAdd": "Add link",
|
||||
"editModeToggle": "Edit",
|
||||
"editModeDone": "Done",
|
||||
"customLinkNewTitle": "New web link",
|
||||
"customLinkEditTitle": "Edit web link",
|
||||
"customLinkEditAria": "Modifier le lien personnalisé {name}",
|
||||
"openUpdatesAria": "Ouvrir l'onglet Mises à jour de {name}",
|
||||
"openUpdatesTitle": "Mise à jour disponible — ouvrir l'onglet Mises à jour",
|
||||
"customLinkName": "Name",
|
||||
"customLinkNamePlaceholder": "e.g. My app",
|
||||
"customLinkUrl": "URL",
|
||||
"customLinkLogo": "Logo URL (optional)",
|
||||
"customLinkLogoPlaceholder": "e.g., https://example.com/logo.webp",
|
||||
"customLinkCategory": "Category (optional)",
|
||||
"customLinkBinding": "Bound to",
|
||||
"customLinkBindingNone": "Not bound to any guest",
|
||||
"customLinkBindingHelp": "Bind this link to a VM or CT to add its ID + name to the card and jump to the guest with one click.",
|
||||
"customLinkSave": "Save",
|
||||
"customLinkCreate": "Create",
|
||||
"customLinkCancel": "Cancel",
|
||||
@@ -5079,7 +5083,12 @@
|
||||
"remoteAccessVpn": "Remote Access & VPN",
|
||||
"webserversProxies": "Webservers & Proxies",
|
||||
"zigbeeZwaveMatter": "ZigBee, Z-Wave & Matter"
|
||||
}
|
||||
},
|
||||
"emptyTitle": "Pas encore d'applications avec un lien web.",
|
||||
"emptyHint": "Enregistrez un lien Web pour toute application (onglet App d'un CT) pour le voir ici.",
|
||||
"customLinkLogoPlaceholder": "Par exemple, https://exemple.com/logo.webp",
|
||||
"customLinkBindingNone": "Non lié à un invité",
|
||||
"customLinkBindingHelp": "Relier ce lien à un VM ou CT pour ajouter son ID + nom à la carte et sauter à l'invité en un clic."
|
||||
},
|
||||
"audit": {
|
||||
"presentation": {
|
||||
@@ -5234,13 +5243,10 @@
|
||||
"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",
|
||||
"unverifiedChecks": "Non relevés : {checks}. Chacun indique dans ses évidences ce qu'il n'a pas pu lire.",
|
||||
"noFindings": "No findings match the current filter.",
|
||||
"affectedCount": "{count} affected",
|
||||
"acceptedNotice": "{count} accepted risk(s) recorded on this host.",
|
||||
"reviewOn": "À revoir le : {when}",
|
||||
"reviewDue": "À revoir — la décision reste en vigueur",
|
||||
"reviewDueNotice": "{count} décision(s) acceptée(s) sont à revoir.",
|
||||
@@ -5272,7 +5278,7 @@
|
||||
"sources": "Sources et dates de collecte"
|
||||
},
|
||||
"errors": {
|
||||
"runFailed": "The assessment could not be started."
|
||||
"runFailed": "L'évaluation n'a pas pu être entreprise."
|
||||
},
|
||||
"checks": {
|
||||
"backup": {
|
||||
@@ -5285,7 +5291,7 @@
|
||||
"uncovered": "{count} invités sur {total} ne sont sélectionnés par aucune tâche de sauvegarde activée",
|
||||
"excludedData": "{count} exclusions de disques ou montages à vérifier",
|
||||
"uncoveredExpected": "{required} invités déclarés comme devant être sauvegardés ne sont sélectionnés par aucune tâche activée",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
},
|
||||
"nextStep": {
|
||||
"noJobs": "Créez un travail de sauvegarde sur ce noeud et sélectionnez les invités qui détiennent des données que vous ne voudriez pas reconstruire à la main. Un emploi qui existe mais qui est handicapé ne sélectionne rien.",
|
||||
@@ -5300,10 +5306,10 @@
|
||||
"rationale": "Ancienneté : temps écoulé depuis la dernière copie stockée. Limite utilisée : ancienneté de référence à laquelle cette copie est comparée.",
|
||||
"summary": {
|
||||
"recent": "Les {total} vérifications invité/destination respectent le critère d’ancienneté indiqué",
|
||||
"stale": "{count} of {total} guests have no backup from the last 30 days",
|
||||
"noBackups": "No stored backup matches a guest on this node",
|
||||
"attention": "{count} vérifications invité/destination sur {total} nécessitent un examen",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"stale": "{count} de {total} invités n'ont aucune sauvegarde depuis les 30 derniers jours",
|
||||
"noBackups": "Aucune sauvegarde enregistrée ne correspond à un invité sur ce nœud",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
},
|
||||
"nextStep": {
|
||||
"stale": "Découvrez pourquoi le travail a cessé de produire des copies pour ces invités : il a peut-être été désactivé, son emploi du temps peut ne jamais tirer, ou ses pistes peuvent échouer. La vérification des résultats de l'exécution indique comment chaque travail s'est terminé.",
|
||||
@@ -5317,10 +5323,10 @@
|
||||
"rationale": "La rétention telle que Proxmox la résout : réglage de la tâche, puis du stockage, puis la valeur par défaut du nœud. La rétention appliquée par un serveur de sauvegarde n'est pas lisible depuis ce nœud.",
|
||||
"summary": {
|
||||
"allDefined": "Les {total} tâches résolvent un réglage de rétention",
|
||||
"missing": "{count} of {total} enabled job(s) declare no retention",
|
||||
"notDeclared": "{count} tâches sur {total} conservent toutes les copies : aucune rétention n'est déclarée",
|
||||
"onServer": "{count} tâches sur {total} écrivent sur un serveur de sauvegarde, qui les élague avec ses propres tâches",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"missing": "{count} de {total} emploi(s) autorisé(s) déclarer aucune rétention",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
},
|
||||
"nextStep": {
|
||||
"missing": "Réglez une rétention sur ces tâches, ou sur le stockage auquel ils écrivent. Proxmox prend le réglage du travail d'abord, puis le stockage, puis le noeud par défaut.",
|
||||
@@ -5383,36 +5389,36 @@
|
||||
"summary": {
|
||||
"none": "Rien n'a demandé de redémarrage",
|
||||
"pending": "{count} éléments sont installés et attendent un redémarrage",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"enterprise_repo_without_subscription": {
|
||||
"title": "Enterprise repository",
|
||||
"rationale": "Références à `enterprise.proxmox.com` dans `/etc/apt/sources.list` et `sources.list.d`, face au statut renvoyé par `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",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"notEnabled": "Le dépôt d'entreprise n'est pas activé",
|
||||
"subscribed": "Le dépôt d'entreprise est soutenu par un abonnement",
|
||||
"unsubscribed": "Le dépôt d'entreprise est activé sans abonnement actif",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"memory_overcommit": {
|
||||
"title": "Memory allocation",
|
||||
"rationale": "Le plafond `memory` de chaque configuration d'invité face à MemTotal, les invités en cours comptés séparément. Les conteneurs consomment jusqu'à cette limite ; les machines virtuelles sans ballooning la réservent.",
|
||||
"summary": {
|
||||
"withinRatio": "Guests are allocated {percent}% of host memory",
|
||||
"aboveRatio": "Guests are allocated {percent}% of host memory",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"withinRatio": "Les invités reçoivent {percent}% de la mémoire hôte",
|
||||
"aboveRatio": "Les invités reçoivent {percent}% de la mémoire hôte",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"time_synchronisation": {
|
||||
"title": "Time synchronisation",
|
||||
"rationale": "NTP et NTPSynchronized tels que `timedatectl` les rapporte. L'appartenance au cluster, la validation des certificats et l'ordre des journaux dépendent d'horloges concordantes. Un autre mécanisme peut discipliner l'horloge.",
|
||||
"summary": {
|
||||
"synchronised": "The clock is synchronised with a time source",
|
||||
"disabled": "Time synchronisation is disabled",
|
||||
"notSynchronised": "Time synchronisation is enabled but the clock is not synchronised",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"synchronised": "L'horloge est synchronisée avec une source de temps",
|
||||
"notSynchronised": "La synchronisation du temps est activée mais l'horloge n'est pas synchronisée",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"kernel_current": {
|
||||
@@ -5420,21 +5426,21 @@
|
||||
"rationale": "Le noyau en cours face à celui que l'hôte démarrerait ensuite, tel que `proxmox-boot-tool` le rapporte. Un noyau plus récent seulement installé peut être retenu délibérément ; un écart après un redémarrage indique un démarrage qui n'a pas pris.",
|
||||
"summary": {
|
||||
"current": "Le noyau en cours {version} est celui que l'hôte démarrerait ensuite",
|
||||
"newerAvailable": "The host runs {running} while {newest} is installed",
|
||||
"newerSelected": "L'hôte exécute {running} et démarrerait {selected} au prochain redémarrage",
|
||||
"wouldDowngrade": "L'hôte exécute {running} mais démarrerait le plus ancien {selected} au prochain redémarrage",
|
||||
"bootTargetUnknown": "L'hôte exécute {version} ; le noyau choisi pour le prochain démarrage n'a pas pu être lu",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"newerAvailable": "L'hôte exécute {running} alors que {newest} est installé",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"security_updates": {
|
||||
"title": "Security updates",
|
||||
"rationale": "Paquets en attente dont l'origine est un dépôt de sécurité, à partir d'un `apt-get upgrade` simulé. Le nombre reflète ce que rapporte apt, non la gravité de ce que chaque paquet corrige.",
|
||||
"summary": {
|
||||
"none": "No package updates are pending",
|
||||
"noSecurity": "{total} update(s) pending, none from a security repository",
|
||||
"pending": "{count} of {total} pending update(s) come from a security repository",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"none": "Aucune mise à jour du paquet n'est en cours",
|
||||
"noSecurity": "{total} mise(s) à jour en attente, aucune depuis un dépôt de sécurité",
|
||||
"pending": "{count} de {total} en attente de mise(s) à jour proviennent d'un dépôt de sécurité",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"journal_size": {
|
||||
@@ -5442,10 +5448,10 @@
|
||||
"rationale": "Le journal sur disque face au plafond qui s'y applique : SystemMaxUse lorsqu'il est défini, sinon la valeur par défaut de journald, un dixième du système de fichiers qui l'héberge.",
|
||||
"summary": {
|
||||
"bounded": "Le journal occupe {size}, en deçà de son plafond effectif",
|
||||
"large": "The journal holds {size} on disk",
|
||||
"nearCap": "Le journal occupe {size} et atteint {percent}% de son plafond effectif",
|
||||
"capUnknown": "Le journal occupe {size} ; son plafond effectif n'a pas pu être déterminé",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"large": "La revue détient {size} sur disque",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"swap_configured": {
|
||||
@@ -5454,7 +5460,7 @@
|
||||
"summary": {
|
||||
"active": "{size} of swap is active",
|
||||
"none": "No swap area is active",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"filesystem_capacity": {
|
||||
@@ -5500,7 +5506,7 @@
|
||||
"summary": {
|
||||
"synchronised": "Les {total} partitions d'amorçage portent les mêmes noyaux",
|
||||
"attention": "{count} partitions d'amorçage sur {total} demandent un examen",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
},
|
||||
"rationale": "Le système EFI partitionne les rapports proxmox-boot-tool et les noyaux que chacun transporte. L'état proxmox-boot-tool peut monter temporairement les partitions système EFI ;aucun démarrage n'est tenté."
|
||||
},
|
||||
@@ -5510,7 +5516,7 @@
|
||||
"summary": {
|
||||
"allRunning": "Les {total} services essentiels sont actifs et aucune unité n'est en échec",
|
||||
"attention": "{count} constat(s) parmi les unités",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"ha_state": {
|
||||
@@ -5519,7 +5525,7 @@
|
||||
"summary": {
|
||||
"managed": "Les {total} services gérés sont dans un état stabilisé sur {nodes} nœud(s)",
|
||||
"attention": "{count} constat(s) sur {total} service(s) géré(s)",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -5528,27 +5534,27 @@
|
||||
"title": "Container privileges",
|
||||
"rationale": "Le réglage `unprivileged` de chaque configuration de conteneur. Son absence signifie que le conteneur partage l'espace de noms utilisateur de l'hôte, ce dont certaines charges ont besoin.",
|
||||
"summary": {
|
||||
"allUnprivileged": "All {total} containers are unprivileged",
|
||||
"privileged": "{count} of {total} containers run privileged",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"allUnprivileged": "Tous les conteneurs {total} ne sont pas privilégiés",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"qemu_without_agent": {
|
||||
"title": "Guest agent on virtual machines",
|
||||
"rationale": "Le réglage `agent` dans la configuration de chaque machine virtuelle. Le réglage indique que l'agent est déclaré, non qu'il répond.",
|
||||
"summary": {
|
||||
"allHaveAgent": "All {total} virtual machines declare the guest agent",
|
||||
"missingAgent": "{count} of {total} virtual machines do not declare the guest agent",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
}
|
||||
"allHaveAgent": "Toutes les machines virtuelles {total} déclarent l'agent invité",
|
||||
"missingAgent": "{count} des machines virtuelles {total} ne déclarent pas l'agent invité",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
},
|
||||
"title": "Agent invité sur machines virtuelles"
|
||||
},
|
||||
"autostart": {
|
||||
"title": "Automatic start",
|
||||
"rationale": "Le réglage `onboot` de chaque invité, hors modèles et invités gérés par HA. Qu'un invité doive revenir de lui-même relève de la politique déclarée.",
|
||||
"summary": {
|
||||
"allAutostart": "All {total} guests start with the host",
|
||||
"notAutostart": "{count} of {total} guests do not start with the host",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"allAutostart": "Tous les invités {total} commencent par l'hôte",
|
||||
"notAutostart": "{count} des invités {total} ne commencent pas avec l'hôte",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"stuck_snapshots": {
|
||||
@@ -5556,28 +5562,28 @@
|
||||
"rationale": "État et ancienneté des snapshots ainsi que les tâches actives. Une opération récente ou sans date vérifiable n'est pas considérée comme interrompue.",
|
||||
"summary": {
|
||||
"noSnapshots": "No guest holds snapshots",
|
||||
"allComplete": "The {total} snapshot(s) are complete",
|
||||
"stuck": "{count} of {total} snapshot(s) were left mid-operation",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"allComplete": "Les instantanés {total} sont complets",
|
||||
"stuck": "{count} du ou des instantanés {total} ont été laissés en milieu de fonctionnement",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"cpu_host_type": {
|
||||
"title": "Virtual CPU model",
|
||||
"rationale": "La valeur `cpu` de chaque machine virtuelle. `host` expose le jeu d'instructions du processeur physique, ce qui restreint les nœuds vers lesquels l'invité peut migrer. L'incompatibilité avec une destination précise n'est pas déterminée ici.",
|
||||
"summary": {
|
||||
"none": "None of the {total} virtual machines is pinned to the host processor",
|
||||
"pinned": "{count} of {total} virtual machines are pinned to the host processor",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"none": "Aucune des machines virtuelles {total} n'est épinglée au processeur hôte",
|
||||
"pinned": "{count} des machines virtuelles {total} sont épinglées au processeur hôte",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"replication_state": {
|
||||
"title": "Replication",
|
||||
"rationale": "Tâches de réplication issues de l'API : nombre d'échecs, dernière erreur, dernière synchronisation et le calendrier que chaque tâche déclare. Les tâches en pause sont signalées comme telles.",
|
||||
"summary": {
|
||||
"healthy": "The {total} replication job(s) report no error",
|
||||
"failing": "{count} of {total} replication job(s) report an error",
|
||||
"statusUnavailable": "Replication jobs are defined but their status could not be read",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"healthy": "La ou les tâches de réplication {total} ne signalent aucune erreur",
|
||||
"failing": "{count} des tâches de réplication {total} signalent une erreur",
|
||||
"statusUnavailable": "Les emplois de replication sont définis mais leur statut n'a pas pu être lu.",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -5589,39 +5595,39 @@
|
||||
"bothEnabled": "L'activation du pare-feu est configurée au niveau du datacenter et du nœud",
|
||||
"datacenterOff": "Le pare-feu est désactivé au niveau du datacenter ; les règles du nœud ne sont donc pas appliquées",
|
||||
"nodeOff": "Le pare-feu est activé au niveau du datacenter, mais pas sur ce nœud",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"lynis_warnings": {
|
||||
"title": "Lynis warnings",
|
||||
"rationale": "Avertissements du dernier audit Lynis, chacun avec son identifiant de test, et l'ancienneté de cet audit. Un audit n'est lancé que si Lynis est installé et qu'aucun rapport complet n'existe. Les suggestions ne sont pas incluses.",
|
||||
"summary": {
|
||||
"none": "The last Lynis audit recorded no warnings",
|
||||
"found": "The last Lynis audit recorded {count} warning(s)",
|
||||
"incomplete": "The Lynis report is incomplete",
|
||||
"evaluationFailed": "The check could not be evaluated",
|
||||
"noneStale": "Le dernier audit Lynis n'a relevé aucun avertissement, et son rapport a {days} jour(s)",
|
||||
"foundStale": "Le dernier audit Lynis a relevé {count} avertissement(s), et son rapport a {days} jour(s)"
|
||||
"foundStale": "Le dernier audit Lynis a relevé {count} avertissement(s), et son rapport a {days} jour(s)",
|
||||
"none": "La dernière vérification de Lynis n'a enregistré aucun avertissement",
|
||||
"found": "La dernière vérification de Lynis a enregistré des avertissements {count}",
|
||||
"incomplete": "Le rapport Lynis est incomplet",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"certificate_expiry": {
|
||||
"title": "Certificate validity",
|
||||
"rationale": "La date d'expiration du certificat que pveproxy sert depuis /etc/pve/local. Un certificat personnalisé prime sur celui que Proxmox génère.",
|
||||
"summary": {
|
||||
"valid": "The certificate is valid for {days} more day(s)",
|
||||
"expiring": "The certificate expires in {days} day(s)",
|
||||
"expired": "The certificate expired {days} day(s) ago",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"valid": "Le certificat est valide pour {days} plus jour(s)",
|
||||
"expiring": "Le certificat expire en {days} jour(s)",
|
||||
"expired": "Le certificat a expiré {days} jour(s)",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"ssh_root_login": {
|
||||
"title": "SSH root access",
|
||||
"rationale": "PermitRootLogin dans la configuration effective de `sshd -T`, avec les méthodes d'authentification associées. Proxmox est livré avec `yes`, qui accepte un mot de passe.",
|
||||
"summary": {
|
||||
"password": "Root may sign in over SSH with a password",
|
||||
"keyOnly": "Root may sign in over SSH with a key only",
|
||||
"denied": "Root may not sign in over SSH",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"password": "Root peut se connecter sur SSH avec un mot de passe",
|
||||
"keyOnly": "La racine peut se connecter sur SSH avec une clé seulement",
|
||||
"denied": "La racine ne peut pas se connecter au-dessus de SSH",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -5630,9 +5636,9 @@
|
||||
"title": "Volume assignment",
|
||||
"rationale": "Volumes d'invité sur le stockage local face aux références des configurations actuelles, en attente et de snapshots. Les sauvegardes, ISO et modèles restent hors de la comparaison. Un volume sans référence est un candidat à examiner.",
|
||||
"summary": {
|
||||
"none": "No orphaned volumes were found",
|
||||
"found": "{count} volumes sans référence dans les configurations examinées",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"none": "Aucun volume d'orphelins n'a été trouvé",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"zfs_arc_max": {
|
||||
@@ -5640,21 +5646,21 @@
|
||||
"rationale": "Valeurs effectives de c_min, c_max et taille de l'ARC, le paramètre de module chargé et les réglages persistants de /etc/modprobe.d. Une valeur configurée à zéro sélectionne la valeur par défaut du module ; l'ARC est un plafond et la mémoire qu'il occupe est récupérable.",
|
||||
"summary": {
|
||||
"bounded": "La limite de l'ARC représente {percent}% de la mémoire de l'hôte, et la mémoire qu'elle occupe est récupérable",
|
||||
"high": "The ARC may use {percent}% of host memory",
|
||||
"unset": "The ARC has no explicit limit set",
|
||||
"conflicting": "{count} réglages ARC ne concordent pas entre eux",
|
||||
"pending": "Un réglage ARC persistant diffère de la valeur portée par le module en cours",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"high": "L'ARC peut utiliser {percent}% de la mémoire hôte",
|
||||
"unset": "L'ARC n'a pas de limite explicite",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"zfs_scrub_age": {
|
||||
"title": "ZFS scrub",
|
||||
"rationale": "Le dernier scrub terminé que `zpool status` rapporte pour chaque pool. Un resilver n'est pas un scrub. Un pool créé récemment n'a pas encore eu l'occasion d'en effectuer un.",
|
||||
"summary": {
|
||||
"recent": "The {total} pool(s) were scrubbed within the last 35 days",
|
||||
"overdue": "{count} of {total} pool(s) have not been scrubbed in 35 days",
|
||||
"neverScrubbed": "{count} pool(s) record no scrub",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"recent": "Les piscines {total} ont été nettoyées au cours des 35 derniers jours.",
|
||||
"overdue": "{count} de la ou des piscines {total} n'ont pas été nettoyées en 35 jours",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"thin_pool_overprovisioning": {
|
||||
@@ -5664,7 +5670,7 @@
|
||||
"withinRatio": "Les {total} thin pools restent sous les seuils d'examen appliqués",
|
||||
"aboveRatio": "{count} pools légers sur {total} distribuent plus de capacité qu'ils n'en possèdent",
|
||||
"pressure": "{pressure} pools légers sur {total} approchent le remplissage de leurs données ou métadonnées",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"connected_storage": {
|
||||
@@ -5673,7 +5679,7 @@
|
||||
"summary": {
|
||||
"available": "PVE indique que les {total} stockages sont disponibles ; les composants internes distants et l'accès en écriture n'ont pas été testés",
|
||||
"attention": "{count} stockages sur {total} nécessitent un examen",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"pool_integrity": {
|
||||
@@ -5691,7 +5697,7 @@
|
||||
"summary": {
|
||||
"healthy": "Ceph rapporte HEALTH_OK",
|
||||
"degraded": "Ceph rapporte {state}, avec {count} vérification(s) nommée(s)",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"array_integrity": {
|
||||
@@ -5700,7 +5706,7 @@
|
||||
"summary": {
|
||||
"intact": "Les {total} grappes et cartes conservent leur redondance",
|
||||
"degraded": "{count} grappes ou cartes sur {total} en manquent",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -5712,7 +5718,7 @@
|
||||
"withinLife": "Les {total} relevés de disques ne dépassent pas le seuil indicatif de cinq ans",
|
||||
"pastLife": "{count} relevés de disques sur {total} dépassent cinq ans de service",
|
||||
"noReadings": "Aucun disque ne rapporte de compteurs SMART exploitables ({skipped} sans relevés)",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"disk_errors": {
|
||||
@@ -5729,23 +5735,22 @@
|
||||
"title": "Bond members",
|
||||
"rationale": "L'état MII de chaque membre du bond selon /proc/net/bonding et le nombre de liens restants. En active-backup, un membre de secours se déclare actif et ne transporte rien.",
|
||||
"summary": {
|
||||
"allUp": "All members of the {total} bond(s) are up",
|
||||
"membersDown": "{count} bond member(s) are not up",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"allUp": "Tous les membres des obligations {total} sont en hausse",
|
||||
"membersDown": "Les membres d'obligations {count} ne sont pas en hausse",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
},
|
||||
"bridge_without_ports": {
|
||||
"title": "Bridge ports",
|
||||
"rationale": "La configuration des ports de chaque bridge. Un bridge sans port physique dessert un réseau interne ou routé.",
|
||||
"summary": {
|
||||
"allConnected": "The {total} bridge(s) carry a port",
|
||||
"isolated": "{count} of {total} bridge(s) carry no port",
|
||||
"evaluationFailed": "The check could not be evaluated"
|
||||
"allConnected": "Le ou les ponts {total} portent un port",
|
||||
"evaluationFailed": "La vérification n'a pas pu être évaluée"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"summaryFallback": "The check could not be evaluated",
|
||||
"acceptRisk": {
|
||||
"action": "Accepter le risque",
|
||||
"revoke": "Remettre en actif",
|
||||
@@ -5779,17 +5784,15 @@
|
||||
"OK": "OK"
|
||||
},
|
||||
"viewSwitch": {
|
||||
"ariaLabel": "Switch between assessment and inventory",
|
||||
"assessment": "Assessment",
|
||||
"inventory": "Inventory",
|
||||
"policy": "Politique",
|
||||
"changes": "Modifications"
|
||||
"changes": "Modifications",
|
||||
"ariaLabel": "Changement entre l'évaluation et l'inventaire"
|
||||
},
|
||||
"inventory": {
|
||||
"loading": "Loading inventory…",
|
||||
"failed": "The inventory could not be composed.",
|
||||
"collectedAt": "Composed on {when}",
|
||||
"unavailable": "Not read in this inventory",
|
||||
"unresolved": "path not resolved",
|
||||
"noUplink": "no uplink",
|
||||
"identity": "Node identity",
|
||||
@@ -5832,12 +5835,10 @@
|
||||
"protection": "Backup",
|
||||
"passthrough": "Passthrough",
|
||||
"noBackup": "No backup",
|
||||
"noBackupDetail": "No enabled backup job selects this guest.",
|
||||
"applications": "Applications",
|
||||
"versionUnknown": "version not detected",
|
||||
"passthroughTitle": "PCI passthrough",
|
||||
"iommuGroup": "IOMMU group {group}",
|
||||
"sharedGroup": "{count} more device(s) in the same group",
|
||||
"proxmenux": "ProxMenux optimizations",
|
||||
"latency": "Latence réseau",
|
||||
"subscriptionStatus": {
|
||||
@@ -5848,7 +5849,11 @@
|
||||
"suspended": "Suspendu",
|
||||
"new": "En attente d'activation",
|
||||
"unknown": "Inconnu"
|
||||
}
|
||||
},
|
||||
"failed": "L'inventaire n'a pas pu être composé.",
|
||||
"unavailable": "Non lu dans cet inventaire",
|
||||
"noBackupDetail": "Aucune tâche de sauvegarde activée ne sélectionne cet invité.",
|
||||
"sharedGroup": "{count} plus de dispositif(s) dans le même groupe"
|
||||
},
|
||||
"profile": {
|
||||
"label": "Report",
|
||||
@@ -5871,7 +5876,6 @@
|
||||
"area": "Area",
|
||||
"inventoryAnnex": "Inventory annex",
|
||||
"scopeTitle": "Scope of this report",
|
||||
"scopeBody": "This report describes the Proxmox VE node named above, as observed from the node itself at the time stated. It does not cover the interior of the guests beyond what they declare, network equipment outside the host, physical infrastructure, or any dependency not visible from this node. Findings marked as not determined were not measured and are not evidence of absence.",
|
||||
"building": "Composition du rapport…",
|
||||
"node": "Nœud",
|
||||
"profile": "Profil",
|
||||
@@ -6020,11 +6024,12 @@
|
||||
"structureSubtitle": "Comment {node} est construit et configuré",
|
||||
"postureTitle": "Posture",
|
||||
"posture": {
|
||||
"security": "Host exposure and access.",
|
||||
"backup": "Guest protection and whether it is real.",
|
||||
"capacity": "Room to grow and the wear on the disks."
|
||||
"security": "Exposition de l'hôte et accès.",
|
||||
"backup": "Protection des invités et si elle est réelle.",
|
||||
"capacity": "La place pour grandir et l'usure sur les disques."
|
||||
},
|
||||
"scopeReadOnly": "L’évaluation inspecte les paramètres et l’état de l’hôte. Il peut rédiger des rapports et des journaux ;les vérifications de l'état de démarrage peuvent monter temporairement les partitions système EFI."
|
||||
"scopeReadOnly": "L’évaluation inspecte les paramètres et l’état de l’hôte. Il peut rédiger des rapports et des journaux ;les vérifications de l'état de démarrage peuvent monter temporairement les partitions système EFI.",
|
||||
"scopeBody": "Le présent rapport décrit le noeud Proxmox VE nommé ci-dessus, comme on l'a vu dans le nœud lui-même à l'époque indiquée. Il ne couvre pas l'intérieur des invités au-delà de ce qu'ils déclarent, l'équipement réseau en dehors de l'hôte, l'infrastructure physique, ou toute dépendance non visible de ce noeud. Les résultats marqués comme non déterminés n'ont pas été mesurés et ne sont pas une preuve d'absence."
|
||||
},
|
||||
"results": "Résultats",
|
||||
"classifications": {
|
||||
@@ -6178,15 +6183,19 @@
|
||||
"notApplicableScope": "Rien dans le périmètre examiné auquel cette vérification s'applique.",
|
||||
"lynis": {
|
||||
"title": "Run Lynis",
|
||||
"bodyNotRun": "Lynis is installed but has not been run yet. Running it now completes the security review, but the process can take a few minutes.",
|
||||
"bodyStale": "The Lynis report is {days} days old. You can run it now to refresh the data (it takes a little longer) or continue with the existing report.",
|
||||
"withLynis": "Run with Lynis",
|
||||
"withoutLynis": "Run without Lynis",
|
||||
"cancel": "Cancel"
|
||||
"cancel": "Cancel",
|
||||
"bodyNotRun": "Lynis est installé mais n'a pas encore été exécuté. Il termine maintenant l'examen de sécurité, mais le processus peut prendre quelques minutes.",
|
||||
"bodyStale": "Le rapport Lynis date de {days} jours. Vous pouvez l'exécuter maintenant pour actualiser les données (il faut un peu plus longtemps) ou continuer avec le rapport existant."
|
||||
},
|
||||
"readOnlyNotice": "L’évaluation inspecte les paramètres et l’état de l’hôte. Il peut rédiger des rapports et des journaux ;les vérifications de l'état de démarrage peuvent monter temporairement les partitions système EFI.",
|
||||
"noActionNeeded": "Rien à faire. Ce chèque a trouvé ce qu'il s'attend à trouver.",
|
||||
"couldNotEvaluate": "Cette vérification n'a pu être évaluée, de sorte qu'elle ne fait aucun rapport. La preuve enregistre ce qu'elle n'a pas pu lire."
|
||||
"couldNotEvaluate": "Cette vérification n'a pu être évaluée, de sorte qu'elle ne fait aucun rapport. La preuve enregistre ce qu'elle n'a pas pu lire.",
|
||||
"neverRun": "Cet hôte n'a pas encore été évalué.",
|
||||
"noFindings": "Aucune découverte ne correspond au filtre actuel.",
|
||||
"acceptedNotice": "{count} a accepté les risques enregistrés sur cet hôte.",
|
||||
"summaryFallback": "La vérification n'a pas pu être évaluée"
|
||||
},
|
||||
"runtime": {
|
||||
"notifications": {
|
||||
|
||||
Reference in New Issue
Block a user