{
  "title": "Sécurité et approbations",
  "allowlist": "Liste d’autorisation des outils (lecture seule par défaut ; risque élevé nécessitant une approbation humaine)",
  "llmUntrusted": "La sortie du LLM est toujours non fiable et ne doit jamais s’exécuter directement",
  "pending": "Approbations en attente",
  "runSysInfo": "Exécuter sys.info",
  "none": "Aucune approbation en attente",
  "pillPending": "{{count}} en attente",
  "pillReady": "Prêt",
  "pill2faOff": "2FA désactivée",
  "stat2fa": "2FA",
  "statApi": "API",
  "statApiSessions": "Sessions API",
  "revokeOtherTitle": "Déconnexion {{n}} autre(s) session(s)",
  "statSsh": "SSH",
  "statSshValue": "{{keys}} clés · {{auth}} autorisé",
  "statSshHint": "Identités sortantes / clés de connexion autorisées",
  "statPending": "En attente",
  "on": "Activé",
  "off": "Désactivé",
  "output": "Sortie",
  "tabAccount": "Ma sécurité",
  "tabApiKeys": "Clés API",
  "tabSsh": "SSH",
  "tabApprovals": "Approbations",
  "tabAllowlist": "Outils agent",
  "apiTokenOnce": "Jeton API (affiché une seule fois) :",
  "copiedToken": "Jeton copié",
  "totpTitle": "Double authentification (TOTP)",
  "totpStatus": "Statut : ",
  "totpEnabled": "Activé",
  "totpEnrolledUnconfirmed": "En cours — scannez et confirmez",
  "totpNotSet": "Non défini",
  "totpLead": "La connexion nécessite un code à 6 chiffres de l'application.",
  "totpWhy1": "Un mot de passe volé ne suffit pas pour se connecter sans le code de l'application",
  "totpWhy2": "Les actions sensibles peuvent redemander le TOTP (step-up)",
  "totpWhy3": "Compatible avec Google Authenticator, Authy, NordPass, 1Password et d'autres",
  "totpAppsHint": "Applications suggérées : Google Authenticator, Authy, Microsoft Authenticator, NordPass, 1Password",
  "totpStepsLabel": "Étapes de configuration",
  "totpStepReauth": "Vérifier le mot de passe",
  "totpStepScan": "Scanner le QR / saisir la clé",
  "totpStepConfirm": "Confirmer le code à 6 chiffres",
  "totpStepBackup": "Enregistrer les codes de récupération",
  "totpScanTitle": "Scanner le code QR",
  "totpScanHint": "Ouvrez votre application d'authentification → Ajouter un compte → Scannez ce QR.",
  "totpManualTitle": "Ou saisissez la clé manuellement",
  "totpManualHint": "Si vous ne pouvez pas scanner, choisissez la saisie manuelle dans l'application et collez ce secret Base32.",
  "totpShowOtpauth": "Afficher l'URL otpauth:// (avancé)",
  "totpQrAlt": "Code QR de configuration TOTP",
  "totpQrFailed": "Impossible d'afficher le QR — utilisez la clé secrète ci-dessous",
  "totpSecretCopied": "Secret copié",
  "hideSecret": "Masquer le secret",
  "showSecret": "Afficher le secret",
  "totpEnabledDesc": "Activé.",
  "totpRecoveryRemaining": "{{n}} codes de récupération restants",
  "totpResetSummary": "Réinitialiser ou désactiver la 2FA…",
  "totpResetHint": "La réinitialisation génère un nouveau QR/secret (les anciennes entrées de l'application cessent de fonctionner)",
  "totpDisableCodeHint": "Code à 6 chiffres de l'application ou code de récupération",
  "disable2fa": "Désactiver la 2FA",
  "totpDisabledOk": "Double authentification désactivée",
  "reauthPassword": "Ressaisir le mot de passe",
  "reauthPasswordHint": "Démarrer/réinitialiser la 2FA nécessite à nouveau le mot de passe (protection contre les sessions volées)",
  "reauthPasswordRequired": "Saisissez d'abord votre mot de passe de connexion",
  "needCurrentPassword": "Entrez d'abord le mot de passe actuel",
  "passwordMin8": "Le nouveau mot de passe doit comporter au moins 8 caractères",
  "totpSecretGenerated": "Secret prêt — scannez le QR ou copiez la clé, puis saisissez le code à 6 chiffres de l'application",
  "reset2fa": "Réinitialiser la 2FA",
  "start2fa": "Configurer la 2FA",
  "secretLabel": "Secret : ",
  "confirmCode": "Code à 6 chiffres de l'application",
  "confirmCodeHint": "Après le scan, saisissez les 6 chiffres actuellement affichés dans votre authentificateur.",
  "confirmCodeInvalid": "Saisissez un code de vérification à 6 chiffres",
  "totpEnabledSaveCodes": "2FA activée — enregistrez dès maintenant les codes de récupération ci-dessous (affichés une seule fois)",
  "confirmEnable": "Confirmer et activer",
  "recoveryCodesHint": "Les codes de récupération ne s'affichent qu'une seule fois",
  "copiedRecoveryCodes": "Codes de récupération copiés",
  "downloadRecovery": "Télécharger .txt",
  "recoveryDownloaded": "Fichier des codes de récupération téléchargé",
  "copyAll": "Tout copier",
  "savedClose": "Je les ai enregistrés — terminé",
  "sessionsTitle": "Séances",
  "sessionsDesc": "",
  "revokeOtherSessions": "Déconnecter les autres appareils",
  "revokedOtherSessions": "Déconnexion de {{count}} autre(s) session(s)",
  "noSessions": "Aucune session active",
  "currentSession": "Cet appareil",
  "revoke": "Se déconnecter",
  "passkeyTitle": "Clé d'accès/WebAuthn",
  "passkeyDesc": "",
  "passkeyRegistered": "Passkey enregistrée",
  "webauthnFailed": "Échec WebAuthn",
  "webauthnUnsupported": "Cette page n'a pas d'API WebAuthn. Dans Brave/Chrome/Firefox, évitez les modes restreints ; utilisez un gestionnaire de mots de passe si besoin, et ouvrez le panneau sur un domaine en HTTPS.",
  "webauthnInsecureContext": "Cette page n'est pas un contexte sécurisé ({{origin}}). Les navigateurs exigent HTTPS ou localhost pour les passkeys — sans lien avec Brave/NordPass. Ouvrez plutôt https://votre-domaine.",
  "webauthnIpHost": "Vous avez ouvert le panneau via une IP ({{origin}}). WebAuthn interdit l'IP comme RP ID, donc Brave/NordPass échouera. Associez un domaine + HTTPS (ex. https://panel.example.com) et réessayez.",
  "webauthnEnvOk": "Passkey prête ({{origin}})",
  "webauthnEnvCurrent": "Page actuelle : {{origin}}",
  "webauthnCancelled": "Annulé ou expiré. Réessayez.",
  "webauthnUnavailableHint": "La passkey nécessite HTTPS + domaine.",
  "registerPasskey": "Enregistrer une passkey",
  "noPasskey": "Aucune passkey",
  "passkeyVerifyOk": "Passkey vérifiée (step-up effectué)",
  "verifyFailed": "Échec de la vérification",
  "verifyWithPasskey": "Vérifier avec passkey (step-up)",
  "passkeyHint": "Pour le step-up à haut risque ; nécessite HTTPS + domaine.",
  "devicesTitle": "Appareils / sauvegarde",
  "devicesDesc": "",
  "viewTrustedDevices": "Voir les appareils de confiance",
  "trustedDevicesCount": "Appareils de confiance : {{count}}",
  "revokeAllDevices": "Révoquer tous les appareils",
  "revokedAllDevices": "Tous les appareils de confiance ont été révoqués",
  "export2faBackup": "Exporter la sauvegarde 2FA chiffrée",
  "fail2banSnippetMsg": "Extraits fail2ban : {{written}} — {{notes}}",
  "generatefail2ban": "Générer les extraits fail2ban",
  "generateFail2ban": "Générer les extraits fail2ban",
  "adminPolicyTitle": "Politique 2FA admin",
  "adminPolicyDesc": "",
  "requireAdmin2fa": "Exiger la 2FA admin",
  "strictAdmin2fa": "Strict : bloquer la connexion sans 2FA",
  "confirmTotpPolicy": "Confirmer le TOTP (lors d'un changement de politique)",
  "confirmTotpPolicyHint": "L'activation de la politique nécessite un step-up",
  "totp6digitPlaceholder": "Code à 6 chiffres",
  "policyUpdated": "Politique de sécurité mise à jour",
  "savePolicy": "Enregistrer la politique",
  "recentProbe": "Sonde récente",
  "apiKeysTitle": "Clés d'accès API",
  "apiKeysDesc": "",
  "createKey": "+ Créer une clé",
  "colName": "Nom",
  "colPrefix": "Préfixe",
  "colCreated": "Créé",
  "apiKeysEmpty": "Aucune clé API pour l'instant",
  "apiKeysEmptyHint": "Créez depuis la barre d'outils ; puis appelez l'API avec un jeton Bearer",
  "approve": "Approuver",
  "allowlistTitle": "Outils agent ({{count}})",
  "allowlistEmpty": "Aucun outil dans le catalogue",
  "totpStatusLoadFailed": "Impossible de charger l’état 2FA",
  "createApiKeyTitle": "Créer une clé API",
  "createApiKeyDesc": "Le jeton complet n'est affiché qu'une seule fois après la création",
  "createKeyBtn": "Créer la clé",
  "apiKeyNameHint": "Facile à reconnaître, ex. CI / script de sauvegarde",
  "apiKeyScope": "Portée",
  "apiKeyScopeHint": "read = lecture seule (pas de mutation complète)",
  "scopeFull": "full (API complète)",
  "scopeRead": "read (lecture seule)",
  "apiKey2faHint": "Si la 2FA est activée, la création d'une clé nécessite un code de vérification (step-up).",
  "apiKeyCreated": "Clé API créée",
  "export2faBackupTitle": "Exporter la sauvegarde 2FA",
  "createApiKeyStepUp": "Créer une clé API · step-up",
  "enterTotpCode": "Saisir le code TOTP actuel",
  "export": "Exporter",
  "backupCopied": "Sauvegarde chiffrée copiée dans le presse-papiers (conserver hors ligne)",
  "digit6Placeholder": "Code à 6 chiffres",
  "ssh": {
    "workspaceTitle": "Espace de travail SSH",
    "workspaceDesc": "Sélectionnez d'abord un job",
    "subOutbound": "Identités sortantes",
    "subOutboundHint": "Clés privées pour les connexions sortantes panel/projet",
    "subLogin": "Authentification de connexion",
    "subLoginHint": "Qui peut se connecter en SFTP/SSH",
    "sub2fa": "2FA de connexion",
    "sub2faHint": "TOTP SSH (≠ 2FA du panel)",
    "subSshd": "sshd système",
    "subSshdHint": "Paramètres SFTP de l'utilisateur projet",
    "jobOutboundTitle": "Connexion sortante",
    "jobOutboundDesc": "Créer des clés d'identité sortantes · pair panel / git projet",
    "jobLoginTitle": "Autoriser la connexion entrante",
    "jobLoginDesc": "Enregistrer les clés publiques dans le home projet · authorized_keys",
    "job2faTitle": "La connexion SSH nécessite la 2FA",
    "job2faDesc": "TOTP utilisateur Linux (distinct de la 2FA du panel)",
    "jobSshdTitle": "Activer le SFTP système",
    "jobSshdDesc": "Installer les extraits Match sshd (utilisateurs projet)",
    "purposePanel": "Panel vers d'autres hôtes",
    "purposeUser": "Sortant utilisateur projet",
    "purposeUnbound": "Objectif non défini",
    "purposePanelHint": "Pair de cluster, scp de sauvegarde, sondes distantes",
    "purposeUserHint": "Utilisateur Linux projet git / scp / scripts",
    "purposeDefaultHint": "Lier plus tard",
    "statusStored": "Stocké",
    "statusInstalled": "Sur disque",
    "statusVerified": "Vérifié",
    "statusMissing": "Absent du disque",
    "statusRetired": "Retiré",
    "statusError": "Erreur",
    "actionInstall": "Écrire sur disque",
    "actionTest": "Tester la connexion",
    "actionCopyPub": "Copier la clé publique",
    "pipelineStored": "Stocké",
    "pipelineInstalled": "Sur disque",
    "pipelineVerified": "Vérifié",
    "progressAria": "Progression",
    "loginTitle": "Autorisation de connexion (clés publiques)",
    "loginDesc": "Qui peut entrer",
    "loginAdd": "Ajouter une clé publique de connexion",
    "loginEmpty": "Aucune clé publique de connexion pour l'instant",
    "loginEmptyHint": "Collez une clé publique d'ordinateur portable ou de CI, liez-la à un utilisateur projet pour SFTP/SSH (nécessite un extrait sshd)",
    "loginAddFirst": "Ajouter la première clé publique de connexion",
    "boundProject": "Projet",
    "unboundProject": "Aucun projet",
    "loginRemoved": "Clé publique supprimée",
    "remove": "Supprimer",
    "loginModalTitle": "Autoriser une clé publique",
    "loginModalDesc": "Après sélection d’un projet, la clé est écrite dans le répertoire home/ de cet utilisateur Linux",
    "addAuth": "Ajouter une autorisation",
    "selectOption": "— Sélectionner —",
    "publicKey": "Clé publique",
    "publicKeyHint": "Collez la ligne complète, ex. ssh-ed25519 AAAA… commentaire",
    "commentOptional": "Commentaire (facultatif)",
    "commentPlaceholder": "ordinateur portable / CI",
    "loginNeedProject": "Créez d’abord un projet. La liaison fonctionne mieux lorsque l’utilisateur système est prêt.",
    "loginNeedPub": "Sélectionnez un projet et collez une clé publique commençant par ssh-",
    "loginNoProjects": "Aucun projet. Autorisez un utilisateur Linux existant (root / testeur) ci-dessous. L'écriture de /root/.ssh nécessite YSK_EXECUTE=1.",
    "loginLinuxHint": "Utilisé lorsqu'il n'y a pas de projet. Exemple : root ou testeur.",
    "loginAdded": "Ajouté",
    "sshdTitle": "SFTP utilisateur projet (sshd)",
    "sshdDesc": "Autoriser les utilisateurs projet ysks_* / ysk_* à utiliser SFTP avec des clés publiques",
    "sshdStep1": "Ajoutez des clés publiques sous Authentification de connexion pour les projets",
    "sshdStep2": "Prévisualisez et installez ici les extraits Match système",
    "sshdStep3": "L’installation nécessite les droits d’exécution système ; tentative de rechargement de sshd",
    "sshdPreview": "Aperçu de la configuration",
    "loadingSnippet": "(Chargement…)",
    "reloadedCopied": "Rechargé ; extrait copié dans le presse-papiers",
    "reloadAndCopy": "Recharger et copier",
    "installedOk": "Installé",
    "installToSystem": "Installer sur le système",
    "sshdManualHint": "Si l’exécution est bloquée, lancez le plan de contrôle avec les privilèges, ou placez l’extrait sous",
    "outboundTitle": "Clés d’identité sortantes",
    "outboundDesc": "Clés privées chiffrées dans le plan de contrôle",
    "outboundAdd": "Ajouter une identité sortante",
    "filterActive": "Actif",
    "filterPanel": "Panneau",
    "filterUser": "Utilisateur du projet",
    "filterRetired": "Retiré",
    "filterAll": "Tous",
    "searchIdentity": "Rechercher un nom ou une empreinte…",
    "searchIdentityAria": "Rechercher des identités",
    "identityCount": "{{count}} identités",
    "identityList": "Identités",
    "outboundEmpty": "Aucune identité sortante pour l’instant",
    "outboundEmptyFilter": "Aucun élément correspondant",
    "outboundEmptyHint": "Créez une clé en ~30 s : choisissez l’usage → nom → terminé. Pour pair / sauvegarde / git.",
    "outboundEmptyFilterHint": "Essayez de modifier les filtres ou d’effacer la recherche",
    "outboundAddFirst": "Ajouter la première identité sortante",
    "userPrefix": "Utilisateur {{user}}",
    "createFailed": "Échec de la création",
    "identityCreatedOnce": "Identité créée (clé privée affichée une seule fois)",
    "writtenToDisk": "Écrite sur le disque",
    "cannotWriteNeedExecute": "Impossible d’écrire sur le système : activez l’exécution (YSK_EXECUTE)",
    "notDone": "Non terminé",
    "installFailed": "Échec de l’installation",
    "testPassed": "Connexion OK",
    "testFailed": "Échec de la connexion",
    "testError": "Échec du test",
    "copiedPubPaste": "Clé publique copiée — collez-la dans authorized_keys du pair ou une clé de déploiement Git",
    "deletedNamed": "« {{name}} » supprimé",
    "rotated": "Rotation effectuée : ancienne clé retirée, nouvelle clé créée",
    "detailStatus": "Statut",
    "detailPurpose": "Usage",
    "detailLinuxUser": "Utilisateur Linux",
    "detailDiskPath": "Chemin disque",
    "detailLastTest": "Dernier test",
    "suggestFlow": "Suggestion : enregistrer → écrire sur le disque → placer la clé publique sur le pair → tester la connexion",
    "suggestFlowPrefix": "Suggestion : enregistrer → écrire sur le disque → placer ",
    "suggestFlowSuffix": " sur le pair → tester la connexion",
    "publicKeyStrong": "clé publique",
    "copiedPub": "Clé publique copiée",
    "allowLocalLogin": "Autoriser la connexion locale avec cette clé",
    "localLoginOk": "Clé publique ajoutée à l'autorisation de connexion locale",
    "testingConnection": "Test de la connexion…",
    "rotateKey": "Rotation de la clé",
    "wizStepPurpose": "À quoi sert cette clé ?",
    "wizStepProject": "Quel projet ?",
    "wizStepPanelConfirm": "Confirmer le trafic sortant du panneau",
    "wizStepName": "Nom et options",
    "wizStepPurposeDesc": "Choisissez l'usage pour aligner la liste et le chemin d'installation",
    "wizStepProjectDesc": "La clé est liée à l'utilisateur Linux et au home de ce projet",
    "wizStepPanelDesc": "La clé privée reste dans les secrets du plan de contrôle pour scp/ssh vers d'autres hôtes",
    "wizStepNameDesc": "Nom pour l'identification ; les options avancées peuvent attendre",
    "prevStep": "Retour",
    "nextStep": "Suivant",
    "createIdentity": "Créer l'identité",
    "purposePanelTitle": "Panel vers d'autres hôtes",
    "purposePanelSub": "Pair de cluster, sauvegarde distante, sondes",
    "purposePanelRec": "Recommandé pour la plupart des opérations d'administration",
    "purposeUserTitle": "Sortant utilisateur projet",
    "purposeUserSub": "git pull, scp de scripts projet",
    "purposeUserPath": "Écrit dans home/.ssh du projet",
    "selectProject": "— Sélectionner un projet —",
    "noProjectsHint": "Aucun projet pour l'instant — créez d'abord un projet et un utilisateur système",
    "afterCreatePub": "Après la création, placez la ",
    "afterCreatePubMid": " sur le ",
    "afterCreatePubEnd": ", puis utilisez Tester la connexion.",
    "privKeyStayLocal": "La clé privée reste sur ce plan de contrôle ; jamais dans les listes ni les journaux.",
    "displayName": "Nom d'affichage",
    "displayNameHint": "ex. : peer-prod, myapp-git",
    "algorithm": "Algorithme",
    "algoSuggested": "Recommandé",
    "algoLegacy": "Systèmes hérités",
    "installImmediately": "Écrire sur le disque immédiatement après la création",
    "installImmediatelyHint": "(nécessite l'exécution système ; sinon vous serez informé que l'application est impossible)",
    "savePrivTitle": "Enregistrer la clé privée maintenant",
    "savePrivDesc": "Après fermeture, la clé privée complète ne sera plus affichée",
    "copiedPriv": "Clé privée copiée",
    "copyPriv": "Copier la clé privée",
    "nextInstallDisk": "Suivant : écrire sur le disque",
    "savedCloseBtn": "Enregistré — fermer",
    "privKeyOnce": "Clé privée (cette fois uniquement)",
    "privSavedConfirm": "J'ai stocké la clé privée en sécurité (gestionnaire de mots de passe / sauvegarde hors ligne)",
    "testConnTitle": "Tester la connexion",
    "testConnDesc": "Essayer ssh … true avec cette identité. Le succès signifie seulement que cette cible est joignable.",
    "startTest": "Lancer le test",
    "testTarget": "Cible",
    "testTargetHint": "Format user@host ou user@host:port",
    "deleteIdentityTitle": "Supprimer l'identité ?",
    "rotateKeyTitle": "Rotation de la clé ?",
    "deleteIdentityDesc": "Supprimer « {{name}} » et tenter de retirer le fichier de clé privée sur le disque",
    "rotateKeyDesc": "« {{name}} » sera retirée et une nouvelle clé créée. Mettez à jour authorized_keys sur les pairs.",
    "rotate": "Rotation",
    "enrollStatusSecret": "Secret généré",
    "enrollStatusConfirmed": "Application confirmée",
    "enrollStatusWritten": "Écrit dans home",
    "enrollStatusRetired": "Retiré",
    "needProjectOrUser": "Sélectionnez un projet ou saisissez un nom d'utilisateur Linux",
    "enrollFailed": "Échec de l'enrôlement",
    "totpGenerated": "TOTP réservé à SSH généré (séparé de la 2FA du panneau sauf synchronisation)",
    "confirmed": "Confirmé",
    "codeWrong": "Code incorrect",
    "gaWritten": "Fichier .google_authenticator écrit",
    "needExecute": "Nécessite l'exécution système activée",
    "ssh2faTitle": "Second facteur de connexion SSH",
    "ssh2faDesc": "Protège la connexion ssh des utilisateurs Linux",
    "ssh2faStep1": "Enrôler le TOTP pour un utilisateur Linux (scanner le QR)",
    "ssh2faStep2": "Confirmer le code à 6 chiffres de l'app",
    "ssh2faStep3": "Écrire le fichier home",
    "ssh2faStep4": "Installer le module PAM et fusionner les extraits (ci-dessous)",
    "pkgLabel": "Paquet {{name}}",
    "pkgStatus": "Forfait {{status}}",
    "pamStatus": "PAM {{status}}",
    "kbdStatus": "clavier interactif sshd {{status}}",
    "light": {
      "green": "d'accord",
      "yellow": "vérifier",
      "red": "manquant"
    },
    "enrollForUser": "Enrôler la 2FA SSH pour l'utilisateur",
    "ssh2faEmpty": "Aucun utilisateur Linux n'a encore de 2FA SSH",
    "ssh2faEmptyHint": "Préférez d'abord la connexion par clé ;",
    "startEnroll": "Démarrer l'enrôlement",
    "fromPanelBadge": "Identique au panneau",
    "enterCode": "Saisir le code",
    "rewriteHome": "Réécrire le fichier home",
    "writeHome": "Écrire home",
    "retiredOk": "Retiré",
    "retire": "Retirer",
    "pamTitle": "Système : PAM / sshd (manuel ou appliquer si autorisé)",
    "pamDesc": "nullok évite de verrouiller les utilisateurs sans fichiers. Fichier écrit ≠ TOTP requis.",
    "pamSnippet": "Extrait PAM (fusionner dans /etc/pam.d/sshd)",
    "sshdHint": "Indications sshd",
    "rescueUsers": "Utilisateurs de secours (séparés par des virgules, jamais dans Match strict)",
    "strictPreview": "Aperçu Match strict (publickey+TOTP, mot de passe désactivé)",
    "copiedPam": "Extrait PAM copié",
    "copyPam": "Copier PAM",
    "applyStrict": "Appliquer Strict au système",
    "pamPkgHint": "Paquet : ",
    "pamRescueHint": ". Conservez au moins un admin de secours sans fichier 2FA (root par défaut).",
    "enrollModalTitle": "Enrôler la 2FA SSH",
    "enrollModalDesc": "Par défaut : secret indépendant (non partagé avec le panneau)",
    "generateShowSecret": "Générer et afficher le secret",
    "projectSuggested": "Projet (recommandé)",
    "orManualUser": "— ou saisir l'utilisateur manuellement —",
    "linuxUser": "Utilisateur Linux",
    "advancedSharePanel": "Avancé : utiliser le secret TOTP de l'opérateur actuel du panneau (tapez SHARED pour confirmer)",
    "setupAuthTitle": "Configurer l'authenticator",
    "setupAuthDesc": "Scannez ou saisissez le secret, puis confirmez avec le code à 6 chiffres de l'app",
    "later": "Plus tard",
    "confirmCodeBtn": "Confirmer le code",
    "secretBase32": "Secret (base32)",
    "copiedSecret": "Secret copié",
    "copySecret": "Copier le secret",
    "scanThenCode": "Si déjà scanné, saisissez le code à 6 chiffres actuel.",
    "verifyCode": "Code de vérification",
    "applyStrictStepUp": "Appliquer Strict · step-up",
    "enterPanelTotp": "Saisir le code TOTP actuel du panneau",
    "applyBtn": "Appliquer",
    "appliedOk": "Appliqué",
    "sharePanelTitle": "Partager le secret TOTP du panneau ?",
    "sharePanelDesc": "Risque élevé. Tapez SHARED pour confirmer.",
    "confirmString": "Chaîne de confirmation",
    "enableShare": "Activer le partage",
    "invalidPub": "Collez une ligne complète de clé publique OpenSSH (ssh-ed25519 / ssh-rsa / ecdsa…).",
    "dryRunOk": "Aperçu terminé. Vérifiez le contenu ci-dessous.",
    "strictDryRun": "Aperçu du mode strict",
    "errorNoDetail": "Échec du test (aucun détail)",
    "strictBlocked": "Le paquet ou PAM n’est pas prêt ; l’application Strict est désactivée.",
    "privCloseWithoutAck": "Fermé. La clé privée ne sera plus affichée ; générez-en un nouveau si vous ne l’avez pas enregistré."
  },
  "sessionsActive": "Sessions actives",
  "sessionsOther": "Autres appareils",
  "sessionsHint": "",
  "noSessionsHint": "Lorsque vous vous reconnecterez, cet appareil apparaîtra ici.",
  "sessionOtherBadge": "Autre",
  "sessionThisDevice": "Vous êtes ici",
  "sessionDeviceOn": "{{browser}} sur {{os}}",
  "sessionIpUnknown": "IP inconnue",
  "sessionLastActive": "Dernière activité {{when}}",
  "sessionStarted": "Connecté {{when}}",
  "sessionIdShort": "ID {{id}}…",
  "sessionJustNow": "à l’instant",
  "sessionMinAgo": "il y a {{n}} min",
  "sessionHourAgo": "il y a {{n}} h",
  "sessionDayAgo": "il y a {{n}} j",
  "revokeSessionTitle": "Déconnecter cet appareil ?",
  "revokeSessionDesc": "Terminer la session pour {{device}} ({{ip}}). Cet appareil devra se reconnecter.",
  "revokeOthersTitle": "Déconnecter tous les autres appareils ?",
  "revokeOthersDesc": "Cela mettra fin à {{count}} autre(s) session(s). Votre navigateur actuel reste connecté.",
  "sessionRevoked": "Session déconnectée",
  "mySecurityHint": "",
  "policyTotpHint": "Politique du site : chaque administrateur doit activer sa propre 2FA (QR individuel)",
  "requireUser2fa": "Exiger la 2FA pour tous les utilisateurs du panneau",
  "changePasswordTitle": "Changer le mot de passe de connexion",
  "currentPassword": "Mot de passe actuel",
  "newPassword": "Nouveau mot de passe",
  "confirmNewPassword": "Confirmer le nouveau mot de passe",
  "passwordMismatch": "Les nouveaux mots de passe ne correspondent pas.",
  "changePassword": "Changer le mot de passe",
  "passwordChanged": "Mot de passe mis à jour.",
  "strictNeedsEnrolled": "Au moins un administrateur doit avoir la 2FA avant d’activer Strict.",
  "policyTotpNeedSelf": "Activez d’abord la 2FA sur ce compte ; sinon le code de confirmation ne peut pas être saisi.",
  "policyNoTotpHint": "This account has no 2FA yet — saving policy does not need a TOTP. Set up 2FA above if you want to require it for others.",
  "policyNeedSelf2fa": "Activez d'abord 2FA sur ce compte, puis confirmez avec un code TOTP",
  "revokeAllDevicesTitle": "Révoquer tous les appareils mémorisés : vous et les autres administrateurs devez à nouveau vérifier 2FA",
  "sessionCli": "CLI",
  "sessionApi": "API",
  "fail2banSnippetTitle": "Extrait fail2ban",
  "fail2banSnippetEmpty": "Aucun extrait n’a été écrit.",
  "trustedDevicesTitle": "Appareils de confiance",
  "noTrustedDevices": "Aucun appareil de confiance.",
  "strictConfirmTitle": "Activer la 2FA Strict ?",
  "strictConfirmDesc": "Les utilisateurs sans 2FA seront refusés. Confirmez que vous avez un TOTP ou une Passkey qui fonctionne.",
  "revokeDevicesTitle": "Révoquer les appareils de confiance ?",
  "revokeDevicesDesc": "Les navigateurs mémorisés devront refaire la 2FA.",
  "approvalsHint": "Les approbations apparaissent lorsqu’un outil à haut risque nécessite un second opérateur. Configurez les droits dans Utilisateurs → Autorisations.",
  "allowlistReadonly": "Catalogue d’outils agent (lecture seule). Les capacités se règlent dans Utilisateurs → Autorisations.",
  "colTool": "Outil",
  "colAllowed": "Autorisé",
  "colRisk": "Risque",
  "colApproval": "Approbation",
  "risk": {
    "low": "Faible",
    "medium": "Moyen",
    "high": "Élevé",
    "critical": "Critique"
  },
  "confirmDeleteApiKey": "Supprimer cette clé API ?",
  "confirmDeleteApiKeyDesc": "«{{name}}» arrêtera l'authentification. Cela ne peut pas être annulé."
}
