"serverUnavailableTitle":"Le serveur de surveillance n'est pas disponible",
"serverUnavailableDescription":"Impossible de se connecter au serveur Monitor. Assurez-vous que le service est en cours d'exécution et réessayez."
}
},
"storage":{
"loadingTitle":"Chargement des données de stockage...",
"loadingDescription":"Analyse des disques, partitions et pools de stockage",
"loadingError":"Erreur lors du chargement des données de stockage: {error}",
"storageUsed":"Stockage utilisé",
"localUsed":"Local utilisé",
"remoteUsed":"Télécommande utilisée",
"physicalDisks":"Disques physiques",
"proxmoxStorage":"Stockage Proxmox",
"remoteMounts":"Supports à distance",
"externalStorageUsb":"Stockage externe (USB)",
"physicalDisksSmart":"Disques physiques et statut SMART",
"zfsPools":"Pools ZFS",
"local":"Locale",
"remote":"Télécommande",
"free":"Gratuit",
"used":"Utilisé",
"total":"Total",
"available":"Disponible",
"size":"Taille",
"allocated":"Alloué",
"none":"Aucun",
"noRemoteStorage":"Pas de stockage à distance",
"diskSingular":"disque",
"diskPlural":"disques",
"allHealthy":"tout en bonne santé",
"criticalCount":"{count} critique",
"warningCount":"{count} avertissement",
"remoteMount":"montage à distance",
"remoteMountShort":"télécommande",
"excluded":"exclu",
"notMonitored":"non surveillé",
"namespaceRestricted":"espace de noms restreint",
"namespaceRestrictedTitle":"Stockage accessible; taille de la banque de données masquée par l'ACL (par exemple PBS DatastoreAdmin sur un seul espace de noms)",
"testHelp":"Un court test prend environ 2minutes.Le test étendu s'exécute en arrière-plan et peut prendre plusieurs heures sur des disques volumineux.Le résultat apparaîtra dans l'onglet Historique une fois terminé.",
"testInProgress":"Le test {type} est en cours d'exécution",
"testWait":"Veuillez attendre la fin du test. Les boutons se déverrouilleront automatiquement.",
"noProgress":"Le micrologiciel de ce disque ne signale pas la progression. Le test s'exécute en arrière-plan.",
"lastTest":"Dernier essai",
"nvmeMetrics":"Mesures de santé NVMe",
"sasMetrics":"Métriques d’intégrité SAS/SCSI",
"id":"IDENTIFIANT",
"attribute":"Attribut",
"value":"Valeur",
"worst":"Pire",
"status":"Statut",
"viewFullReport":"Afficher le rapport SMART complet",
"loadingReport":"Chargement du rapport...",
"reportLoadFailed":"Échec du chargement des données du rapport.",
"statusValues":{
"passed":"Passé",
"failed":"Échoué",
"running":"En cours d'exécution",
"aborted":"Avorté",
"unknown":"Inconnu"
}
},
"historyTab":{
"loading":"Chargement de l'historique des tests...",
"empty":"Aucun historique de tests",
"emptyHint":"Exécutez un test SMART pour commencer à créer l'historique de ce disque.",
"title":"Historique des tests",
"latest":"dernier",
"today":"Aujourd'hui",
"yesterday":"Hier",
"daysAgo":"Il y a {count} jours",
"downloadJson":"Télécharger JSON",
"delete":"Supprimer",
"confirmDelete":"Supprimer cet enregistrement de test?",
"note":"Les résultats des tests sont stockés localement et utilisés pour générer des rapports SMART détaillés."
},
"smartReport":{
"title":"Rapport de santé SMART",
"printPdf":"Imprimer / Enregistrer au format PDF",
"printHintMac":"Utilisez Cmd+P pour enregistrer au format PDF",
"printHintCtrl":"Utilisez Ctrl+P pour enregistrer au format PDF",
"subtitle":"ProxMenux Monitor - Analyse de la santé du disque",
"htmlLang":"fr",
"date":"Date",
"device":"Appareil",
"executiveSummary":"Résumé exécutif",
"smartStatus":"Statut SMART",
"healthAssessment":"Évaluation de l'état du disque",
"passedUpper":"PASSÉ",
"testAgeWarning":"Ce rapport est basé sur un test SMART effectué il y a {days} jours ({date}). La santé du disque a peut-être changé depuis. Nous vous recommandons d'exécuter un nouveau test SMART pour obtenir des résultats à jour.",
"healthyAssessment":"Ce disque fonctionne selon des paramètres normaux. Tous les attributs SMART se situent dans des seuils acceptables. Le disque est sous tension depuis environ {uptime} et fonctionne actuellement à {temperature}. {sectors}",
"failedAssessment":"Ce disque a signalé un échec d'intégrité SMART. Une action immédiate est requise. Sauvegardez toutes les données critiques et planifiez le remplacement du disque.",
"noBadSectors":"Aucun secteur défectueux n'a été détecté.",
"reallocatedSectors":"{count} secteur(s) réaffecté(s) détecté(s) – surveillez de près.",
"healthyMeaningTitle":"Qu'est-ce que cela signifie? Votre disque est sain!",
"monitorTitle":"Certains problèmes nécessitent une surveillance",
"healthyMeaning":"En termes simples: ce disque fonctionne correctement. Vous pouvez continuer à l'utiliser normalement. Nous vous recommandons d'effectuer des tests SMART périodiques (mensuels) pour détecter rapidement tout problème.",
"criticalMeaning":"En termes simples: ce disque présente des problèmes pouvant entraîner une perte de données. Sauvegardez immédiatement vos fichiers importants et envisagez de remplacer le disque bientôt.",
"warningMeaning":"En termes simples : Le disque fonctionne mais présente quelques signes d’usure. Ce n'est pas encore critique, mais surveillez-le de près et maintenez vos sauvegardes à jour.",
"issuesFound":"Problèmes trouvés",
"criticalStatus":"Critique – nécessite une attention immédiate",
"warningStatus":"Attention - doit être surveillé",
"moreIssues":"...et {count} autres problèmes (voir les détails ci-dessous)",
"dismissed":"Rejeté",
"occurrences":"Occurrences",
"errorSignature":"Signature d'erreur",
"rawMessage":"Message brut",
"firstSeen":"Vu pour la première fois",
"lastSeen":"Vu pour la dernière fois",
"observationsIntro":"Les événements suivants ont été détectés et enregistrés pour ce disque. Ces observations peuvent indiquer des problèmes potentiels qui nécessitent une attention particulière.",
"temperatureHistory":"Historique de température",
"temperatureSamples":"{count} échantillons",
"temperatureBands":"Bandes: orange = avertir (>= {warn}°C), rouge = critique (>= {hot}°C). Échantillonné toutes les 60 secondes.",
"fullSelfTestHistory":"Historique complet des autotests (entrées {count})",
"firmwareNoSelfTestLog":"Le micrologiciel de ce disque ne conserve pas de journal d'auto-test interne. Les résultats des tests sont suivis par ProxMenux Monitor.",
"ssdWearNote":"Les estimations de durée de vie des SSD sont basées sur les indicateurs d'usure signalés par le fabricant. La durée de vie réelle peut varier en fonction de la charge de travail et des modèles d'utilisation.",
"labels":{
"model":"Modèle",
"serial":"En série",
"estimatedLife":"Durée de vie restante estimée",
"totalDataWritten":"Total des données écrites",
"availableSpare":"Pièces de rechange disponibles",
"reportGenerated":"Rapport généré",
"testType":"Type d'essai",
"lastTestType":"Type de dernier test",
"testResult":"Résultat du test",
"attributesChecked":"Attributs vérifiés",
"capacity":"Capacité",
"type":"Taper",
"family":"Famille",
"formFactor":"Facteur de forme",
"interface":"Interface",
"transport":"Transport",
"linkSpeed":"Vitesse de liaison",
"blockSize":"Taille du bloc",
"temperature":"Température",
"optimal":"Optimal",
"powerOnTime":"Heure de mise sous tension",
"powerCycles":"Cycles d'alimentation",
"uncorrectedErrors":"Erreurs non corrigées",
"pendingSectors":"Secteurs en attente",
"crcErrors":"Erreurs CRC",
"grownDefects":"Défauts développés",
"lifeRemaining":"VIE RESTE",
"estimated":"Estimé",
"usageStatistics":"STATISTIQUES D'UTILISATION",
"percentageUsed":"Pourcentage utilisé",
"dataWritten":"Données écrites",
"source":"Source",
"ssdLifeIndicator":"Indicateur de durée de vie du SSD",
"wearLevel":"Niveau d'usure",
"powerOnHours":"Heures de mise sous tension",
"smartStatus":"Statut SMART",
"reallocatedSectors":"Secteurs réaffectés",
"note":"Note",
"metric":"Métrique",
"attribute":"Attribut",
"value":"Valeur",
"worst":"Pire",
"thresholdShort":"Thr",
"raw":"Brut",
"result":"Résultat",
"completed":"Complété",
"atPowerOnHours":"Aux heures de mise sous tension",
"thermalManagementT1TotalTime":"Temps total de gestion thermique T1",
"thermalManagementT2TotalTime":"Gestion thermique T2 temps total"
},
"attributeExplanations":{
"criticalWarning":"Indicateurs d'alerte actifs du contrôleur NVMe. Toute valeur non nulle nécessite une enquête immédiate.",
"nvmeTemperature":"Température composite signalée par le contrôleur. Des températures élevées et prolongées provoquent une limitation thermique et réduisent la durée de vie de la NAND.",
"temperatureSensor1":"Capteur de température primaire, généralement le flash NAND. Le plus représentatif de la santé flash.",
"temperatureSensor2":"Capteur secondaire, souvent le contrôleur meurt. Fonctionne généralement plus chaud que le capteur 1.",
"temperatureSensor3":"Capteur tertiaire, si présent. L'emplacement varie selon le fabricant.",
"availableSpare":"Pourcentage de blocs NAND de rechange restant pour le remplacement des blocs défectueux. Une alerte se déclenche en dessous du seuil.",
"availableSpareThreshold":"Minimum défini par le fabricant pour les pièces de rechange disponibles. En dessous, le lecteur signale un avertissement critique.",
"percentageUsed":"Estimation du lecteur de l'endurance consommée en fonction des cycles d'écriture réels et évalués. 100% signifie que le TBW nominal a été atteint; le lecteur peut continuer à fonctionner au-delà de cette limite.",
"mediaErrors":"Erreurs de lecture/écriture irrécupérables sur le flash NAND. Toute valeur non nulle indique des dommages cellulaires permanents. Un nombre croissant signifie un remplacement rapide.",
"mediaIntegrityErrors":"Erreurs irrécupérables détectées par le contrôleur. Une valeur non nulle signifie un risque de corruption des données.",
"unsafeShutdowns":"Pertes de puissance sans rinçage ou arrêt approprié. Des comptes très élevés risquent de corrompre les métadonnées et de problèmes de micrologiciel.",
"nvmePowerCycles":"Nombre total de cycles marche/arrêt. Des cycles fréquents augmentent l’usure des connecteurs et des condensateurs.",
"nvmePowerOnHours":"Nombre total d'heures cumulées pendant lesquelles le disque a été mis sous tension depuis sa fabrication.",
"dataUnitsRead":"Données totales lues en unités de 512 Ko. Multipliez par 512 000 pour les octets. Utile pour calculer la charge de travail de lecture quotidienne.",
"dataUnitsWritten":"Données totales écrites en unités de 512 Ko. Comparez avec l’indice TBW pour estimer l’endurance restante.",
"hostReadCommands":"Total des commandes de lecture émises par l'hôte. Un ratio élevé par rapport aux commandes d’écriture indique une charge de travail importante en lecture.",
"hostWriteCommands":"Total des commandes d'écriture émises par l'hôte. Inclut les écritures de métadonnées du système de fichiers.",
"controllerBusyTime":"Nombre total de minutes passées par le contrôleur à traiter les commandes d’E/S. Des valeurs élevées indiquent une charge de travail lourde et soutenue.",
"errorLogEntries":"Nombre d'entrées dans le journal des informations sur les erreurs. Inclut souvent des artefacts bénins d’autotest; recoupez-vous avec les erreurs de support.",
"warningTempTime":"Nombre total de minutes passées au-dessus du seuil de température d'avertissement. Provoque une limitation des performances. Zéro est idéal.",
"criticalTempTime":"Nombre total de minutes passées au-dessus du seuil de température critique. Le lecteur peut s'arrêter pour éviter tout dommage. Doit toujours être nul.",
"warningCompositeTemperatureTime":"Nombre total de minutes pendant lesquelles la température composite a dépassé le seuil d'avertissement.",
"criticalCompositeTemperatureTime":"Nombre total de minutes pendant lesquelles la température composite a dépassé le seuil critique. Doit être zéro.",
"thermalManagementT1TransCount":"Nombre de fois où le disque est entré en légère limitation thermique (T1). Indique des problèmes de refroidissement.",
"thermalManagementT2TransCount":"Nombre de fois où le disque est entré en limitation thermique importante (T2). Impact significatif sur les performances.",
"thermalManagementT1TotalTime":"Nombre total de secondes passées en légère limitation thermique. Indique des problèmes de refroidissement persistants.",
"thermalManagementT2TotalTime":"Nombre total de secondes passées en limitation thermique importante. Grave dégradation des performances.",
"rawReadErrorRate":"Erreurs de lecture matérielle détectées. Des valeurs brutes élevées sur les disques Seagate/Samsung sont normales car leur formule exclusive rend la VALEUR plus importante que la valeur brute.",
"writeErrorRate":"Erreurs rencontrées lors des opérations d'écriture. Un nombre croissant peut indiquer des problèmes de tête ou de médias.",
"multiZoneErrorRate":"Erreurs lors de l'écriture dans des régions multizones. Spécifique au fabricant; une tendance à la hausse est préoccupante.",
"softReadErrorRate":"Erreurs de lecture corrigées par le firmware sans perte de données. Des valeurs élevées peuvent indiquer un support dégradé.",
"readErrorRetryRate":"Nombre de tentatives de lecture nécessaires. Les tentatives occasionnelles sont normales; une croissance persistante indique une usure.",
"reportedUncorrect":"Erreurs que ECC n’a pas pu corriger. Toute valeur non nulle signifie que les données ont été perdues ou illisibles.",
"reportedUncorrectableErrors":"Erreurs que ECC n’a pas pu corriger. Une valeur non nulle signifie un risque de perte de données.",
"reallocatedSectorCount":"Secteurs défectueux remplacés par des secteurs de rechange du pool de réserve. Un nombre croissant signifie une dégradation du disque.",
"retiredBlockCount":"Les blocs NAND ont été retirés en raison de l'usure ou d'une panne (SSD). Semblable au nombre de secteurs réaffectés pour les disques durs.",
"reallocatedEventCount":"Nombre d'opérations de remappage effectuées. Chaque événement signifie qu'un secteur défectueux a été remplacé.",
"currentPendingSector":"Secteurs instables en attente d'être remappés lors de la prochaine écriture. Ils peuvent être résolus ou être réaffectés définitivement.",
"pendingSectors":"Secteurs en attente d'être remappés. Ils peuvent être résolus ou réaffectés.",
"offlineUncorrectable":"Secteurs ayant échoué lors de l'analyse hors ligne et n'ayant pas pu être corrigés. Indique une possible perte de données.",
"offlineUncorrectableSectorCount":"Secteurs non corrigibles trouvés lors de l'analyse en arrière-plan. Les données sur ces secteurs sont perdues.",
"sataTemperature":"Température actuelle du lecteur. Des températures élevées et prolongées accélèrent l’usure et réduisent la durée de vie.",
"temperatureCelsius":"Température actuelle du lecteur en Celsius. Les disques durs doivent généralement rester en dessous de 45°C ; SSD en dessous de 60°C.",
"airflowTemperatureCel":"Température mesurée par le capteur de débit d'air. Généralement légèrement inférieur au capteur de température principal.",
"temperatureCase":"Température du boîtier du variateur. Utile pour surveiller la ventilation de l’enceinte.",
"temperatureInternal":"Capteur de température interne. Peut lire une température supérieure à la température du boîtier.",
"sataPowerOnHours":"Nombre total d’heures cumulées pendant lesquelles le disque a été sous tension. Utilisé pour estimer l’âge et planifier les remplacements.",
"powerOnHoursAndMsec":"Temps total de mise sous tension avec une précision de la milliseconde.",
"powerCycleCount":"Nombre total de cycles complets de mise sous/hors tension. Les cycles fréquents mettent l’accent sur l’électronique.",
"powerOffRetractCount":"Plusieurs fois, les têtes ont été rétractées en raison d'une perte de puissance (HDD). Des valeurs élevées indiquent une alimentation instable.",
"unexpectedPowerLossCt":"Pertes de puissance inattendues (SSD). Peut provoquer une corruption des métadonnées si le cache d’écriture était actif.",
"unsafeShutdownCount":"Pertes de puissance sans arrêt approprié (SSD). Des valeurs élevées risquent de corrompre le micrologiciel.",
"startStopCount":"Cycles de démarrage/arrêt du moteur de broche (HDD). Chaque cycle provoque une usure mécanique.",
"spinUpTime":"Temps nécessaire aux plateaux pour atteindre leur pleine vitesse de fonctionnement (HDD). Des valeurs croissantes peuvent indiquer une usure des roulements du moteur.",
"spinRetryCount":"Échec des tentatives de démarrage du moteur (HDD). Une valeur différente de zéro indique généralement des problèmes d’alimentation ou de moteur.",
"calibrationRetryCount":"Nombre de tentatives d'étalonnage de la tête (HDD). Une valeur différente de zéro peut indiquer des problèmes mécaniques.",
"seekErrorRate":"Erreurs lors du positionnement de la tête (HDD). Des valeurs brutes élevées sur Seagate sont souvent normales en raison d'une formule exclusive.",
"seekTimePerformance":"Performances moyennes des opérations de recherche (HDD). Des valeurs en baisse suggèrent une dégradation mécanique.",
"loadCycleCount":"Cycles de chargement/déchargement de la tête (HDD). Conçu pour 300 000 à 600 000 cycles sur la plupart des disques.",
"loadUnloadCycleCount":"Cycles de chargement/déchargement de la tête (HDD). Chaque cycle provoque une légère usure du mécanisme de rampe.",
"headFlyingHours":"Heures pendant lesquelles les têtes de lecture/écriture ont été positionnées sur les plateaux (HDD).",
"highFlyWrites":"Écrit où la tête a volé plus haut que prévu (HDD). Les données peuvent ne pas être écrites correctement.",
"gSenseErrorRate":"Événements de choc ou de vibration détectés par l'accéléromètre (HDD). Des valeurs élevées indiquent une perturbation physique.",
"diskShift":"Distance à laquelle le disque s'est déplacé par rapport à sa position d'origine (HDD). Lié à la température ou aux chocs.",
"loadedHours":"Des heures passées avec des têtes chargées sur les plateaux (HDD).",
"loadInTime":"Heure du processus de chargement de la tête. Métrique de diagnostic spécifique au fabricant.",
"torqueAmplificationCount":"Nombre de fois où le variateur avait besoin de couple supplémentaire pour tourner. Peut indiquer des problèmes de friction ou de moteur.",
"flyingHeight":"Distance tête-plateau pendant le fonctionnement (HDD). Critique pour la fiabilité en lecture/écriture.",
"loadFriction":"Friction détectée lors du chargement de la tête (HDD). Des valeurs croissantes suggèrent une usure du mécanisme de rampe.",
"loadUnloadRetryCount":"Échec des tentatives de chargement/déchargement de la tête (HDD). Une valeur différente de zéro indique des problèmes mécaniques.",
"udmaCrcErrorCount":"Erreurs de somme de contrôle de transfert de données sur le câble SATA. Généralement causé par un câble défectueux, une connexion lâche ou un problème de port.",
"crcErrors":"Erreurs de communication d’interface. Généralement causé par des problèmes de câble ou de connexion.",
"crcErrorCount":"Erreurs de somme de contrôle du transfert de données. Remplacez le câble SATA si cette valeur augmente.",
"commandTimeout":"Commandes trop longues et expirées. Peut indiquer des problèmes de contrôleur ou de connexion.",
"interfaceCrcErrorCount":"Erreurs CRC sur le lien d'interface. Problème de câble ou de connecteur.",
"hardwareEccRecovered":"Erreurs de lecture corrigées par l'ECC matériel. Un chiffre différent de zéro est normal; une croissance rapide mérite qu’on s’y intéresse.",
"eccErrorRate":"Taux d’erreurs corrigées par ECC. Formule exclusive; La VALEUR compte plus que le nombre brut.",
"endToEndError":"Corruption de données détectée entre le cache du contrôleur et l'interface hôte. Doit toujours être nul.",
"endToEndErrorDetectionCount":"Nombre d'erreurs de parité dans le chemin de données. Une valeur différente de zéro indique des problèmes de contrôleur.",
"wearLevelingCount":"Cycles d’effacement moyens par bloc NAND (SSD). Une VALEUR plus faible signifie plus d’usure consommée.",
"wearRangeDelta":"Différence entre les blocs les plus portés et les moins portés (SSD). Des valeurs élevées indiquent une usure inégale.",
"mediaWearoutIndicator":"Estimation de la durée de vie restante du SSD Intel. Commence à 100 et diminue jusqu'à 0 à mesure que l'endurance est consommée.",
"ssdLifeLeft":"Pourcentage estimé de la durée de vie restante du SSD basé sur l’usure de la NAND.",
"percentLifetimeRemain":"Pourcentage estimé de la durée de vie restante. 100 means new; 0 signifie la fin de la durée de vie nominale.",
"percentLifetimeUsed":"Pourcentage d'endurance nominale consommé. Inverse du pourcentage de durée de vie restante.",
"availableReservedSpace":"Blocs de rechange restants en pourcentage (SSD). Des valeurs faibles réduisent la capacité du lecteur à gérer les blocs défectueux.",
"usedReservedBlockCount":"Réserver les blocs consommés pour le remplacement des blocs défectueux (SSD). Une valeur croissante signifie vieillir.",
"unusedReservedBlockCount":"Blocs de réserve toujours disponibles pour le remplacement des blocs défectueux (SSD). Zéro signifie qu’aucun remplacement de bloc défectueux n’est plus possible.",
"programFailCount":"Échecs d’écriture NAND (SSD). Un nombre croissant signifie que les cellules flash s'usent.",
"programFailCountChip":"Échecs du programme au niveau de la puce (SSD). Une valeur différente de zéro indique une dégradation de la NAND.",
"eraseFailCount":"Échecs de l’opération d’effacement NAND (SSD). Une valeur différente de zéro indique une usure importante du flash.",
"eraseFailCountTotal":"Nombre total d'échecs d'effacement NAND (SSD). Combiné avec le nombre d'échecs du programme, il affiche l'état global de la NAND.",
"eraseFailCountChip":"Effacez les pannes au niveau de la puce (SSD). Non nul signifie une dégradation NAND.",
"runtimeBadBlock":"Blocs défectueux découverts lors du fonctionnement normal (SSD). Un nombre croissant signifie que le flash est épuisé.",
"totalLbasWritten":"Nombre total d'adresses de blocs logiques écrites. Multipliez par 512 octets pour le volume total de données.",
"totalLbasRead":"Nombre total d'adresses de blocs logiques lues. Utile pour calculer la charge de travail quotidienne.",
"lifetimeWritesGib":"Total des données écrites en Gio pendant la durée de vie du disque.",
"lifetimeReadsGib":"Données totales lues en Gio pendant la durée de vie du disque.",
"totalWritesGib":"Données totales écrites en GiB. Comparez avec la note TBW pour l’estimation de l’endurance.",
"totalReadsGib":"Données totales lues en GiB.",
"nandWritesGib":"La NAND brute écrit en GiB. Supérieur aux écritures de l'hôte en raison de l'amplification de l'écriture.",
"hostWrites32Mib":"Données totales écrites par l'hôte en unités de 32Mio.",
"hostReads32Mib":"Données totales lues par l'hôte en unités de 32Mio.",
"hostWritesMib":"Total des données écrites par l'hôte en MiB.",
"hostReadsMib":"Données totales lues par l'hôte en MiB.",
"nandGbWrittenTlc":"Total des données écrites sur les cellules TLC NAND en Go. Inclut la surcharge d’amplification d’écriture.",
"nandGibWritten":"Total NAND écrit en GiB. Supérieur aux écritures de l'hôte en raison de l'amplification des écritures et du garbage collection.",
"averageBlockEraseCount":"Nombre moyen de cycles d'effacement par bloc NAND (SSD). Les disques sont généralement conçus pour 3 000 à 100 000 cycles.",
"averageEraseCount":"Cycles d’effacement moyens par bloc. Comparez avec l'endurance nominale pour l'estimation de la durée de vie restante.",
"maxEraseCount":"Cycles d’effacement maximum sur n’importe quel bloc. Un écart important avec la moyenne indique une usure inégale.",
"totalEraseCount":"Somme de tous les cycles d’effacement sur tous les blocs. Indicateur global de volume d’écriture NAND.",
"powerLossCapTest":"Résultat de l’autotest du condensateur de protection contre les pertes de puissance (SSD). Un échec signifie un risque de perte de données en cas de panne de courant.",
"powerLossProtection":"État du mécanisme de protection contre les coupures de courant. Les SSD d'entreprise utilisent des condensateurs pour vider le cache en cas de panne de courant.",
"successfulRainRecovCnt":"Récupérations réussies à l’aide de RAIN (Redundant Array of Independent NAND). Montre que la parité NAND fonctionne.",
"ssdEraseFailCount":"Échecs d’effacement totaux sur le SSD. Indique une dégradation globale de la NAND.",
"ssdProgramFailCount":"Nombre total d'échecs d'écriture sur le SSD. Indique des problèmes de fiabilité des cellules flash.",
"throughputPerformance":"Évaluation globale des performances de débit (HDD). Des valeurs en baisse indiquent une dégradation.",
"unknownAttribute":"Attribut spécifique au fournisseur non défini dans la norme SMART. Consultez la documentation du fabricant.",
"freeFallSensor":"Événements de chute libre détectés (disque dur d'ordinateur portable). Les têtes sont garées pour éviter tout dommage lors des chutes.",
"grownDefectList":"Secteurs remappés en raison de défauts constatés lors de l'exploitation. Équivalent aux secteurs réaffectés sur SATA. Un nombre croissant signifie une dégradation du disque.",
"readErrorsCorrected":"Erreurs de lecture corrigées par ECC. Normal pour les disques d'entreprise soumis à une charge de travail importante; seules les erreurs non corrigées sont critiques.",
"readEccFast":"Erreurs corrigées par ECC rapide à la volée lors des opérations de lecture. Normal dans les disques SAS.",
"readEccDelayed":"Erreurs nécessitant une correction ECC retardée ou hors ligne pendant les lectures. Une valeur différente de zéro est acceptable mais ne devrait pas croître rapidement.",
"readUncorrectedErrors":"Lisez les erreurs que ECC n’a pas pu corriger. Une valeur différente de zéro signifie que les données ont été perdues ou illisibles. Mesure critique.",
"readDataProcessed":"Total data read by the drive. Utile pour calculer la charge de travail quotidienne.",
"writeErrorsCorrected":"Erreurs d'écriture corrigées par ECC. Normal pour les disques d'entreprise.",
"writeUncorrectedErrors":"Écrivez des erreurs que ECC n'a pas pu corriger. Une valeur différente de zéro signifie une perte potentielle de données. Critique.",
"writeDataProcessed":"Total des données écrites sur le disque. Utile pour l’analyse de la charge de travail.",
"verifyErrorsCorrected":"Erreurs de vérification corrigées lors des opérations de vérification en arrière-plan.",
"verifyUncorrectedErrors":"Vérifiez les erreurs qui n'ont pas pu être corrigées. Une valeur différente de zéro indique une dégradation du support.",
"nonMediumErrors":"Erreurs de contrôleur ou de bus non liées au support lui-même. Un nombre élevé peut indiquer des problèmes de fond de panier ou de câble.",
"sasTemperature":"Température actuelle du lecteur. Les disques Enterprise SAS tolèrent jusqu'à 55-60°C sous une charge soutenue.",
"sasPowerOnHours":"Nombre total d'heures pendant lesquelles le disque a été sous tension. Les disques Enterprise sont conçus pour fonctionner 24h/24 et 7j/7.",
"startStopCycles":"Cycles de démarrage/arrêt du moteur. Les disques Enterprise SAS sont conçus pour plus de 50 000 cycles.",
"loadUnloadCycles":"Cycles de chargement/déchargement de la tête. Les disques d'entreprise sont conçus pour plus de 600 000 cycles.",
"backgroundScanStatus":"État de l'analyse des médias en arrière-plan SCSI. Fonctionne en continu pour détecter les défauts de surface."
},
"recommendations":{
"healthyTitle":"Le disque est sain",
"healthyText":"Tous les attributs SMART se situent dans les plages normales. Poursuivre une surveillance régulière.",
"criticalTitle":"Critique:problème de santé du disque détecté",
"criticalText":"SMART a signalé un problème de santé. Sauvegardez immédiatement toutes les données et planifiez le remplacement du disque.",
"reallocatedText":"Le disque comporte des secteurs défectueux qui ont été remappés. Surveillez-le de près et envisagez de le remplacer si le nombre augmente.",
"pendingTitle":"Secteurs en attente ({count})",
"pendingText":"Certains secteurs attendent d'être réaffectés. Cela peut indiquer un échec imminent.",
"unsafeText":"Les coupures de courant fréquentes augmentent le risque de corruption du micrologiciel. Assurez une alimentation stable ou utilisez un UPS.",
"seagateText":"Les disques Seagate signalent des valeurs brutes très élevées pour l'attribut n°1. C'est prévu; seule la valeur normalisée compte et elle doit rester à 100.",
"smrText":"Les disques SMR écrivent des données aléatoires plus lentement et peuvent stagner sous une lourde charge de travail mixte. Ils conviennent aux sauvegardes et aux archives, mais ne sont pas recommandés comme stockage Proxmox principal ou comme vdevs ZFS."
}
},
"ataErrors":{
"idnf":"Adresse de secteur introuvable - possible problème de secteur ou de câble défectueux",
"unc":"Erreur de lecture non corrigible - secteur défectueux",
"tk0nf":"Piste 0 introuvable - panne matérielle du lecteur",
"bbk":"Mauvais bloc détecté",
"icrc":"Erreur CRC d'interface - problème de câble ou de connecteur",
"mc":"Les médias ont changé",
"mcr":"Changement de média demandé",
"wp":"Protégé en écriture"
},
"scheduleTab":{
"loading":"Chargement des plannings...",
"automaticTests":"Tests SMART automatiques",
"toggleHelp":"Activer ou désactiver tous les tests planifiés",
"enabled":"Activé",
"disabled":"Désactivé",
"configured":"Horaires configurés",
"disks":"Disques",
"allDisks":"tous les disques",
"keepResults":"Conserver les résultats {count}",
"empty":"Aucun test planifié configuré",
"emptyHint":"Créez un calendrier pour exécuter automatiquement les tests SMART.",
"edit":"Modifier le calendrier",
"new":"Nouvel horaire",
"testType":"Type d'essai",
"frequency":"Fréquence",
"daily":"Tous les jours",
"weekly":"Hebdomadaire",
"monthly":"Mensuel",
"dailyAt":"Tous les jours à {time}",
"weeklyAt":"{day} à {time}",
"monthlyAt":"Jour {day} du mois à {time}",
"dayOfWeek":"Jour de la semaine",
"dayOfMonth":"Jour du mois",
"timeHour":"Temps (heure)",
"retention":"Conserver les résultats",
"lastN":"Dernier {count}",
"keepAll":"Gardez tout",
"saving":"Économie...",
"save":"Enregistrer le planning",
"cancel":"Annuler",
"add":"Ajouter un horaire",
"note":"Les tests planifiés s'exécutent automatiquement via cron. Les résultats sont enregistrés dans l'historique SMART.",
"days":{
"sunday":"Dimanche",
"monday":"Lundi",
"tuesday":"Mardi",
"wednesday":"Mercredi",
"thursday":"Jeudi",
"friday":"Vendredi",
"saturday":"Samedi"
}
}
},
"details":{
"temperature":{
"title":"Température du processeur",
"diskTitle":"Température",
"current":"Actuel",
"min":"Min.",
"avg":"Moy.",
"max":"Max.",
"seriesName":"Température",
"noData":"Aucune donnée de température disponible pour cette période",
"collectionHint":"Les données sont collectées toutes les 60 secondes",
"openHistory":"Ouvrir l'historique des températures",
"collectingSamples":"Collecte d'échantillons: le graphique s'affiche après environ 2minutes",
"sampleInterval":"Les échantillons sont collectés toutes les 60 secondes",
"timeframes":{
"hour":"1 heure",
"day":"24 heures",
"week":"7 jours",
"month":"30 jours"
},
"status":{
"hot":"Chaud",
"warm":"Chaud",
"normal":"Normale"
}
},
"processes":{
"topByCpu":"Principaux processus par CPU",
"topByMemory":"Principaux processus par mémoire",
"cpuDescription":"Utilisation actuelle du processeur par processus, en fraction du processeur total de l'hôte - même échelle que la carte d'utilisation du processeur ci-dessus. Rafraîchit toutes les 3 s lorsqu'il est ouvert.",
"memoryDescription":"Mémoire résidente actuelle par processus. Rafraîchit toutes les 3 s lorsqu'il est ouvert.",
"filterPlaceholder":"Filtrer par ligne de commande, utilisateur ou PID...",
"pid":"PID",
"user":"Utilisateur",
"command":"Commande",
"cpuPercent":"CPU %",
"memory":"Mémoire",
"memPercent":"% mémoire",
"noMatches":"Aucun processus ne correspond au filtre",
"captured":"Capturé {time}",
"matchCount":"{count} correspondance de {total} processus",
"matchesCount":"{count} correspondances de {total} processus",
"topCount":"{shown} principaux processus sur {total}",
"loadFailed":"Échec de la récupération des processus",
"lifetimeAverageTitle":"% CPU moyen sur la durée de vie de ce processus- utile pour trouver des lignes de base d'inactivité de longue durée",
"descriptionLive":"Instantané en direct de /proc/{pid}. S'actualise automatiquement toutes les {seconds} s lorsqu'il est ouvert.",
"descriptionExited":"Dernier instantané de /proc/{pid} avant la fin du processus.",
"finishedTitle":"Ce processus est terminé",
"finishedDescription":"Il s'agissait probablement d'une aide de courte durée, d'un script, d'un exécutable PCT ou d'une commande ponctuelle qui s'est terminée alors que le modal était ouvert. Les données ci-dessous sont le dernier instantané capturé avant sa fermeture – et non une lecture obsolète ou interrompue.",
"loading":"Chargement…",
"fetchFailed":"Échec de la récupération du processus",
"captured":"Capturé",
"lastSeen":"Vu pour la dernière fois",
"sections":{
"overview":"Aperçu",
"resources":"Ressources",
"command":"Commande",
"lifetime":"Durée de vie"
},
"labels":{
"state":"État",
"parent":"Processus parent",
"threads":"Threads",
"openFds":"Ouvrir les FD",
"user":"Utilisateur",
"group":"Groupe",
"cpu":"Processeur",
"memory":"Mémoire",
"residentRss":"Résident (RSS)",
"virtualSize":"Taille virtuelle",
"swap":"Swap",
"ioRead":"Lecture E/S",
"ioWrite":"écriture E/S",
"name":"Nom",
"commandLine":"Ligne de commande",
"executable":"Exécutable",
"workingDir":"Répertoire de travail",
"started":"Commencé",
"runningFor":"Courir pour"
},
"states":{
"running":"En cours d'exécution",
"sleeping":"Dormir",
"diskWait":"Attente du disque",
"zombie":"Zombi",
"stopped":"Arrêté",
"tracingStop":"Arrêt du traçage",
"dead":"Mort",
"idle":"Inactif",
"exited":"Quitté"
}
}
},
"vmLxc":{
"loadingTitle":"Chargement des VM et des LXC...",
"loadingDescription":"Récupération de l'état des conteneurs VM et LXC",
"loadingError":"Erreur lors du chargement des machines virtuelles: {error}",
"totalVmLxc":"Nombre total de VM et LXC",
"totalCpuAllocated":"CPU total alloué",
"totalMemory":"Mémoire totale",
"totalDisk":"Disque total",
"running":"en cours d'exécution",
"stopped":"arrêté",
"vms":"Machines virtuelles",
"used":"Utilisé",
"configured":"Configuré",
"inUse":"Utilisé",
"allocated":"Allouer",
"total":"Total",
"utilization":"util",
"idle":"Inactif",
"listTitle":"Machines virtuelles et conteneurs",
"empty":"Aucune machine virtuelle trouvée",
"uptime":"Temps de disponibilité : {uptime}",
"cpuUsage":"Utilisation du processeur",
"memory":"Mémoire",
"disk":"Disque",
"diskUsage":"Utilisation du disque",
"diskIo":"E/S disque",
"networkIo":"E/S réseau",
"sinceBoot":"depuis le démarrage",
"loadingConfiguration":"Chargement de la configuration...",
"resources":"Ressources",
"cpuCores":"Cœurs de processeur",
"notes":"Remarques",
"hideNotes":"Masquer les notes",
"lessInfo":"Moins d'informations",
"info":"Informations",
"ipAddresses":"Adresses IP",
"enterNotes":"Entrez des notes ici...",
"editNotes":"Modifier",
"savingNotes":"Économie...",
"notesDecodeError":"Notes de décodage d’erreur. Veuillez modifier pour corriger.",
"noNotes":"Aucune note pour l'instant. Cliquez sur Modifier pour ajouter des notes.",
"containerConfiguration":"Configuration du conteneur",
"mountedFromContainer":"Monté depuis l'intérieur du conteneur",
"openTerminal":"Terminal ouvert",
"coreCount":{
"one":"Noyau {count}",
"few":"{count} cœurs",
"many":"{count} cœurs"
},
"duration":{
"dhm":"{days}d {hours}h {minutes}m"
},
"details":{
"sourceHost":"Source (hôte)",
"mountedAtCt":"Monté à (CT)",
"total":"Total",
"used":"Utilisé",
"available":"Disponible",
"swap":"Swap",
"privilegeLevel":"Niveau de privilège",
"gpuPassthrough":"Passage GPU",
"hardwareDevices":"Périphériques matériels",
"cpuSockets":"Prises CPU",
"cpuType":"Type de processeur",
"numa":"NUMA",
"bios":"BIOS",
"machineType":"Type de machine",
"vga":"VGA",
"qemuAgent":"Agent QEMU",
"tabletPointer":"Pointeur de tablette",
"localTime":"Heure locale",
"rawConfig":"Configuration brute",
"scsiController":"Contrôleur SCSI",
"dnsNameserver":"Serveur de noms DNS",
"searchDomain":"Rechercher un domaine",
"hostname":"Nom d'hôte",
"storageType":"Stockage {type}",
"mountAttributes":"Attributs de montage (configuration LXC)",
"runtimeMountOptions":"Options de montage d'exécution",
"privileged":"Privilégié",
"unprivileged":"Sans privilège",
"hardware":"Matériel",
"pciPassthrough":"Passage PCI",
"usbDevices":"Périphériques USB",
"serialPorts":"Ports série",
"bridge":"Pont",
"enabled":"Activé",
"disabled":"Désactivé",
"on":"sur",
"off":"désactivé",
"included":"compris",
"excluded":"exclu",
"storage":"Stockage",
"rootFilesystem":"Système de fichiers racine",
"efiDisk":"disque EFI",
"tpmState":"État du module de plateforme sécurisée",
"forceStopDescription":"Cela ignore la séquence d'arrêt du système d'exploitation invité et peut corrompre les bases de données ou les systèmes de fichiers en cours d'exécution. L'invité est tué immédiatement.",
"rebootDescription":"Cela force un redémarrage sans attendre que le système d'exploitation invité efface les écritures en attente. Utilisez un arrêt progressif lorsque cela est possible.",
"typeToConfirm":"Tapez {vmid} pour confirmer:",
"guest":"Invité:"
},
"guestTypes":{
"container":"récipient",
"vm":"VM",
"containerUi":"Récipient"
},
"backups":{
"title":"Sauvegardes",
"create":"Créer une sauvegarde",
"available":"Sauvegardes disponibles",
"loading":"Chargement des sauvegardes...",
"empty":"Aucune sauvegarde trouvée",
"emptyHint":"Créez votre première sauvegarde en utilisant le bouton ci-dessus"
},
"updatesPanel":{
"pendingTitle":"Mises à jour des packages en attente",
"total":"{count} total",
"lastChecked":"Dernière vérification:",
"applyWith":"Postuler avec",
"securityUpdate":"Mise à jour de sécurité",
"security":"sécurité",
"clickToView":"Cliquez pour voir les packages en attente",
"updateSingular":"mise à jour",
"updatePlural":"mises à jour",
"packagePending":"Colis {count} en attente",
"packagesPending":"{count}colis en attente",
"securityUpdatePending":"{count} mise à jour de sécurité",
"securityUpdatesPending":"{count} mises à jour de sécurité",
"fullListInside":"Liste complète disponible à l'intérieur du conteneur:",
"loadingMountPoints":"Chargement des points de montage..."
},
"errors":{
"unknown":"Erreur inconnue",
"backupStartFailed":"Échec du démarrage de la sauvegarde: {message}",
"controlFailed":"Échec sur {action} VM {vmid}: {message}",
"saveNotesFailed":"Erreur lors de l'enregistrement des notes. Veuillez réessayer."
},
"backupModal":{
"title":"Sauvegarde {type} {vmid} ({name})",
"description":"Configurer les options de sauvegarde pour ce {type}",
"storage":"Stockage",
"selectStorage":"Sélectionnez le stockage",
"free":"gratuit",
"mode":"Mode",
"notification":"Notification",
"useGlobalSettings":"Utiliser les paramètres globaux",
"alwaysNotify":"Toujours avertir",
"notifyOnFailure":"Notifier en cas d'échec",
"neverNotify":"Ne jamais avertir",
"protected":"Protégé (empêcher la suppression accidentelle)",
"pbsChangeMode":"Mode de détection des changements PBS",
"disabledTitle":"Le pare-feu n'est pas activé pour ce {type}",
"disabledHint":"Activez-le dans l'interface utilisateur de Proxmox sous {type} -> Pare-feu -> Options et ajoutez au moins une règle avec log: info ou supérieur pour que les paquets commencent à être enregistrés. Les nouvelles entrées apparaîtront ici automatiquement lors de la prochaine actualisation.",
"readFailed":"Échec de la lecture du journal du pare-feu",
"empty":"Aucun événement de pare-feu enregistré pour le moment.",
"emptyHint":"Règles avec journal: informations ou supérieures rempliront cette vue à mesure que les paquets arrivent."
},
"options":{
"title":"Possibilités",
"snapshotBefore":"Instantané avant de postuler",
"snapshotOn":"— le {storage}",
"noSnapshot":"Aucun instantané de pré-application",
"restartAfter":"Redémarrez le conteneur après l'application",
"noRestart":"Pas de redémarrage après application",
"snapshotLabel":"Capturez un instantané du conteneur avant de l'appliquer (vzdump)",
"appliesToBoth":"S'applique aux exécutions manuelles et planifiées.",
"backupStorage":"Stockage de sauvegarde",
"pickStorage":"Choisissez un stockage",
"editButton":"Modifier",
"cancelButton":"Annuler",
"saveButton":"Sauvegarder",
"storageAuto":"auto"
},
"scheduled":{
"title":"Mises à jour programmées",
"enabledHelper":"S'exécute en arrière-plan à l'aide des options d'application ci-dessus.",
"disabledHelper":"Activer l'exécution automatique des mises à jour selon une planification cron.",
"releaseDelayLabel":"Attendre après une nouvelle version d’application",
"releaseDelayNone":"Aucun délai d’attente",
"releaseDelayDays":"Attendre {days} jour(s)",
"releaseDelayHelp":"S’applique uniquement aux applications sélectionnées dont les versions sont suivies. Leurs versions en attente doivent avoir cet âge ; les applications sans suivi exécutent leur programme de mise à jour à chaque programmation.",
"deleteConfirm":"Supprimer les mises à jour planifiées pour ce conteneur? Les valeurs par défaut appliquées (sauvegarde + redémarrage) sont conservées."
"ociImmutableBody":"Les packages du système d'exploitation sont intégrés au moment de la création de l'image et ne peuvent pas être mis à jour sur place. Appliquez les mises à jour manuellement ou réinstallez avec une image plus récente.",
"hideNoticeButton":"Masquer cet avis pour cette application",
"noOsUpdatesPending":"Aucune mise à jour du système d'exploitation en attente",
"securityUpdateAria":"Mise à jour de sécurité",
"packagePendingLabel":"colis en attente",
"packagesPendingLabel":"colis en attente",
"securityUpdateLabel":"mise à jour de sécurité",
"securityUpdatesLabel":"mises à jour de sécurité",
"noMethodBody":"Aucune méthode de mise à jour disponible. Mettez à jour à partir de l'application elle-même ou connectez une commande personnalisée que ProxMenux exécutera à l'intérieur du conteneur.",
"noMethodHideBody":"Cette application n'a aucune méthode de mise à jour enregistrée. Définissez-en un dans l’onglet Application ou ignorez cet avis.",
"hideForApp":"Masquer l'avis pour {appName}",
"applyOsAppsFooter":"Appliquer les mises à jour du système d'exploitation + {appName}",
"applyOsAppsFooterPlural":"Appliquer les mises à jour du système d'exploitation et des applications",
"osAppsFooter":"Mises à jour du système d'exploitation + {appName}",
"osAppsFooterPlural":"Mises à jour du système d'exploitation et des applications",
"noUpdatesAvailableChip":"Aucune mise à jour disponible",
"otherPackagePending":"+{count} autre colis en attente dans le conteneur",
"otherPackagesPending":"+{count} autres colis en attente dans le conteneur",
"noManagedUpdateInfo":"Aucune information de mise à jour pour l'instant - vérifiez depuis Sécurité → Secure Gateway.",
"ociTitle":"Conteneur d'images OCI",
"ociBody":"Ce conteneur a été créé à partir d'une image OCI (Docker). La gestion des mises à jour pour les conteneurs OCI est fournie avec la prochaine fonctionnalité d'installation OCI : les mises à jour reconstruiront le conteneur à partir d'une balise d'image plus récente plutôt que de corriger les packages à l'intérieur.",
"dockerEngineUpdateHelp":"Met à jour uniquement les paquets Docker installés et les dépendances nécessaires. Les autres paquets du système et les conteneurs ne sont pas modifiés.",
"updateDockerEngineOnly":"Mettre à jour Docker Engine",
"adguardWebUpdateOnly":"Cette installation d’AdGuard Home se met à jour depuis sa propre interface web.",
"openAdguard":"Ouvrir AdGuard Home",
"updateDockerImage":"Mettre à jour l’image",
"recreateStandaloneContainer":"Mettre à jour {container}",
"standaloneRecreatePending":"Les conteneurs autonomes nécessitent une recréation protégée : {names}",
"noDockerImages":"Docker est installé, mais aucune image taguée n’a été trouvée.",
"dockerInventoryStarting":"En attente de la fin du démarrage de Docker…",
"dockerInventoryUnavailable":"L’inventaire Docker n’a pas pu être lu. Vérifiez à nouveau lorsque Docker sera disponible.",
"dockerVersionedTagsHelp":"À utiliser uniquement pour les tags versionnés. Pour latest, stable ou lts, utilisez les mises à jour d’images Docker par digest.",
"dockerPresetSemver":"SemVer uniquement",
"dockerPresetSemverSuffix":"SemVer + suffixe",
"dockerTagFilterHelp":"Filtre les tags réels avant que ProxMenux choisisse la version la plus élevée.",
"dockerTagPreviewLabel":"Aperçu des tags réels",
"dockerTagPreviewCount":"{matched} correspondances sur {scanned}",
"dockerTagPreviewLoading":"Interrogation de Docker Hub…",
"dockerTagPreviewFailed":"Impossible d’afficher les tags Docker Hub",
"dockerTagPreviewEmpty":"Aucun tag réel ne correspond à ce filtre.",
"dockerMovingTag":"tag mobile",
"dockerMovingTagHelp":"Les tags mobiles ne contiennent pas de version. Suivez-les plutôt par digest dans les mises à jour d’images Docker.",
"tagRegexLabel":"Tag regex (avec groupe de capture)",
"tagRegexPlaceholder":"par exemple, v?(\\d+\\.\\d+\\.\\d+)",
"tagRegexBare":"v?(\\d+\\.\\d+\\.\\d+)",
"installedStatus":"Installé",
"checkingStatus":"vérification…",
"latestFromLabel":"Dernier de",
"upToDateBadge":"À jour",
"updateAvailableBadge":"Mise à jour disponible",
"portDescriptionPlaceholder":"Description (par exemple, interface utilisateur Web, go2rtc, admin)",
"portPortPlaceholder":"port",
"portHttp":"http",
"portHttps":"https",
"portLogoLabel":"URL du logo pour ce lien (facultatif)",
"portLogoPlaceholder":"par exemple, https://example.com/logo.webp",
"removePortTooltip":"Supprimer le port",
"detectMethodDpkg":"dpkg ·",
"detectMethodApk":"apk ·",
"detectMethodBinary":"binaire ·",
"detectMethodFile":"déposer ·",
"detectMethodDockerLabel":"étiquette du menu fixe",
"detectMethodDockerExec":"directeur de docker",
"detectMethodCommand":"commande",
"binaryVersionHint":"binaire --version",
"systemctlHint":"systemctl show <service> -p ExecStart",
"whichHint":"quelle <application>",
"apkInfoHint":"\" : \"informations apk | grep",
"grafanaNote":". Grafana a besoin",
"hiddenDetectionsHelpSingular":"Vous disposez de {count} détection cachée. Restaurez-en une pour la restaurer ou enregistrez manuellement une application personnalisée.",
"hiddenDetectionsHelpPlural":"Vous avez {count} détections masquées. Restaurez-en une pour la restaurer ou enregistrez manuellement une application personnalisée.",
"registerCustom":"Enregistrez une application personnalisée",
"noAppsTitle":"Aucune candidature enregistrée",
"noAppsBody":"Enregistrez les applications exécutées dans ce conteneur pour obtenir des liens web et, si vous le souhaitez, le suivi des versions disponibles avec des notifications de nouvelles versions.",
"confirmHide":"Masquer définitivement la détection « {name} » sur ce conteneur?\n\nPour la récupérer plus tard, cliquez sur « Enregistrer une autre application » : la liste masquée y apparaît avec une option de restauration.",
"saveFailed":"Échec de l'enregistrement",
"tagFilterRegexOptional":"Regex de filtre de balises (facultatif)",
"dockerPublishedServicesTitle":"Services Docker avec des ports publiés",
"dockerPublishedServicesHelp":"Sélectionnez uniquement les ports qui fournissent une interface web. ProxMenux n’enregistre pas ces conteneurs comme des applications LXC indépendantes.",
"dockerPublishedAdd":"Ajouter le lien",
"dockerPublishedPort":"port {containerPort} du conteneur → {hostPort} dans le LXC",
"noWebPorts":"Aucun port Web n'écoute. Utilisez Ajouter un port si vous souhaitez toujours créer un lien manuellement.",
"trackUpstream":"Suivre la version disponible (facultatif)",
"trackOff":"Désactivé : lien uniquement",
"trackOn":"Le · {method}",
"trackHelp":"Facultatif. Lorsque cette option est activée, ProxMenux compare la version installée à la dernière version disponible.",
"commandSafetyHelp":"Exécute le style argv à l'intérieur du CT en tant que root – jamais via un shell. Vous êtes responsable de ce que fait le commandement. Utilisez installé_regex ci-dessous pour extraire la version de la sortie.",
"manualVersionHelp":"Saisissez la version installée. Si une source de version disponible est définie ci-dessous, ProxMenux continuera à rechercher les mises à jour. Après la mise à jour de l'application, revenez ici pour actualiser cette valeur.",
"upstreamHelp":"Comment ProxMenux trouve la dernière version à comparer avec celle installée.",
"githubRepoHelp":"Dépôt GitHub public où les versions ou les balises sont publiées.",
"httpJsonHelp":"Point de terminaison JSON public qui renvoie une version quelque part dans la charge utile.",
"jsonPathHelp":"Chemin en pointillé avec indices de tableau [N] facultatifs.",
"restoreButton":"Restaurer",
"registerButton":"Registre",
"removeButton":"Retirer",
"checkButton":"Vérifier",
"editFieldsButton":"Modifier les champs",
"alsoDetectedContainer":"Également détecté sur ce conteneur",
"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."
"description":"Modifier la façon dont le trafic réseau est affiché",
"label":"Affichage de l'unité réseau",
"bytes":"Octets",
"bits":"Morceaux"
},
"healthMonitor":{
"title":"Moniteur de santé",
"description":"Configurez la durée pendant laquelle les alertes ignorées restent masquées pour chaque catégorie. Les modifications s’appliquent aux alertes ignorées existantes et futures.",
"category":"Catégorie",
"suppressionDuration":"Durée de la suppression",
"hours":"Heures",
"permanentNotice":"Les alertes pour {category} resteront masquées de façon permanente après le licenciement.",
"temperatureSafetyNotice":"Des alertes critiques de température du processeur apparaissent toujours pour protéger le matériel.",
"longSuppressionNotice":"Longue période de suppression. Les alertes ignorées dans cette catégorie resteront masquées pendant longtemps.",
"footerNote":"Ces paramètres s'appliquent lorsque vous ignorez un avertissement du moniteur de santé. Des alertes critiques de température du processeur apparaissent toujours pour protéger votre matériel.",
"activeSuppressions":"Suppressions actives",
"activeSuppressionsDescription":"Alertes que vous avez masquées dans Health Monitor. Les licenciements permanents ne peuvent être annulés qu’ici. La modification nécessite le moniteur de santé",
"noActiveSuppressions":"Aucune suppression active. Les alertes rejetées du Moniteur de santé apparaîtront ici.",
"permanent":"Permanent",
"daysRemaining":"{count}d restants",
"hoursRemaining":"{count}h restantes",
"reEnableDisabledTitle":"Activez le mode d'édition du moniteur de santé pour réactiver",
"reEnableQueuedTitle":"Annuler, réactiver; il ne sera pas appliqué lors de la sauvegarde",
"reEnableTitle":"Mettre cette alerte en file d'attente pour la réactiver lors de l'enregistrement",
"reEnable":"Réactiver",
"labels":{
"category":"catégorie",
"severity":"gravité",
"dismissed":"rejeté"
},
"errorNames":{
"security_login_attempts":"Tentatives de connexion de sécurité"
},
"options":{
"24h":"24 heures",
"3d":"3 jours",
"1w":"1 semaine",
"1m":"1 mois",
"1y":"1 an",
"custom":"Coutume",
"permanent":"Permanent"
},
"categories":{
"cpu":"Utilisation et température du processeur",
"memory":"Mémoire et swap",
"storage":"Supports et espace de stockage",
"disk":"E/S et erreurs de disque",
"network":"Interfaces réseau",
"vms":"Machines virtuelles et conteneurs",
"services":"Services PVE",
"logs":"Journaux système",
"updates":"Mises à jour du système",
"security":"Sécurité et certificats",
"temperature":"Température"
}
},
"remoteStorage":{
"title":"Exclusions de stockage distant",
"description":"Excluez les stockages distants (PBS, NFS, CIFS, etc.) de la surveillance de l'état et des notifications. Utilisez-le pour les stockages intentionnellement hors ligne ou ayant un accès API limité.",
"emptyTitle":"Aucun stockage distant détecté",
"emptyDescription":"PBS, NFS, CIFS et autres stockages distants apparaîtront ici une fois configurés",
"storage":"Stockage",
"offline":"Hors ligne ou indisponible",
"namespaceRestricted":"Accessible; taille de la banque de données masquée par l'ACL",
"healthHelp":"Lorsqu'il est désactivé, ce stockage ne déclenchera pas d'avertissements ou d'alertes critiques dans le moniteur de santé.",
"alertsHelp":"Lorsqu'elle est désactivée, aucune notification ne sera envoyée pour ce stockage."
},
"networkInterfaces":{
"title":"Exclusions d'interface réseau",
"description":"Excluez les interfaces réseau (ponts, liaisons, cartes réseau physiques) de la surveillance de l’état et des notifications. Utilisez-le pour les interfaces intentionnellement désactivées ou inutilisées.",
"emptyTitle":"Aucune interface réseau détectée",
"interface":"Interface",
"down":"VERS LE BAS",
"excluded":"Exclu",
"noIp":"Pas d'adresse IP",
"healthHelp":"Lorsqu'elle est désactivée, cette interface ne déclenchera pas d'avertissements ou d'alertes critiques dans le moniteur de santé.",
"alertsHelp":"Lorsqu'elle est désactivée, aucune notification ne sera envoyée pour cette interface."
},
"snippets":{
"title":"Stockage des hookscripts",
"description":"Emplacement où ProxMenux installe les hookscripts, par exemple celui qui protège le passthrough GPU des VM/LXC. Dans un cluster, choisissez un stockage partagé afin que les VM et LXC migrent correctement entre les nœuds;",
"localNote":"est spécifique au nœud et interrompt la migration.",
"placeholder":"Choisissez un stockage...",
"footer":"Les VM/LXC qui utilisent déjà l'ancien stockage continueront de fonctionner. Seules les nouvelles opérations de passthrough GPU ou l'exécution de « sync hookscripts » sur l'hôte utiliseront le nouveau choix."
},
"lxcUpdateDetection":{
"title":"Détection de mise à jour LXC",
"descriptionStart":"Vérifiez périodiquement les conteneurs Debian/Ubuntu/Alpine LXC en cours d'exécution pour les mises à jour de paquets en attente.",
"descriptionEnd":"et faites-les apparaître sur le tableau de bord. La bascule de notification correspondante dans Notifications -> Services apparaît uniquement lorsque la détection est activée.",
"enableLabel":"Activer la détection des mises à jour LXC",
"loadFailed":"Impossible de charger le paramètre de détection de mise à jour LXC.",
"saveFailed":"Impossible d'enregistrer le paramètre de détection de mise à jour LXC.",
"purgedMessage":"{count} Entrées LXC supprimées du registre. La réactivation de la détection les repeuplera lors du prochain cycle d'analyse."
},
"notifications":{
"title":"Notifications",
"description":"Configurez les canaux de notification et les filtres d'événements. Recevez des alertes via Telegram, Gotify, Discord ou Email.",
"disabledDescription":"Recevez des alertes en temps réel sur votre environnement Proxmox via Telegram, Discord, Gotify ou Email.",
"enableService":"Activer le service de notification",
"enableServiceDescription":"Surveillez l’état du système, les événements VM/CT, les sauvegardes, les alertes de sécurité et l’état du cluster. L’intégration du webhook PVE est configurée automatiquement.",
"enableButton":"Activer les notifications",
"configuring":"Configuration...",
"webhookConfigured":"Webhook PVE configuré automatiquement. Proxmox enverra des notifications à ProxMenux.",
"webhookFailed":"Échec de la configuration automatique du PVE: {error}",
"webhookManualSetup":"Les notifications sont activées. Exécutez les commandes ci-dessous sur l’hôte PVE pour terminer la configuration du webhook.",
"serviceRunning":"Service en cours d'exécution",
"serviceStopped":"Service arrêté",
"sentLast24h":"{count} envoyé dans les dernières 24 heures",
"channelCountOne":"Canal {count}",
"channelCountMany":"{count}canaux",
"activateService":"Activer le service de notifications",
"channels":"Canaux",
"test":{
"sent":"Notification de test envoyée avec succès.",
"failed":"La notification de test a échoué."
},
"errors":{
"saveFailed":"Impossible d'enregistrer les paramètres de notification.",
"unknown":"Erreur inconnue",
"setupUnavailable":"Impossible d'accéder au service d'installation."
},
"categories":{
"vm_ct":{
"label":"VM/CT"
},
"backup":{
"label":"Sauvegardes"
},
"resources":{
"label":"Ressources"
},
"storage":{
"label":"Stockage"
},
"network":{
"label":"Réseau"
},
"security":{
"label":"Sécurité"
},
"cluster":{
"label":"Grappe"
},
"services":{
"label":"Services"
},
"health":{
"label":"Moniteur de santé"
},
"updates":{
"label":"Mises à jour"
},
"other":{
"label":"Autre"
}
},
"eventTypes":{
"state_change":"L'état de santé a changé",
"new_error":"Nouveau problème de santé",
"error_resolved":"Notification de récupération",
"error_escalated":"Le problème de santé s'est aggravé",
"health_degraded":"Bilan de santé dégradé",
"lxc_updates_available":"Mises à jour LXC disponibles (expérimentales)",
"quietHoursDescription":"Pendant cette fenêtre, seuls les événements CRITIQUES atteignent ce canal.",
"from":"Depuis",
"until":"Jusqu'à",
"quietSameTime":"Définissez une heure de début et de fin différente pour l’activer.",
"quietActive":"Actif maintenant: seuls les événements CRITIQUES passent jusqu'au {time}.",
"quietInactive":"Inactif maintenant: commence à {time}.",
"nextDigest":"Prochain résumé dans {hours}h {minutes}m (à {time}).",
"dailyDigest":"Résumé quotidien des événements INFO",
"dailyDigestDescription":"Les événements INFO s'accumulent au cours de la journée et arrivent une fois sous forme de résumé. Les événements CRITIQUE et AVERTISSEMENT ne sont jamais retardés.",
"sendAt":"Envoyer à",
"notificationCategories":"Catégories de notifications",
"enableTelegram":"Activer le télégramme",
"setupGuide":"+guide de configuration",
"botToken":"Jeton de robot",
"chatId":"Identifiant de discussion",
"topicId":"Identifiant du sujet",
"optional":"facultatif",
"topicHint":"Pour les supergroupes avec des sujets activés. Laissez vide pour les discussions régulières.",
"richMessages":"Messages riches",
"richMessagesDescription":"Enrichissez les notifications avec des émojis et des icônes contextuels",
"sendTest":"Envoyer le test",
"enableGotify":"Activer Gotify",
"serverUrl":"URL du serveur",
"appToken":"Jeton d'application",
"enableDiscord":"Activer Discorde",
"webhookUrl":"URL du webhook",
"enableEmail":"Activer le courrier électronique",
"smtpHost":"Hôte SMTP",
"port":"Port",
"tlsMode":"ModeTLS",
"noTls":"Aucun (port 25)",
"username":"Nom d'utilisateur",
"password":"Mot de passe",
"appPassword":"Mot de passe de l'application",
"fromAddress":"De l'adresse",
"toAddresses":"Aux adresses (séparées par des virgules)",
"subjectPrefix":"Préfixe du sujet",
"emailHint":"Laissez l'hôte SMTP vide pour utiliser sendmail local. Pour Gmail, utilisez un mot de passe d'application.",
"pushoverCriticalPriority":"Priorité élevée pour les alertes critiques",
"pushoverCriticalPriorityDescription":"Les notifications CRITIQUES utilisent la priorité élevée de Pushover. La priorité d’urgence n’est pas utilisée.",
"pushoverCredentialsHint":"Créez une application dans Pushover, puis copiez son jeton API et votre clé utilisateur ou groupe.",
"appriseDescription":"Une URL permet à Apprise d'acheminer la notification vers le bon service. Exemples:",
"seeThe":"Voir le",
"fullList":"liste complète",
"displayName":"Nom d'affichage",
"systemHostname":"Nom d'hôte du système",
"displayNameHint":"Nom affiché dans les notifications. Modifiez-le ou laissez-le vide pour utiliser le nom d'hôte du système.",
"activeFooter":"Les notifications sont actives. Chaque chaîne suit sa propre catégorie et sa propre sélection d'événements.",
"inactiveFooter":"Activez les notifications pour recevoir des alertes système, de santé et de sécurité via les canaux configurés."
},
"ai":{
"title":"Amélioration de l'IA",
"enhancedMessages":"Messages améliorés par l'IA",
"enhancedMessagesDescription":"Utiliser l'IA pour générer des messages de notification contextuels",
"provider":"Fournisseur",
"customBaseUrl":"URL de base personnalisée",
"customBaseUrlPlaceholder":"Laissez vide pour OpenAI ou entrez un point de terminaison personnalisé",
"customBaseUrlHint":"Pour les API compatibles OpenAI telles que BytePlus, LocalAI, LM Studio ou vLLM.",
"apiKey":"Clé API",
"model":"Modèle",
"promptMode":"Mode invite",
"defaultPrompt":"Invite par défaut",
"customPrompt":"Invite personnalisée",
"language":"Langue",
"selectLanguage":"Sélectionnez la langue",
"detailLevel":"Niveau de détail par canal",
"suggestions":"Suggestions d'IA",
"suggestionsDescription":"Autoriser l'IA à ajouter de brefs conseils de dépannage en fonction du contexte du journal",
"customPromptPlaceholder":"Entrez vos instructions personnalisées pour l’IA…",
"testing":"Essai…",
"testConnection":"Tester la connexion",
"ollamaUrl":"URL d'Ollama",
"getKey":"Obtenir la clé",
"loadModelsPlaceholder":"Cliquez sur Charger pour récupérer les modèles",
"selectModel":"Sélectionnez le modèle",
"noModelsLoaded":"Aucun modèle chargé — cliquez sur Charger",
"noModelSelected":"Sélectionnez d'abord un modèle. Cliquez sur Charger pour récupérer les modèles disponibles.",
"load":"Charger",
"modelsAvailable":"Modèles {count} disponibles",
"detailHint":"L'IA traduit et formate les notifications dans la langue sélectionnée. Chaque canal peut utiliser un niveau de détail différent.",
"beta":"BÊTA",
"export":"Exporter",
"import":"Importer",
"communityPrompts":"Invites de la communauté",
"customPromptHint":"Définissez vos propres règles et format. Vous contrôlez les détails et le style de toutes les notifications. Exportez l’invite pour la partager ou importez-en une depuis la communauté.",
"local":"Locale",
"detailLevels":{
"brief":"Bref",
"standard":"Standard",
"detailed":"Détaillé"
},
"providersInfo":"Informations sur le fournisseur d'IA",
"loadModelsHint":"Cliquez sur Charger pour récupérer les modèles disponibles auprès de ce fournisseur.",
"openAiCompatible":"API compatibles OpenAI",
"openAiCompatibleDescription":"Définissez une URL de base personnalisée pour utiliser une API compatible OpenAI. Les services pris en charge incluent:",
"anyOpenAiService":"Tout service utilisant le format OpenAI",
"providers":{
"groq":"Très rapide, avec un niveau gratuit généreux. Un bon point de départ.",
"openai":"Norme industrielle, précise et largement utilisée.",
"anthropic":"Excellent pour la rédaction et la traduction; rapide et économique.",
"gemini":"Un niveau gratuit est disponible, avec un bon rapport qualité-prix.",
"ollama":"Utilise des modèles sur votre serveur Ollama. Entièrement local, privé et gratuit.",
"openrouter":"Accès à plus de 100 modèles via une seule clé API."
}
},
"telegramGuide":{
"title":"Guide de configuration du robot Telegram",
"createBot":"Créer un bot avec BotFather",
"create1":"1. Ouvrez Telegram et recherchez",
"create2":"2. Envoyez la commande",
"create3":"3. Choisissez un nom pour le bot, par exemple ProxMenux Notifications.",
"create4":"4. Choisissez un nom d'utilisateur se terminant par bot, par exemple proxmenux_alerts_bot.",
"getToken":"Obtenez le jeton du bot",
"tokenIntro":"Après avoir créé le bot, BotFather vous donne un jeton comme celui-ci:",
"tokenPaste":"Copiez le jeton et collez-le dans le champ Bot Token.",
"getChatId":"Obtenez votre identifiant de chat",
"optionA":"Option A: utiliser un bot (le plus simple)",
"chat1":"1. Trouver",
"or":"ou",
"chat2":"2. Envoyez n'importe quel message; le bot répond avec votre identifiant de chat.",
"optionB":"Option B: méthode manuelle",
"manual1":"1. Envoyez un message à votre nouveau bot.",
"manual2":"2. Ouvrez cette URL dans votre navigateur et remplacez YOUR_TOKEN:",
"manual3":"3. Trouvez cette valeur; son numéro est votre identifiant de chat:",
"groups":"Groupes et chaînes",
"group1":"1. Ajoutez le bot au groupe ou au canal en tant qu'administrateur.",
"group2":"2. Envoyez un message dans le groupe.",
"group3":"3. Utilisez l'URL getUpdates ci-dessus pour trouver l'ID de discussion du groupe.",
"group4":"4. Les identifiants de groupe sont des nombres négatifs, par exemple",
"whatDescription":"L'invite définit la manière dont l'IA formate vos notifications. Une invite personnalisée vous permet de contrôler le style, le niveau de détail et le format de chaque message.",
"requirements":"Exigences importantes",
"formatIntro":"Votre invite doit utiliser ce format de sortie:",
"formatTitleThen":"suivi du titre, puis",
"formatBodyThen":"suivi du message",
"plainText":"Utilisez uniquement du texte brut, sans Markdown, afin que le résultat fonctionne sur tous les canaux.",
"rawData":"L'invite reçoit les données brutes de l'événement Proxmox en entrée.",
"language":"Définissez la langue de sortie dans l’invite. Le sélecteur de langue s'applique uniquement au mode par défaut.",
"gettingStarted":"Commencer",
"gettingStartedDescription":"Un exemple d’invite est prêt à vous aider à démarrer. Vous pouvez l'ajuster, l'exporter pour le partager avec d'autres ou importer une invite de la communauté.",
"loadExample":"Charger un exemple",
"startFromScratch":"Repartir de zéro"
}
},
"optimizations":{
"title":"ProxMenux Optimizations",
"description":"Optimisations du système et utilitaires installés via ProxMenux",
"emptyTitle":"Aucune optimisation ProxMenux installée pour le moment",
"emptyDescription":"Exécutez ProxMenux pour configurer les optimisations du système",
"installedTools":"Outils installés",
"activeCount":"{count} actif",
"viewUpdates":"Afficher les mises à jour disponibles",
"updateCount":"{count} mises à jour",
"updateOneTitle":"Mise à jour: {name}",
"updateManyTitle":"Mettre à jour les optimisations {count}",
"updateOneDescription":"Réexécution de {functionName} à partir du flux {source}.",
"updateManyDescription":"Réexécution des fonctions de post-installation {count} dans l'ordre.",
"legacySourceTitle":"Optimisation héritée – cliquez pour afficher la source",
"sourceTitle":"Cliquez pour voir le code source",
"legacy":"héritage",
"updateToolTitle":"Mettez à jour {name} vers v{version}",
"availableUpdates":"Mises à jour disponibles",
"availableUpdatesDescription":"Les optimisations {count} peuvent être mises à jour vers une version plus récente.",
"selectedCount":"{selected} sur {total} sélectionné",
"updateSelected":"Mise à jour sélectionnée"
},
"healthThresholds":{
"title":"Seuils du moniteur de santé",
"description":"Le moniteur de santé et les notifications réagissent lorsque ces limites sont franchies. Faites glisser la poignée orange pour le niveau d’avertissement et la poignée rouge pour le niveau critique. Les valeurs différentes de la recommandation apparaissent en bleu ; survolez une poignée pour voir la recommandation ou utilisez Réinitialiser pour la restaurer.",
"loadFailed":"Échec du chargement des seuils.",
"invalidValue":"Valeur non valide pour {key}: doit être un nombre",
"resetFailed":"Échec de la réinitialisation",
"networkErrorWhileResetting":"Erreur réseau lors de la réinitialisation",
"resetSectionConfirm":"Réinitialiser tous les seuils \"{section}\" aux valeurs recommandées?",
"resetAllConfirm":"Réinitialiser TOUS les seuils aux valeurs recommandées? Cela affecte chaque section.",
"resetAllTitle":"Réinitialiser chaque seuil à sa valeur recommandée",
"resetSectionTitle":"Réinitialiser cette section à recommandé",
"description":"Seuils par classe. Mêmes unités (°C), valeurs par défaut différentes car chaque classe tolère une plage différente."
},
"host_storage":{
"title":"Espace disque - hôte",
"description":"S'applique à / et à chaque point de montage sous /var/lib/vz, /mnt/* etc."
},
"lxc_rootfs":{
"title":"Espace disque - rootfs LXC",
"description":"Disque racine par conteneur, évalué par rapport à la taille rootfs de PVE."
},
"lxc_mount":{
"title":"Points de montage LXC",
"description":"Capacité des points de montage à l’intérieur des CT en cours d’exécution (mp0, mp1, NFS, montages de liaison). Exclut les rootfs; qui est couvert ci-dessus."
},
"pve_storage":{
"title":"Capacité de stockage PVE",
"description":"Stockages PVE de style bloc: LVM, LVM-thin, ZFS-pool, RBD/Ceph, PBS. Le stockage de type système de fichiers est déjà couvert par les seuils de disque hôte."
},
"zfs_pool":{
"title":"Capacité du pool ZFS",
"description":"Pools ZFS au niveau de l'hôte, indépendamment de l'enregistrement PVE, de sorte que les pools rpool et de sauvegarde dédiés sont également surveillés."
}
}
}
},
"login":{
"subtitle":"Connectez-vous pour accéder à votre tableau de bord",
"username":"Nom d'utilisateur",
"password":"Mot de passe",
"usernamePlaceholder":"Entrez votre nom d'utilisateur",
"passwordPlaceholder":"Entrez votre mot de passe",
"rememberMe":"Souviens-toi de moi",
"missingCredentials":"Veuillez entrer votre nom d'utilisateur et votre mot de passe",
"missingTotp":"Veuillez entrer votre code 2FA",
"invalidCredentials":"Nom d'utilisateur ou mot de passe incorrect",
"invalidTotp":"Code 2FA incorrect",
"tooManyAttempts":"Trop de tentatives de connexion. Veuillez patienter un moment et réessayer.",
"loginFailed":"La connexion a échoué",
"signingIn":"Connexion...",
"signIn":"Se connecter",
"twoFactorTitle":"Authentification à deux facteurs",
"twoFactorDescription":"Saisissez le code à 6 chiffres de votre application d'authentification",
"authenticationCode":"Code d'authentification",
"backupCodeHint":"Vous pouvez également utiliser un code de secours (format: XXXX-XXXX)",
"backToLogin":"Retour à la connexion",
"verifyCode":"Vérifier le code",
"version":"ProxMenux Monitor v1.2.4.1-bêta"
},
"account":{
"signedIn":"Connecté",
"viewProfile":"Voir le profil",
"security":"Sécurité",
"signOut":"se déconnecter"
},
"authSetup":{
"choiceTitle":"Configurer la protection du tableau de bord",
"passwordTitle":"Créer un mot de passe",
"protectTitle":"Protéger votre tableau de bord?",
"protectDescription":"Ajoutez une couche de sécurité supplémentaire pour protéger vos données Proxmox lors de l'accès à partir de réseaux non privés.",
"setupPassword":"Oui, configurer le mot de passe",
"skipProtection":"Non, continuez sans protection",
"enableLater":"Vous pouvez toujours l'activer plus tard dans Paramètres",
"setupTitle":"Configurer l'authentification",
"setupDescription":"Créez un nom d'utilisateur et un mot de passe pour protéger votre tableau de bord",
"fillFields":"Veuillez remplir tous les champs",
"passwordMismatch":"Les mots de passe ne correspondent pas",
"passwordTooShort":"Le mot de passe doit contenir au moins 6 caractères",
"skipFailed":"Échec de l'ignorance de l'authentification",
"savePreferenceFailed":"Échec de l'enregistrement des préférences",
"setupFailed":"Échec de la configuration de l'authentification",
"username":"Nom d'utilisateur",
"usernamePlaceholder":"Entrez le nom d'utilisateur",
"password":"Mot de passe",
"passwordPlaceholder":"Entrez le mot de passe",
"confirmPassword":"Confirmez le mot de passe",
"confirmPasswordPlaceholder":"Confirmez le mot de passe",
"profileOptional":"Profil · facultatif",
"displayName":"Nom d'affichage",
"displayNamePlaceholder":"Affiché au-dessus du nom d'utilisateur dans le menu",
"displayNameHint":"Laissez vide pour afficher le nom d'utilisateur lui-même. Jusqu'à 64 caractères.",
"avatar":"Avatar",
"change":"Changement",
"chooseImage":"Choisir une image",
"clear":"Clair",
"avatarHint":"PNG, JPEG, WebP ou GIF · jusqu'à 2 Mo · carré de pré-recadrage pour de meilleurs résultats.",
"selfSignedWarning":"Les certificats auto-signés peuvent afficher un avertissement du navigateur. C'est normal pour les configurations Proxmox locales.",
"configuring":"Configuration...",
"useProxmoxCertificate":"Utiliser le certificat Proxmox",
"noProxmoxCertificate":"Aucun certificat Proxmox n'a été détecté.",
"useCustomCertificate":"Utiliser un certificat personnalisé",
"customPaths":"Chemins de certificat personnalisés",
"customPathsDescription":"Utilisez le certificat et les fichiers de clé existants de l'hôte.",
"certificatePath":"Chemin du certificat",
"privateKeyPath":"Chemin de clé privée",
"enableHttps":"Activer HTTPS",
"restartTitle":"Redémarrage du service requis",
"restartDescription":"La modification des paramètres HTTPS redémarre le service Monitor pendant un moment.",
"changesRestart":"La page peut se déconnecter brièvement pendant le redémarrage du service."
},
"apiTokens":{
"defaultName":"Jeton de tableau de bord",
"title":"Jetons API",
"description":"Créez des jetons de longue durée pour les intégrations et l'automatisation.",
"aboutTitle":"À propos des jetons API",
"validFor":"Les jetons restent valables jusqu'à ce que vous les révoquiez.",
"externalServices":"Utilisez-les avec des outils externes au lieu de votre mot de passe.",
"authorizationHeader":"Envoyez le jeton dans l’en-tête Authorization.",
"seeGuideBefore":"Voir le",
"integrationsGuide":"guide d'intégration",
"seeGuideAfter":"pour des exemples.",
"generateNew":"Générer un nouveau jeton",
"generateTitle":"Générer un jeton API",
"generateDescription":"Entrez votre mot de passe et votre code 2FA s'il est activé.",
"tokenName":"Nom du jeton",
"tokenNamePlaceholder":"Tableau de bord de la page d'accueil",
"generating":"Générateur...",
"generate":"Générer un jeton",
"yourToken":"Votre jeton API",
"saveTokenNow":"Enregistrez ce jeton maintenant.",
"tokenOnlyShownOnce":"Il ne sera affiché qu'une seule fois.",
"token":"Jeton",
"copied":"Copié",
"howToUse":"Comment l'utiliser",
"addToHeaders":"Ajoutez cet en-tête à vos requêtes:",
"saveConfiguration":"Enregistrer la configuration",
"banned":"Actuellement bloqué",
"failedNow":"Échec maintenant",
"totalFailed":"Échec total",
"bannedIpsWithCount":"IP bloquées ({count})",
"unban":"Débloquer",
"noBannedIps":"Aucune adresse IP n'est actuellement bloquée.",
"noJails":"Aucune protection trouvée.",
"noActivity":"Aucune activité Fail2Ban pour l’instant.",
"installationTitle":"Installer Fail2Ban",
"installationDescription":"Le terminal installera Fail2Ban et configurera les protections de connexion.",
"uninstallConfirmTitle":"Désinstaller Fail2Ban?",
"uninstallConfirmDescription":"Cela supprime le package Fail2Ban et ses fichiers de protection créés par Monitor.",
"removeSshJail":"Supprimer la protection SSH",
"removeProxmoxProtection":"Supprimer la protection Proxmox",
"removeMonitorProtection":"Supprimer la protection du moniteur",
"removeCustomJails":"Supprimer les fichiers de protection personnalisés créés par le moniteur",
"removeAuthLogger":"Supprimer l'enregistreur d'authentification du moniteur",
"jailLabels":{
"sshd":"SSH",
"proxmox":"Proxmox",
"proxmenux":"ProxMenux Monitor"
},
"jailDescriptions":{
"sshd":"Bloque les échecs de connexion SSH répétés.",
"proxmox":"Bloque les échecs répétés de connexion à l’interface utilisateur de Proxmox.",
"proxmenux":"Bloque les échecs répétés de connexion au moniteur."
},
"tabs":{
"jails":"Protections et IP bloquées",
"activity":"Activité"
},
"activity":{
"ban":"Bloqué",
"unban":"Débloqué",
"fail":"Échoué"
},
"placeholders":{
"maxRetries":"5",
"banTime":"3600",
"findTime":"600"
},
"trustedNetworks":{
"title":"Adresses IP et réseaux de confiance",
"description":"Fail2Ban ne bloquera jamais ces adresses.",
"required":"Requis",
"remove":"Supprimer des réseaux de confiance",
"placeholder":"192.168.1.25 ou 192.168.1.0/24",
"add":"Ajouter",
"addCurrent":"Ajouter mon IP ({ip})",
"addRule":"Ajouter une adresse/un réseau",
"addressOrNetwork":"Adresse IP ou réseau CIDR",
"example":"Une adresse : 192.168.1.25 · Tout le réseau : 192.168.1.0/24",
"useCurrent":"Utiliser mon adresse IP actuelle: {ip}",
"singleIp":"Adresse IP",
"network":"Réseau",
"edit":"Modifier",
"delete":"Supprimer",
"save":"Enregistrer les modifications",
"trusted":"Confiance",
"system":"Système",
"columns":{
"status":"Statut",
"type":"Taper",
"address":"Adresse / réseau",
"actions":"Actes"
},
"warning":"Faites confiance uniquement aux adresses que vous contrôlez. Si vous faites confiance à l'ensemble d'un réseau, Fail2Ban ignorera également un appareil compromis sur ce réseau."
}
},
"lynis":{
"title":"Audit de sécurité Lynis",
"description":"Exécutez un audit de sécurité local et examinez les suggestions pratiques de renforcement.",
"notInstalled":"Lynis n'est pas installé.",
"notInstalledDescription":"Installez Lynis pour exécuter des audits de sécurité locaux sur cet hôte.",
"featuresTitle":"Lynis vérifie:",
"featureScoring":"score de durcissement du système",
"featureVulnerabilities":"Points faibles connus et paramètres à risque",
"featureCompliance":"contrôles de sécurité communs",
"featureGithub":"rapport clair que vous pouvez imprimer ou enregistrer",
"install":"Installer Lynis",
"installedDescription":"Lynis est installé et prêt à auditer cet hôte.",
"lastScan":"Dernière analyse",
"hardeningIndex":"Indice de durcissement",
"warnings":"Avertissements",
"pveExpectedPlus":"+ {count} attendu pour Proxmox",
"expectedWarningsSuffix":"+ {count} attendu pour Proxmox",
"suggestions":"Suggestions",
"securityHardeningScore":"Score de renforcement de la sécurité",
"warningsDescription":"Avertissements qui méritent d’être examinés en premier. Les résultats attendus de Proxmox sont cachés ici.",
"noWarningsDetected":"Aucun avertissement exploitable n’a été détecté.",
"recommendation":"Recommandation",
"suggestionsDescription":"Suggestions de durcissement de moindre priorité. Les résultats attendus de Proxmox sont également cachés ici.",
"incompleteDescription":"Lynis a créé un rapport incomplet sans score ni décompte de tests. Réexécutez l’audit pour afficher un résultat fiable.",
"detailedChecks":"Vérifications détaillées",
"categoriesCount":"Catégories {count}",
"detailedChecksDescription":"Groupes de contrôle Lynis bruts du rapport d'audit.",
"check":"Vérifier",
"status":"Statut",
"generatedBy":"Généré par",
"confidential":"Gardez ce rapport privé ; il peut contenir des détails sur l'hôte."
},
"reportIncompleteTitle":"L'audit n'a pas encore de résultats utilisables",
"reportIncompleteDescription":"Lynis a créé un rapport incomplet sans score ni décompte de tests. Exécutez à nouveau l'audit.",
"reportIncompleteShort":"Le rapport est incomplet: relancez l'audit."
},
"twoFactorSetup":{
"setupFailed":"Échec du démarrage de la configuration 2FA",
"enterSixDigitCode":"Entrez le code à 6 chiffres.",
"invalidCode":"Code invalide",
"verificationFailed":"Échec de la vérification du code",
"copyPrompt":"Copiez cette clé secrète:",
"title":"Configurer l'authentification à deux facteurs",
"description":"Utilisez une application d'authentification pour ajouter un code à usage unique à votre connexion.",
"intro":"Cela ajoute une deuxième étape après votre mot de passe, donc une fuite de mot de passe ne suffit pas pour vous connecter.",
"youWillNeed":"Vous aurez besoin de:",
"needApp":"Une application d'authentification telle que Aegis, 1Password, Bitwarden ou Google Authenticator.",
"needQrOrKey":"Un code QR ou une clé manuelle de cette configuration.",
"needBackupCodes":"Codes de sauvegarde enregistrés dans un endroit sûr.",
"starting":"Départ...",
"startSetup":"Démarrer la configuration",
"scanTitle":"Scannez le code QR",
"scanDescription":"Ouvrez votre application d'authentification et scannez ce code.",
"qrCodeAlt":"Code QR 2FA",
"manualKey":"Clé manuelle",
"copyKey":"Copier la clé",
"verifyTitle":"Vérifier le code",
"verifyDescription":"Saisissez le code à 6 chiffres actuel de votre application.",
"verifying":"Vérification...",
"verifyAndEnable":"Vérifier et activer",
"enabledTitle":"2FA est activé.",
"enabledDescription":"Enregistrez les codes de sauvegarde avant de fermer cette fenêtre.",
"saveCodesTitle":"Enregistrez vos codes de sauvegarde",
"saveCodesDescription":"Chaque code peut être utilisé une fois si vous perdez l'accès à votre application d'authentification.",
"backupCodes":"Codes de sauvegarde",
"copyAll":"Copier tout",
"finish":"Finition"
},
"secureGateway":{
"title":"Secure Gateway",
"learnMore":"Apprendre encore plus",
"noNetworkDetected":"Aucun réseau détecté",
"noNetworksDetected":"Aucun réseau n'a été détecté.",
"recommended":"Recommandé",
"retry":"Réessayer",
"errors":{
"loadWizardFailed":"Échec du chargement de la configuration de Secure Gateway",
"updateFailed":"Échec de la mise à jour de Secure Gateway",
"networkUpdateFailed":"Erreur réseau lors de la mise à jour de Secure Gateway",
"fieldRequired":"{field} est requis.",
"deploymentFailed":"Le déploiement a échoué",
"ociRequiresPve":"Secure Gateway utilise le standard LXC et devrait fonctionner sur cet hôte Proxmox. Si cela continue, vérifiez les journaux du backend.",
"authKeyRequired":"Entrez une clé d’authentification Tailscale.",
"updateAuthKeyFailed":"Échec de la mise à jour de la clé d'authentification",
"couldNotLoadSetupData":"Impossible de charger les données de configuration."
},
"messages":{
"updateApplied":"La mise à jour a été appliquée.",
"preparingDeployment":"Préparation du déploiement...",
"creatingLxc":"Création du conteneur LXC...",
"gatewayDeployed":"Secure Gateway déployé."
},
"logs":{
"empty":"Aucun journal disponible.",
"failed":"Échec du chargement des journaux.",
"title":"Journaux Secure Gateway",
"description":"Sortie de service récente du conteneur de passerelle."
},
"values":{
"never":"jamais",
"yesterdayAt":"hier à {time}",
"yes":"Oui",
"no":"Non"
},
"wizard":{
"introTitle":"Accès à distance sécurisé avec Tailscale",
"introDescription":"Déployez une petite passerelle LXC afin que vos appareils puissent atteindre ProxMenux, Proxmox et les réseaux locaux sélectionnés via votre tailnet Tailscale.",
"whatYouGet":"Ce que vous obtenez",
"benefitMonitorAnywhere":"Ouvrez le moniteur depuis n'importe où sur votre tailnet.",
"benefitProxmoxUi":"Accédez à l'interface utilisateur Web de Proxmox sans exposer le port 8006.",
"benefitVmLxc":"Accédez aux réseaux VM et LXC sélectionnés en cas de besoin.",
"benefitEncryption":"Le trafic reste crypté via Tailscale.",
"benefitNoPorts":"Aucune redirection de port public requise.",
"tailscaleAccountBefore":"Vous avez besoin d'un compte Tailscale et d'une clé de pré-autorisation de",
"reviewDeploy":"Examiner et déployer",
"reviewDescription":"Vérifiez les paramètres finaux avant la création de la passerelle LXC.",
"storageLocation":"Lieu de stockage",
"storageDescription":"Choisissez où stocker le conteneur de passerelle.",
"gbAvailable":"{amount} Go disponibles",
"configurationSummary":"Résumé de la configuration",
"hostname":"Nom d'hôte",
"storage":"Stockage",
"accessMode":"Mode d'accès",
"accessModes":{
"hostOnly":"Proxmox uniquement",
"proxmoxNetwork":"Réseau local complet",
"customNetworks":"Réseaux personnalisés"
},
"hostAccess":"Accès hôte",
"networks":"Réseaux",
"exitNode":"Nœud de sortie",
"acceptRoutes":"Accepter les itinéraires",
"important":"Important",
"approvalRequired":"Après le déploiement, approuvez les routes de sous-réseau annoncées dans Tailscale Admin.",
"exitNodeApprovalRequired":"Le mode Quitter le nœud doit également y être approuvé.",
"showAfterDeploy":"Nous montrerons les étapes d’approbation exactes après le déploiement.",
"setupTitle":"Configuration Secure Gateway"
},
"steps":{
"intro":{
"title":"Accès à distance sécurisé",
"description":"Configurez un accès VPN sécurisé à votre serveur Proxmox"
},
"auth":{
"title":"Authentification Tailscale",
"description":"Connectez la passerelle à votre compte Tailscale"
},
"access":{
"title":"Portée d'accès",
"description":"Choisissez ce qui doit être accessible via cette passerelle"
},
"options":{
"title":"Options avancées",
"description":"Paramètres de routage supplémentaires"
},
"deploy":{
"title":"Déployer la passerelle",
"description":"Examiner et déployer"
}
},
"status":{
"connected":"Connecté",
"stopped":"Arrêté",
"error":"Erreur"
},
"installed":{
"description":"Secure Gateway est déployé et géré par le moniteur.",
"otherPackagesPending":"+ {count} autres packages en attente",
"noneAvailable":"Aucune mise à jour disponible"
},
"authKey":{
"update":"Mettre à jour la clé d'authentification",
"description":"Utilisez une nouvelle clé d'authentification Tailscale si la clé actuelle a expiré ou a été révoquée.",
"newKey":"Nouvelle clé d'authentification",
"generateAt":"Générez-le à",
"adminKeys":"Tailscale Admin → Clés",
"updateKey":"Clé de mise à jour"
},
"tailscale":{
"openAdmin":"Ouvrir Tailscale Admin"
},
"remove":{
"title":"Supprimer Secure Gateway?",
"description":"Cela arrête et supprime le conteneur de passerelle. L’état Tailscale peut rester dans les données enregistrées si le backend le préserve."
},
"postDeploy":{
"title":"Terminer la configuration dans Tailscale Admin",
"description":"La passerelle est déployée. Une étape d'approbation est encore nécessaire avant que les appareils distants puissent utiliser les routes annoncées.",
"nextStep":"Étape suivante",
"approveDescription":"Approuvez les routes de sous-réseau annoncées pour cette passerelle.",
"subnetRoutes":"Routes de sous-réseau",
"exitNode":"Quitter le nœud",
"routeAllTraffic":"Approuvez-le si vous souhaitez que les appareils acheminent tout le trafic Internet via cette passerelle.",
"howToApprove":"Comment l'approuver",
"stepOpenAdmin":"Ouvrez la console Tailscale Admin.",
"stepFindBefore":"Trouvez la machine nommée",
"stepFindAfter":"dans la liste des Machines.",
"stepOpenDetails":"Ouvrez ses détails.",
"stepSubnetsBefore":"Dans",
"stepSubnetsMiddle":"cliquez",
"stepSubnetsAfter":"et approuver les itinéraires annoncés.",
"stepRoutingBefore":"Pour le nœud de sortie, ouvrez",
"fromAnyDevice":"depuis n’importe quel appareil sur votre tailnet.",
"doLater":"je ferai ça plus tard"
},
"notInstalled":{
"subtitle":"La passerelle Tailscale n’est pas encore déployée.",
"description":"Déployez-le pour atteindre ProxMenux et Proxmox en toute sécurité depuis votre tailnet sans ouvrir de ports publics.",
"deploy":"Déployer Secure Gateway"
},
"schema":{
"auth_key":{
"label":"Clé d'authentification Tailscale",
"description":"Clé de pré-authentification depuis la console d'administration Tailscale. Générez-en un sur le lien ci-dessous.",
"placeholder":"tskey-auth-xxxx",
"helpText":"Générer une clé d'authentification"
},
"hostname":{
"label":"Nom d'hôte de l'appareil",
"description":"Nom affiché dans la console d'administration Tailscale.",
"placeholder":"passerelle proxmox"
},
"access_mode":{
"label":"Portée d'accès",
"description":"Ce qui devrait être accessible via cette passerelle.",
"options":{
"host_only":{
"label":"Proxmox uniquement",
"description":"Accédez uniquement à ce serveur Proxmox, à l'interface utilisateur et à ProxMenux Monitor."
},
"proxmox_network":{
"label":"Réseau local complet",
"description":"Accédez à tous les appareils de votre réseau local, tels que les NAS, les imprimantes, les VM et les LXC."
},
"custom":{
"label":"Sous-réseaux personnalisés",
"description":"Choisissez exactement les sous-réseaux à exposer."
}
}
},
"advertise_routes":{
"label":"Réseaux annoncés",
"description":"Sélectionnez les réseaux qui doivent être accessibles via le VPN."
},
"exit_node":{
"label":"Quitter le nœud",
"description":"Utilisez cette passerelle comme point de sortie Internet lorsque vous n'êtes pas chez vous.",
"warning":"Nécessite l’approbation dans Tailscale Admin. Lorsqu'il est activé sur votre appareil, tout le trafic Internet passe par votre serveur Proxmox."
},
"accept_routes":{
"label":"Accepter les itinéraires",
"description":"Autorisez cette passerelle à atteindre les réseaux annoncés par d'autres nœuds Tailscale de votre tailnet."
}
}
}
},
"about":{
"releaseNotes":"Notes de version",
"changelog":"Journal des modifications",
"logoAlt":"Logo ProxMenux",
"heroDescription":"Un tableau de bord Web et une couche de gestion pour Proxmox VE: surveillance de l'état, notifications, terminal, suivi d'optimisation et bien plus encore, regroupés dans une seule AppImage.",
"project":{
"title":"Projet",
"description":"Référentiel, documentation et canaux communautaires."
},
"support":{
"title":"Assistance et licence",
"description":"ProxMenux est gratuit et open source sous licence GPL-3.0. Si cela vous est utile, une contribution ponctuelle permet de le maintenir ainsi."
},
"license":{
"label":"Licence GPL-3.0",
"description":"Logiciel gratuit — voir le fichier LICENSE pour le texte intégral."
},
"links":{
"repository":{
"label":"Dépôt GitHub",
"description":"Code source, versions et suivi des problèmes."
},
"documentation":{
"label":"Documentation",
"description":"Guide d'utilisation complet pour ProxMenux et le moniteur."
},
"discussions":{
"label":"Discussions",
"description":"Posez des questions, partagez des invites d'IA personnalisées et échangez des idées."
},
"issues":{
"label":"Signaler un bug ou demander une fonctionnalité",
"description":"Ouvrez un ticket sur GitHub – bugs, idées ou régressions."
},
"support":{
"label":"Soutenez le projet sur Ko-fi",
"description":"ProxMenux est gratuit et open source. Les dons aident à couvrir le temps d’hébergement et de développement."
}
}
},
"systemLogs":{
"title":"Journaux et événements système",
"sections":"Sections",
"loading":{
"title":"Chargement des journaux…",
"description":"Récupération des journaux et événements système"
},
"errors":{
"connectFailed":"Impossible de se connecter au serveur.",
"loadFailed":"Impossible de charger les journaux. Veuillez réessayer."
},
"cards":{
"totalEntries":"Total des entrées",
"selectedRange":"Dans la gamme sélectionnée",
"errors":"Erreurs",
"requiresAttention":"Exiger de l'attention",
"warnings":"Avertissements",
"monitorClosely":"Surveiller de près",
"backups":"Sauvegardes"
},
"tabs":{
"logs":"Journaux",
"events":"Événements",
"backups":"Sauvegardes",
"notifications":"Notifications"
},
"filters":{
"searchPlaceholder":"Rechercher des journaux et des événements…",
"timeRange":"Plage de temps",
"oneDay":"il y a 1 jour",
"threeDays":"il y a 3 jours",
"oneWeek":"il y a 1 semaine",
"twoWeeks":"il y a 2 semaines",
"oneMonth":"il y a 1 mois",
"customDays":"Nombre de jours personnalisé",
"daysAgoPlaceholder":"Il y a quelques jours",
"byLevel":"Filtrer par niveau",
"allLevels":"Tous niveaux",
"byService":"Filtrer par prestation",
"allServices":"Toutes les prestations",
"dateRange":"Plage de dates",
"daysAgo":"{count} derniers jours"
},
"levels":{
"error":"Erreur",
"critical":"Critique",
"emergency":"Urgence",
"alert":"Alerte",
"warning":"Avertissement",
"info":"Informations",
"notice":"Avis",
"success":"Succès",
"debug":"Déboguer"
},
"export":{
"button":"Exporter les journaux",
"title":"Exportation des journaux et événements du système Proxmox",
"filtersApplied":"Filtres appliqués"
},
"fields":{
"generated":"Généré",
"level":"Niveau",
"service":"Service",
"search":"Recherche",
"none":"Aucun",
"message":"Message",
"source":"Source",
"hostname":"Nom d'hôte",
"node":"Nœud",
"user":"Utilisateur",
"unit":"Unité",
"host":"Hôte",
"timestamp":"Horodatage",
"type":"Taper",
"systemdUnit":"Unité système",
"processId":"ID de processus",
"duration":"Durée",
"startTime":"Heure de début",
"endTime":"Heure de fin",
"storage":"Stockage",
"storageType":"Type de stockage",
"size":"Taille",
"created":"Créé",
"volumeId":"ID de volume"
},
"badges":{
"event":"Événement"
},
"empty":{
"logs":"Aucun journal ne correspond aux filtres sélectionnés.",
"backups":"Aucune sauvegarde trouvée.",
"notifications":"Aucune notification trouvée."
},
"loadMore":"Charger davantage ({count} restant)",
"backups":{
"vm":"Sauvegardes de machines virtuelles",
"lxc":"Sauvegardes LXC",
"totalSize":"Taille totale"
},
"modals":{
"logTitle":"Détails du journal",
"logDescription":"Informations complètes sur cette entrée de journal",
"eventTitle":"Détails de l'événement",
"eventDescription":"Informations complètes sur cet événement",
"backupTitle":"Détails de la sauvegarde",
"backupDescription":"Informations complètes sur cette sauvegarde",
"notificationTitle":"Détails des notifications",
"notificationDescription":"Informations complètes sur cette notification"
},
"download":{
"taskLog":"Journal des tâches Proxmox",
"completeTaskLog":"Journal de tâches complet",
"completeMessage":"Message complet",
"completeMessageButton":"Télécharger le message complet"
}
},
"onboarding":{
"dialogTitle":"Intégration de ProxMenux",
"previous":"Précédent",
"skip":"Sauter",
"next":"Suivant",
"getStarted":"Commencer!",
"dontShowAgain":"Ne montre plus ça",
"goToSlide":"Accédez à la diapositive {number}",
"slides":{
"welcome":{
"title":"Bienvenue sur ProxMenux Monitor!",
"description":"Votre nouvel outil de surveillance pour Proxmox. Découvrez les fonctionnalités qui vous aident à gérer et superviser votre infrastructure plus facilement."
},
"overview":{
"title":"Présentation du système",
"description":"Surveillez votre serveur en temps réel: processeur, mémoire, température, charge du système et bien plus encore, le tout dans un seul tableau de bord clair."
},
"storage":{
"title":"Gestion du stockage",
"description":"Consultez l'état de vos disques et de votre stockage: capacité, utilisation, état de santé SMART, température et performances de chaque appareil."
},
"network":{
"title":"Métriques du réseau",
"description":"Surveillez le trafic réseau en temps réel, y compris les interfaces actives, les vitesses de transfert et les graphiques d'utilisation historique."
},
"virtualMachines":{
"title":"Machines virtuelles et conteneurs",
"description":"Conservez les VM et les conteneurs LXC au même endroit. Affichez l'état, les ressources affectées, l'utilisation actuelle et les contrôles rapides."
},
"hardware":{
"title":"Informations sur le matériel",
"description":"Affichez les détails du matériel du serveur: CPU, RAM, GPU, disques, réseau, UPS et plus encore, y compris les modèles, les numéros de série et l'état."
},
"logs":{
"title":"Journaux système",
"description":"Accédez aux journaux système, filtrez les événements, recherchez des erreurs spécifiques et téléchargez les journaux affichés lorsque vous avez besoin d'une analyse plus approfondie."
},
"future":{
"title":"Prêt pour l'avenir!",
"description":"ProxMenux Monitor est prêt pour de nouvelles fonctionnalités et améliorations, avec davantage d'actions transférées progressivement dans le panneau Web."
}
}
},
"releaseNotes":{
"dialogTitle":"Notes de version - Version {version}",
"title":"Quoi de neuf dans la version {version}",
"intro":"Nous avons ajouté de nouvelles fonctionnalités et améliorations pour rendre ProxMenux Monitor encore meilleur.",
"gotIt":"J'ai compris!",
"dontShowAgain":"Ne plus afficher pour cette version",
"currentFeatures":{
"hostUpdate":"Mise à jour de l'hôte en un clic depuis Health Monitor. Le nouveau bouton Mettre à jour maintenant dans les mises à jour système exécute le flux de mise à jour Proxmox dans un terminal de tableau de bord, sans quitter le navigateur.",
"mobileInstall":"Invite d'installation dans l'application pour mobile. Les nouveaux visiteurs sur Android et iOS Safari voient désormais des étapes simples pour ajouter le moniteur à leur écran d'accueil en tant que PWA.",
"i18n":"Le moniteur parle désormais 8 langues : anglais, espagnol, allemand, français, italien, portugais, suédois et slovaque.Un grand merci à @vaso73 pour la construction de l'échafaudage i18n qui a rendu cela possible.",
"pageSpeed":"chargements de pages plus rapides et navigation plus fluide dans le tableau de bord.La présentation s'ouvre instantanément et la page VM et LXC ne clignote plus jamais « Chargement… » entre les modaux invités.",
"appTab":"nouvel onglet Application dans le modal VM et LXC, en particulier pour les LXC.Enregistrez les applications installées dans un conteneur, capturez leurs liens Web et recevez des notifications lorsqu'une nouvelle version en amont est livrée.",
"updatesTab":"onglet Mises à jour retravaillées pour les LXC: appliquez les packages de système d'exploitation et les mises à jour des applications enregistrées à partir d'un seul bouton, et planifiez une tâche de mise à jour automatique récurrente qui vérifie le système d'exploitation du conteneur et son application suivie à chaque exécution.",
"backupNoTimeout":"Les tâches de sauvegarde longues n’expirent plus.Les sauvegardes VM et LXC lancées à partir du moniteur s'exécutent désormais en arrière-plan jusqu'à ce qu'elles se terminent naturellement, de sorte qu'une sauvegarde PBS de 30 minutes se termine de la même manière qu'une sauvegarde locale de 10 secondes.",
"vmDiskUsage":"Les machines virtuelles exécutant l'agent invité QEMU (qemu-guest-agent) signalent désormais les chiffres réels utilisés/total du disque sur le tableau de bord, au lieu du « 0Go » renvoyé par PVE pour les systèmes de fichiers gérés par les invités.",
"pwaInstall":"les nouveaux visiteurs sur Android et iOS Safari voient désormais une invite d'installation dans l'application avec des étapes claires pour ajouter le moniteur à leur écran d'accueil en tant que PWA."
"description":"Interfaces de numérisation, ponts et trafic"
},
"errors":{
"serverUnavailableTitle":"Le serveur n'est pas disponible",
"serverUnavailableDescription":"Impossible de se connecter au serveur de surveillance. Veuillez vous assurer que le service est en cours d'exécution et réessayer."
},
"cards":{
"traffic":"Trafic réseau",
"activeInterfaces":"Interfaces actives",
"status":"État du réseau",
"latency":"Latence du réseau"
},
"sections":{
"physicalInterfaces":"Interfaces physiques",
"bridgeInterfaces":"Interfaces de pont",
"vmLxcInterfaces":"Interfaces réseau VM et LXC"
},
"summary":{
"totalInterfaces":"{count}interfaces totales",
"activeCount":"{active}/{total} Actif"
},
"status":{
"healthy":"En bonne santé",
"warning":"Avertissement",
"critical":"Critique",
"up":"En haut",
"down":"Vers le bas"
},
"duplex":{
"full":"Duplex intégral",
"half":"Semi-duplex"
},
"interfaceTypes":{
"physical":"Physique",
"bridge":"Pont",
"bridges":"Ponts",
"bond":"Lier",
"vlan":"VLAN",
"virtual":"Virtuel",
"other":"Autre"
},
"labels":{
"activeSlave":"Esclave actif",
"average":"Moyenne",
"avg":"Moy.",
"bitsReceived":"Bits reçus",
"bitsSent":"Bits envoyés",
"bondingMode":"Mode de liaison",
"bondMembers":"Membres obligataires",
"bytesReceived":"Octets reçus",
"bytesSent":"Octets envoyés",
"current":"Actuel",
"domain":"Domaine",
"down":"Vers le bas",
"drops":"Gouttes",
"dropsIn":"Arrivées",
"dropsOut":"Abandonne",
"duplex":"Duplex",
"errors":"Erreurs",
"errorsIn":"Erreurs dans",
"errorsOut":"Erreurs éliminées",
"hostname":"Nom d'hôte",
"interfaceName":"Nom de l'interface",
"ipAddress":"Adresse IP",
"latency":"Latence",
"macAddress":"Adresse MAC",
"max":"Max.",
"maximum":"Maximum",
"maxSpeed":"maximum {speed}",
"min":"Min.",
"minimum":"Minimum",
"netmask":"Masque de réseau",
"packetLoss":"Perte de paquets",
"packetLossShort":"Perte de points",
"packetsReceived":"Paquets reçus",
"packetsSent":"Paquets envoyés",
"physicalInterface":"Interface physique",
"primarySlave":"Esclave principal",
"received":"Reçu",
"sent":"Envoyé",
"slaveInterfaces":"Interfaces esclaves",
"speed":"Vitesse",
"status":"Statut",
"time":"Temps",
"type":"Taper",
"up":"En haut",
"virtualMemberInterfaces":"Interfaces de membres virtuels",
"vmLxcName":"Nom de la VM/LXC"
},
"roles":{
"active":"actif",
"standby":"attendre",
"down":"vers le bas"
},
"empty":{
"noVmLxc":"Pas de VM/LXC",
"noVirtualMembers":"Aucun membre virtuel"
},
"timeframes":{
"hour":"1 heure",
"day":"24 heures",
"week":"7 jours",
"month":"30 jours",
"year":"1 an",
"short":{
"hour":"Dernière 1heure",
"day":"Dernières 24 heures",
"week":"7 jours passés",
"month":"Dernières 30 jours",
"year":"1 an passé"
},
"last":{
"hour":"Dernière heure",
"day":"Dernières 24 heures",
"week":"7 derniers jours",
"month":"30 derniers jours",
"year":"L'année dernière"
}
},
"interfaceDetails":{
"title":"Détails de l'interface",
"description":"Afficher des informations détaillées et des statistiques de trafic réseau pour cette interface",
"basicInformation":"Informations de base",
"ipAddresses":"Adresses IP",
"trafficStatistics":"Statistiques de trafic réseau ({timeframe})",
"trafficSinceBoot":"Trafic depuis le dernier démarrage",
"inactiveTitle":"Interface inactive",
"inactiveDescription":"Cette interface est actuellement en panne. Les statistiques de trafic réseau ne sont pas disponibles.",
"bondConfiguration":"Configuration des obligations",
"bridgeConfiguration":"Configuration du pont"
},
"flow":{
"title":"Flux de réseau"
},
"chart":{
"invalidDataFormat":"Format de données invalide reçu du serveur",
"loadError":"Erreur lors du chargement des métriques"
"noRealtimeData":"Aucune donnée pour l'instant. Cliquez sur « Tester à nouveau » pour commencer.",
"noDataForPeriod":"Aucune donnée de latence disponible pour cette période",
"collectionInterval":"Les données sont collectées toutes les 60 secondes",
"realTimeMode":"Mode temps réel",
"realTimeModeDescription":"Les tests durent 2 minutes avec des lectures toutes les 5 secondes. Réexécutez ensuite le test pour ajouter d’autres échantillons. Toutes les données sont incluses dans le rapport.",
"report":{
"title":"Rapport sur la latence du réseau",
"subtitle":"ProxMenux Monitor - Analyse des performances du réseau",
"topBarTitle":"Rapport de latence du réseau ProxMenux",
"topBarSubtitle":"Examinez le rapport, puis imprimez-le ou enregistrez-le au format PDF",
"printSavePdf":"Imprimer / Enregistrer au format PDF",
"date":"Date",
"target":"Cible",
"mode":"Mode",
"realTimeTest":"Test en temps réel",
"historicalAnalysis":"Analyse historique",
"realTime":"En temps réel",
"executiveSummary":"Résumé exécutif",
"assessmentTitle":"Évaluation de la latence du réseau",
"realtimeSummary":"Test de latence en temps réel jusqu'à {target}. Échantillons: {count}; durée: {duration}. Latence moyenne: {avg}.",
"historicalSummary":"Analyse de latence historique jusqu'à {target} sur {timeframe}. {count} échantillons analysés. Latence moyenne: {avg} ms.",
"minutes":"{count} minute(s)",
"minutesShort":"{count} min",
"seconds":"{count} seconde(s)",
"secondsShort":"{count}s",
"testPeriod":"la période d'essai",
"averagePacketLoss":"Perte moyenne de paquets: {value}%.",
"noPacketLoss":"Aucune perte de paquet détectée.",
"defaultGateway":"Passerelle par défaut",
"failed":"Échoué",
"notEnoughData":"Pas assez de points de données pour le graphique",
"samples":"{count} échantillons",
"latencyStatistics":"Statistiques de latence",
"sampleCount":"Nombre d'échantillons",
"packetLossAvg":"Perte de paquets (moyenne)",
"testPeriodLabel":"Période d'essai",
"latencyGraph":"Graphique de latence",
"performanceThresholds":"Seuils de performances",
"thresholdExcellent":"Idéal pour les applications en temps réel, les jeux et les appels vidéo.",
"thresholdGood":"Acceptable pour la plupart des applications avec un impact minimal.",
"thresholdFair":"Retard notable. Peut affecter la VoIP et les applications interactives.",
"reinstallViaPostInstall":"Réinstaller via la post-installation de ProxMenux: {label}",
"noUpdatesAvailable":"Aucune mise à jour disponible",
"none":"aucun",
"running":"en cours d'exécution",
"stopped":"arrêté",
"unused":"inutilisé",
"unbound":"non lié",
"driversReady":"Pilotes prêts",
"driversNotInstalled":"Pilotes non installés",
"programmed":"Programmé (runtime chargé)",
"unprogrammed":"Non programmé (runtime non chargé)",
"notInstalled":"non installé",
"detecting":"Détection...",
"solidStateDevice":"Dispositif à semi-conducteurs",
"notSpecified":"Non spécifié"
},
"time":{
"yesterdayAt":"hier {time}"
},
"recommendations":{
"intel":"Pour obtenir des informations étendues sur la surveillance du GPU, veuillez installer le package intel-gpu-tools ou igt-gpu-tools.",
"nvidia":"Pour les GPU NVIDIA, la surveillance en temps réel nécessite les pilotes propriétaires (package nvidia-driver). Installez-les uniquement si votre GPU est utilisé directement par l'hôte.",
"amd":"Pour obtenir des informations étendues sur la surveillance des GPU pour les GPU AMD, veuillez installer amdgpu_top. Vous pouvez le télécharger depuis: https://github.com/Umio-Yasuno/amdgpu_top",
"generic":"Pour obtenir des informations étendues sur la surveillance du GPU, veuillez installer les outils de surveillance du GPU appropriés pour votre matériel."
},
"deviceTypes":{
"graphics":"Graphique",
"graphicsCard":"Carte graphique",
"usb":"USB",
"usbController":"Contrôleur USB",
"audio":"Audio",
"audioController":"Contrôleur audio",
"network":"Réseau",
"networkController":"Contrôleur de réseau",
"ethernet":"Ethernet",
"wireless":"Wi-Fi",
"wirelessController":"Contrôleur sans fil",
"wifi":"Wi-Fi",
"storage":"Stockage",
"storageController":"Contrôleur de stockage",
"hid":"CACHÉ",
"vendorSpecific":"Spécifique au fournisseur",
"communications":"Communications",
"integrated":"Intégré",
"discrete":"Discret"
},
"gpu":{
"monitoringTitle":"Surveillance GPU en temps réel",
"sriovVirtualFunctionDescription":"Cet appareil est une fonction virtuelle générée par une fonction physique. La télémétrie par VF (température, utilisation, mémoire) n'est pas exposée par le noyau — ouvrez le PF parent pour voir les métriques globales du GPU.",
"virtualFunctionDetail":"Détail de la fonction virtuelle",
"parentPhysicalFunction":"Fonction physique des parents",
"sriovActive":"SR-IOV actif",
"sriovMetricsDescription":"Les mesures ci-dessous reflètent la fonction physique (regroupées sur {count} VF).",
"updatingEverySeconds":"Mise à jour toutes les {seconds} secondes",
"realTimeMetrics":"Mesures en temps réel",
"engineUtilizationTotal":"Utilisation du moteur (totale)",
"engineUtilization":"Utilisation du moteur",
"activeProcesses":"Processus actifs ({count})",
"noActiveProcesses":"Aucun processus actif utilisant le GPU",
"virtualFunctions":"Fonctions virtuelles",
"switchModeVmTitle":"GPU dans la machine virtuelle en mode commutation",
"switchModeVmDescription":"Ce GPU est attribué à une machine virtuelle via le passthrough VFIO. La surveillance en temps réel n'est pas disponible depuis l'hôte car le GPU est contrôlé par la VM.",
"extendedMonitoringUnavailable":"Surveillance étendue non disponible"
},
"gpuSwitch":{
"gpu":"GPU",
"lxc":"LXC",
"vm":"VM",
"sriov":"SR-IOV",
"sriovVf":"SR-IOV VF",
"sriovCount":"SR-IOV ×{count}",
"sriovActive":"SR-IOV actif",
"readyForLxc":"Prêt pour les conteneurs LXC",
"readyForVm":"Prêt pour le relais de VM",
"modeUnknown":"Mode inconnu",
"virtualFunctionsExternal":"Fonctions virtuelles gérées en externe",
"installNvidiaDrivers":"Installer les pilotes NVIDIA",
"installAmdGpuTools":"Installer les outils GPU AMD",
"installIntelGpuTools":"Installer les outils GPU Intel",
"installCoralDrivers":"Installer les pilotes Coral TPU",
"installDrivers":"Installer les pilotes"
},
"coral":{
"driversNeededDescription":"Un ou plusieurs appareils Coral détectés nécessitent des pilotes. Un redémarrage du serveur est requis après l'installation.",
"deviceInformation":"Informations sur le périphérique Coral TPU"
},
"ups":{
"detailedInformation":"Informations détaillées sur UPS"
},
"pci":{
"deviceInformation":"Informations sur le périphérique PCI"
},
"network":{
"interfaceInformation":"Informations sur l'interface réseau"
},
"storage":{
"deviceHardwareInformation":"Informations sur le matériel du périphérique de stockage"
},
"usb":{
"deviceInformation":"Informations sur le périphérique USB"
},
"scripts":{
"nvidiaTitle":"Installation du pilote NVIDIA",
"nvidiaDescription":"Installation des pilotes propriétaires NVIDIA pour la surveillance GPU...",
"amdTitle":"Installation des outils GPU AMD",
"amdDescription":"Installation d'amdgpu_top pour la surveillance des GPU AMD...",
"intelTitle":"Installation des outils GPU Intel",
"intelDescription":"Installation d'Intel-Gpu-Tools pour la surveillance des GPU Intel...",
"coralTitle":"Installation du pilote Coral TPU",
"coralDescription":"Installation des modules de noyau joint + apex et du runtime Edge TPU...",
"switchModeTitle":"Mode de changement de GPU → {mode}",
"switchModeDescription":"Passage du GPU {slot} au mode {mode}...",
"switchModeVm":"VM (passthrough VFIO)",
"switchModeLxc":"LXC (pilote natif)"
}
},
"backup":{
"actions":{
"addAnother":"Ajoutez-en un autre",
"addPath":"Ajouter un chemin",
"all":"Tous",
"apply":"Appliquer",
"back":"Dos",
"change":"Changement",
"clear":"Clair",
"delete":"Supprimer",
"disable":"Désactiver",
"download":"Télécharger",
"edit":"Modifier",
"enable":"Activer",
"format":"Format",
"generateKey":"Générer une clé",
"import":"Importer",
"importKeyfile":"Importer un fichier de clés",
"mount":"Monter",
"next":"Suivant",
"recoverKeyfile":"Récupérer le fichier clé",
"regenerate":"Régénérer",
"restore":"Restaurer",
"restoreSelected":"Restaurer la sélection",
"runNow":"Courez maintenant",
"saveChanges":"Enregistrer les modifications",
"unmount":"Démonter",
"upload":"Télécharger",
"use":"Utiliser",
"viewContents":"Afficher le contenu"
},
"archives":{
"archive":"Archive",
"at":"à",
"backup":"Sauvegarde",
"backupTimeLabel":"Temps de sauvegarde",
"deleteBackendTitle":"Supprimer cette sauvegarde",
"deleteBorgDescription":"Cela supprime l'archive Borg du référentiel.",
"deleteBorgTitle":"Supprimer les archives Borg",
"deleteLocalDescription":"Cela supprime l'archive de sauvegarde locale du disque.",
"deleteLocalTitle":"Supprimer l'archive locale",
"deletePbsDescription":"Cela supprime l'instantané PBS de la banque de données.",
"deletePbsTitle":"Supprimer l'instantané PBS",
"companionFile":"fichier compagnon",
"descriptionBefore":"Parcourez et restaurez les sauvegardes trouvées dans",
"downloadTitle":"Téléchargez cette sauvegarde",
"emptyAfter":"sauvegardes encore.",
"emptyBefore":"Non",
"encrypted":"Crypté",
"encryptedTitle":"Cette sauvegarde est cryptée",
"filesInBackup":"Fichiers en sauvegarde",
"group":"Groupe",
"host":"Hôte",
"importKeyToDownloadTitle":"Importez le fichier de clé correspondant avant de le télécharger",
"importKeyToRestoreTitle":"Importez le fichier de clés correspondant avant de restaurer",
"importKeyToViewTitle":"Importez le fichier clé correspondant avant d'afficher le contenu",
"inspectTitle":"Inspecter la sauvegarde",
"job":"Emploi",
"loadFailed":"Impossible de charger les sauvegardes",
"packedSizeLabel":"Taille emballée",
"remoteQueryWarning":"Les sauvegardes à distance peuvent prendre un certain temps pour être interrogées.",
"restoreTitle":"Restaurer à partir de cette sauvegarde",
"startingExport":"Préparation du téléchargement...",
"title":"Sauvegardes",
"viewContentsTitle":"Afficher le contenu de la sauvegarde"
},
"backends":{
"borgDescription":"Référentiel Borg pour les sauvegardes d'hôtes dédupliquées.",
"borgDescriptionTimerOnly":"Les destinations Borg sont utilisées par les minuteurs de surveillance, et non par les tâches vzdump PVE.",
"borgShortDescription":"Dépôt Borg dédupliqué",
"local":"Locale",
"localDescription":"Dossier sur cet hôte ou sur une clé USB montée.",
"localShortDescription":"Dossier local ou disque monté",
"pbsDescription":"Banque de données Proxmox Backup Server.",
"pbsShortDescription":"Proxmox Backup Server"
},
"common":{
"checking":"Vérification...",
"loading":"Chargement...",
"no":"Non",
"or":"ou",
"yes":"Oui"
},
"configuration":{
"title":"Configuration de sauvegarde"
},
"contents":{
"driversToReinstall":"Pilotes à réinstaller",
"extracting":"Extraction de l'instantané et analyse: cela peut prendre une minute pour les sauvegardes volumineuses...",
"filesShowing":"Affichage de {shown} sur {filtered}{filteredLabel}{total}",
"filesTitle":"Fichiers ({count}{plus})",
"filesTruncated":"· liste tronquée à 5000 — ouvrez l'instantané manuellement pour voir le reste",
"filtered":"filtré",
"manifest":"Manifeste",
"manifestMissingBefore":"Cette sauvegarde n'inclut pas manifest.json. Les fichiers de métadonnées ci-dessous contiennent des informations équivalentes:",
"metadataFiles":"Fichiers de métadonnées",
"network":"Réseau",
"noDrivers":"Aucun pilote à réinstaller.",
"noManifest":"Aucun manifeste dans cette archive.",
"recoveryPassphraseRequired":"La phrase secrète de récupération est requise.",
"repoNameAndSnapshotRequired":"Le nom du référentiel et l'instantané sont requis.",
"runFailed":"Échec de l'exécution: {error}",
"snapshotInfoMissing":"Les informations sur l'instantané sont manquantes.",
"toggleFailed":"Impossible de modifier l'état de la tâche: {error}"
},
"extraPaths":{
"absolutePathHintAfter":"— le chemin doit exister sur cet hôte exactement tel qu'il a été saisi.",
"absolutePathHintBefore":"Utilisez le chemin absolu complet.",
"absolutePathHintMiddle":"n'est pas la même chose que",
"descriptionAfter":"(profil manuel ou programmé, par défaut ou personnalisé) en haut de la liste des profils par défaut. Utile pour les données d'application, les dossiers de configuration personnalisés et les chemins similaires. ({count} configuré)",
"descriptionBefore":"Les chemins ajoutés ici sont inclus dans",
"empty":"Aucun chemin personnalisé pour l'instant: les sauvegardes utilisent uniquement le profil par défaut.",
"everyBackup":"chaque sauvegarde",
"missingOnDisk":"manquant sur le disque",
"removeTitle":"Supprimer ce chemin personnalisé",
"title":"Chemins personnalisés"
},
"fields":{
"absolutePathOnHost":"Chemin absolu sur l'hôte",
"archiveNameLabel":"Nom de l'archive",
"backend":"Back-end",
"backendLabel":"Back-end",
"backupGroupLabel":"Groupe de sauvegarde",
"backupId":"ID de sauvegarde",
"bootMode":"Mode de démarrage",
"borgIdLabel":"Identifiant Borg",
"borgRepository":"Dépôt Borg",
"confirmPassphrase":"Confirmer la phrase secrète",
"createdLabel":"Créé",
"datastore":"Banque de données",
"dayOfMonth":"Jour du mois",
"daysOfWeek":"Jours de la semaine",
"destinationDirectory":"Répertoire des destinations",
"newRecoveryPassphrase":"Nouvelle phrase secrète de récupération",
"nextRun":"Prochaine exécution",
"normalizedLabel":"Normalisé",
"onCalendarExpression":"Expression sur le calendrier",
"ownerLabel":"Propriétaire",
"passphrase":"Phrase secrète",
"password":"Mot de passe",
"pathLabel":"Chemin",
"pbsRepository":"Dépôt PBS",
"profileLabel":"Profil",
"pveJobLabel":"Travail PVE",
"pveStorage":"Stockage PVE",
"pveVersion":"Version PVE",
"recoveryPassphrase":"Phrase secrète de récupération",
"remoteRepositoryPath":"Chemin du référentiel distant",
"repo":"Repo",
"repoNameLabel":"Nom du référentiel",
"repository":"Dépôt",
"repositoryLabel":"Dépôt",
"repositoryPath":"Chemin du référentiel",
"retentionLabel":"Rétention",
"roles":"Rôles",
"schedule":"Calendrier",
"scheduleLabel":"Calendrier",
"serverHostOrIp":"Hôte/IP du serveur",
"size":"Taille",
"sizeLabel":"Taille",
"source":"Source",
"sourceHost":"Hôte source",
"sourceHostLabel":"Hôte source",
"sshHostOrIp":"Hôte/IP SSH",
"sshKeyPath":"Chemin de la clé SSH",
"sshUser":"Utilisateur SSH",
"status":"Statut",
"storageLabel":"Stockage",
"target":"Cible",
"timeOfDay":"Heure de la journée",
"type":"Taper",
"used":"Utilisé",
"username":"Nom d'utilisateur",
"vmsLxcs":"VM/LXC",
"when":"Quand",
"whenLabel":"Quand",
"zfsPools":"Pools ZFS"
},
"jobs":{
"attachDescriptionAfter":"sauvegardes.",
"attachDescriptionBefore":"Attachez Monitor à un travail vzdump PVE et exécutez-le après le",
"attachDescriptionMiddle":"événement pour sélectionné",
"attachToPveJob":"Attacher au travail PVE",
"attachedToPveVzdump":"Attaché au vzdump PVE",
"backendEditHelp":"Le backend ne peut pas être modifié une fois la tâche créée.",
"createJob":"Créer un emploi",
"createScheduledJob":"Créer une tâche planifiée",
"customProfileTitle":"Profil personnalisé",
"defaultProfileTitle":"Profil par défaut",
"detailDescription":"Planification, profil, destination et dernière exécution pour ce travail.",
"disableJob":"Désactiver le travail",
"disableJobDescription":"La minuterie systemd sera arrêtée – plus aucune exécution automatique. Vous pourrez le réactiver ultérieurement à partir de cette même boîte de dialogue.",
"editScheduledJob":"Modifier une tâche planifiée",
"encryptedTitle":"Crypté",
"inheritedRetentionLabel":"Rétention du travail PVE",
"inheritedScheduleLabel":"Planification à partir du travail PVE",
"invalidJobName":"Utilisez uniquement des lettres, des chiffres, des tirets et des traits de soulignement.",
"jobNameHelpAfter":"Soyez bref et lisible.",
"jobNameHelpAnd":"et",
"jobNameHelpBefore":"Utilisé dans les noms de minuterie et les journaux. Les caractères autorisés incluent également",
"jobNameLocked":"Le nom du travail est verrouillé après la création.",
"lastRun":"Dernière course",
"lastRunLabel":"Dernière course",
"liveLogSize":"en direct · {size}",
"loadFailed":"Impossible de charger les tâches",
"loadingJob":"Chargement du travail...",
"manualOneShot":"manuel / one-shot",
"manualOneShotDescription":"Sauvegarde ponctuelle: capturée au moment du déclenchement. Ne peut pas être réexécuté ou modifié.",
"neverRun":"ne jamais courir",
"newScheduledJob":"Nouveau travail planifié",
"newScheduledJobDescription":"Créez une tâche de sauvegarde d'hôte récurrente.",
"nextRun":"Prochaine exécution",
"nextRunLabel":"Prochaine exécution",
"nextRunTitle":"Prochaine exécution programmée",
"noCompatiblePveJob":"Aucune tâche de sauvegarde PVE compatible trouvée",
"noCompatiblePveJobDescriptionAfter":"d'abord.",
"noCompatiblePveJobDescriptionBefore":"Créez ou activez une tâche de sauvegarde PVE pour",
"noCompatiblePveJobDescriptionMiddle":"dans",
"notAvailableForBorg":"non disponible pour Borg",
"openJobTitle":"Ouvrir les détails du travail",
"parentPveJobHelpAfter":"fonctionne avec succès.",
"parentPveJobHelpBefore":"Le moniteur s'exécute après cette tâche PVE",
"pbsGroupHelp":"Cela devient le groupe de sauvegarde PBS.",
"pickParentPveJob":"Choisir le travail PVE parent",
"retentionTitle":"Rétention",
"runAttachedTitle":"Déclenchez une exécution ad hoc maintenant (le chronomètre PVE conserve son propre calendrier)",
"runNowTitle":"Déclenchez cette tâche maintenant",
"waitingForRunner":"En attente du démarrage de l’exécuteur..."
},
"keyfileActions":{
"deleteDialogDescription":"Les sauvegardes PBS cryptées auront besoin du même fichier de clés avant de pouvoir être restaurées.",
"deleteDialogTitle":"Supprimer le fichier de clés PBS local?",
"deleteTitle":"Supprimer le fichier de clés local",
"deleteWarningDownloadsAfter":"jusqu'à ce que vous importiez à nouveau la clé correspondante.",
"deleteWarningDownloadsBefore":"Les téléchargements et les restaurations de sauvegardes cryptées échoueront",
"deleteWarningNewBackups":"Les nouvelles sauvegardes chiffrées ne peuvent pas s'exécuter sans fichier de clé.",
"deleteWarningRecoveryBlobs":"Les blobs de récupération PBS restent sur le serveur.",
"downloadTitle":"Télécharger le fichier clé",
"fingerprintTitle":"Afficher l'empreinte digitale de la clé",
"installed":"Installé",
"keyfileLabel":"Fichier de clés PBS",
"notInstalled":"Non installé",
"orUploadFromMachine":"ou téléchargez-en un depuis cette machine.",
"orUploadOwn":"ou téléchargez votre propre fichier de clés.",
"pveKeyDescriptionAfter":"et peut être réutilisé par Monitor.",
"pveKeyDescriptionBefore":"Une clé PVE existe sur",
"pveKeyDescriptionMiddle":"Il correspond au cryptage du stockage PVE",
"pveKeyDetected":"Clé PVE détectée",
"uploadDialogDescriptionAfter":"Les sauvegardes chiffrées créées avec une clé différente nécessiteront toujours leur clé d'origine.",
"uploadDialogDescriptionBefore":"Téléchargez le fichier de clés utilisé pour les sauvegardes PBS cryptées.",
"uploadDialogTitle":"Télécharger le fichier de clé PBS",
"uploadFromMachine":"Télécharger depuis cette machine",
"uploadTitle":"Télécharger le fichier clé",
"useThisKey":"Utilisez cette clé",
"willFail":"échouera"
},
"keyfileError":{
"currentlyInstalled":"Actuellement installé",
"description":"Cette sauvegarde est cryptée et nécessite le fichier de clé PBS correspondant.",
"importFrom":"Importez le fichier de clés correspondant depuis",
"importPath":"Sauvegarde → Destinations → Fichier de clés PBS",
"requiredManifest":"Requis par la sauvegarde",
"retryHint":"et réessayez.",
"title":"Fichier de clé correspondant requis"
},
"keyfileGate":{
"descriptionAfter":"avant que cette action puisse continuer.",
"descriptionBefore":"Cette sauvegarde cryptée nécessite le fichier de clé correspondant",
"title":"Fichier de clé requis"
},
"keyfileManagement":{
"below":"ci-dessous",
"copyAfterCreateAfter":"après l'avoir créé.",
"copyAfterCreateBefore":"Téléchargez une copie sécurisée",
"copyAfterManualBefore":"Conserver une copie sécurisée en dehors de cet hôte",
"currentPbsUploadStays":"Les téléchargements de récupération PBS existants restent en place.",
"downloadKeyfile":"Télécharger le fichier clé",
"hideOptions":"Masquer les options",
"keepLocalDescriptionAfter":"et conservez votre propre copie de sauvegarde ailleurs.",
"keepLocalDescriptionBefore":"Conserver la clé uniquement sur cet hôte",
"keepLocalOnly":"Restez local uniquement",
"keepOffsiteCopy":"Conserver une copie hors site",
"keyfileInstalled":"Fichier de clé installé",
"startUploading":"Commencez à télécharger des blobs de récupération sur PBS",
"stopUploading":"Arrêter de télécharger des blobs de récupération",
"thisBackupReusesKeyfile":"Cette sauvegarde réutilise le fichier de clés PBS partagé.",
"title":"Gestion des fichiers clés",
"updatePassphrase":"Mettre à jour la phrase secrète",
"uploadNo":"Non, gardez-le uniquement en local",
"uploadQuestion":"Télécharger une copie de récupération cryptée sur PBS?",
"uploadToPbs":"Télécharger sur PBS",
"uploadYes":"Oui, téléchargez la copie de récupération",
"withoutCopyWarning":"Sans copie, la perte de cet hôte peut également entraîner la perte de la clé.",
"yesUpload":"Oui, téléverser",
"yesUploadDescription":"Monitor stocke une copie de récupération cryptée dans PBS."
},
"keyfileRecovery":{
"descriptionBefore":"Le blob du fichier de clés chiffré est téléchargé depuis PBS et déchiffré avec votre phrase secrète de récupération. La clé résultante est écrite dans",
"passphrase":"Phrase secrète de récupération",
"pickSourceHost":"Choisissez l'hôte source dont vous vous souvenez de la phrase secrète : chaque installation télécharge son propre dépôt.",
"snapshot":"Instantané de récupération",
"title":"Récupérer le fichier de clés PBS"
},
"logs":{
"openFull":"Ouvrir le journal complet",
"runLog":"Journal d'exécution",
"tail":"queue"
},
"manifest":{
"bootMode":"Mode de démarrage",
"builtBy":"Construit par",
"componentsAtBackup":"Composants à la sauvegarde",
"compression":"Compression",
"createdAt":"Créé à",
"deviceCount":"{count} appareil(s)",
"encrypted":"Crypté",
"gpus":"GPU",
"interfaceCount":"{count} interface(s)",
"lxcsAtBackup":"LXC à la sauvegarde",
"memory":"Mémoire",
"nics":"Cartes réseau",
"pathCount":"{count} chemins",
"pathsArchived":"Chemins archivés",
"proxmoxVersion":"Version Proxmox",
"roles":"Rôles",
"sourceHost":"Hôte source",
"vmsAtBackup":"Machines virtuelles à la sauvegarde"
},
"manual":{
"description":"Exécutez maintenant une sauvegarde unique de l'hôte.",
"inProgress":"Sauvegarde manuelle en cours",
"oneShotDescription":"Les sauvegardes ponctuelles sont conservées sous forme de tâches gelées afin que vous puissiez inspecter leur journal ultérieurement.",
"reopenLogTitle":"Rouvrir le journal",
"run":"Courir",
"runBackup":"Exécuter une sauvegarde",
"runOneShotBackup":"Exécuter une sauvegarde ponctuelle",
"title":"Sauvegarde manuelle",
"viewProgress":"Afficher la progression"
},
"paths":{
"count":"{count} chemins",
"title":"Chemins"
},
"placeholders":{
"autoFromPveStorage":"automatique à partir du stockage PVE",
"encryptedCopyAvailable":"Une copie de récupération de clé cryptée est disponible dans PBS.",
"keyfileMissingTitle":"Le fichier de clé PBS est manquant",
"recoverArrow":"Récupérer →"
},
"restore":{
"ackAfter":"les VM, LXC et composants répertoriés ci-dessus. C’est irréversible.",
"ackBefore":"Je comprends que la restauration complète",
"afterRebootHint":"Après le redémarrage, cet onglet Sauvegardes affichera la progression en direct après la restauration avec la durée estimée, l'état par composant, la queue du journal et le delta de restauration. Si les notifications Telegram/Discord/ntfy sont configurées, vous recevrez également l'événement « Restauration de l'hôte terminée ».",
"blockedPathsHint":"Les chemins du noyau/démarrage sont grisés et ne peuvent pas être sélectionnés — la cible exécute un noyau plus récent.",
"chooseModeTitle":"Restaurer - choisir le mode",
"complete":"Complet",
"completeDescription":"Restaurez tout à partir de la sauvegarde.",
"completeDescriptionAfter":"dans le menu TUI du shell. Le terminal qui s'ouvre ensuite vous demandera toujours de confirmer sécurisé uniquement, sécurisé + redémarrage ou tout à la fois avant de toucher l'hôte.",
"completeDescriptionBefore":"Rejoue tout dans la sauvegarde. Équivalent à la cueillette",
"completeTitle":"Restauration complète",
"crossKernelDescription":"Les restaurations complète et personnalisée ignorent automatiquement les chemins liés au noyau/démarrage pour éviter une panique du noyau au prochain démarrage. Tout le reste (VM, LXC, réseau, composants, chemins personnalisés) est restauré normalement.",
"customByPathsDescription":"Choisissez exactement les chemins à restaurer. Répertorie le contenu réel de cette sauvegarde (profil par défaut + vos chemins personnalisés).",
"customByPathsTitle":"Restauration personnalisée par chemins",
"customPickDescriptionAfter":"env var — même code en aval que le TUI. Les chemins requis par le redémarrage (noyau, modules, fstab, …) seront détectés par le flux bash et vous pourrez les planifier pour le prochain démarrage à partir de là.",
"customPickDescriptionBefore":"Choisissez les chemins à restaurer. Vos flux de sélection",
"customPickDescriptionMiddle":"via le",
"destructiveTitle":"La restauration complète supprimera les éléments suivants (créés après la sauvegarde)",
"noPathsMatch":"Aucun chemin ne correspond au filtre.",
"noRestorablePaths":"Cette sauvegarde ne contient aucun chemin restaurable : seule la restauration complète est significative ici.",
"olderThanTargetKernel":"est plus ancien que le noyau cible",
"operatorConfigDescription":"Les paramètres suivants créés par l'opérateur seront automatiquement fusionnés dans la cible, sans toucher aux valeurs par défaut liées au noyau. S'exécute à la fois lors d'une restauration complète et personnalisée.",
"operatorConfigTitle":"Configuration de l'opérateur réappliquée via une fusion indépendante du noyau",
"pathsInBackup":"(Chemins {count} en sauvegarde)",
"pathsSelected":"{count} chemins sélectionnés",
"pathsSkipped":"Chemins qui seront ignorés ({count})",
"permanentlyDelete":"supprimer définitivement",
"pickPathError":"Choisissez au moins un chemin pour continuer.",
"preparationFailedTitle":"Échec de la préparation de la restauration",
"skippedPathTitle":"Ignoré : chemin lié au noyau, la cible exécute un noyau plus récent",
"terminalTitle":"Restaurer le terminal",
"tickAckToEnable":"Cochez l’accusé de réception ci-dessus pour l’activer."
},
"retention":{
"daily":"Tous les jours",
"hourly":"Horaire",
"keepDaily":"Gardez quotidiennement",
"keepHourly":"Garder toutes les heures",
"keepLast":"Garder en dernier",
"keepMonthly":"A garder mensuellement",
"keepWeekly":"À conserver chaque semaine",
"keepYearly":"Conserver chaque année",
"last":"Dernier",
"monthly":"Mensuel",
"none":"Aucun",
"noneAccumulate":"Aucune limite de conservation: les sauvegardes s'accumulent jusqu'à leur suppression manuelle.",
"title":"Rétention",
"weekly":"Hebdomadaire",
"yearly":"Annuel",
"zeroDisables":"0 désactive cette limite."
},
"rollback":{
"components":"Composants:",
"configsIncluded":"Configurations incluses dans la sauvegarde",
"lxcConfigs":"Configurations LXC:",
"noDifferences":"Aucune différence d'état d'hôte détectée: l'état de la sauvegarde correspond à l'hôte actuel (ou la sauvegarde n'incluait pas /etc/pve).",
"pveOnlyHint":"Seule la configuration /etc/pve est restaurée: les images disque restent là où elles se trouvent.",
"vmConfigs":"Configurations de VM:"
},
"schedule":{
"advancedHelpAfter":"pour la syntaxe exacte de systemd.",
"advancedHelpBefore":"Utiliser",
"advancedHelpMiddle":"et",
"advancedOption":"Avancé",
"borgTimerOnly":"Les tâches Borg sont planifiées par les minuteries du moniteur.",
"dailyOption":"Tous les jours",
"everyDayAt":"Tous les jours à {time}",
"everyDayAtMidnight":"Tous les jours à minuit",
"everyHourAtMinute":"Toutes les heures à la minute {minute}",
"everyHourAtMinuteZero":"Toutes les heures",
"everyMinute":"Chaque minute",
"everyMondayAtMidnight":"Tous les lundis à minuit",
"firstDayMonthly":"Premier jour de chaque mois",
"hourlyHelpAfter":"fonctionne une fois par heure.",
"modeHelp":"Choisissez un calendrier simple ou entrez une expression systemd OnCalendar.",
"monthlyOption":"Mensuel",
"monthlySkipHelp":"Si un mois comporte moins de jours, systemd ignore cette exécution.",
"pickAtLeastOneDay":"Choisissez au moins un jour.",
"pickFrequency":"Fréquence de sélection",
"preview":"Aperçu",
"rawOnCalendar":"{value} (système OnCalendar)",
"title":"Calendrier",
"weekdaysAt":"{days} à {time}",
"weeklyOption":"Hebdomadaire"
},
"status":{
"attached":"ci-joint",
"disabled":"désactivé",
"legacy":"héritage",
"manual":"manuel",
"manualOneShot":"manuel / one-shot",
"ok":"d'accord",
"running":"en cours d'exécution",
"scheduled":"programmé"
},
"taskStates":{
"completed":"complété",
"failed":"échoué",
"packing":"emballage",
"queued":"en file d'attente",
"restoring":"restauration",
"running":"en cours d'exécution"
},
"usb":{
"description":"Montez les clés USB afin qu’elles puissent être sélectionnées comme cible locale ou Borg. Les lecteurs qui possédaient déjà un système de fichiers peuvent être remontés tels quels; les disques bruts (pas de table de partition) peuvent être effacés et formatés pour",
"drivesDetected":"{count} lecteurs détectés",
"empty":"Aucune clé USB détectée. Branchez-en un et actualisez-le – Surveillez-le automatiquement toutes les 30 secondes.",
"formatAndUse":"Format et utilisation",
"formatDescription":"Cela effacera le disque sélectionné et créera une seule partition ext4.",
"formatDrive":"Formater le lecteur",
"formatDriveQuestion":"Effacer et formater ce disque?",
"formatTitle":"Effacer + formater ce disque en ext4",
"formatWarning":"Tout ce qui se trouve sur le disque sera détruit. Cela ne peut pas être annulé.",
"mountAndUse":"Montage et utilisation",
"mounted":"Monté",
"noneDetected":"Aucune clé USB détectée.",
"repartitionHint":"Le disque sera repartitionné (GPT + partition unique ext4) et monté automatiquement.",
"scanning":"Numérisation de clés USB...",
"stateEmpty":"pas de système de fichiers",
"stateMounted":"monté",
"stateUnmounted":"non monté",
"typeDeviceExactly":"Tapez EXACTEMENT le chemin du périphérique pour confirmer:",
"typeDeviceToConfirm":"Tapez le chemin de l'appareil pour confirmer",
"unformatted":"Non formaté",
"unmountConfirm":"Démonter {path}? Tout travail de sauvegarde pointant vers ce chemin échouera jusqu'à ce que vous le remontiez.",
"unmounted":"Non monté",
"uuidTitle":"uuid: {uuid}",
"wipeAndFormat":"Effacer et formater"
},
"validation":{
"invalidLabel":"Étiquette invalide."
},
"weekdays":{
"friday":"Vendredi",
"monday":"Lundi",
"saturday":"Samedi",
"short":{
"fri":"Ven",
"mon":"Lun",
"sat":"Sam",
"sun":"Dim",
"thu":"Jeu",
"tue":"Mar",
"wed":"Mer"
},
"sunday":"Dimanche",
"thursday":"Jeudi",
"tuesday":"Mardi",
"wednesday":"Mercredi"
}
},
"healthStatus":{
"title":"État de santé du système",
"description":"Vérifications détaillées de tous les composants du système",
"suppressedForMore":"Supprimé pendant {duration} plus",
"customSuppressionSettings":"Paramètres de suppression personnalisés",
"autoSuppressedHint":"Les alertes dans ces catégories sont automatiquement supprimées lorsqu'elles sont détectées.",
"lastUpdated":"Dernière mise à jour: {date}",
"updateTerminalTitle":"Mise à jour du système Proxmox",
"updateTerminalDescription":"Exécute apt-get update + dist-upgrade et le nettoyage post-mise à jour sur l'hôte.",
"dismiss":"Rejeter",
"silenceFor":"Faites taire cette alerte pour",
"permanently":"En permanence",
"duration":{
"hours":"{count}h",
"days":"{count} jours",
"weeks":"{count} semaines",
"months":"{count}mois",
"years":"{count} ans",
"24hours":"24 heures",
"7days":"7 jours"
}
},
"profilePage":{
"loading":"Chargement du profil…",
"loadFailed":"Échec du chargement du profil",
"title":"Profil utilisateur",
"description":"Détails personnels affichés dans le menu de l'avatar d'en-tête. Ils sont facultatifs : le nom d'utilisateur identifie déjà le compte.",
"avatar":{
"label":"Avatar",
"upload":"Télécharger un avatar",
"replace":"Remplacer l'avatar",
"remove":"Supprimer l'avatar",
"hint":"PNG, JPEG, WebP ou GIF. Jusqu'à 2 Mo. Utilisez une image carrée ou recadrez-la d'abord pour obtenir le meilleur résultat dans l'en-tête."
},
"username":{
"label":"Nom d'utilisateur",
"help":"Il s'agit du nom de connexion. Pour le modifier, désactivez l'authentification et configurez-la à nouveau dans Sécurité."
},
"displayName":{
"label":"Nom d'affichage",
"optional":"(facultatif)",
"placeholder":"Nom d'affichage",
"help":"Affiché au-dessus du nom d'utilisateur dans le menu de l'avatar. Laissez-le vide pour afficher uniquement le nom d'utilisateur. 64 caractères maximum."
},
"accountSecurity":{
"title":"Sécurité du compte",
"description":"Le mot de passe, l'authentification à deux facteurs et les jetons API sont gérés dans le panneau de sécurité.",
"openSecurity":"Ouvrir les paramètres de sécurité",
"fallback":"Ouvrez l'onglet Sécurité depuis la navigation."
},
"errors":{
"saveDisplayNameFailed":"Échec de l'enregistrement du nom d'affichage",
"uploadFailed":"Échec du téléchargement ({status})",
"deleteFailed":"Échec de la suppression ({status})"
}
},
"pwaInstall":{
"title":"Installer le ProxMenux Monitor",
"iosDescription":"Ajoutez le moniteur à votre écran d'accueil pour un accès rapide.",
"androidDescription":"Ajoutez le moniteur en tant qu'application pour qu'il s'ouvre comme une application normale.",
"addToHomeScreen":"Ajouter à l'écran d'accueil",
"ios":{
"stepShareBefore":"Appuyez sur le",
"share":"Partager",
"stepShareAfter":"bouton dans la barre inférieure",
"stepChooseBefore":"Choisir",
"stepConfirmBefore":"Confirmez en appuyant sur",
"add":"Ajouter",
"stepConfirmAfter":"en haut à droite"
},
"android":{
"stepOpenMenu":"Ouvrez le menu du navigateur",
"stepConfirm":"confirmer en appuyant sur",
"install":"Installer"
},
"notNow":"Pas maintenant",
"neverAgain":"Ne plus montrer"
},
"vmMetrics":{
"title":"Métriques — {name}",
"type":"Taper",
"noData":"Aucune donnée disponible",
"errors":{
"loading":"Erreur lors du chargement des métriques"
"empty":"Aucune entrée sur cet hôte ne manquait dans la sauvegarde restaurée.",
"showCleanup":"Afficher les commandes de nettoyage manuel",
"description":"Ces entrées existent sur cet hôte mais ne figuraient pas dans la sauvegarde restaurée. Vérifiez-les avant de supprimer quoi que ce soit.",
"vms":"Machines virtuelles créées après la sauvegarde",
"lxcs":"LXC créés après la sauvegarde",
"components":"Composants installés après la sauvegarde",
"uninstallComponentCommand":"# désinstallez {name} manuellement via ProxMenux → Matériel et GPU"
},
"sections":{
"components":"Composants",
"bootWarnings":"Avertissements relatifs au bon fonctionnement du démarrage",
"rollbackDelta":"Delta de restauration",
"log":"Enregistrer"
},
"dataPools":{
"title":"Pools de données ZFS – importation automatique",
"skippedPartialHelp":"Certains disques vdev n'ont pas été trouvés sous /dev/disk/by-id. Le pool n’a pas été importé pour éviter une auto-import dégradée. Réparez les disques ou importez-les manuellement avec zpool import.",
"skippedMissing":"Ignoré (aucun disque présent)",
"skippedMissingHelp":"Aucun des disques de ce pool ne se trouve sur cet hôte. Déplacez les disques ici ou importez le pool depuis un autre hôte.",
"importFailed":"Échec de l'importation",
"importFailedHelp":"ZFS a rejeté l'importation même avec -f. Vérifiez l'importation zpool et le journal ci-dessous.",
"logPath":"Journal: {path}"
},
"history":{
"title":"Restaurations passées",
"description":"Les restaurations sont archivées après le démarrage. Les 20 derniers sont conservés.",
"empty":"Aucune restauration passée enregistrée."
},
"badges":{
"bootWarnings":"Avertissements de démarrage: {count}",
"zfsPools":"Pools ZFS: {count}",
"needAttention":"a besoin d'attention: {count}"
},
"actions":{
"details":"Détails",
"history":"Histoire",
"dismiss":"Rejeter"
},
"summary":{
"guests":"Invités",
"bindMountStubs":"Entrées temporaires de montages bind",
"staleNodesCleaned":"Nœuds obsolètes nettoyés",
"components":"Composants"
}
},
"terminal":{
"connected":"Connecté",
"disconnected":"Déconnecté",
"terminalCount":"{count} / 4 bornes",
"stackedLayout":"Vue empilée (lignes)",
"gridLayout":"Vue en grille 2×2",
"new":"Nouveau",
"search":"Recherche",
"clear":"Clair",
"searchCommands":"Commandes de recherche",
"onlineSource":"En ligne - en utilisant l'API cheat.sh",
"offlineSource":"Hors ligne: à l'aide de commandes locales",
"searchDescription":"Rechercher des commandes Linux et Proxmox",
"searchPlaceholder":"Commandes de recherche… (par exemple tar, docker, qm, systemctl)",
"searchingCheatSh":"Recherche de cheat.sh…",
"poweredByCheatSh":"Propulsé par cheat.sh",
"send":"Envoyer",
"noResults":"Aucun résultat trouvé pour « {query} »",
"tryDifferentSearch":"Essayez une autre commande ou vérifiez l'orthographe.",
"searchAnyCommand":"Rechercher n'importe quelle commande",
"trySearchingFor":"Essayez de rechercher:",
"noExamplesFound":"Aucun exemple trouvé",
"reconnecting":"Reconnexion…",
"reconnected":"Reconnecté avec succès",
"reconnectionFailed":"La reconnexion a échoué",
"connectionClosed":"Connexion fermée",
"terminalTitle":"Borne {number}",
"connectionTimeout":"La connexion a expiré. Vérifiez votre réseau et réessayez.",
"vpnTip":"Si vous utilisez un VPN, assurez-vous que la connexion est stable.",
"websocketError":"Erreur de connexion WebSocket",
"commandDescriptions":"['Liste de tous les nœuds Proxmox', 'Liste des machines virtuelles sur un nœud', 'Liste des conteneurs LXC sur un nœud', 'Liste du stockage sur un nœud', 'Liste des interfaces réseau', 'Liste de toutes les machines virtuelles QEMU/KVM', 'Démarrer une machine virtuelle', 'Arrêter une machine virtuelle', 'Arrêter une machine virtuelle en toute sécurité', 'Afficher l'état de la VM', 'Afficher la VM configuration', 'Créer un instantané de VM', 'Liste de tous les conteneurs LXC', 'Démarrer un conteneur LXC', 'Arrêter un conteneur LXC', 'Ouvrir une console de conteneur LXC', 'Afficher la configuration du conteneur', 'Afficher l'état du stockage', 'Liste du contenu du stockage', 'Tester les performances du système Proxmox', 'Afficher la version Proxmox VE', 'Vérifier l'état du cluster', \"Afficher l'état du cluster\", \"Liste des nœuds du cluster\", \"Afficher l'état du pool ZFS\", \"Liste de tous les pools ZFS\", \"Liste de tous les ensembles de données ZFS\", \"Liste de tous les fichiers avec détails\", \"Changer de répertoire\", \"Créer un répertoire\", \"Supprimer un répertoire de manière récursive\", \"Copier des fichiers ou des répertoires\", \"Déplacer ou renommer des fichiers\", \"Afficher le contenu du fichier\", \"Rechercher un modèle dans un fichier\", \"Rechercher des fichiers par nom\", \"Modifier les autorisations du fichier\", \"Modifier le propriétaire du fichier\", \"Extraire une archive tar.gz\", \"Créer une archive tar.gz\", \"Afficher l'utilisation du disque\", \"Afficher la taille des répertoires\", \"Afficher l'utilisation de la mémoire\", \"Afficher les processus en cours d'exécution\", \"Trouver un processus en cours d'exécution\", \"Forcer l'arrêt d'un processus\", \"Vérifier le service\". statut\", \"Démarrer un service\", \"Arrêter un service\", \"Redémarrer un service\", \"Mettre à jour les packages Debian/Ubuntu\", \"Installer un package Debian/Ubuntu\", \"Supprimer un package\", \"Liste des conteneurs en cours d'exécution\", \"Liste des images Docker\", \"Ouvrir un shell dans un conteneur\", \"Afficher les adresses IP\", \"Tester la connectivité réseau\", \"Obtenir les en-têtes HTTP\", 'Télécharger un fichier', 'Connecter via SSH', 'Copier un fichier via SSH', 'Suivre un fichier journal en temps réel', 'Afficher l'historique des commandes', 'Effacer l'écran du terminal']"
},
"scriptTerminal":{
"processing":"Traitement...",
"controlSequences":"Séquences de contrôle",
"cancelInterrupt":"Annuler/Interrompre",
"exitNano":"Sortie (nano)",
"searchHistory":"Historique de recherche",
"clipboard":"Presse-papiers",
"copySelection":"Copier la sélection",
"paste":"Coller",
"connected":"Connecté",
"connecting":"De liaison",
"disconnected":"Déconnecté",
"online":"En ligne",
"connectingStatus":"De liaison...",
"offline":"Hors ligne",
"websocketError":"Une erreur WebSocket s'est produite",
"connectionClosed":"Connexion fermée",
"completedSuccessfully":"Script terminé avec succès",
"completedWithError":"Script terminé avec le code d'erreur {code}",