{
  "cat": {
    "core": "Plan de contrôle",
    "security": "Autorisations et sécurité",
    "binaries": "Logiciels système",
    "hosting": "Durées d'exécution",
    "dns": "DNS",
    "email": "E-mail",
    "isolation": "Isolation de projet",
    "ops": "Opérations"
  },
  "level": {
    "ready": "Prêt",
    "degraded": "Dégradé",
    "missing": "Manquant",
    "unknown": "Inconnu"
  },
  "severity": {
    "critical": "Critique",
    "recommended": "Recommandé",
    "optional": "Facultatif"
  },
  "fix": "Corriger",
  "passed": "Réussi",
  "checkFailed": "Échec du contrôle de préparation",
  "gatePass": "Gate franchie · {{pct}} %",
  "gateFail": "Non prêt · {{pct}} %",
  "gateBlocked": "Non réussi · {{n}} manquant",
  "executeOn": "Activé",
  "executeOff": "Désactivé",
  "blockers": "Bloquants",
  "blockersHint": "Les bloqueurs sont le sous-ensemble critique de Manquants — pas des contrôles en plus.",
  "requireAdminTotp": "exiger une politique administrateur 2FA",
  "listenBind": "écouter l'adresse",
  "item": {
    "admin2fa": "Administrateur à deux facteurs"
  },
  "dataDirPerms": "autorisations du répertoire de données du panneau",
  "mode750": "mode 750",
  "totalChecks": "Tous les chèques",
  "totalChecksHint": "Prêt + dégradé + manquant = ce total. Les bloqueurs constituent le sous-ensemble manquant critique.",
  "probing": "Sondage…",
  "reprobe": "Re-sonder",
  "exportReport": "Exporter le rapport",
  "exportStarted": "Téléchargement {{name}}",
  "firstBlocker": "Corriger le premier bloquant",
  "viewRecommended": "Voir les recommandés",
  "loadingProbe": "Sondage des capacités de l'hôte…",
  "priorityTab": "Corrections prioritaires",
  "checklistTab": "Liste de contrôle complète",
  "summaryTab": "Résumé et raccourcis",
  "priorityTitle": "Corrections prioritaires",
  "prioritySub": "Traiter dans l'ordre ; relancer le sondage après avoir levé les bloquants",
  "nItems": "{{count}} éléments",
  "noHardBlockers": "Aucun bloquant critique",
  "noHardBlockersTitle": "Aucun bloquant critique",
  "prodGate": "Gate de production",
  "gatePassed": "validé",
  "gateMaybePerm": "peut encore échouer en raison des permissions",
  "viewDegradedHint": "Examiner les recommandations dégradées (mail, DNS, runtimes optionnels).",
  "viewDegraded": "Voir les dégradés",
  "fullChecklist": "Liste de contrôle complète",
  "showing": "Affichage de {{shown}} / {{total}}",
  "filterAria": "Filtre d'état",
  "all": "Tous",
  "category": "Catégorie",
  "allCategories": "Toutes les catégories",
  "searchPh": "Titre, détail, id, indice de correction…",
  "quickCatAria": "Catégories rapides",
  "noMatchTitle": "Aucun élément correspondant",
  "noMatchDesc": "Effacer la recherche ou modifier les filtres.",
  "resetFilters": "Réinitialiser les filtres",
  "summary": "Résumé",
  "shortcuts": "Raccourcis",
  "opsShortcutsAria": "Raccourcis Ops",
  "scHost": "Paramètres de l'hôte",
  "scHostD": "nom d'hôte · puissance · NTP",
  "scUnit": "Unité du plan de contrôle",
  "scUnitD": "systemd installer/activer",
  "scServices": "Matrice des services",
  "scServicesD": "nginx · BD · cycle de vie",
  "scMetrics": "Métriques de l'hôte",
  "scMetricsD": "charge · mémoire · alertes",
  "scProtection": "Centre de défense",
  "scProtectionD": "réponse · UFW · fail2ban",
  "policyNote": "Politique : mail PTR / port 25 / DNS du registrar ne sont jamais marqués automatiquement comme terminés. HTTP 503 = pas prêt mais rapport complet (pas un faux succès).",
  "notProbedTitle": "Pas encore sondé",
  "notProbedDesc": "Cliquez sur « Re-probe » pour lancer une vérification de disponibilité en lecture seule.",
  "runCheck": "Lancer la vérification de disponibilité",
  "reportFormatError": "Format de rapport de disponibilité invalide",
  "checkFailedHttp": "Échec de la vérification de disponibilité ({{status}})",
  "itemAdminPassword": "Robustesse du mot de passe administrateur",
  "itemAdminPasswordWeak": "{{count}} admin(s) signalé(s) must_change_password / bootstrap non sécurisé — modifier avant la production",
  "itemAdminPasswordOk": "Aucun indicateur bootstrap/mot de passe faible sur les comptes admin",
  "itemAdminPasswordFix": "Changer le mot de passe admin (Sécurité / Utilisateurs)",
  "itemListenBind": "Liaison d'écoute du plan de contrôle",
  "itemListenBindPublic": "L'écoute peut être publique (0.0.0.0/::). Préférez 127.0.0.1 + reverse proxy / pare-feu.",
  "itemListenBindLoopback": "Préférer la liaison loopback (par défaut 127.0.0.1)",
  "itemDataDirPerms": "Permissions dataDir",
  "itemDataDirWorldW": "chmod 750 (ou 700) dataDir ; chown vers l'utilisateur du panneau",
  "itemDataDirOtherR": "Préférez chmod 750 dataDir pour que les autres utilisateurs ne puissent pas lire le JSON du plan de contrôle",
  "itemRustToolchain": "Chaîne d'outils Rust",
  "itemWebBuildFix": "Cliquez sur « Fix now » pour compiler l'interface Web (nécessite le monorepo sur cet hôte), ou exécutez : pnpm --filter ysk-server-web build",
  "itemWebBuildManual": "Pas de monorepo ni de SPA empaquetée sur cet hôte — la correction en un clic est indisponible. Sur une machine avec les sources : pnpm --filter ysk-server-web build, puis copiez apps/web/dist/* dans dataDir/web (p. ex. /var/lib/ysk-server/web), ou définissez YSK_WEB_ROOT et redémarrez.",
  "itemStateStore": "Stockage d'état du plan de contrôle",
  "itemStateStoreSqliteHint": "Optionnel : YSK_STORE=sqlite pour le magasin de documents WAL",
  "itemBackupFreshness": "Dernière exécution de sauvegarde complète",
  "itemBackupNone": "Aucun last_backup_run enregistré — exécutez backup all ou planifiez",
  "itemBackupFix": "sauvegarde du serveur ysk : planification de sauvegarde --install",
  "itemFleetSessions": "Sessions d'agent de flotte",
  "itemFleetNone": "Optionnel pour hôte unique ; multi-edge nécessite agent run + heartbeat",
  "itemFleetNoHb": "Sessions enregistrées mais sans heartbeat — démarrer l'agent edge",
  "itemPdnsutil": "pdnsutil (PowerDNS)",
  "apachePort80Title": "Apache contre public :80",
  "apachePort80Detail": "Apache écoute sur :80 et Nginx n'est pas sur HTTP public — conflit avec la topologie Nginx en edge.",
  "apachePort80Both": "Apache et Nginx apparaissent tous deux sur :80 — rattachez Apache à 127.0.0.1:8080.",
  "apachePort80Ok": "Apache est en cours d'exécution mais n'occupe pas seul le :80 public (topologie OK).",
  "apachePort80Fix": "Des assistants de rebind d'installation existent ; désactivez les vhosts Apache sur 80 ou vérifiez avec ss -lntp après rechargement.",
  "fixNow": "Corriger maintenant",
  "fixFailed": "Échec de la correction",
  "fixDone": "Permissions dataDir renforcées (chmod 750)",
  "fixDoneWebUi": "Interface Web compilée / installée",
  "rootLabel": "Superutilisateur",
  "techDetails": "Détails techniques",
  "missingOwner": "Aucun propriétaire de panel attribué (attribution de quota de package)",
  "notOsProvisioned": "Utilisateur/domicile du système d'exploitation non encore provisionné",
  "isolationPendingOs": "Identique au statut du projet : utilisateur du système d'exploitation en attente. Ouvrez l'isolation pour provisionner l'utilisateur du système et la maison.",
  "ondrejNone": "Aucune source PHP ondrej Launchpad détectée",
  "ondrejFound": "Sources ondrej/php héritées trouvées en conflit avec packages.sury.org : {{paths}}",
  "ondrejTitle": "PHP apt source (ondrej résiduel)",
  "systemctlActive": "Le service est en cours d'exécution",
  "systemctlStatus": "Statut du service : {{status}}",
  "binInPath": "{{bin}} dans CHEMIN",
  "leftoverApache": "Site par défaut restant d'Apache",
  "leftoverVsftpd": "L'unité vsftpd a échoué",
  "leftoverCli": "CLI restante périmée",
  "leftoverNginx": "Nginx fourre-tout manquant",
  "leftoverDovecot": "Dovecot TLS indique un certificat manquant",
  "leftoverOther": "Restes d’hôte",
  "leftoverApply": "Les restes s'appliquent",
  "isolationOwnerDegrades": "L'absence de Owner_user_id affecte l'attribution du quota de package : le statut est dégradé, pas prêt."
}
