{
  "credentials": {
    "credentialsViewer": "Visionneuse d'identifiants",
    "manageYourSSHCredentials": "Gérez vos identifiants SSH en toute sécurité",
    "addCredential": "Ajouter un identifiant",
    "createCredential": "Créer un identifiant",
    "editCredential": "Modifier l'identifiant",
    "viewCredential": "Afficher l'identifiant",
    "duplicateCredential": "Dupliquer l'identifiant",
    "deleteCredential": "Supprimer l'identifiant",
    "updateCredential": "Mettre à jour l'identifiant",
    "credentialName": "Nom de l'identifiant",
    "credentialDescription": "Description",
    "username": "Nom d'utilisateur",
    "searchCredentials": "Rechercher des identifiants...",
    "selectFolder": "Sélectionner un dossier",
    "selectAuthType": "Sélectionner le type d'authentification",
    "allFolders": "Tous les dossiers",
    "allAuthTypes": "Tous les types d'authentification",
    "uncategorized": "Non classé",
    "totalCredentials": "Total",
    "keyBased": "Basé sur une clé",
    "passwordBased": "Basé sur un mot de passe",
    "folders": "Dossiers",
    "noCredentialsMatchFilters": "Aucun identifiant ne correspond à vos filtres",
    "noCredentialsYet": "Aucun identifiant créé pour le moment",
    "createFirstCredential": "Créez votre premier identifiant",
    "failedToFetchCredentials": "Échec du chargement des identifiants",
    "credentialDeletedSuccessfully": "Identifiant supprimé avec succès",
    "failedToDeleteCredential": "Échec de la suppression de l'identifiant",
    "confirmDeleteCredential": "Voulez-vous vraiment supprimer l'identifiant \"{{name}}\" ?",
    "credentialCreatedSuccessfully": "Identifiant créé avec succès",
    "credentialUpdatedSuccessfully": "Identifiant mis à jour avec succès",
    "failedToSaveCredential": "Échec de l'enregistrement de l'identifiant",
    "failedToFetchCredentialDetails": "Échec de la récupération des détails de l'identifiant",
    "failedToFetchHostsUsing": "Échec de la récupération des hôtes utilisant cet identifiant",
    "loadingCredentials": "Chargement des identifiants...",
    "retry": "Réessayer",
    "noCredentials": "Aucun identifiant",
    "noCredentialsMessage": "Vous n'avez encore ajouté aucun identifiant. Cliquez sur \"Ajouter un identifiant\" pour commencer.",
    "sshCredentials": "Identifiants SSH",
    "credentialsCount": "{{count}} identifiants",
    "refresh": "Actualiser",
    "passwordRequired": "Le mot de passe est requis",
    "sshKeyRequired": "La clé SSH est requise",
    "credentialAddedSuccessfully": "L'identifiant \"{{name}}\" a été ajouté avec succès",
    "general": "Général",
    "description": "Description",
    "folder": "Dossier",
    "tags": "Labels",
    "addTagsSpaceToAdd": "Ajouter des labels (appuyez sur espace pour valider)",
    "password": "Mot de passe",
    "key": "Clé",
    "sshPrivateKey": "Clé privée SSH",
    "upload": "Importer",
    "updateKey": "Mettre à jour la clé",
    "keyPassword": "Mot de passe de la clé",
    "keyType": "Type de clé",
    "keyTypeRSA": "RSA",
    "keyTypeECDSA": "ECDSA",
    "keyTypeEd25519": "Ed25519",
    "basicInfo": "Informations de base",
    "authentication": "Authentification",
    "organization": "Organisation",
    "basicInformation": "Informations de base",
    "basicInformationDescription": "Indiquez les informations de base pour cet identifiant",
    "authenticationMethod": "Méthode d'authentification",
    "authenticationMethodDescription": "Choisissez comment vous souhaitez vous authentifier sur les serveurs SSH",
    "organizationDescription": "Organisez vos identifiants avec des dossiers et des labels",
    "enterCredentialName": "Saisissez le nom de l'identifiant",
    "enterCredentialDescription": "Saisissez une description (facultatif)",
    "enterUsername": "Saisissez le nom d'utilisateur",
    "nameIsRequired": "Le nom de l'identifiant est requis",
    "usernameIsRequired": "Le nom d'utilisateur est requis",
    "authenticationType": "Type d'authentification",
    "passwordAuthDescription": "Utiliser l'authentification par mot de passe",
    "sshKeyAuthDescription": "Utiliser l'authentification par clé SSH",
    "passwordIsRequired": "Le mot de passe est requis",
    "sshKeyIsRequired": "La clé SSH est requise",
    "sshKeyType": "Type de clé SSH",
    "privateKey": "Clé privée",
    "enterPassword": "Saisissez le mot de passe",
    "enterPrivateKey": "Saisissez la clé privée",
    "keyPassphrase": "Phrase secrète de la clé",
    "enterKeyPassphrase": "Saisissez la phrase secrète (facultatif)",
    "keyPassphraseOptional": "Facultatif : laissez vide si votre clé n'a pas de phrase secrète",
    "leaveEmptyToKeepCurrent": "Laissez vide pour conserver la valeur actuelle",
    "uploadKeyFile": "Importer un fichier de clé",
    "generateKeyPairButton": "Générer une paire de clés",
    "generateKeyPair": "Générer une paire de clés",
    "generateKeyPairDescription": "Générez une nouvelle paire de clés SSH. Si vous souhaitez protéger la clé avec une phrase secrète, saisissez-la d'abord dans le champ Mot de passe de la clé ci-dessous.",
    "deploySSHKey": "Déployer la clé SSH",
    "deploySSHKeyDescription": "Déployer la clé publique sur le serveur cible",
    "sourceCredential": "Identifiant source",
    "targetHost": "Hôte cible",
    "deploymentProcess": "Processus de déploiement",
    "deploymentProcessDescription": "Cela ajoutera en toute sécurité la clé publique dans le fichier ~/.ssh/authorized_keys de l'hôte cible sans écraser les clés existantes. L'opération est réversible.",
    "chooseHostToDeploy": "Choisissez un hôte sur lequel déployer...",
    "deploying": "Déploiement...",
    "name": "Nom",
    "noHostsAvailable": "Aucun hôte disponible",
    "noHostsMatchSearch": "Aucun hôte ne correspond à votre recherche",
    "sshKeyGenerationNotImplemented": "La génération de clé SSH sera disponible prochainement",
    "connectionTestingNotImplemented": "Le test de connexion arrive bientôt",
    "testConnection": "Tester la connexion",
    "selectOrCreateFolder": "Sélectionnez ou créez un dossier",
    "noFolder": "Aucun dossier",
    "orCreateNewFolder": "Ou créer un nouveau dossier",
    "addTag": "Ajouter un label",
    "saving": "Enregistrement...",
    "overview": "Vue d'ensemble",
    "security": "Sécurité",
    "usage": "Utilisation",
    "securityDetails": "Détails de sécurité",
    "securityDetailsDescription": "Afficher les informations chiffrées de l'identifiant",
    "credentialSecured": "Identifiant sécurisé",
    "credentialSecuredDescription": "Toutes les données sensibles sont chiffrées en AES-256",
    "passwordAuthentication": "Authentification par mot de passe",
    "keyAuthentication": "Authentification par clé",
    "securityReminder": "Rappel de sécurité",
    "securityReminderText": "Ne partagez jamais vos identifiants. Toutes les données sont chiffrées au repos.",
    "hostsUsingCredential": "Hôtes utilisant cet identifiant",
    "noHostsUsingCredential": "Aucun hôte n'utilise actuellement cet identifiant",
    "timesUsed": "Nombre d'utilisations",
    "lastUsed": "Dernière utilisation",
    "connectedHosts": "Hôtes connectés",
    "created": "Créé",
    "lastModified": "Dernière modification",
    "usageStatistics": "Statistiques d'utilisation",
    "copiedToClipboard": "{{field}} copié dans le presse-papiers",
    "failedToCopy": "Échec de la copie dans le presse-papiers",
    "sshKey": "Clé SSH",
    "createCredentialDescription": "Créez un nouvel identifiant SSH pour un accès sécurisé",
    "editCredentialDescription": "Mettez à jour les informations de l'identifiant",
    "listView": "Liste",
    "folderView": "Dossiers",
    "unknownCredential": "Inconnu",
    "confirmRemoveFromFolder": "Voulez-vous vraiment retirer \"{{name}}\" du dossier \"{{folder}}\" ? L'identifiant sera déplacé vers \"Non classé\".",
    "removedFromFolder": "L'identifiant \"{{name}}\" a été retiré du dossier avec succès",
    "failedToRemoveFromFolder": "Échec du retrait de l'identifiant du dossier",
    "folderRenamed": "Le dossier \"{{oldName}}\" a été renommé en \"{{newName}}\" avec succès",
    "failedToRenameFolder": "Échec du renommage du dossier",
    "movedToFolder": "L'identifiant \"{{name}}\" a été déplacé vers \"{{folder}}\" avec succès",
    "failedToMoveToFolder": "Échec du déplacement de l'identifiant vers le dossier",
    "sshPublicKey": "Clé publique SSH",
    "publicKeyNote": "La clé publique est facultative mais recommandée pour valider la clé",
    "publicKeyUploaded": "Clé publique téléversée",
    "uploadPublicKey": "Importer la clé publique",
    "uploadPrivateKeyFile": "Importer le fichier de clé privée",
    "uploadPublicKeyFile": "Importer le fichier de clé publique",
    "privateKeyRequiredForGeneration": "La clé privée est nécessaire pour générer la clé publique",
    "failedToGeneratePublicKey": "Échec de la génération de la clé publique",
    "generatePublicKey": "Générer à partir de la clé privée",
    "publicKeyGeneratedSuccessfully": "Clé publique générée avec succès",
    "detectedKeyType": "Type de clé détecté",
    "detectingKeyType": "détection...",
    "optional": "Facultatif",
    "generateKeyPairNew": "Générer une nouvelle paire de clés",
    "generateEd25519": "Générer Ed25519",
    "generateECDSA": "Générer ECDSA",
    "generateRSA": "Générer RSA",
    "keyPairGeneratedSuccessfully": "Paire de clés {{keyType}} générée avec succès",
    "failedToGenerateKeyPair": "Échec de la génération de la paire de clés",
    "generateKeyPairNote": "Générez une nouvelle paire de clés SSH directement. Cela remplacera toute clé existante dans le formulaire.",
    "invalidKey": "Clé invalide",
    "detectionError": "Erreur de détection",
    "unknown": "Inconnu"
  },
  "dragIndicator": {
    "error": "Erreur : {{error}}",
    "dragging": "Déplacement de {{fileName}}",
    "preparing": "Préparation de {{fileName}}",
    "readySingle": "{{fileName}} prêt à être téléchargé",
    "readyMultiple": "{{count}} fichiers prêts à être téléchargés",
    "batchDrag": "Faites glisser {{count}} fichiers vers le bureau",
    "dragToDesktop": "Faites glisser vers le bureau",
    "canDragAnywhere": "Vous pouvez faire glisser les fichiers n'importe où sur votre bureau"
  },
  "sshTools": {
    "title": "Outils SSH",
    "closeTools": "Fermer les outils SSH",
    "keyRecording": "Enregistrement des frappes",
    "startKeyRecording": "Démarrer l'enregistrement des frappes",
    "stopKeyRecording": "Arrêter l'enregistrement des frappes",
    "selectTerminals": "Sélectionnez les terminaux :",
    "typeCommands": "Saisissez des commandes (toutes les touches sont prises en charge) :",
    "commandsWillBeSent": "Les commandes seront envoyées aux {{count}} terminaux sélectionnés.",
    "settings": "Paramètres",
    "enableRightClickCopyPaste": "Activer le copier/coller avec le clic droit",
    "shareIdeas": "Des idées pour la suite des outils SSH ? Partagez-les sur"
  },
  "snippets": {
    "title": "Extraits",
    "new": "Nouvel extrait",
    "create": "Créer un extrait",
    "edit": "Modifier l'extrait",
    "run": "Exécuter",
    "empty": "Aucun extrait pour le moment",
    "emptyHint": "Créez un extrait pour enregistrer vos commandes courantes",
    "name": "Nom",
    "description": "Description",
    "content": "Commande",
    "namePlaceholder": "ex. : Redémarrer Nginx",
    "descriptionPlaceholder": "Description facultative",
    "contentPlaceholder": "ex. : sudo systemctl restart nginx",
    "nameRequired": "Le nom est requis",
    "contentRequired": "La commande est requise",
    "createDescription": "Créez un nouvel extrait de commande pour l'exécuter rapidement",
    "editDescription": "Modifiez cet extrait de commande",
    "deleteConfirmTitle": "Supprimer l'extrait",
    "deleteConfirmDescription": "Voulez-vous vraiment supprimer \"{{name}}\" ?",
    "createSuccess": "Extrait créé avec succès",
    "updateSuccess": "Extrait mis à jour avec succès",
    "deleteSuccess": "Extrait supprimé avec succès",
    "createFailed": "Échec de la création de l'extrait",
    "updateFailed": "Échec de la mise à jour de l'extrait",
    "deleteFailed": "Échec de la suppression de l'extrait",
    "failedToFetch": "Échec du chargement des extraits",
    "executeSuccess": "Exécution : {{name}}",
    "copySuccess": "\"{{name}}\" copié dans le presse-papiers",
    "runTooltip": "Exécuter cet extrait dans le terminal",
    "copyTooltip": "Copier l'extrait dans le presse-papiers",
    "editTooltip": "Modifier cet extrait",
    "deleteTooltip": "Supprimer cet extrait"
  },
  "commandHistory": {
    "title": "Historique",
    "searchPlaceholder": "Rechercher des commandes...",
    "noTerminal": "Aucun terminal actif",
    "noTerminalHint": "Ouvrez un terminal pour voir son historique de commandes.",
    "empty": "Aucun historique de commandes",
    "emptyHint": "Exécutez des commandes dans le terminal actif pour créer un historique.",
    "noResults": "Aucune commande trouvée",
    "noResultsHint": "Aucune commande correspondant à \"{{query}}\"",
    "deleteSuccess": "Commande supprimée de l'historique",
    "deleteFailed": "Échec de la suppression de la commande.",
    "deleteTooltip": "Supprimer la commande",
    "tabHint": "Utilisez Tab dans le terminal pour compléter automatiquement depuis l'historique des commandes"
  },
  "homepage": {
    "loggedInTitle": "Connexion réussie !",
    "loggedInMessage": "Vous êtes connecté ! Utilisez la barre latérale pour accéder à tous les outils disponibles. Pour commencer, créez un hôte SSH dans l'onglet Gestionnaire SSH. Une fois créé, vous pourrez vous connecter à cet hôte avec les autres applications de la barre latérale.",
    "failedToLoadAlerts": "Échec du chargement des alertes",
    "failedToDismissAlert": "Échec de la fermeture de l'alerte"
  },
  "serverConfig": {
    "title": "Configuration du serveur",
    "description": "Configurez l'URL du serveur Termix pour vous connecter à vos services backend",
    "serverUrl": "URL du serveur",
    "enterServerUrl": "Veuillez saisir une URL de serveur",
    "testConnectionFirst": "Veuillez tester la connexion au préalable",
    "connectionSuccess": "Connexion réussie !",
    "connectionFailed": "Échec de la connexion",
    "connectionError": "Une erreur de connexion est survenue",
    "connected": "Connecté",
    "disconnected": "Déconnecté",
    "configSaved": "Configuration enregistrée avec succès",
    "saveFailed": "Échec de l'enregistrement de la configuration",
    "saveError": "Erreur lors de l'enregistrement de la configuration",
    "saving": "Enregistrement...",
    "saveConfig": "Enregistrer la configuration",
    "helpText": "Indiquez l'URL sur laquelle votre serveur Termix est en cours d'exécution (ex. : http://localhost:30001 ou https://votre-serveur.com)",
    "warning": "Avertissement",
    "notValidatedWarning": "URL non validée - assurez-vous qu'elle est correcte",
    "changeServer": "Changer de serveur",
    "mustIncludeProtocol": "L'URL du serveur doit commencer par http:// ou https://"
  },
  "versionCheck": {
    "error": "Erreur de vérification de version",
    "checkFailed": "Échec de la recherche de mises à jour",
    "upToDate": "Application à jour",
    "currentVersion": "Vous utilisez la version {{version}}",
    "updateAvailable": "Mise à jour disponible",
    "newVersionAvailable": "Une nouvelle version est disponible ! Vous utilisez {{current}}, mais {{latest}} est disponible.",
    "releasedOn": "Publié le {{date}}",
    "downloadUpdate": "Télécharger la mise à jour",
    "dismiss": "Ignorer",
    "checking": "Recherche de mises à jour...",
    "checkUpdates": "Rechercher des mises à jour",
    "checkingUpdates": "Recherche de mises à jour...",
    "refresh": "Actualiser",
    "updateRequired": "Mise à jour requise",
    "updateDismissed": "Notification de mise à jour ignorée",
    "noUpdatesFound": "Aucune mise à jour trouvée"
  },
  "common": {
    "close": "Fermer",
    "minimize": "Réduire",
    "online": "En ligne",
    "offline": "Hors ligne",
    "continue": "Continuer",
    "maintenance": "Maintenance",
    "degraded": "Dégradé",
    "discord": "Discord",
    "error": "Erreur",
    "warning": "Avertissement",
    "info": "Infos",
    "success": "Succès",
    "loading": "Chargement...",
    "required": "Obligatoire",
    "optional": "Facultatif",
    "connect": "Se connecter",
    "connecting": "Connexion...",
    "clear": "Effacer",
    "toggleSidebar": "Afficher/masquer la barre latérale",
    "sidebar": "Barre latérale",
    "home": "Accueil",
    "expired": "Expiré",
    "expiresToday": "Expire aujourd'hui",
    "expiresTomorrow": "Expire demain",
    "expiresInDays": "Expire dans {{days}} jours",
    "updateAvailable": "Mise à jour disponible",
    "sshPath": "Chemin SSH",
    "localPath": "Chemin local",
    "noAuthCredentials": "Aucun identifiant d'authentification disponible pour cet hôte SSH",
    "noReleases": "Aucune version",
    "updatesAndReleases": "Mises à jour et versions",
    "newVersionAvailable": "Une nouvelle version ({{version}}) est disponible.",
    "failedToFetchUpdateInfo": "Échec de la récupération des informations de mise à jour",
    "preRelease": "Préversion",
    "loginFailed": "Échec de la connexion",
    "noReleasesFound": "Aucune version trouvée.",
    "yourBackupCodes": "Vos codes de secours",
    "sendResetCode": "Envoyer le code de réinitialisation",
    "verifyCode": "Vérifier le code",
    "resetPassword": "Réinitialiser le mot de passe",
    "resetCode": "Code de réinitialisation",
    "newPassword": "Nouveau mot de passe",
    "folder": "Dossier",
    "file": "Fichier",
    "renamedSuccessfully": "renommé avec succès",
    "deletedSuccessfully": "supprimé avec succès",
    "noTunnelConnections": "Aucune connexion de tunnel configurée",
    "sshTools": "Outils SSH",
    "english": "Anglais",
    "chinese": "Chinois",
    "german": "Allemand",
    "cancel": "Annuler",
    "username": "Nom d'utilisateur",
    "name": "Nom",
    "login": "Connexion",
    "logout": "Déconnexion",
    "register": "Inscription",
    "password": "Mot de passe",
    "version": "Version",
    "confirmPassword": "Confirmer le mot de passe",
    "back": "Retour",
    "email": "E-mail",
    "submit": "Envoyer",
    "change": "Modifier",
    "save": "Enregistrer",
    "delete": "Supprimer",
    "edit": "Modifier",
    "add": "Ajouter",
    "search": "Rechercher",
    "confirm": "Confirmer",
    "yes": "Oui",
    "no": "Non",
    "ok": "OK",
    "enabled": "Activé",
    "disabled": "Désactivé",
    "important": "Important",
    "notEnabled": "Non activé",
    "settingUp": "Configuration...",
    "next": "Suivant",
    "previous": "Précédent",
    "refresh": "Actualiser",
    "settings": "Paramètres",
    "profile": "Profil",
    "help": "Aide",
    "about": "À propos",
    "language": "Langue",
    "autoDetect": "Détection automatique",
    "changeAccountPassword": "Modifier le mot de passe de votre compte",
    "passwordResetTitle": "Réinitialisation du mot de passe",
    "passwordResetDescription": "Vous êtes sur le point de réinitialiser votre mot de passe. Vous serez déconnecté de toutes les sessions actives.",
    "enterSixDigitCode": "Saisissez le code à 6 chiffres depuis les logs du conteneur Docker pour l'utilisateur :",
    "enterNewPassword": "Saisissez votre nouveau mot de passe pour l'utilisateur :",
    "passwordsDoNotMatch": "Les mots de passe ne correspondent pas",
    "passwordMinLength": "Le mot de passe doit contenir au moins 6 caractères",
    "passwordResetSuccess": "Mot de passe réinitialisé avec succès ! Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.",
    "failedToInitiatePasswordReset": "Échec du lancement de la réinitialisation du mot de passe",
    "failedToVerifyResetCode": "Échec de la vérification du code de réinitialisation",
    "failedToCompletePasswordReset": "Échec de la finalisation de la réinitialisation du mot de passe",
    "documentation": "Documentation",
    "retry": "Réessayer",
    "checking": "Vérification...",
    "checkingDatabase": "Vérification de la connexion à la base de données..."
  },
  "nav": {
    "home": "Accueil",
    "hosts": "Hôtes",
    "credentials": "Identifiants",
    "terminal": "Terminal",
    "tunnels": "Tunnels",
    "fileManager": "Gestionnaire de fichiers",
    "serverStats": "Statistiques serveur",
    "admin": "Admin",
    "userProfile": "Profil utilisateur",
    "tools": "Outils",
    "snippets": "Extraits",
    "newTab": "Nouvel onglet",
    "splitScreen": "Écran scindé",
    "closeTab": "Fermer l'onglet",
    "sshManager": "Gestionnaire SSH",
    "hostManager": "Gestionnaire d'hôtes",
    "cannotSplitTab": "Impossible de diviser cet onglet",
    "tabNavigation": "Navigation par onglets"
  },
  "admin": {
    "title": "Paramètres d'administration",
    "oidc": "OIDC",
    "users": "Utilisateurs",
    "userManagement": "Gestion des utilisateurs",
    "makeAdmin": "Nommer administrateur",
    "removeAdmin": "Retirer l'administrateur",
    "deleteUser": "Supprimer l'utilisateur {{username}} ? Cette action est irréversible.",
    "allowRegistration": "Autoriser l'inscription",
    "oidcSettings": "Paramètres OIDC",
    "clientId": "ID client",
    "clientSecret": "Secret client",
    "issuerUrl": "URL de l'émetteur",
    "authorizationUrl": "URL d'autorisation",
    "tokenUrl": "URL du jeton",
    "updateSettings": "Mettre à jour les paramètres",
    "confirmDelete": "Voulez-vous vraiment supprimer cet utilisateur ?",
    "confirmMakeAdmin": "Voulez-vous vraiment donner les droits d'administration à cet utilisateur ?",
    "confirmRemoveAdmin": "Voulez-vous vraiment retirer les droits d'administration de cet utilisateur ?",
    "externalAuthentication": "Authentification externe (OIDC)",
    "configureExternalProvider": "Configurez un fournisseur d'identité externe pour l'authentification OIDC/OAuth2.",
    "userIdentifierPath": "Chemin de l'identifiant utilisateur",
    "displayNamePath": "Chemin du nom d'affichage",
    "scopes": "Scopes",
    "saving": "Enregistrement...",
    "saveConfiguration": "Enregistrer la configuration",
    "reset": "Réinitialiser",
    "success": "Succès",
    "loading": "Chargement...",
    "refresh": "Actualiser",
    "loadingUsers": "Chargement des utilisateurs...",
    "username": "Nom d'utilisateur",
    "type": "Type",
    "actions": "Actions",
    "external": "Externe",
    "local": "Local",
    "adminManagement": "Gestion des administrateurs",
    "makeUserAdmin": "Nommer l'utilisateur administrateur",
    "adding": "Ajout...",
    "currentAdmins": "Administrateurs actuels",
    "adminBadge": "Admin",
    "removeAdminButton": "Retirer l'administrateur",
    "general": "Général",
    "userRegistration": "Inscription utilisateur",
    "allowNewAccountRegistration": "Autoriser l'inscription de nouveaux comptes",
    "allowPasswordLogin": "Autoriser la connexion par nom d'utilisateur/mot de passe",
    "missingRequiredFields": "Champs obligatoires manquants : {{fields}}",
    "oidcConfigurationUpdated": "Configuration OIDC mise à jour avec succès !",
    "failedToFetchOidcConfig": "Échec de la récupération de la configuration OIDC",
    "failedToFetchRegistrationStatus": "Échec de la récupération de l'état des inscriptions",
    "failedToFetchPasswordLoginStatus": "Échec de la récupération de l'état de la connexion par mot de passe",
    "failedToFetchUsers": "Échec de la récupération des utilisateurs",
    "oidcConfigurationDisabled": "Configuration OIDC désactivée avec succès !",
    "failedToUpdateOidcConfig": "Échec de la mise à jour de la configuration OIDC",
    "failedToDisableOidcConfig": "Échec de la désactivation de la configuration OIDC",
    "enterUsernameToMakeAdmin": "Saisissez le nom d'utilisateur à promouvoir administrateur",
    "userIsNowAdmin": "L'utilisateur {{username}} est désormais administrateur",
    "failedToMakeUserAdmin": "Échec de la promotion de l'utilisateur en administrateur",
    "removeAdminStatus": "Retirer le statut d'administrateur à {{username}} ?",
    "adminStatusRemoved": "Statut d'administrateur retiré pour {{username}}",
    "failedToRemoveAdminStatus": "Échec du retrait du statut d'administrateur",
    "userDeletedSuccessfully": "Utilisateur {{username}} supprimé avec succès",
    "failedToDeleteUser": "Échec de la suppression de l'utilisateur",
    "overrideUserInfoUrl": "Remplacer l'URL User Info (optionnel)",
    "failedToFetchSessions": "Échec de la récupération des sessions",
    "sessionRevokedSuccessfully": "Session révoquée avec succès",
    "failedToRevokeSession": "Échec de la révocation de la session",
    "confirmRevokeSession": "Voulez-vous vraiment révoquer cette session ?",
    "confirmRevokeAllSessions": "Voulez-vous vraiment révoquer toutes les sessions de cet utilisateur ?",
    "failedToRevokeSessions": "Échec de la révocation des sessions",
    "sessionsRevokedSuccessfully": "Sessions révoquées avec succès",
    "databaseSecurity": "Sécurité de la base de données",
    "encryptionStatus": "État du chiffrement",
    "encryptionEnabled": "Chiffrement activé",
    "enabled": "Activé",
    "disabled": "Désactivé",
    "keyId": "ID de clé",
    "created": "Créé",
    "migrationStatus": "État de la migration",
    "migrationCompleted": "Migration terminée",
    "migrationRequired": "Migration requise",
    "deviceProtectedMasterKey": "Clé maître protégée par l'environnement",
    "legacyKeyStorage": "Stockage de clés hérité",
    "masterKeyEncryptedWithDeviceFingerprint": "Clé maître chiffrée avec l'empreinte de l'environnement (protection KEK active)",
    "keyNotProtectedByDeviceBinding": "Clé non protégée par l'environnement (mise à niveau recommandée)",
    "valid": "Valide",
    "initializeDatabaseEncryption": "Initialiser le chiffrement de la base",
    "enableAes256EncryptionWithDeviceBinding": "Activez le chiffrement AES-256 avec une clé maître liée à l'environnement. Cela offre une sécurité de niveau entreprise pour les clés SSH, mots de passe et jetons.",
    "featuresEnabled": "Fonctionnalités activées :",
    "aes256GcmAuthenticatedEncryption": "Chiffrement authentifié AES-256-GCM",
    "deviceFingerprintMasterKeyProtection": "Protection de la clé maître par empreinte d'environnement (KEK)",
    "pbkdf2KeyDerivation": "Dérivation de clé PBKDF2 avec 100K itérations",
    "automaticKeyManagement": "Gestion et rotation automatiques des clés",
    "initializing": "Initialisation...",
    "initializeEnterpriseEncryption": "Initialiser le chiffrement entreprise",
    "migrateExistingData": "Migrer les données existantes",
    "encryptExistingUnprotectedData": "Chiffrez les données non protégées existantes dans votre base. Ce processus est sûr et crée des sauvegardes automatiques.",
    "testMigrationDryRun": "Vérifier la compatibilité du chiffrement",
    "migrating": "Migration...",
    "migrateData": "Migrer les données",
    "securityInformation": "Informations de sécurité",
    "sshPrivateKeysEncryptedWithAes256": "Les clés privées SSH et mots de passe sont chiffrés en AES-256-GCM",
    "userAuthTokensProtected": "Les jetons d'authentification utilisateur et secrets 2FA sont protégés",
    "masterKeysProtectedByDeviceFingerprint": "Les clés maîtres sont protégées par empreinte d'environnement (KEK)",
    "keysBoundToServerInstance": "Les clés sont liées à l'environnement serveur actuel (migrable via variables d'environnement)",
    "pbkdf2HkdfKeyDerivation": "Dérivation de clé PBKDF2 + HKDF avec 100K itérations",
    "backwardCompatibleMigration": "Toutes les données restent rétrocompatibles pendant la migration",
    "enterpriseGradeSecurityActive": "Sécurité de niveau entreprise active",
    "masterKeysProtectedByDeviceBinding": "Vos clés maîtres sont protégées par l'empreinte de l'environnement. Cela utilise le nom d'hôte, les chemins et autres infos pour générer les clés de protection. Pour migrer, définissez la variable d'environnement DB_ENCRYPTION_KEY sur le nouveau serveur.",
    "important": "Important",
    "keepEncryptionKeysSecure": "Assurez la sécurité des données : sauvegardez régulièrement vos fichiers de base de données et votre configuration serveur. Pour migrer, définissez DB_ENCRYPTION_KEY sur le nouvel environnement ou conservez le même nom d'hôte et la même arborescence.",
    "loadingEncryptionStatus": "Chargement de l'état du chiffrement...",
    "testMigrationDescription": "Vérifiez que les données existantes peuvent être migrées vers le format chiffré sans modification",
    "serverMigrationGuide": "Guide de migration du serveur",
    "migrationInstructions": "Pour migrer des données chiffrées vers un nouveau serveur : 1) Sauvegardez les fichiers de base, 2) Définissez DB_ENCRYPTION_KEY=\"votre-clé\" sur le nouveau serveur, 3) Restaurez les fichiers de base",
    "environmentProtection": "Protection de l'environnement",
    "environmentProtectionDesc": "Protège les clés de chiffrement à partir des informations de l'environnement serveur (nom d'hôte, chemins, etc.), migrable via variables d'environnement",
    "verificationCompleted": "Vérification de compatibilité terminée - aucune donnée n'a été modifiée",
    "verificationInProgress": "Vérification terminée",
    "dataMigrationCompleted": "Migration des données terminée avec succès !",
    "verificationFailed": "Échec de la vérification de compatibilité",
    "migrationFailed": "Échec de la migration",
    "runningVerification": "Exécution de la vérification de compatibilité...",
    "startingMigration": "Démarrage de la migration...",
    "hardwareFingerprintSecurity": "Sécurité par empreinte matérielle",
    "hardwareBoundEncryption": "Chiffrement lié au matériel actif",
    "masterKeysNowProtectedByHardwareFingerprint": "Les clés maîtres sont désormais protégées par une véritable empreinte matérielle plutôt que par des variables d'environnement",
    "cpuSerialNumberDetection": "Détection du numéro de série CPU",
    "motherboardUuidIdentification": "Identification de l'UUID de la carte mère",
    "diskSerialNumberVerification": "Vérification du numéro de série du disque",
    "biosSerialNumberCheck": "Contrôle du numéro de série du BIOS",
    "stableMacAddressFiltering": "Filtrage des adresses MAC stables",
    "databaseFileEncryption": "Chiffrement des fichiers de base de données",
    "dualLayerProtection": "Protection à double couche active",
    "bothFieldAndFileEncryptionActive": "Le chiffrement au niveau des champs et des fichiers est maintenant actif pour une sécurité maximale",
    "fieldLevelAes256Encryption": "Chiffrement AES-256 au niveau des champs pour les données sensibles",
    "fileLevelDatabaseEncryption": "Chiffrement des fichiers de base avec liaison matérielle",
    "hardwareBoundFileKeys": "Clés de chiffrement des fichiers liées au matériel",
    "automaticEncryptedBackups": "Création automatique de sauvegardes chiffrées",
    "createEncryptedBackup": "Créer une sauvegarde chiffrée",
    "creatingBackup": "Création de la sauvegarde...",
    "backupCreated": "Sauvegarde créée",
    "encryptedBackupCreatedSuccessfully": "Sauvegarde chiffrée créée avec succès",
    "backupCreationFailed": "Échec de la création de la sauvegarde",
    "databaseMigration": "Migration de la base de données",
    "exportForMigration": "Exporter pour migration",
    "exportDatabaseForHardwareMigration": "Exporter la base au format SQLite avec données déchiffrées pour migration vers un nouveau matériel",
    "exportDatabase": "Exporter la base SQLite",
    "exporting": "Exportation...",
    "exportCreated": "Export SQLite créé",
    "exportContainsDecryptedData": "L'export SQLite contient des données déchiffrées - conservez-le en lieu sûr !",
    "databaseExportedSuccessfully": "Base SQLite exportée avec succès",
    "databaseExportFailed": "Échec de l'export SQLite",
    "importFromMigration": "Importer depuis une migration",
    "importDatabaseFromAnotherSystem": "Importer une base SQLite depuis un autre système ou matériel",
    "importDatabase": "Importer une base SQLite",
    "importing": "Importation...",
    "selectedFile": "Fichier SQLite sélectionné",
    "importWillReplaceExistingData": "L'import SQLite remplacera les données existantes - sauvegarde recommandée !",
    "pleaseSelectImportFile": "Veuillez sélectionner un fichier SQLite à importer",
    "databaseImportedSuccessfully": "Base SQLite importée avec succès",
    "databaseImportFailed": "Échec de l'import SQLite",
    "manageEncryptionAndBackups": "Gérez les clés de chiffrement, la sécurité de la base et les sauvegardes",
    "activeSecurityFeatures": "Mesures de sécurité actuellement actives",
    "deviceBindingTechnology": "Technologie avancée de liaison matérielle des clés",
    "backupAndRecovery": "Options de sauvegarde sécurisée et de restauration",
    "crossSystemDataTransfer": "Export et import de bases entre différents systèmes",
    "noMigrationNeeded": "Aucune migration nécessaire",
    "encryptionKey": "Clé de chiffrement",
    "keyProtection": "Protection de la clé",
    "active": "Actif",
    "legacy": "Hérité",
    "dataStatus": "État des données",
    "encrypted": "Chiffré",
    "needsMigration": "Migration nécessaire",
    "ready": "Prêt",
    "initializeEncryption": "Initialiser le chiffrement",
    "initialize": "Initialiser",
    "test": "Tester",
    "migrate": "Migrer",
    "backup": "Sauvegarder",
    "createBackup": "Créer une sauvegarde",
    "exportImport": "Exporter/Importer",
    "export": "Exporter",
    "import": "Importer",
    "passwordRequired": "Mot de passe requis",
    "confirmExport": "Confirmer l'export",
    "exportDescription": "Exporter les hôtes et identifiants SSH au format SQLite",
    "importDescription": "Importer un fichier SQLite avec fusion incrémentale (ignore les doublons)",
    "criticalWarning": "Avertissement critique",
    "cannotDisablePasswordLoginWithoutOIDC": "Impossible de désactiver la connexion par mot de passe sans configurer OIDC ! Configurez d'abord l'authentification OIDC, sinon vous perdrez l'accès à Termix.",
    "confirmDisablePasswordLogin": "Voulez-vous vraiment désactiver la connexion par mot de passe ? Assurez-vous qu'OIDC est correctement configuré et fonctionnel avant de continuer, sous peine de perdre l'accès à votre instance Termix.",
    "passwordLoginDisabled": "Connexion par mot de passe désactivée avec succès",
    "passwordLoginAndRegistrationDisabled": "Connexion par mot de passe et inscription des nouveaux comptes désactivées avec succès",
    "requiresPasswordLogin": "Nécessite la connexion par mot de passe activée",
    "passwordLoginDisabledWarning": "La connexion par mot de passe est désactivée. Vérifiez qu'OIDC est correctement configuré sinon vous ne pourrez plus vous connecter à Termix.",
    "oidcRequiredWarning": "CRITIQUE : la connexion par mot de passe est désactivée. Si vous réinitialisez ou mal configurez OIDC, vous perdrez tout accès à Termix et bloquerez l'instance. Ne continuez que si vous en êtes absolument certain.",
    "confirmDisableOIDCWarning": "AVERTISSEMENT : vous êtes sur le point de désactiver OIDC alors que la connexion par mot de passe est désactivée. Cela bloquera votre instance Termix et vous perdrez tout accès. Êtes-vous vraiment sûr de vouloir continuer ?"
  },
  "hosts": {
    "title": "Gestionnaire d'hôtes",
    "sshHosts": "Hôtes SSH",
    "noHosts": "Aucun hôte SSH",
    "noHostsMessage": "Vous n'avez pas encore ajouté d'hôte SSH. Cliquez sur \"Ajouter un hôte\" pour commencer.",
    "loadingHosts": "Chargement des hôtes...",
    "failedToLoadHosts": "Échec du chargement des hôtes",
    "retry": "Réessayer",
    "refresh": "Actualiser",
    "hostsCount": "{{count}} hôtes",
    "importJson": "Importer JSON",
    "importing": "Importation...",
    "importJsonTitle": "Importer des hôtes SSH depuis un JSON",
    "importJsonDesc": "Téléversez un fichier JSON pour importer en masse plusieurs hôtes SSH (100 max).",
    "downloadSample": "Télécharger un exemple",
    "formatGuide": "Guide de format",
    "exportCredentialWarning": "Attention : l'hôte \"{{name}}\" utilise une authentification par identifiant. Le fichier exporté n'inclura pas les données d'identifiant et devra être reconfiguré manuellement après import. Voulez-vous continuer ?",
    "exportSensitiveDataWarning": "Attention : l'hôte \"{{name}}\" contient des données d'authentification sensibles (mot de passe/clé SSH). Le fichier exporté inclura ces données en clair. Conservez-le en lieu sûr et supprimez-le après usage. Voulez-vous continuer ?",
    "uncategorized": "Non classé",
    "confirmDelete": "Voulez-vous vraiment supprimer \"{{name}}\" ?",
    "failedToDeleteHost": "Échec de la suppression de l'hôte",
    "failedToExportHost": "Échec de l'export de l'hôte. Vérifiez que vous êtes connecté et que vous avez accès aux données de l'hôte.",
    "jsonMustContainHosts": "Le JSON doit contenir un tableau \"hosts\" ou être un tableau d'hôtes",
    "noHostsInJson": "Aucun hôte trouvé dans le fichier JSON",
    "maxHostsAllowed": "Maximum 100 hôtes par import",
    "importCompleted": "Import terminé : {{success}} réussi(s), {{failed}} échec(s)",
    "importFailed": "Échec de l'import",
    "importError": "Erreur d'import",
    "failedToImportJson": "Échec de l'import du fichier JSON",
    "connectionDetails": "Détails de connexion",
    "organization": "Organisation",
    "ipAddress": "Adresse IP",
    "port": "Port",
    "name": "Nom",
    "username": "Nom d'utilisateur",
    "folder": "Dossier",
    "tags": "Labels",
    "pin": "Épingler",
    "passwordRequired": "Le mot de passe est requis avec l'authentification par mot de passe",
    "sshKeyRequired": "La clé privée SSH est requise avec l'authentification par clé",
    "keyTypeRequired": "Le type de clé est requis avec l'authentification par clé",
    "mustSelectValidSshConfig": "Vous devez sélectionner une configuration SSH valide dans la liste",
    "addHost": "Ajouter un hôte",
    "editHost": "Modifier l'hôte",
    "cloneHost": "Cloner l'hôte",
    "updateHost": "Mettre à jour l'hôte",
    "hostUpdatedSuccessfully": "Hôte \"{{name}}\" mis à jour avec succès !",
    "hostAddedSuccessfully": "Hôte \"{{name}}\" ajouté avec succès !",
    "hostDeletedSuccessfully": "Hôte \"{{name}}\" supprimé avec succès !",
    "failedToSaveHost": "Échec de l'enregistrement de l'hôte. Veuillez réessayer.",
    "enableTerminal": "Activer le terminal",
    "enableTerminalDesc": "Afficher/masquer l'hôte dans l'onglet Terminal",
    "enableTunnel": "Activer le tunnel",
    "enableTunnelDesc": "Afficher/masquer l'hôte dans l'onglet Tunnel",
    "enableFileManager": "Activer le gestionnaire de fichiers",
    "enableFileManagerDesc": "Afficher/masquer l'hôte dans l'onglet Gestionnaire de fichiers",
    "defaultPath": "Chemin par défaut",
    "defaultPathDesc": "Répertoire par défaut à l'ouverture du gestionnaire de fichiers pour cet hôte",
    "tunnelConnections": "Connexions de tunnel",
    "connection": "Connexion",
    "remove": "Supprimer",
    "sourcePort": "Port source",
    "sourcePortDesc": " (La source correspond aux détails de connexion actuels dans l'onglet Général)",
    "endpointPort": "Port de destination",
    "endpointSshConfig": "Configuration SSH de destination",
    "tunnelForwardDescription": "Ce tunnel redirigera le trafic du port {{sourcePort}} sur la machine source (détails de connexion dans l'onglet Général) vers le port {{endpointPort}} sur la machine de destination.",
    "maxRetries": "Nombre max de tentatives",
    "maxRetriesDescription": "Nombre maximal de tentatives de reconnexion du tunnel.",
    "retryInterval": "Intervalle de tentative (secondes)",
    "retryIntervalDescription": "Temps d'attente entre les tentatives.",
    "autoStartContainer": "Démarrage auto au lancement du conteneur",
    "autoStartDesc": "Démarre automatiquement ce tunnel au lancement du conteneur",
    "addConnection": "Ajouter une connexion de tunnel",
    "sshpassRequired": "Sshpass requis pour l'authentification par mot de passe",
    "sshpassRequiredDesc": "Pour l'authentification par mot de passe dans les tunnels, sshpass doit être installé sur le système.",
    "otherInstallMethods": "Autres méthodes d'installation :",
    "debianUbuntuEquivalent": "(Debian/Ubuntu) ou équivalent selon votre OS.",
    "or": "ou",
    "centosRhelFedora": "CentOS/RHEL/Fedora",
    "macos": "macOS",
    "windows": "Windows",
    "sshServerConfigRequired": "Configuration du serveur SSH requise",
    "sshServerConfigDesc": "Pour les tunnels, le serveur SSH doit être configuré pour autoriser le transfert de ports :",
    "gatewayPortsYes": "pour lier les ports distants à toutes les interfaces",
    "allowTcpForwardingYes": "pour autoriser le transfert de ports",
    "permitRootLoginYes": "si vous utilisez l'utilisateur root pour le tunneling",
    "editSshConfig": "Modifiez /etc/ssh/sshd_config et redémarrez SSH : sudo systemctl restart sshd",
    "upload": "Importer",
    "authentication": "Authentification",
    "password": "Mot de passe",
    "key": "Clé",
    "credential": "Identifiant",
    "none": "Aucun",
    "selectCredential": "Sélectionner un identifiant",
    "selectCredentialPlaceholder": "Choisissez un identifiant...",
    "credentialRequired": "Un identifiant est requis avec l'authentification par identifiant",
    "credentialDescription": "La sélection d'un identifiant remplacera le nom d'utilisateur actuel et utilisera ses informations d'authentification.",
    "sshPrivateKey": "Clé privée SSH",
    "keyPassword": "Mot de passe de la clé",
    "keyType": "Type de clé",
    "autoDetect": "Détection automatique",
    "rsa": "RSA",
    "ed25519": "ED25519",
    "ecdsaNistP256": "ECDSA NIST P-256",
    "ecdsaNistP384": "ECDSA NIST P-384",
    "ecdsaNistP521": "ECDSA NIST P-521",
    "dsa": "DSA",
    "rsaSha2256": "RSA SHA2-256",
    "rsaSha2512": "RSA SHA2-512",
    "uploadFile": "Importer un fichier",
    "pasteKey": "Coller la clé",
    "updateKey": "Mettre à jour la clé",
    "existingKey": "Clé existante (cliquez pour modifier)",
    "existingCredential": "Identifiant existant (cliquez pour modifier)",
    "addTagsSpaceToAdd": "ajouter des labels (espace pour valider)",
    "terminalBadge": "Terminal",
    "tunnelBadge": "Tunnel",
    "fileManagerBadge": "Gestionnaire de fichiers",
    "general": "Général",
    "terminal": "Terminal",
    "tunnel": "Tunnel",
    "fileManager": "Gestionnaire de fichiers",
    "serverStats": "Statistiques serveur",
    "hostViewer": "Visionneuse d'hôte",
    "enableServerStats": "Activer les statistiques serveur",
    "enableServerStatsDesc": "Activer/désactiver la collecte des statistiques pour cet hôte",
    "displayItems": "Éléments affichés",
    "displayItemsDesc": "Choisissez les métriques à montrer sur la page des statistiques",
    "enableCpu": "Utilisation CPU",
    "enableMemory": "Utilisation mémoire",
    "enableDisk": "Utilisation disque",
    "enableNetwork": "Statistiques réseau (bientôt)",
    "enableProcesses": "Nombre de processus (bientôt)",
    "enableUptime": "Durée de fonctionnement (bientôt)",
    "enableHostname": "Nom d'hôte (bientôt)",
    "enableOs": "Système d'exploitation (bientôt)",
    "customCommands": "Commandes personnalisées (bientôt)",
    "customCommandsDesc": "Définissez des commandes d'arrêt et de redémarrage personnalisées pour ce serveur",
    "shutdownCommand": "Commande d'arrêt",
    "rebootCommand": "Commande de redémarrage",
    "confirmRemoveFromFolder": "Voulez-vous vraiment retirer \"{{name}}\" du dossier \"{{folder}}\" ? L'hôte sera déplacé vers \"Sans dossier\".",
    "removedFromFolder": "Hôte \"{{name}}\" retiré du dossier avec succès",
    "failedToRemoveFromFolder": "Échec du retrait de l'hôte du dossier",
    "folderRenamed": "Dossier \"{{oldName}}\" renommé en \"{{newName}}\" avec succès",
    "failedToRenameFolder": "Échec du renommage du dossier",
    "movedToFolder": "Hôte \"{{name}}\" déplacé vers \"{{folder}}\" avec succès",
    "failedToMoveToFolder": "Échec du déplacement de l'hôte vers le dossier",
    "statistics": "Statistiques",
    "enabledWidgets": "Widgets activés",
    "enabledWidgetsDesc": "Sélectionnez les widgets de statistiques à afficher pour cet hôte",
    "monitoringConfiguration": "Configuration de la surveillance",
    "monitoringConfigurationDesc": "Configurez la fréquence des vérifications d'état et des statistiques",
    "statusCheckEnabled": "Activer la surveillance d'état",
    "statusCheckEnabledDesc": "Vérifie si le serveur est en ligne ou hors ligne",
    "statusCheckInterval": "Intervalle de vérification d'état",
    "statusCheckIntervalDesc": "Fréquence de vérification (5 s - 1 h)",
    "metricsEnabled": "Activer la surveillance des métriques",
    "metricsEnabledDesc": "Collecter CPU, RAM, disque et autres statistiques système",
    "metricsInterval": "Intervalle de collecte des métriques",
    "metricsIntervalDesc": "Fréquence de collecte des statistiques (5 s - 1 h)",
    "intervalSeconds": "secondes",
    "intervalMinutes": "minutes",
    "intervalValidation": "Les intervalles doivent être compris entre 5 secondes et 1 heure (3600 secondes)",
    "monitoringDisabled": "La surveillance du serveur est désactivée pour cet hôte",
    "enableMonitoring": "Activez la surveillance dans Gestionnaire d'hôtes → onglet Statistiques",
    "monitoringDisabledBadge": "Surveillance désactivée",
    "statusMonitoring": "État",
    "metricsMonitoring": "Métriques",
    "terminalCustomizationNotice": "Remarque : les personnalisations du terminal fonctionnent uniquement sur ordinateur (site web et application Electron). Les applications mobiles utilisent les paramètres par défaut du système.",
    "noneAuthTitle": "Authentification clavier-interactif",
    "noneAuthDescription": "Cette méthode utilisera l'authentification clavier-interactif lors de la connexion au serveur SSH.",
    "noneAuthDetails": "L'authentification clavier-interactif permet au serveur de vous demander des informations pendant la connexion. Utile pour le MFA ou si vous ne souhaitez pas stocker d'identifiants localement.",
    "forceKeyboardInteractive": "Forcer le clavier-interactif",
    "forceKeyboardInteractiveDesc": "Force l'utilisation de l'authentification clavier-interactif. Souvent nécessaire pour les serveurs avec 2FA (TOTP/2FA).",
    "overrideCredentialUsername": "Remplacer le nom d'utilisateur des identifiants",
    "overrideCredentialUsernameDesc": "Utilisez un nom d'utilisateur différent de celui stocké dans les identifiants. Cela vous permet d'utiliser les mêmes identifiants avec différents noms d'utilisateur.",
    "jumpHosts": "Serveurs de rebond",
    "jumpHostsDescription": "Les serveurs de rebond (également appelés bastions) vous permettent de vous connecter à un serveur cible via un ou plusieurs serveurs intermédiaires. Utile pour accéder à des serveurs derrière des pare-feu ou dans des réseaux privés.",
    "jumpHostChain": "Chaîne de serveurs de rebond",
    "addJumpHost": "Ajouter un serveur de rebond",
    "selectServer": "Sélectionner un serveur",
    "searchServers": "Rechercher des serveurs...",
    "noServerFound": "Aucun serveur trouvé",
    "jumpHostsOrder": "Les connexions seront établies dans l'ordre : Serveur de rebond 1 → Serveur de rebond 2 → ... → Serveur cible",
    "advancedAuthSettings": "Paramètres d'authentification avancés"
  },
  "terminal": {
    "title": "Terminal",
    "connect": "Se connecter à l'hôte",
    "disconnect": "Déconnecter",
    "clear": "Effacer",
    "copy": "Copier",
    "paste": "Coller",
    "find": "Rechercher",
    "fullscreen": "Plein écran",
    "splitHorizontal": "Diviser horizontalement",
    "splitVertical": "Diviser verticalement",
    "closePanel": "Fermer le panneau",
    "reconnect": "Reconnecter",
    "sessionEnded": "Session terminée",
    "connectionLost": "Connexion perdue",
    "error": "ERREUR : {{message}}",
    "disconnected": "Déconnecté",
    "connectionClosed": "Connexion fermée",
    "connectionError": "Erreur de connexion : {{message}}",
    "connected": "Connecté",
    "sshConnected": "Connexion SSH établie",
    "authError": "Échec d'authentification : {{message}}",
    "unknownError": "Une erreur inconnue est survenue",
    "messageParseError": "Échec de l'analyse du message serveur",
    "websocketError": "Erreur de connexion WebSocket",
    "connecting": "Connexion...",
    "reconnecting": "Reconnexion... ({{attempt}}/{{max}})",
    "reconnected": "Reconnecté avec succès",
    "maxReconnectAttemptsReached": "Nombre maximal de tentatives de reconnexion atteint",
    "connectionTimeout": "Temps de connexion dépassé",
    "terminalTitle": "Terminal - {{host}}",
    "terminalWithPath": "Terminal - {{host}}:{{path}}",
    "runTitle": "Exécution de {{command}} - {{host}}",
    "totpRequired": "Authentification à deux facteurs requise",
    "totpCodeLabel": "Code de vérification",
    "totpPlaceholder": "000000",
    "totpVerify": "Vérifier"
  },
  "fileManager": {
    "title": "Gestionnaire de fichiers",
    "file": "Fichier",
    "folder": "Dossier",
    "connectToSsh": "Connectez-vous en SSH pour utiliser les opérations sur les fichiers",
    "uploadFile": "Importer un fichier",
    "downloadFile": "Télécharger",
    "edit": "Modifier",
    "preview": "Aperçu",
    "previous": "Précédent",
    "next": "Suivant",
    "pageXOfY": "Page {{current}} sur {{total}}",
    "zoomOut": "Zoom arrière",
    "zoomIn": "Zoom avant",
    "newFile": "Nouveau fichier",
    "newFolder": "Nouveau dossier",
    "rename": "Renommer",
    "renameItem": "Renommer l'élément",
    "deleteItem": "Supprimer l'élément",
    "currentPath": "Chemin actuel",
    "uploadFileTitle": "Importer un fichier",
    "maxFileSize": "Max : 1 Go (JSON) / 5 Go (binaire) - gros fichiers pris en charge",
    "removeFile": "Retirer le fichier",
    "clickToSelectFile": "Cliquez pour sélectionner un fichier",
    "chooseFile": "Choisir un fichier",
    "uploading": "Téléversement...",
    "downloading": "Téléchargement...",
    "uploadingFile": "Téléversement de {{name}}...",
    "uploadingLargeFile": "Téléversement du gros fichier {{name}} ({{size}})...",
    "downloadingFile": "Téléchargement de {{name}}...",
    "creatingFile": "Création de {{name}}...",
    "creatingFolder": "Création de {{name}}...",
    "deletingItem": "Suppression de {{type}} {{name}}...",
    "renamingItem": "Renommage de {{type}} {{oldName}} en {{newName}}...",
    "createNewFile": "Créer un nouveau fichier",
    "fileName": "Nom du fichier",
    "creating": "Création...",
    "createFile": "Créer le fichier",
    "createNewFolder": "Créer un nouveau dossier",
    "folderName": "Nom du dossier",
    "createFolder": "Créer le dossier",
    "warningCannotUndo": "Attention : cette action est irréversible",
    "itemPath": "Chemin de l'élément",
    "thisIsDirectory": "Ceci est un dossier (sera supprimé récursivement)",
    "deleting": "Suppression...",
    "currentPathLabel": "Chemin actuel",
    "newName": "Nouveau nom",
    "thisIsDirectoryRename": "Ceci est un dossier",
    "renaming": "Renommage...",
    "fileUploadedSuccessfully": "Fichier \"{{name}}\" téléversé avec succès",
    "failedToUploadFile": "Échec du téléversement",
    "fileDownloadedSuccessfully": "Fichier téléchargé avec succès",
    "failedToDownloadFile": "Échec du téléchargement",
    "noFileContent": "Aucun contenu de fichier reçu",
    "filePath": "Chemin du fichier",
    "fileCreatedSuccessfully": "Fichier \"{{name}}\" créé avec succès",
    "failedToCreateFile": "Échec de la création du fichier",
    "folderCreatedSuccessfully": "Dossier \"{{name}}\" créé avec succès",
    "failedToCreateFolder": "Échec de la création du dossier",
    "failedToCreateItem": "Échec de la création de l'élément",
    "operationFailed": "L'opération {{operation}} a échoué pour {{name}} : {{error}}",
    "failedToResolveSymlink": "Échec de la résolution du lien symbolique",
    "itemDeletedSuccessfully": "{{type}} supprimé avec succès",
    "itemsDeletedSuccessfully": "{{count}} éléments supprimés avec succès",
    "failedToDeleteItems": "Échec de la suppression des éléments",
    "dragFilesToUpload": "Déposez des fichiers ici pour les importer",
    "emptyFolder": "Ce dossier est vide",
    "itemCount": "{{count}} éléments",
    "selectedCount": "{{count}} sélectionné(s)",
    "searchFiles": "Rechercher des fichiers...",
    "upload": "Importer",
    "selectHostToStart": "Sélectionnez un hôte pour démarrer la gestion des fichiers",
    "failedToConnect": "Échec de la connexion SSH",
    "failedToLoadDirectory": "Échec du chargement du répertoire",
    "noSSHConnection": "Aucune connexion SSH disponible",
    "enterFolderName": "Entrez le nom du dossier :",
    "enterFileName": "Entrez le nom du fichier :",
    "copy": "Copier",
    "cut": "Couper",
    "paste": "Coller",
    "copyPath": "Copier le chemin",
    "copyPaths": "Copier les chemins",
    "delete": "Supprimer",
    "properties": "Propriétés",
    "refresh": "Actualiser",
    "downloadFiles": "Télécharger {{count}} fichiers dans le navigateur",
    "copyFiles": "Copier {{count}} éléments",
    "cutFiles": "Couper {{count}} éléments",
    "deleteFiles": "Supprimer {{count}} éléments",
    "filesCopiedToClipboard": "{{count}} éléments copiés dans le presse-papiers",
    "filesCutToClipboard": "{{count}} éléments coupés dans le presse-papiers",
    "pathCopiedToClipboard": "Chemin copié dans le presse-papiers",
    "pathsCopiedToClipboard": "{{count}} chemins copiés dans le presse-papiers",
    "failedToCopyPath": "Échec de la copie du chemin dans le presse-papiers",
    "movedItems": "{{count}} éléments déplacés",
    "failedToDeleteItem": "Échec de la suppression de l'élément",
    "itemRenamedSuccessfully": "{{type}} renommé avec succès",
    "failedToRenameItem": "Échec du renommage de l'élément",
    "download": "Télécharger",
    "permissions": "Autorisations",
    "size": "Taille",
    "modified": "Modifié",
    "path": "Chemin",
    "confirmDelete": "Voulez-vous vraiment supprimer {{name}} ?",
    "uploadSuccess": "Fichier téléversé avec succès",
    "uploadFailed": "Échec du téléversement",
    "downloadSuccess": "Fichier téléchargé avec succès",
    "downloadFailed": "Échec du téléchargement",
    "permissionDenied": "Permission refusée",
    "checkDockerLogs": "Consultez les logs Docker pour plus de détails",
    "internalServerError": "Une erreur interne du serveur est survenue",
    "serverError": "Erreur serveur",
    "error": "Erreur",
    "requestFailed": "Réquête échouée avec le code",
    "unknownFileError": "Erreur de fichier inconnue",
    "cannotReadFile": "Impossible de lire le fichier",
    "noSshSessionId": "Aucun ID de session SSH",
    "noFilePath": "Aucun chemin de fichier spécifié",
    "noCurrentHost": "Aucun hôte sélectionné",
    "fileSavedSuccessfully": "Fichier enregistré avec succès",
    "saveTimeout": "Expiration du délai d'enregistrement",
    "failedToSaveFile": "Échec de l'enregistrement du fichier",
    "deletedSuccessfully": "Supprimé avec succès",
    "connectToServer": "Se connecter au serveur",
    "selectServerToEdit": "Sélectionnez un serveur pour éditer",
    "fileOperations": "Opérations sur les fichiers",
    "confirmDeleteMessage": "Voulez-vous vraiment supprimer ces éléments ?",
    "confirmDeleteSingleItem": "Supprimer {{name}} ?",
    "confirmDeleteMultipleItems": "Supprimer {{count}} éléments ?",
    "confirmDeleteMultipleItemsWithFolders": "Supprimer {{files}} fichiers et {{folders}} dossiers ?",
    "confirmDeleteFolder": "Supprimer le dossier {{name}} ?",
    "deleteDirectoryWarning": "Le dossier et son contenu seront supprimés définitivement.",
    "actionCannotBeUndone": "Cette action est irréversible.",
    "permanentDeleteWarning": "La suppression est permanente et ne peut pas être annulée.",
    "recent": "Récents",
    "pinned": "Épinglés",
    "folderShortcuts": "Raccourcis de dossiers",
    "noRecentFiles": "Aucun fichier récent.",
    "noPinnedFiles": "Aucun fichier épinglé.",
    "enterFolderPath": "Saisissez le chemin du dossier",
    "noShortcuts": "Aucun raccourci.",
    "searchFilesAndFolders": "Rechercher des fichiers et dossiers...",
    "noFilesOrFoldersFound": "Aucun fichier ou dossier trouvé.",
    "failedToConnectSSH": "Échec de la connexion SSH",
    "failedToReconnectSSH": "Échec de la reconnexion SSH",
    "failedToListFiles": "Échec de l'affichage des fichiers",
    "fetchHomeDataTimeout": "Expiration du délai de récupération des données d'accueil",
    "sshStatusCheckTimeout": "Expiration du délai de vérification du statut SSH",
    "sshReconnectionTimeout": "Expiration du délai de reconnexion SSH",
    "saveOperationTimeout": "Expiration du délai d'enregistrement",
    "cannotSaveFile": "Impossible d'enregistrer le fichier",
    "dragSystemFilesToUpload": "Faites glisser des fichiers système ici pour les importer",
    "dragFilesToWindowToDownload": "Faites glisser les fichiers hors de la fenêtre pour les télécharger",
    "openTerminalHere": "Ouvrir un terminal ici",
    "run": "Exécuter",
    "saveToSystem": "Enregistrer sous...",
    "selectLocationToSave": "Sélectionnez un emplacement pour enregistrer",
    "openTerminalInFolder": "Ouvrir un terminal dans ce dossier",
    "openTerminalInFileLocation": "Ouvrir un terminal à l'emplacement du fichier",
    "terminalWithPath": "Terminal - {{host}} : {{path}}",
    "runningFile": "Exécution - {{file}}",
    "onlyRunExecutableFiles": "Seuls les fichiers exécutables peuvent être lancés",
    "noHostSelected": "Aucun hôte sélectionné",
    "starred": "Favoris",
    "shortcuts": "Raccourcis",
    "directories": "Répertoires",
    "removedFromRecentFiles": "\"{{name}}\" retiré des fichiers récents",
    "removeFailed": "Échec de la suppression",
    "unpinnedSuccessfully": "\"{{name}}\" a été désépinglé",
    "unpinFailed": "Échec du désépinglage",
    "removedShortcut": "Raccourci \"{{name}}\" supprimé",
    "removeShortcutFailed": "Échec de la suppression du raccourci",
    "clearedAllRecentFiles": "Fichiers récents effacés",
    "clearFailed": "Échec du nettoyage",
    "removeFromRecentFiles": "Retirer des fichiers récents",
    "clearAllRecentFiles": "Effacer tous les fichiers récents",
    "unpinFile": "Désépingler le fichier",
    "removeShortcut": "Supprimer le raccourci",
    "saveFilesToSystem": "Enregistrer {{count}} fichiers sous...",
    "pinFile": "Épingler le fichier",
    "addToShortcuts": "Ajouter aux raccourcis",
    "downloadToDefaultLocation": "Télécharger vers l'emplacement par défaut",
    "pasteFailed": "Échec du collage",
    "noUndoableActions": "Aucune action à annuler",
    "undoCopySuccess": "Copie annulée : {{count}} fichiers copiés supprimés",
    "undoCopyFailedDelete": "Annulation impossible : suppression des fichiers copiés échouée",
    "undoCopyFailedNoInfo": "Annulation impossible : informations sur les fichiers copiés introuvables",
    "undoMoveSuccess": "Déplacement annulé : {{count}} fichiers remis à leur emplacement d'origine",
    "undoMoveFailedMove": "Annulation impossible : impossible de remettre les fichiers",
    "undoMoveFailedNoInfo": "Annulation impossible : informations sur les fichiers déplacés introuvables",
    "undoDeleteNotSupported": "Suppression non annulable : les fichiers ont été supprimés définitivement du serveur",
    "undoTypeNotSupported": "Type d'annulation non pris en charge",
    "undoOperationFailed": "Échec de l'opération d'annulation",
    "unknownError": "Erreur inconnue",
    "enterPath": "Entrer un chemin...",
    "editPath": "Modifier le chemin",
    "confirm": "Confirmer",
    "cancel": "Annuler",
    "find": "Rechercher...",
    "replaceWith": "Remplacer par...",
    "replace": "Remplacer",
    "replaceAll": "Remplacer tout",
    "downloadInstead": "Télécharger à la place",
    "keyboardShortcuts": "Raccourcis clavier",
    "searchAndReplace": "Rechercher et remplacer",
    "editing": "Édition",
    "navigation": "Parcours",
    "code": "Code source",
    "search": "Recherche",
    "findNext": "Rechercher suivant",
    "findPrevious": "Rechercher précédent",
    "save": "Enregistrer",
    "selectAll": "Tout sélectionner",
    "undo": "Annuler",
    "redo": "Rétablir",
    "goToLine": "Aller à la ligne",
    "moveLineUp": "Monter la ligne",
    "moveLineDown": "Descendre la ligne",
    "toggleComment": "Basculer le commentaire",
    "indent": "Augmenter l'indentation",
    "outdent": "Diminuer l'indentation",
    "autoComplete": "Auto-complétion",
    "imageLoadError": "Échec du chargement de l'image",
    "rotate": "Faire pivoter",
    "originalSize": "Taille d'origine",
    "startTyping": "Commencez à taper...",
    "unknownSize": "Taille inconnue",
    "fileIsEmpty": "Le fichier est vide",
    "largeFileWarning": "Avertissement fichier volumineux",
    "largeFileWarningDesc": "Ce fichier pèse {{size}}, ce qui peut provoquer des problèmes de performance lorsqu'il est ouvert en texte.",
    "fileNotFoundAndRemoved": "Le fichier \"{{name}}\" est introuvable et a été retiré des fichiers récents/épinglés",
    "failedToLoadFile": "Échec du chargement du fichier : {{error}}",
    "serverErrorOccurred": "Une erreur serveur est survenue. Veuillez réessayer plus tard.",
    "autoSaveFailed": "Échec de l'enregistrement automatique",
    "fileAutoSaved": "Fichier enregistré automatiquement",
    "moveFileFailed": "Échec du déplacement de {{name}}",
    "moveOperationFailed": "Échec de l'opération de déplacement",
    "canOnlyCompareFiles": "Seuls deux fichiers peuvent être comparés",
    "comparingFiles": "Comparaison de {{file1}} et {{file2}}",
    "dragFailed": "Échec du glisser-déposer",
    "filePinnedSuccessfully": "Fichier \"{{name}}\" épinglé avec succès",
    "pinFileFailed": "Échec de l'épinglage du fichier",
    "fileUnpinnedSuccessfully": "Fichier \"{{name}}\" désépinglé avec succès",
    "unpinFileFailed": "Échec du désépinglage du fichier",
    "shortcutAddedSuccessfully": "Raccourci de dossier \"{{name}}\" ajouté avec succès",
    "addShortcutFailed": "Échec de l'ajout du raccourci",
    "operationCompletedSuccessfully": "{{operation}} {{count}} éléments avec succès",
    "operationCompleted": "{{operation}} {{count}} éléments",
    "downloadFileSuccess": "Fichier {{name}} téléchargé avec succès",
    "downloadFileFailed": "Échec du téléchargement",
    "moveTo": "Déplacer vers {{name}}",
    "diffCompareWith": "Comparer (diff) avec {{name}}",
    "dragOutsideToDownload": "Faites glisser hors de la fenêtre pour télécharger ({{count}} fichiers)",
    "newFolderDefault": "NouveauDossier",
    "newFileDefault": "NouveauFichier.txt",
    "successfullyMovedItems": "{{count}} éléments déplacés vers {{target}}",
    "move": "Déplacer",
    "searchInFile": "Rechercher dans le fichier (Ctrl+F)",
    "showKeyboardShortcuts": "Afficher les raccourcis clavier",
    "startWritingMarkdown": "Commencez à écrire votre contenu markdown...",
    "loadingFileComparison": "Chargement de la comparaison de fichiers...",
    "reload": "Recharger",
    "compare": "Comparer",
    "sideBySide": "Côte à côte",
    "inline": "En ligne",
    "fileComparison": "Comparaison de fichiers : {{file1}} vs {{file2}}",
    "fileTooLarge": "Fichier trop volumineux : {{error}}",
    "sshConnectionFailed": "La connexion SSH a échoué. Vérifiez votre connexion à {{name}} ({{ip}}:{{port}})",
    "loadFileFailed": "Échec du chargement du fichier : {{error}}",
    "connectedSuccessfully": "Connexion réussie",
    "totpVerificationFailed": "Échec de la vérification TOTP"
  },
  "tunnels": {
    "title": "Tunnels SSH",
    "noSshTunnels": "Aucun tunnel SSH",
    "createFirstTunnelMessage": "Créez votre premier tunnel SSH pour commencer. Utilisez le Gestionnaire SSH pour ajouter des hôtes avec des connexions de tunnel.",
    "connected": "Connecté",
    "disconnected": "Déconnecté",
    "connecting": "Connexion...",
    "disconnecting": "Déconnexion...",
    "unknownTunnelStatus": "Inconnu",
    "unknown": "Inconnu",
    "error": "Erreur",
    "failed": "Échec",
    "retrying": "Nouvelle tentative",
    "waiting": "En attente",
    "waitingForRetry": "En attente d'une nouvelle tentative",
    "retryingConnection": "Nouvelle tentative de connexion",
    "canceling": "Annulation...",
    "connect": "Connecter",
    "disconnect": "Déconnecter",
    "cancel": "Annuler",
    "port": "Port",
    "attempt": "Tentative {{current}} sur {{max}}",
    "nextRetryIn": "Prochaine tentative dans {{seconds}} secondes",
    "checkDockerLogs": "Consultez vos logs Docker pour connaître la cause, rejoignez le",
    "noTunnelConnections": "Aucune connexion de tunnel configurée",
    "tunnelConnections": "Connexions de tunnel",
    "addTunnel": "Ajouter un tunnel",
    "editTunnel": "Modifier le tunnel",
    "deleteTunnel": "Supprimer le tunnel",
    "tunnelName": "Nom du tunnel",
    "localPort": "Port local",
    "remoteHost": "Hôte distant",
    "remotePort": "Port distant",
    "autoStart": "Démarrage auto",
    "status": "Statut",
    "active": "Actif",
    "inactive": "Inactif",
    "start": "Démarrer",
    "stop": "Arrêter",
    "restart": "Redémarrer",
    "connectionType": "Type de connexion",
    "local": "Local",
    "remote": "Distant",
    "dynamic": "Dynamique",
    "unknownConnectionStatus": "Statut inconnu",
    "portMapping": "Port {{sourcePort}} → {{endpointHost}}:{{endpointPort}}",
    "endpointHostNotFound": "Hôte de destination introuvable",
    "discord": "Discord",
    "githubIssue": "ticket GitHub",
    "forHelp": "pour obtenir de l'aide"
  },
  "serverStats": {
    "title": "Statistiques serveur",
    "cpu": "CPU",
    "memory": "Mémoire",
    "disk": "Disque",
    "network": "Réseau",
    "uptime": "Durée de fonctionnement",
    "loadAverage": "Moy. : {{avg1}}, {{avg5}}, {{avg15}}",
    "processes": "Processus",
    "connections": "Connexions",
    "usage": "Utilisation",
    "available": "Disponible",
    "total": "Total",
    "free": "Libre",
    "used": "Utilisé",
    "percentage": "Pourcentage",
    "refreshStatusAndMetrics": "Actualiser le statut et les métriques",
    "refreshStatus": "Actualiser le statut",
    "fileManagerAlreadyOpen": "Gestionnaire de fichiers déjà ouvert pour cet hôte",
    "openFileManager": "Ouvrir le gestionnaire de fichiers",
    "cpuCores_one": "{{count}} CPU",
    "cpuCores_other": "{{count}} CPU",
    "naCpus": "N/A CPU",
    "loadAverageNA": "Moy. : N/A",
    "cpuUsage": "Utilisation CPU",
    "memoryUsage": "Utilisation mémoire",
    "diskUsage": "Utilisation disque",
    "rootStorageSpace": "Espace de stockage racine",
    "of": "sur",
    "feedbackMessage": "Besoin d'aide ? Laissez un commentaire sur",
    "failedToFetchHostConfig": "Échec de la récupération de la configuration de l'hôte",
    "failedToFetchStatus": "Échec de la récupération du statut",
    "failedToFetchMetrics": "Échec de la récupération des métriques",
    "failedToFetchHomeData": "Échec de la récupération des données d'accueil",
    "loadingMetrics": "Chargement des métriques...",
    "refreshing": "Actualisation...",
    "serverOffline": "Serveur hors ligne",
    "cannotFetchMetrics": "Impossible de récupérer les métriques",
    "totpRequired": "Code TOTP requis",
    "totpUnavailable": "TOTP indisponible",
    "load": "Charge",
    "editLayout": "Modifier la disposition",
    "cancelEdit": "Annuler la modification",
    "addWidget": "Ajouter un widget",
    "saveLayout": "Enregistrer la disposition",
    "unsavedChanges": "Modifications non enregistrées",
    "layoutSaved": "Disposition enregistrée",
    "failedToSaveLayout": "Échec de l'enregistrement de la disposition",
    "systemInfo": "Infos système",
    "hostname": "Nom d'hôte",
    "operatingSystem": "Système d'exploitation",
    "kernel": "Noyau",
    "totalUptime": "Temps de fonctionnement total",
    "seconds": "secondes",
    "networkInterfaces": "Interfaces réseau",
    "noInterfacesFound": "Aucune interface trouvée",
    "totalProcesses": "Processus totaux",
    "running": "En cours d'exécution",
    "noProcessesFound": "Aucun processus trouvé"
  },
  "auth": {
    "loginTitle": "Connexion à Termix",
    "registerTitle": "Créer un compte",
    "loginButton": "Connexion",
    "registerButton": "Inscription",
    "forgotPassword": "Mot de passe oublié ?",
    "rememberMe": "Se souvenir de moi",
    "noAccount": "Pas encore de compte ?",
    "hasAccount": "Vous avez déjà un compte ?",
    "loginSuccess": "Connexion réussie",
    "loginFailed": "Échec de la connexion",
    "registerSuccess": "Inscription réussie",
    "registerFailed": "Échec de l'inscription",
    "logoutSuccess": "Déconnexion réussie",
    "invalidCredentials": "Nom d'utilisateur ou mot de passe invalide",
    "accountCreated": "Compte créé avec succès",
    "passwordReset": "Lien de réinitialisation envoyé",
    "twoFactorAuth": "Authentification à deux facteurs",
    "enterCode": "Saisissez le code de vérification",
    "backupCode": "Ou utilisez un code de secours",
    "verifyCode": "Vérifier le code",
    "redirectingToApp": "Redirection vers l'application...",
    "enableTwoFactor": "Activer l'authentification à deux facteurs",
    "disableTwoFactor": "Désactiver l'authentification à deux facteurs",
    "scanQRCode": "Scannez ce QR code avec votre application d'authentification",
    "backupCodes": "Codes de secours",
    "saveBackupCodes": "Enregistrez ces codes de secours en lieu sûr",
    "twoFactorEnabledSuccess": "Authentification à deux facteurs activée avec succès !",
    "twoFactorDisabled": "Authentification à deux facteurs désactivée",
    "newBackupCodesGenerated": "Nouveaux codes de secours générés",
    "backupCodesDownloaded": "Codes de secours téléchargés",
    "pleaseEnterSixDigitCode": "Veuillez saisir un code à 6 chiffres",
    "invalidVerificationCode": "Code de vérification invalide",
    "failedToDisableTotp": "Échec de la désactivation de TOTP",
    "failedToGenerateBackupCodes": "Échec de la génération des codes de secours",
    "enterPassword": "Saisissez votre mot de passe",
    "lockedOidcAuth": "Verrouillé (authentification OIDC)",
    "twoFactorTitle": "Authentification à deux facteurs",
    "twoFactorProtected": "Votre compte est protégé par l'authentification à deux facteurs",
    "twoFactorActive": "L'authentification à deux facteurs est active sur votre compte",
    "disable2FA": "Désactiver la 2FA",
    "disableTwoFactorWarning": "Désactiver la 2FA rendra votre compte moins sécurisé",
    "passwordOrTotpCode": "Mot de passe ou code TOTP",
    "or": "Ou",
    "generateNewBackupCodesText": "Générez de nouveaux codes de secours si vous avez perdu les précédents",
    "generateNewBackupCodes": "Générer de nouveaux codes de secours",
    "yourBackupCodes": "Vos codes de secours",
    "download": "Télécharger",
    "setupTwoFactorTitle": "Configurer l'authentification à deux facteurs",
    "sshAuthenticationRequired": "Authentification SSH requise",
    "sshNoKeyboardInteractive": "Authentification clavier-interactif indisponible",
    "sshAuthenticationFailed": "Échec de l'authentification",
    "sshAuthenticationTimeout": "Délai d'authentification dépassé",
    "sshNoKeyboardInteractiveDescription": "Le serveur ne prend pas en charge l'authentification clavier-interactif. Veuillez fournir votre mot de passe ou votre clé SSH.",
    "sshAuthFailedDescription": "Les identifiants fournis sont incorrects. Veuillez réessayer avec des identifiants valides.",
    "sshTimeoutDescription": "La tentative d'authentification a expiré. Veuillez réessayer.",
    "sshProvideCredentialsDescription": "Fournissez vos identifiants SSH pour vous connecter à ce serveur.",
    "sshPasswordDescription": "Entrez le mot de passe pour cette connexion SSH.",
    "sshKeyPasswordDescription": "Si votre clé SSH est chiffrée, entrez la phrase secrète ici.",
    "step1ScanQR": "Étape 1 : Scannez le QR code avec votre application d'authentification",
    "manualEntryCode": "Code à saisir manuellement",
    "cannotScanQRText": "Si vous ne pouvez pas scanner le QR code, saisissez ce code manuellement dans votre application.",
    "nextVerifyCode": "Étape suivante : vérifier le code",
    "verifyAuthenticator": "Vérifiez votre application",
    "step2EnterCode": "Étape 2 : Entrez le code à 6 chiffres de l'application",
    "verificationCode": "Code de vérification",
    "back": "Retour",
    "verifyAndEnable": "Vérifier et activer",
    "saveBackupCodesTitle": "Sauvegardez vos codes de secours",
    "step3StoreCodesSecurely": "Étape 3 : Conservez ces codes en lieu sûr",
    "importantBackupCodesText": "Conservez ces codes en lieu sûr. Ils permettent d'accéder à votre compte si vous perdez votre appareil.",
    "completeSetup": "Terminer la configuration",
    "notEnabledText": "La 2FA ajoute une couche de sécurité supplémentaire en demandant un code lors de la connexion.",
    "enableTwoFactorButton": "Activer l'authentification à deux facteurs",
    "addExtraSecurityLayer": "Ajoutez une couche de sécurité à votre compte",
    "firstUser": "Premier utilisateur",
    "firstUserMessage": "Vous êtes le premier utilisateur et serez défini comme administrateur. Vous pouvez consulter les paramètres d'administration dans le menu utilisateur de la barre latérale. Si c'est une erreur, vérifiez les logs Docker ou créez un ticket GitHub.",
    "external": "Externe",
    "loginWithExternal": "Se connecter via un fournisseur externe",
    "loginWithExternalDesc": "Connectez-vous avec votre fournisseur d'identité externe configuré",
    "externalNotSupportedInElectron": "L'authentification externe n'est pas encore disponible dans l'application Electron. Utilisez la version web pour OIDC.",
    "resetPasswordButton": "Réinitialiser le mot de passe",
    "sendResetCode": "Envoyer le code de réinitialisation",
    "resetCodeDesc": "Saisissez votre nom d'utilisateur pour recevoir un code de réinitialisation. Le code sera visible dans les logs du conteneur Docker.",
    "resetCode": "Code de réinitialisation",
    "verifyCodeButton": "Vérifier le code",
    "enterResetCode": "Entrez le code à 6 chiffres des logs Docker pour l'utilisateur :",
    "goToLogin": "Aller à la connexion",
    "newPassword": "Nouveau mot de passe",
    "confirmNewPassword": "Confirmer le mot de passe",
    "enterNewPassword": "Entrez votre nouveau mot de passe pour l'utilisateur :",
    "signUp": "Créer un compte",
    "mobileApp": "Application mobile",
    "loggingInToMobileApp": "Connexion à l'application mobile",
    "desktopApp": "Application de bureau",
    "loggingInToDesktopApp": "Connexion à l'application de bureau",
    "loggingInToDesktopAppViaWeb": "Connexion à l'application de bureau via l'interface web",
    "loadingServer": "Chargement du serveur...",
    "authenticating": "Authentification...",
    "dataLossWarning": "Réinitialiser votre mot de passe de cette manière supprimera tous vos hôtes, identifiants et autres données chiffrées. Action irréversible. À utiliser uniquement si vous avez oublié votre mot de passe et n'êtes pas connecté.",
    "authenticationDisabled": "Authentification désactivée",
    "authenticationDisabledDesc": "Toutes les méthodes d'authentification sont actuellement désactivées. Contactez votre administrateur."
  },
  "errors": {
    "notFound": "Page introuvable",
    "unauthorized": "Accès non autorisé",
    "forbidden": "Accès interdit",
    "serverError": "Erreur serveur",
    "networkError": "Erreur réseau",
    "databaseConnection": "Impossible de se connecter à la base de données",
    "unknownError": "Erreur inconnue",
    "loginFailed": "Échec de la connexion",
    "failedPasswordReset": "Échec du lancement de la réinitialisation du mot de passe",
    "failedVerifyCode": "Échec de la vérification du code de réinitialisation",
    "failedCompleteReset": "Échec de la finalisation de la réinitialisation du mot de passe",
    "invalidTotpCode": "Code TOTP invalide",
    "failedOidcLogin": "Échec du démarrage de la connexion OIDC",
    "failedUserInfo": "Échec de la récupération des informations utilisateur après connexion OIDC",
    "oidcAuthFailed": "Échec de l'authentification OIDC",
    "noTokenReceived": "Aucun jeton reçu après la connexion",
    "invalidAuthUrl": "URL d'autorisation invalide reçue du backend",
    "invalidInput": "Saisie invalide",
    "requiredField": "Ce champ est obligatoire",
    "minLength": "La longueur minimale est de {{min}}",
    "maxLength": "La longueur maximale est de {{max}}",
    "invalidEmail": "Adresse e-mail invalide",
    "passwordMismatch": "Les mots de passe ne correspondent pas",
    "passwordLoginDisabled": "La connexion par nom d'utilisateur/mot de passe est désactivée",
    "weakPassword": "Mot de passe trop faible",
    "usernameExists": "Ce nom d'utilisateur existe déjà",
    "emailExists": "Cet e-mail existe déjà",
    "loadFailed": "Échec du chargement des données",
    "saveError": "Échec de l'enregistrement",
    "sessionExpired": "Session expirée - veuillez vous reconnecter"
  },
  "messages": {
    "saveSuccess": "Enregistré avec succès",
    "saveError": "Échec de l'enregistrement",
    "deleteSuccess": "Supprimé avec succès",
    "deleteError": "Échec de la suppression",
    "updateSuccess": "Mis à jour avec succès",
    "updateError": "Échec de la mise à jour",
    "copySuccess": "Copié dans le presse-papiers",
    "copyError": "Échec de la copie",
    "copiedToClipboard": "{{item}} copié dans le presse-papiers",
    "connectionEstablished": "Connexion établie",
    "connectionClosed": "Connexion fermée",
    "reconnecting": "Reconnexion...",
    "processing": "Traitement...",
    "pleaseWait": "Veuillez patienter...",
    "registrationDisabled": "L'inscription de nouveaux comptes est actuellement désactivée par un administrateur. Connectez-vous ou contactez un administrateur.",
    "databaseConnected": "Base de données connectée avec succès",
    "databaseConnectionFailed": "Échec de la connexion au serveur de base de données",
    "checkServerConnection": "Vérifiez votre connexion au serveur puis réessayez",
    "resetCodeSent": "Code de réinitialisation envoyé dans les logs Docker",
    "codeVerified": "Code vérifié avec succès",
    "passwordResetSuccess": "Mot de passe réinitialisé avec succès",
    "loginSuccess": "Connexion réussie",
    "registrationSuccess": "Inscription réussie"
  },
  "profile": {
    "title": "Profil utilisateur",
    "description": "Gérez les paramètres et la sécurité de votre compte",
    "security": "Sécurité",
    "changePassword": "Changer le mot de passe",
    "twoFactorAuth": "Authentification à deux facteurs",
    "accountInfo": "Informations du compte",
    "role": "Rôle",
    "admin": "Administrateur",
    "user": "Utilisateur",
    "authMethod": "Méthode d'authentification",
    "local": "Local",
    "external": "Externe (OIDC)",
    "selectPreferredLanguage": "Choisissez votre langue préférée pour l'interface",
    "fileColorCoding": "Codage couleur des fichiers",
    "fileColorCodingDesc": "Codage couleur des fichiers par type : dossiers (rouge), fichiers (bleu), liens symboliques (vert)",
    "commandAutocomplete": "Autocomplétion des commandes",
    "commandAutocompleteDesc": "Activer les suggestions d'autocomplétion avec la touche Tab pour les commandes du terminal basées sur votre historique",
    "currentPassword": "Mot de passe actuel",
    "passwordChangedSuccess": "Mot de passe modifié avec succès ! Veuillez vous reconnecter.",
    "failedToChangePassword": "Échec de la modification du mot de passe. Vérifiez votre mot de passe actuel et réessayez."
  },
  "user": {
    "failedToLoadVersionInfo": "Échec du chargement des informations de version"
  },
  "placeholders": {
    "enterCode": "000000",
    "ipAddress": "127.0.0.1",
    "port": "22",
    "maxRetries": "3",
    "retryInterval": "10",
    "language": "Langue",
    "username": "nom d'utilisateur",
    "hostname": "nom d'hôte",
    "folder": "dossier",
    "password": "mot de passe",
    "keyPassword": "mot de passe de la clé",
    "pastePrivateKey": "Collez votre clé privée ici...",
    "pastePublicKey": "Collez votre clé publique ici...",
    "credentialName": "Mon serveur SSH",
    "description": "Description de l'identifiant SSH",
    "searchCredentials": "Recherchez des identifiants par nom, utilisateur ou labels...",
    "sshConfig": "configuration SSH de destination",
    "homePath": "/home",
    "clientId": "votre-client-id",
    "clientSecret": "votre-client-secret",
    "authUrl": "https://votre-fournisseur.com/application/o/authorize/",
    "redirectUrl": "https://votre-fournisseur.com/application/o/termix/",
    "tokenUrl": "https://votre-fournisseur.com/application/o/token/",
    "userIdField": "sub",
    "usernameField": "name",
    "scopes": "openid email profile",
    "userinfoUrl": "https://votre-fournisseur.com/application/o/userinfo/",
    "enterUsername": "Saisissez le nom d'utilisateur à promouvoir administrateur",
    "searchHosts": "Recherchez des hôtes par nom, utilisateur, IP, dossier, labels...",
    "enterPassword": "Entrez votre mot de passe",
    "totpCode": "Code TOTP à 6 chiffres",
    "searchHostsAny": "Recherchez des hôtes avec n'importe quelle info...",
    "confirmPassword": "Entrez votre mot de passe pour confirmer",
    "typeHere": "Tapez ici",
    "fileName": "Saisissez un nom de fichier (ex. : exemple.txt)",
    "folderName": "Saisissez un nom de dossier",
    "fullPath": "Saisissez le chemin complet de l'élément",
    "currentPath": "Saisissez le chemin actuel de l'élément",
    "newName": "Saisissez le nouveau nom"
  },
  "leftSidebar": {
    "failedToLoadHosts": "Échec du chargement des hôtes",
    "noFolder": "Sans dossier",
    "passwordRequired": "Mot de passe requis",
    "failedToDeleteAccount": "Échec de la suppression du compte",
    "failedToMakeUserAdmin": "Échec de la promotion de l'utilisateur en administrateur",
    "userIsNowAdmin": "L'utilisateur {{username}} est maintenant administrateur",
    "removeAdminConfirm": "Voulez-vous vraiment retirer le statut d'administrateur à {{username}} ?",
    "deleteUserConfirm": "Voulez-vous vraiment supprimer l'utilisateur {{username}} ? Cette action est irréversible.",
    "deleteAccount": "Supprimer le compte",
    "closeDeleteAccount": "Fermer la suppression de compte",
    "deleteAccountWarning": "Cette action est irréversible. Elle supprimera définitivement votre compte et toutes les données associées.",
    "deleteAccountWarningDetails": "Supprimer votre compte supprimera toutes vos données, y compris les hôtes SSH, configurations et paramètres. Action irréversible.",
    "deleteAccountWarningShort": "Cette action est irréversible et supprimera définitivement votre compte.",
    "cannotDeleteAccount": "Impossible de supprimer le compte",
    "lastAdminWarning": "Vous êtes le dernier administrateur. Vous ne pouvez pas supprimer votre compte car le système n'aurait plus d'administrateur. Nommez d'abord un autre utilisateur administrateur ou contactez le support.",
    "confirmPassword": "Confirmer le mot de passe",
    "deleting": "Suppression...",
    "cancel": "Annuler"
  },
  "interface": {
    "sidebar": "Barre latérale",
    "toggleSidebar": "Afficher/masquer la barre latérale",
    "close": "Fermer",
    "online": "En ligne",
    "offline": "Hors ligne",
    "maintenance": "Maintenance",
    "degraded": "Dégradé",
    "noTunnelConnections": "Aucune connexion de tunnel configurée",
    "discord": "Discord",
    "connectToSshForOperations": "Connectez-vous en SSH pour utiliser les opérations sur les fichiers",
    "uploadFile": "Importer un fichier",
    "newFile": "Nouveau fichier",
    "newFolder": "Nouveau dossier",
    "rename": "Renommer",
    "deleteItem": "Supprimer l'élément",
    "createNewFile": "Créer un nouveau fichier",
    "createNewFolder": "Créer un nouveau dossier",
    "renameItem": "Renommer l'élément",
    "clickToSelectFile": "Cliquez pour sélectionner un fichier",
    "noSshHosts": "Aucun hôte SSH",
    "sshHosts": "Hôtes SSH",
    "importSshHosts": "Importer des hôtes SSH depuis un JSON",
    "clientId": "ID client",
    "clientSecret": "Secret client",
    "error": "Erreur",
    "warning": "Avertissement",
    "deleteAccount": "Supprimer le compte",
    "closeDeleteAccount": "Fermer la suppression de compte",
    "cannotDeleteAccount": "Impossible de supprimer le compte",
    "confirmPassword": "Confirmer le mot de passe",
    "deleting": "Suppression...",
    "externalAuth": "Authentification externe (OIDC)",
    "configureExternalProvider": "Configurer un fournisseur d'identité externe pour",
    "waitingForRetry": "En attente d'une nouvelle tentative",
    "retryingConnection": "Nouvelle tentative de connexion",
    "resetSplitSizes": "Réinitialiser les tailles de panneaux",
    "sshManagerAlreadyOpen": "Gestionnaire SSH déjà ouvert",
    "disabledDuringSplitScreen": "Désactivé en mode écran scindé",
    "unknown": "Inconnu",
    "connected": "Connecté",
    "disconnected": "Déconnecté",
    "maxRetriesExhausted": "Nombre maximal de tentatives atteint",
    "endpointHostNotFound": "Hôte de destination introuvable",
    "administrator": "Administrateur",
    "user": "Utilisateur",
    "external": "Externe",
    "local": "Local",
    "saving": "Enregistrement...",
    "saveConfiguration": "Enregistrer la configuration",
    "loading": "Chargement...",
    "refresh": "Actualiser",
    "adding": "Ajout...",
    "makeAdmin": "Nommer administrateur",
    "verifying": "Vérification...",
    "verifyAndEnable": "Vérifier et activer",
    "secretKey": "Clé secrète",
    "totpQrCode": "QR code TOTP",
    "passwordRequired": "Le mot de passe est requis avec l'authentification par mot de passe",
    "sshKeyRequired": "La clé privée SSH est requise avec l'authentification par clé",
    "keyTypeRequired": "Le type de clé est requis avec l'authentification par clé",
    "validSshConfigRequired": "Vous devez sélectionner une configuration SSH valide dans la liste",
    "updateHost": "Mettre à jour l'hôte",
    "addHost": "Ajouter un hôte",
    "editHost": "Modifier l'hôte",
    "pinConnection": "Épingler la connexion",
    "authentication": "Authentification",
    "password": "Mot de passe",
    "key": "Clé",
    "sshPrivateKey": "Clé privée SSH",
    "keyPassword": "Mot de passe de la clé",
    "keyType": "Type de clé",
    "enableTerminal": "Activer le terminal",
    "enableTunnel": "Activer le tunnel",
    "enableFileManager": "Activer le gestionnaire de fichiers",
    "defaultPath": "Chemin par défaut",
    "tunnelConnections": "Connexions de tunnel",
    "maxRetries": "Nombre max de tentatives",
    "upload": "Importer",
    "updateKey": "Mettre à jour la clé",
    "productionFolder": "Production",
    "databaseServer": "Serveur de base de données",
    "developmentServer": "Serveur de développement",
    "developmentFolder": "Développement",
    "webServerProduction": "Serveur web - Production",
    "unknownError": "Erreur inconnue",
    "failedToInitiatePasswordReset": "Échec du lancement de la réinitialisation du mot de passe",
    "failedToVerifyResetCode": "Échec de la vérification du code de réinitialisation",
    "failedToCompletePasswordReset": "Échec de la finalisation de la réinitialisation du mot de passe",
    "invalidTotpCode": "Code TOTP invalide",
    "failedToStartOidcLogin": "Échec du démarrage de la connexion OIDC",
    "failedToGetUserInfoAfterOidc": "Échec de la récupération des infos utilisateur après connexion OIDC",
    "loginWithExternalProvider": "Se connecter via un fournisseur externe",
    "loginWithExternal": "Se connecter via un fournisseur externe",
    "sendResetCode": "Envoyer le code de réinitialisation",
    "verifyCode": "Vérifier le code",
    "resetPassword": "Réinitialiser le mot de passe",
    "login": "Connexion",
    "signUp": "Créer un compte",
    "failedToUpdateOidcConfig": "Échec de la mise à jour de la configuration OIDC",
    "failedToMakeUserAdmin": "Échec de la promotion de l'utilisateur en administrateur",
    "failedToStartTotpSetup": "Échec du lancement de la configuration TOTP",
    "invalidVerificationCode": "Code de vérification invalide",
    "failedToDisableTotp": "Échec de la désactivation de TOTP",
    "failedToGenerateBackupCodes": "Échec de la génération des codes de secours"
  },
  "mobile": {
    "selectHostToStart": "Sélectionnez un hôte pour démarrer votre session terminal",
    "limitedSupportMessage": "La version mobile du site est encore en cours d'amélioration. Utilisez l'application mobile pour une meilleure expérience.",
    "mobileAppInProgress": "Application mobile en cours de développement",
    "mobileAppInProgressDesc": "Nous travaillons sur une application mobile dédiée pour offrir une meilleure expérience sur mobile.",
    "viewMobileAppDocs": "Installer l'application mobile",
    "mobileAppDocumentation": "Documentation de l'application mobile"
  },
  "dashboard": {
    "title": "Tableau de bord",
    "github": "GitHub officiel",
    "support": "Assistance",
    "discord": "Communauté Discord",
    "donate": "Faire un don",
    "serverOverview": "Vue d'ensemble du serveur",
    "version": "Version logicielle",
    "upToDate": "À jour",
    "updateAvailable": "Mise à jour disponible",
    "uptime": "Durée de fonctionnement",
    "database": "Base de données",
    "healthy": "Opérationnel",
    "error": "Erreur",
    "totalServers": "Serveurs",
    "totalTunnels": "Tunnels",
    "totalCredentials": "Identifiants",
    "recentActivity": "Activité récente",
    "reset": "Réinitialiser",
    "loadingRecentActivity": "Chargement de l'activité récente...",
    "noRecentActivity": "Aucune activité récente",
    "quickActions": "Actions rapides",
    "addHost": "Ajouter un hôte",
    "addCredential": "Ajouter un identifiant",
    "adminSettings": "Paramètres d'administration",
    "userProfile": "Profil utilisateur",
    "serverStats": "Statistiques serveur",
    "loadingServerStats": "Chargement des statistiques serveur...",
    "noServerData": "Aucune donnée serveur disponible",
    "cpu": "Processeur (CPU)",
    "ram": "Mémoire (RAM)",
    "notAvailable": "N/D"
  }
}
