{
  "app": {
    "connections": "Connexions",
    "settings": "Paramètres",
    "dontSleep": "Don't Sleep",
    "dontSleepEnable": "Activer le mode Anti-Veille",
    "dontSleepDisable": "Désactiver le mode Anti-Veille",
    "dontSleepEnabledTooltip": "Mode Anti-Veille activé, cliquez pour le désactiver",
    "dontSleepDisabledTooltip": "Mode Anti-Veille désactivé, cliquez pour l'activer",
    "dontSleepEnabled": "Mode Anti-Veille activé.",
    "dontSleepDisabled": "Mode Anti-Veille désactivé.",
    "dontSleepError": "Impossible de changer le mode Anti-Veille : {{message}}",
    "credentialStoreLocked": "Base de données chiffrée verrouillée",
    "credentialStoreUnlocked": "Base de données chiffrée déverrouillée",
    "credentialStoreLockAction": "Verrouiller la base de données chiffrée",
    "credentialStoreUnlockAction": "Déverrouiller la base de données chiffrée",
    "xServer": "X Server",
    "xServerRestart": "Redémarrer",
    "xServerStop": "Arrêter",
    "xServerStopped": "VcXsrv arrêté.",
    "primaryNav": "Principal",
    "resizeConnections": "Redimensionner la colonne Connexions",
    "resizeAiAssistant": "Redimensionner le panneau Assistant IA",
    "aiAssistant": "Assistant IA",
    "connectionRail": "Barre de connexion",
    "openConnectedConnection": "Ouvrir {{name}}",
    "openPinnedConnection": "Ouvrir la connexion épinglée {{name}}",
    "trayDontSleep": "Ne pas mettre en veille",
    "trayExit": "Quitter",
    "titlebar": {
      "minimize": "Réduire",
      "maximize": "Agrandir",
      "restore": "Restaurer",
      "close": "Fermer"
    }
  },
  "dashboard": {
    "title": "Tableau de bord",
    "moduleLabel": "Widgets",
    "subtitle": "Sélectionnez des widgets utilitaires locaux, des rapports et des widgets créés par l'IA pour les outils que vous voulez à portée de main.",
    "statusReady": "Les widgets du tableau de bord sont locaux.",
    "viewsLabel": "Vues du tableau de bord",
    "defaultView": "Vue par défaut",
    "addView": "Ajouter une vue",
    "addWidgetLabel": "Ajouter un widget",
    "newViewName": "Vue {{count}}",
    "newViewPrompt": "Nom de la vue",
    "renameView": "Renommer la vue",
    "removeView": "Supprimer la vue",
    "viewTabGradient": "Dégradé de l'onglet de vue pour {{view}}",
    "clearViewTabGradient": "Effacer le dégradé de l'onglet de vue pour {{view}}",
    "editLayout": "Modifier la mise en page",
    "editDone": "Terminé",
    "density": {
      "compact": "Compact",
      "default": "Par défaut",
      "roomy": "Spacieux"
    },
    "catalogTitle": "Catalogue de widgets",
    "catalogSearch": "Rechercher des widgets…",
    "catalogAll": "Tous",
    "catalogGroupBuiltIn": "Intégré",
    "catalogGroupCustom": "Créés par l'IA",
    "catalogBadgeAiGenerated": "Généré par l'IA",
    "catalogBadgeImported": "Importé",
    "catalogNoMatches": "Aucun widget correspondant.",
    "presetLabel": "Style prédéfini",
    "preset": {
      "panel": "Panneau",
      "ambient": "Ambiance",
      "hero": "Hero"
    },
    "glassBackground": "Arrière-plan verre dépoli",
    "hideTitle": "Masquer la barre de titre",
    "canvasOpacity": "Opacité du canevas",
    "accent": "Accent",
    "accentDefault": "Par défaut",
    "icon": "Icône",
    "titleLabel": "Titre",
    "titlePlaceholder": "Titre personnalisé…",
    "renameTitleHint": "Double-cliquez pour renommer",
    "advanced": "Avancé",
    "changeBackground": "Changer l'arrière-plan…",
    "backgroundModeDefault": "Thème par défaut",
    "backgroundModePreset": "Couleur et dégradé",
    "backgroundModeImage": "Image",
    "backgroundModeMedia": "Image / Vidéo",
    "backgroundModeDynamic": "Dynamique",
    "backgroundLivePreview": "Aperçu en direct",
    "backgroundLivePreviewTitle": "Aperçu de l'arrière-plan dynamique",
    "backgroundDefaultHint": "Utilise le fond du thème de couleur actif.",
    "backgroundDynamicHint": "Avertissement : certains arrière-plans peuvent affecter les performances.",
    "backgroundChooseImage": "Choisir une image…",
    "backgroundChooseMedia": "Choisir un fichier…",
    "backgroundRemoveImage": "Supprimer",
    "backgroundImageFilter": "Images",
    "backgroundMediaFilter": "Images et vidéos",
    "backgroundImageHint": "Choisissez une image à utiliser comme fond pour cette vue.",
    "backgroundMediaHint": "Choisissez une image ou vidéo comme fond pour cette vue.",
    "backgroundMediaSourcePrefix": "Vous pouvez trouver des fonds d'écran libres de droits de haute qualité sur",
    "backgroundMediaSourceLink": "Pixabay",
    "backgroundFitLabel": "Ajustement",
    "backgroundDimLabel": "Assombrir / Éclaircir",
    "backgroundFit": {
      "fill": "Remplir",
      "fit": "Ajuster",
      "stretch": "Étirer",
      "tile": "Mosaïque",
      "center": "Centrer"
    },
    "backgroundPresets": {
      "mist": "Brume",
      "sand": "Sable chaud",
      "sage": "Sauge",
      "sky": "Ciel",
      "blush": "Rosé",
      "lavender": "Lavande",
      "slate": "Ardoise",
      "graphite": "Graphite",
      "midnight": "Minuit",
      "pine": "Pin",
      "aubergine": "Aubergine",
      "ember": "Braise",
      "harbor": "Port",
      "moss": "Mousse",
      "wine": "Vin",
      "steel": "Acier",
      "gDawn": "Aube",
      "gFog": "Brouillard",
      "gMeadow": "Prairie",
      "gDusk": "Crépuscule",
      "gLinen": "Lin",
      "gHorizon": "Horizon",
      "gPetal": "Pétale",
      "gTwilight": "Crépuscule",
      "gMidnight": "Minuit",
      "gHarbor": "Port",
      "gEmber": "Braise",
      "gOrchid": "Orchidée",
      "gForest": "Forêt",
      "gEclipse": "Éclipse",
      "gCobalt": "Cobalt",
      "gNocturne": "Nocturne"
    },
    "dynamicBackgrounds": {
      "fuji": "Mont Fuji",
      "aurora": "Aurore",
      "halftone": "Trame",
      "clouds": "Nuages",
      "ocean": "Océan",
      "raindrops": "Gouttes de pluie",
      "rainyWindow": "Fenêtre pluvieuse",
      "frostedWindow": "Fenêtre givrée",
      "snow": "Chute de neige",
      "sakura": "Sakura",
      "fireflies": "Lucioles",
      "bubbles": "Bulles",
      "aquarium": "Aquarium",
      "jellyfish": "Méduses",
      "lighthouse": "Phare",
      "balloons": "Montgolfières",
      "ricefield": "Rizière",
      "lanterns": "Lanternes célestes",
      "starfield": "Ciel nocturne",
      "nebula": "Nébuleuse",
      "orbitals": "Orbitales",
      "embers": "Braises",
      "lava": "Lampe à lave",
      "ink": "Encre",
      "dunes": "Dunes du désert",
      "savanna": "Savane",
      "matrix": "Matrice",
      "topo": "Carte topo",
      "synthwave": "Synthwave",
      "circuit": "Circuit",
      "crystals": "Cristaux",
      "cyberpunk": "Cyberpunk",
      "taipei101": "Taipei 101",
      "thunderstorm": "Orage",
      "confetti": "Confetti",
      "particleCursor": "Curseur de particules"
    },
    "scriptNetwork": "Autoriser le réseau",
    "scriptPollSeconds": "Intervalle d'interrogation (secondes)",
    "scriptViewSource": "Voir la source",
    "scriptInvalidBody": "Le corps du script n'est pas un JSON valide.",
    "invalidScriptWidgetBody": "Le corps du widget de script n'est pas un JSON valide.",
    "widgetLibraryLoadFailed": "Échec du chargement des bibliothèques de widgets : {{error}}",
    "missingBuiltInWidget": "Widget intégré manquant : {{sourceId}}",
    "missingCustomWidget": "Widget créé par l'IA manquant : {{sourceId}}",
    "scriptWidgetCapped": "Cliquer pour activer (max {{max}} widgets actifs)",
    "scriptWidgetFrameTitle": "Widget de script du tableau de bord",
    "untitledWidget": "Widget",
    "properties": "Propriétés",
    "customize": "Personnaliser le widget",
    "customizeSectionCommon": "Commun",
    "customizeSectionWidget": "Widget",
    "widgetSettings": "Paramètres du widget",
    "widgetSettingsEmpty": "Aucun paramètre personnalisé pour ce widget.",
    "widgetSettingsInvalid": "Le schéma de paramètres du widget n'est pas valide.",
    "secretStored": "Stocké en toute sécurité",
    "secretPlaceholder": "Coller le secret à stocker",
    "secretClear": "Effacer le secret",
    "cidrInput": "Bloc CIDR",
    "network": "Réseau",
    "broadcast": "Diffusion",
    "mask": "Masque de sous-réseau",
    "usable": "Hôtes utilisables",
    "subnetInvalid": "Ce n'est pas un sous-réseau ou une plage IPv4 valide.",
    "reportStep1": "Confirmer l'âge de la sauvegarde actuelle.",
    "reportStep2": "Examiner les connexions modifiées avant la maintenance.",
    "reportStep3": "Capturer des preuves terminal uniquement lorsque nécessaire.",
    "reportStep4": "Garder l'exécution des commandes basée sur approbation.",
    "tool": "Outil",
    "input": "Entrée",
    "output": "Sortie",
    "assistantContextLabel": "Contexte de la page Tableau de bord",
    "assistantContextSource": "Tableau de bord {{view}}",
    "assistantContextIntro": "L'utilisateur consulte cette vue du Tableau de bord. Utilisez les widgets et rapports actifs comme contexte de page.",
    "assistantSummary": "Parcourez et gérez les widgets du tableau de bord via l'Assistant IA.",
    "catalog": "Catalogue de widgets",
    "widgetCount": "{{count}} widgets",
    "categoriesLabel": "Catégories de widgets",
    "categoryAll": "Tout",
    "playground": "Terrain de jeu",
    "playgroundHint": "Ajoutez des widgets depuis le catalogue, puis retirez-les ou remplacez-les selon l'évolution de votre flux de travail.",
    "addAgentWidget": "Ajouter un widget agent",
    "addWidget": "Ajouter {{name}}",
    "widgetAlreadySelected": "{{name}} est déjà sélectionné",
    "removeWidget": "Retirer {{name}}",
    "removeConfirmHint": "Cliquez à nouveau pour supprimer",
    "deleteViewBody": "Supprimer « {{name}} » et tous les widgets de cette vue du tableau de bord ? Cette action est irréversible.",
    "deleteWidgetBody": "Supprimer « {{name}} » de cette vue du tableau de bord ? Cette action est irréversible.",
    "deleteCustomWidget": "Supprimer {{name}}",
    "widgetDeleted": "Widget du tableau de bord supprimé.",
    "connectionPaneTitle": "Volet de connexion",
    "connectionPaneSummary": "Épinglez des connexions enregistrées dans un volet de tableau de bord interactif en direct.",
    "connectionWidgetSelect": "Connexion",
    "connectionWidgetSelectPlaceholder": "Sélectionner une connexion enregistrée…",
    "connectionWidgetLoadError": "Impossible de charger les connexions : {{message}}",
    "connectionWidgetNoConnectionsTitle": "Aucune connexion enregistrée",
    "connectionWidgetNoConnectionsHint": "Créez une connexion dans le module Espace de travail, puis ajoutez-la ici.",
    "connectionWidgetEmptyTitle": "Aucune connexion épinglée",
    "connectionWidgetEmptyHint": "Ajoutez une connexion enregistrée pour afficher son volet en direct dans ce widget.",
    "connectionWidgetActivePane": "Volets de connexion épinglés",
    "connectionWidgetRemove": "Retirer {{name}} de ce widget",
    "connectionWidgetNoResults": "Aucune connexion ne correspond à votre recherche",
    "connectionWidgetOpenWorkspace": "Ouvrir dans l'espace de travail",
    "aiCodingUsageTitle": "Utilisation du codage IA",
    "aiCodingUsageSummary": "Surveillez les fenêtres d’utilisation de Codex et Claude Code depuis le Dashboard.",
    "aiCodingUsageSubtitle": "Fenêtres de quota Codex et Claude Code",
    "aiCodingUsageProvider": {
      "codex": "Codex",
      "claudeCode": "Claude Code"
    },
    "aiCodingUsageProviderProduct": {
      "codex": "OpenAI Codex",
      "claudeCode": "Anthropic Claude Code"
    },
    "aiCodingUsageNotConnected": "Non connecté",
    "aiCodingUsageProviderHint": "Connectez ce fournisseur pour commencer à surveiller l’utilisation.",
    "aiCodingUsageAddTool": "Ajouter un outil de codage IA",
    "aiCodingUsageEmptyTitle": "Aucun outil de codage IA ajouté",
    "aiCodingUsageEmptyHint": "Cliquez sur Ajouter pour ajouter Codex ou Claude Code à ce widget.",
    "aiCodingUsageConnectProvider": "Connecter {{provider}}",
    "aiCodingUsageConnecting": "Connexion…",
    "aiCodingUsageDisconnectProvider": "Déconnecter {{provider}}",
    "aiCodingUsageReconnectProvider": "Reconnecter/actualiser {{provider}}",
    "aiCodingUsageRemoveProvider": "Retirer {{provider}} de ce widget",
    "aiCodingUsageInstallHelp": "Installer {{provider}} sur Windows",
    "aiCodingUsageRefreshNow": "Actualiser l’utilisation maintenant",
    "aiCodingUsageFiveHour": "5 h",
    "aiCodingUsageWeekly": "Hebdomadaire",
    "aiCodingUsageUnknownUsage": "Inconnu",
    "aiCodingUsagePercent": "{{percent}} %",
    "aiCodingUsageResetsAt": "Réinitialisation {{time}}",
    "aiCodingUsageResetUnknown": "Heure de réinitialisation inconnue",
    "aiCodingUsageLastRefresh": "{{time}}",
    "aiCodingUsageNeverRefreshed": "Pas encore actualisé",
    "aiCodingUsageProviderError": "{{message}}",
    "aiCodingUsageRefreshError": "Impossible d’actualiser l’utilisation : {{message}}",
    "aiCodingUsageShowInStatusBar": "Afficher dans la barre d’état",
    "aiCodingUsageHideFromStatusBar": "Masquer de la barre d’état",
    "aiCodingUsageStatusBarResetsIn": "réinitialisation dans {{time}}",
    "notesTitle": "Notes",
    "notesSummary": "Une note style post-it pour des rappels rapides, avec couleur de papier et police réglables.",
    "notesPlaceholder": "Écrivez une note…",
    "notesAriaLabel": "Texte de la note",
    "notesToolbarLabel": "Apparence de la note",
    "notesPagesToolbarLabel": "Pages de note",
    "notesAddPage": "Ajouter une page de note",
    "notesDeletePage": "Supprimer la page de note",
    "notesPageIndicator": "Page {{page}} sur {{total}}",
    "notesRotationDegrees": "Degrés de rotation",
    "notesFoldDepth": "Profondeur du pli",
    "notesFoldCorner": "Coin plié",
    "notesMarkdownEnabled": "Rendre le Markdown",
    "notesBackgroundColor": "Couleur de fond",
    "notesFont": "Police",
    "notesFoldCornerOption": {
      "topRight": "En haut à droite",
      "topLeft": "En haut à gauche",
      "bottomRight": "En bas à droite",
      "bottomLeft": "En bas à gauche"
    },
    "notesColor": {
      "yellow": "Jaune",
      "pink": "Rose",
      "blue": "Bleu",
      "green": "Vert",
      "orange": "Orange",
      "purple": "Violet",
      "white": "Blanc"
    },
    "notesFontOption": {
      "handwriting": "Écriture",
      "marker": "Marqueur",
      "system": "Système",
      "serif": "Serif",
      "mono": "Mono"
    },
    "urlViewerTitle": "Visualiseur d'URL",
    "urlViewerSummary": "Ouvrir un site web avec le visualiseur d'URL natif et le rechargement automatique optionnel.",
    "urlWidgetUrl": "URL",
    "urlWidgetReloadSeconds": "Secondes de rechargement",
    "urlWidgetEmptyTitle": "Aucune URL configurée",
    "urlWidgetEmptyHint": "Saisissez une URL pour l'ouvrir dans le tableau de bord.",
    "deleteCustomWidgetTitle": "Supprimer le widget créé par l'IA",
    "deleteCustomWidgetBody": "Cela supprime le widget créé par l'IA « {{name}} » et toutes ses instances de chaque vue du tableau de bord. Cette action est irréversible.",
    "deleteCustomWidgetConfirm": "Supprimer le widget",
    "exportWidget": "Exporter le widget",
    "exportCustomWidget": "Exporter {{name}}",
    "exportAllWidgets": "Tout exporter",
    "importWidget": "Importer un widget",
    "importWidgetFromFile": "Charger depuis un fichier",
    "importWidgetPasteLabel": "JSON du widget",
    "importWidgetPasteHint": "Collez une exportation JSON .kkwidget ou chargez-la depuis le disque.",
    "importWidgetPastePlaceholder": "Collez le JSON du widget ici",
    "importWidgetPreviewEmpty": "Chargez ou collez le JSON du widget pour le prévisualiser avant l’import.",
    "importWidgetPreviewInvalid": "Le JSON du widget n’est pas valide.",
    "importWidgetPreviewTitle": "{{count}} widget(s) prêts à importer",
    "importWidgetPreviewMore": "+{{count}} de plus",
    "widgetFileFilter": "Widget KKTerm",
    "exportWidgetsComplete": "{{count}} widget(s) exporté(s).",
    "importWidgetsComplete": "{{count}} widget(s) importé(s).",
    "emptyTitle": "Aucun widget sélectionné",
    "emptyHint": "Choisissez un widget dans le catalogue pour créer un espace de travail Tableau de bord ciblé.",
    "hashTitle": "Hachage et encodage",
    "hashSample": "KKTerm",
    "hashInput": "Texte à hacher",
    "hashUnavailable": "Indisponible",
    "characters": "Caractères",
    "bytes": "Octets",
    "sha1": "SHA-1",
    "sha256": "SHA-256",
    "subnetTitle": "Calculateur de sous-réseau",
    "subnetSample": "192.168.10.44/27",
    "subnetInput": "Bloc CIDR",
    "networkAddress": "Réseau",
    "broadcastAddress": "Diffusion",
    "firstUsable": "Premier utilisable",
    "lastUsable": "Dernier utilisable",
    "subnetMask": "Masque de sous-réseau",
    "wildcardMask": "Masque générique",
    "totalAddresses": "Adresses totales",
    "usableHosts": "Hôtes utilisables",
    "quickToolsTitle": "Outils rapides",
    "quickToolsSummary": "Encoder, décoder et convertir de petites chaînes opérationnelles.",
    "quickTool": "Outil",
    "quickSample": "https://kkterm.local/a b",
    "quickInput": "Entrée",
    "quickOutput": "Sortie",
    "reportTitle": "Rapport de maintenance",
    "reportSummary": "Un rapport de vérification léger pour la revue de routine de l'opérateur.",
    "reportBody": "1. Confirmer l'âge de la sauvegarde actuelle.\n2. Examiner les connexions modifiées avant la maintenance.\n3. Capturer des preuves terminal uniquement lorsque cela est explicitement nécessaire.\n4. Garder l'exécution des commandes basée sur approbation.",
    "copyValue": "Copier {{label}}",
    "agentWidgetDialogTitle": "Ajouter un widget créé par agent",
    "agentWidgetDialogHint": "Collez un bloc JSON de widget révisé depuis l'Assistant IA ou un agent de codage. KKTerm l'enregistre localement et n'exécute pas de code.",
    "agentWidgetJson": "JSON du widget",
    "agentWidgetExample": "{\n  \"id\": \"agent-weekly-checklist\",\n  \"title\": \"Weekly Ops Checklist\",\n  \"category\": \"report\",\n  \"summary\": \"A locally saved report widget.\",\n  \"body\": \"Review backup status before maintenance windows.\"\n}",
    "saveWidget": "Enregistrer le widget",
    "agentWidgetSaved": "Widget du tableau de bord enregistré.",
    "agentWidgetBuiltInId": "Utilisez un ID de widget différent ; cet ID appartient à un widget intégré.",
    "widgetCopyValue": "Cliquer pour copier",
    "widgetCopied": "Copié",
    "subnetPlaceholder": "192.168.1.0/24 ou 10.0.0.5 - 10.0.0.200",
    "subnetHint": "Saisissez un bloc CIDR, une adresse avec masque ou une plage d'adresses.",
    "subnetNetwork": "Réseau",
    "subnetNetmask": "Masque de réseau",
    "subnetWildcard": "Masque générique",
    "subnetBroadcast": "Broadcast",
    "subnetFirstHost": "Premier hôte",
    "subnetLastHost": "Dernier hôte",
    "subnetUsableHosts": "Hôtes utilisables",
    "subnetBitsLabel": "La longueur du préfixe est de {{prefix}} bits. Cliquez sur un bit pour modifier le préfixe.",
    "subnetPrefixBit": "Définir le préfixe sur /{{bit}}",
    "qrTitle": "Code QR",
    "qrPlaceholder": "Saisissez un texte ou une URL à encoder…",
    "qrHint": "Saisissez un texte ci-dessus pour générer un code.",
    "qrError": "Cette valeur n'a pas pu être encodée.",
    "qrModeLabel": "Type de code",
    "qrModeQr": "QR",
    "qrModeBarcode": "Code-barres",
    "qrSaveImage": "Enregistrer en PNG",
    "cronTitle": "Générateur cron",
    "cronPlaceholder": "*/5 * * * *",
    "cronHint": "Saisissez une expression cron pour voir sa planification.",
    "cronInvalid": "Ce n'est pas une expression cron valide.",
    "cronPresetsLabel": "Modèles cron courants",
    "cronNextRuns": "Prochaines exécutions",
    "timeTitle": "Convertisseur d'horodatage",
    "timePlaceholder": "Secondes epoch, millisecondes ou une chaîne de date…",
    "timeHint": "Saisissez un horodatage ou une date à convertir.",
    "timeInvalid": "Cet horodatage ou cette date n'a pas pu être analysé.",
    "timeNow": "Maintenant",
    "timeLocal": "Local",
    "timeUtc": "UTC (ISO 8601)",
    "timeEpochSeconds": "Secondes epoch",
    "timeEpochMillis": "Millisecondes epoch",
    "hashPlaceholder": "Saisissez un texte à hacher ou encoder…",
    "hashJwtPlaceholder": "Collez un JWT pour décoder son en-tête et sa charge utile…",
    "hashHint": "Saisissez un texte ci-dessus pour voir les résultats.",
    "hashSelectFile": "Sélectionner un fichier à hacher",
    "hashSelectedFile": "Fichier : {{name}}",
    "hashFileReadError": "Impossible de lire ce fichier.",
    "hashInvalidInput": "Cette entrée n'a pas pu être décodée.",
    "hashTabHash": "Hachage",
    "hashDirectionLabel": "Encoder ou décoder",
    "hashEncode": "Encoder",
    "hashDecode": "Décoder",
    "hashJwtHeader": "En-tête",
    "hashJwtPayload": "Charge utile",
    "hashJwtInvalid": "Ce n'est pas un JWT valide.",
    "passwordTitle": "Générateur de mots de passe",
    "passwordRegenerate": "Générer une nouvelle valeur",
    "passwordModePassword": "Mot de passe",
    "passwordModePassphrase": "Phrase secrète",
    "passwordLength": "Longueur : {{length}}",
    "passwordWords": "Mots : {{words}}",
    "passwordEntropyBits": "{{bits}} bits",
    "passwordStrength": {
      "weak": "Faible",
      "fair": "Moyen",
      "strong": "Fort",
      "excellent": "Excellent"
    },
    "passwordToggle": {
      "uppercase": "Inclure les majuscules",
      "digits": "Inclure les chiffres",
      "symbols": "Inclure les symboles"
    },
    "dnsTitle": "Recherche DNS",
    "dnsPlaceholder": "example.com",
    "dnsHint": "Saisissez un nom de domaine et lancez une recherche.",
    "dnsError": "La recherche a échoué. Vérifiez le nom et votre connexion.",
    "dnsLoading": "Recherche…",
    "dnsNoRecords": "Aucun enregistrement de ce type trouvé.",
    "dnsLookup": "Rechercher",
    "dnsTypeLabel": "Type d'enregistrement",
    "dnsTtl": "TTL {{seconds}}s",
    "dnsMyIp": "Mon IP",
    "speedtestTitle": "Test de débit réseau",
    "speedtestStart": "Démarrer le test",
    "speedtestRetest": "Refaire le test",
    "speedtestLatency": "Latence",
    "speedtestJitter": "Gigue",
    "speedtestPhaseLatency": "Mesure de la latence…",
    "speedtestPhaseDownload": "Mesure du téléchargement…",
    "speedtestError": "Le test n'a pas pu se terminer.",
    "speedtestNote": "Ne s'exécute que lorsque vous le démarrez. Consomme de la bande passante réelle.",
    "speedtestTargetLabel": "Cible",
    "speedtestTargets": {
      "cloudflareAuto": "Automatique - edge mondial Cloudflare",
      "newYork": "Amérique du Nord - New York",
      "losAngeles": "Amérique du Nord - Los Angeles",
      "london": "Europe - Londres",
      "frankfurt": "Europe - Francfort",
      "tokyo": "Asie - Tokyo",
      "singapore": "Asie - Singapour",
      "johannesburg": "Afrique - Johannesbourg"
    },
    "pcInfoTitle": "Infos PC",
    "pcInfoSummary": "Un instantané façon Speccy de ce PC : OS, CPU, mémoire, carte mère, graphismes, stockage, réseau et audio.",
    "pcInfoDesktopOnly": "Infos PC s'exécute dans l'app de bureau.",
    "pcInfoLoading": "Collecte des informations système…",
    "pcInfoEmpty": "Pas encore d'informations système.",
    "pcInfoSectionEmpty": "Rien à signaler pour cette section.",
    "pcInfoUpdatedAt": "Mis à jour {{time}}",
    "pcInfoYes": "Oui",
    "pcInfoNo": "Non",
    "pcInfoSlotsValue": "{{used}} sur {{total}}",
    "pcInfoSection": {
      "summary": "Résumé",
      "os": "Système d'exploitation",
      "cpu": "CPU",
      "memory": "Mémoire",
      "motherboard": "Carte mère",
      "graphics": "Graphismes",
      "storage": "Stockage",
      "network": "Réseau",
      "audio": "Audio",
      "battery": "Batterie"
    },
    "pcInfoField": {
      "os": "OS",
      "hostname": "Nom d'hôte",
      "cpu": "CPU",
      "ram": "RAM",
      "gpu": "Graphismes",
      "motherboard": "Carte mère",
      "pcModel": "Modèle du PC",
      "uptime": "Durée d'activité",
      "name": "Nom",
      "version": "Version",
      "build": "Build",
      "architecture": "Architecture",
      "loggedInUser": "Utilisateur connecté",
      "registeredUser": "Enregistré à",
      "locale": "Paramètre régional",
      "timeZone": "Fuseau horaire",
      "systemDrive": "Lecteur système",
      "productId": "ID de produit",
      "installDate": "Installé",
      "lastBoot": "Dernier démarrage",
      "vendor": "Fabricant",
      "family": "Famille",
      "cores": "Cœurs",
      "threads": "Threads",
      "maxClock": "Fréquence max.",
      "currentClock": "Fréquence actuelle",
      "l1Cache": "Cache L1",
      "l2Cache": "Cache L2",
      "l3Cache": "Cache L3",
      "socket": "Socket",
      "virtualization": "Virtualisation",
      "addressWidth": "Largeur d'adresse",
      "total": "Total",
      "available": "Disponible",
      "used": "Utilisé",
      "slots": "Emplacements",
      "maxCapacity": "Capacité max.",
      "capacity": "Capacité",
      "speed": "Vitesse",
      "type": "Type",
      "formFactor": "Format",
      "bank": "Banque",
      "voltage": "Tension",
      "manufacturer": "Fabricant",
      "partNumber": "Numéro de pièce",
      "product": "Produit",
      "serialNumber": "Numéro de série",
      "systemType": "Type de système",
      "chassis": "Châssis",
      "systemSku": "SKU système",
      "systemUuid": "UUID système",
      "bios": "BIOS",
      "date": "Date",
      "vram": "VRAM",
      "chip": "Puce",
      "driver": "Pilote",
      "driverDate": "Date du pilote",
      "mode": "Mode d'affichage",
      "displays": "Écrans",
      "health": "État de santé",
      "rpm": "Vitesse de rotation",
      "interface": "Interface",
      "volumes": "Volumes",
      "status": "État",
      "macAddress": "Adresse MAC",
      "adapterType": "Type d'adaptateur",
      "linkSpeed": "Vitesse de liaison",
      "ipAddresses": "Adresses IP",
      "subnetMask": "Masque de sous-réseau",
      "gateway": "Passerelle",
      "dns": "DNS",
      "dnsSuffix": "Suffixe DNS",
      "dhcp": "DHCP",
      "dhcpServer": "Serveur DHCP",
      "charge": "Charge",
      "wear": "Usure",
      "designCapacity": "Capacité nominale",
      "fullCapacity": "Capacité à pleine charge"
    },
    "pcInfoTab": {
      "summary": "Résumé",
      "os": "OS",
      "cpu": "CPU",
      "memory": "Mémoire",
      "motherboard": "Carte",
      "graphics": "GPU",
      "storage": "Disque",
      "network": "Réseau",
      "audio": "Audio",
      "battery": "Batterie"
    },
    "pcInfoLabel": {
      "systemInventory": "Inventaire système",
      "cpuLoad": "Charge CPU",
      "liveLoad": "Charge en direct",
      "liveThroughput": "Débit en direct",
      "inUse": "Utilisé",
      "daysUp": "Jours actifs",
      "maxGhz": "GHz max",
      "gbTotal": "Go total",
      "gbFree": "Go libre",
      "slotsPopulated": "Emplacements occupés",
      "typeSpeed": "Type · Vitesse",
      "freeOfTotal": "{{free}} libre · {{total}}",
      "audioDevices": "Périphériques audio",
      "sourceCached": "Source : {{source}} · instantané en cache",
      "monitorOff": "Métriques en direct désactivées — activez le moniteur de la barre d'état"
    },
    "networkToolsTitle": "Outils réseau",
    "networkToolsSummary": "Calcul de sous-réseau, DNS, tests de débit, balayages ping et WHOIS dans un widget à onglets.",
    "networkToolsTab": {
      "subnet": "Sous-réseau",
      "dns": "DNS",
      "speedtest": "Débit",
      "ping": "Ping",
      "whois": "Whois"
    },
    "pingTitle": "Moniteur ping",
    "pingTargetsLabel": "Cibles ping",
    "pingTargetsPlaceholder": "Collez des IP, des blocs CIDR ou du texte contenant des adresses IP",
    "pingDuration": "Durée (s)",
    "pingInterval": "Intervalle (ms)",
    "pingStart": "Démarrer",
    "pingStop": "Arrêter",
    "pingHint": "Collez les cibles, définissez la durée et l’intervalle, puis lancez l’exécution.",
    "pingDesktopOnly": "Ping s’exécute dans l’application de bureau.",
    "pingTargetCount": "{{count}} cibles",
    "pingTargetCountCapped": "{{count}} cibles, limitées",
    "pingRunning": "En cours",
    "pingDone": "Terminé",
    "pingCurrent": "Actuel",
    "pingAverage": "Moyenne",
    "pingLoss": "Perte",
    "whoisTitle": "Recherche Whois",
    "whoisDomainLabel": "Domaine",
    "whoisPlaceholder": "example.com",
    "whoisLookup": "Rechercher",
    "whoisHint": "Saisissez un domaine pour interroger les enregistrements WHOIS publics.",
    "whoisDesktopOnly": "Whois s’exécute dans l’application de bureau.",
    "whoisLoading": "Recherche WHOIS…",
    "whoisError": "Whois a échoué : {{message}}",
    "generatorToolsTitle": "Générateurs",
    "generatorToolsSummary": "Codes QR, planifications cron, mots de passe, horodatages et hachages dans un widget à onglets.",
    "generatorToolsTab": {
      "qr": "QR",
      "cron": "Cron",
      "password": "Mot de passe",
      "time": "Heure",
      "hash": "Hachage"
    },
    "convertersTitle": "Convertisseurs",
    "convertersSummary": "Conversion d’unités, de devises et d’images dans un seul widget.",
    "convertersTab": {
      "unit": "Unité",
      "currency": "Devise",
      "image": "Image"
    },
    "imageConverter": {
      "imageFiles": "Fichiers image",
      "chooseImage": "Choisir une image",
      "outputFormat": "Format de sortie",
      "quality": "Qualité {{value}} %",
      "pngLossless": "PNG est sans perte",
      "resizeMode": "Mode de redimensionnement",
      "exact": "Exact",
      "percentage": "Pourcentage",
      "width": "Largeur",
      "height": "Hauteur",
      "lockAspectRatio": "Verrouiller les proportions",
      "outputDimensions": "Sortie : {{width}} × {{height}} px",
      "selectHint": "Choisissez une image JPG, PNG ou WebP.",
      "convertAndSave": "Convertir et enregistrer",
      "converting": "Conversion…",
      "desktopOnly": "La conversion d’images est disponible dans l’application de bureau.",
      "fileTooLarge": "Le fichier dépasse la limite d’entrée de 100 Mo.",
      "dimensionLimit": "La largeur et la hauteur ne doivent pas dépasser 16 384 px.",
      "pixelLimit": "L’image ne doit pas dépasser 50 mégapixels.",
      "invalidDimensions": "Saisissez des dimensions de sortie valides.",
      "unsupportedFormat": "Ce système ne peut pas encoder les images {{format}}.",
      "openFailed": "Impossible d’ouvrir l’image.",
      "convertFailed": "Échec de la conversion de l’image.",
      "saved": "{{name}} enregistré"
    },
    "unitCategoryLabel": "Catégorie d’unité",
    "unitCategory": {
      "length": "Longueur",
      "mass": "Poids / masse",
      "area": "Surface",
      "temperature": "Température"
    },
    "converterAmount": "Montant",
    "currencyAmount": "Montant en devise",
    "currencyEstimate": "Les taux sont des estimations. Récupérez les derniers taux avant de vous y fier.",
    "currencyLastRefresh": "Estimation du {{date}}",
    "currencyFetchLatest": "Récupérer les derniers",
    "currencyRefresh": "Actualiser",
    "currencyError": "Impossible d’actualiser les taux.",
    "currencyName": {
      "USD": "Dollar américain",
      "EUR": "Euro",
      "TWD": "Nouveau dollar de Taïwan",
      "JPY": "Yen japonais",
      "CNY": "Yuan chinois",
      "HKD": "Dollar de Hong Kong",
      "KRW": "Won sud-coréen",
      "GBP": "Livre sterling",
      "CAD": "Dollar canadien",
      "AUD": "Dollar australien",
      "SGD": "Dollar de Singapour",
      "THB": "Baht thaïlandais",
      "IDR": "Roupie indonésienne",
      "VND": "Dong vietnamien",
      "CHF": "Franc suisse",
      "SEK": "Couronne suédoise",
      "MXN": "Peso mexicain",
      "BRL": "Réal brésilien"
    },
    "converterUnit": {
      "millimeter": "Millimètre",
      "centimeter": "Centimètre",
      "meter": "Mètre",
      "kilometer": "Kilomètre",
      "inch": "Pouce",
      "foot": "Pied",
      "yard": "Yard",
      "mile": "Mille",
      "nauticalMile": "Mille nautique",
      "gram": "Gramme",
      "kilogram": "Kilogramme",
      "metricTon": "Tonne métrique",
      "ounce": "Once",
      "pound": "Livre",
      "stone": "Stone",
      "usTon": "Tonne américaine",
      "ukTon": "Tonne britannique",
      "cattyTaiwan": "Catty taïwanais",
      "squareMeter": "Mètre carré",
      "hectare": "Hectare",
      "squareKilometer": "Kilomètre carré",
      "squareFoot": "Pied carré",
      "squareYard": "Yard carré",
      "acre": "Acre",
      "squareMile": "Mille carré",
      "ping": "Ping (Taïwan)",
      "tsubo": "Tsubo",
      "celsius": "Celsius",
      "fahrenheit": "Fahrenheit",
      "kelvin": "Kelvin"
    }
  },
  "appLauncher": {
    "title": "Lanceur d'applications",
    "subtitle": "Ajoutez des applications locales, raccourcis, scripts et fichiers pour un lancement rapide depuis un widget du tableau de bord.",
    "entriesLabel": "Applications épinglées",
    "viewModeLabel": "Mode d'affichage du lanceur",
    "showFileExtensions": "Afficher les extensions de fichier",
    "iconView": "Icônes",
    "listView": "Vue en liste",
    "detailsView": "Détails",
    "detailsNameColumn": "Nom",
    "detailsTypeColumn": "Type",
    "detailsSizeColumn": "Taille",
    "detailsModifiedColumn": "Modifié",
    "detailsPathColumn": "Chemin",
    "folderType": "Dossier",
    "fileType": "Fichier",
    "fileTypeWithExtension": "Fichier {{extension}}",
    "unknownFileType": "Inconnu",
    "notAvailable": "-",
    "addMenuApp": "Application",
    "addMenuFile": "Document",
    "addMenuFolder": "Dossier",
    "selectAppTitle": "Ajouter une app ou un script",
    "selectFileTitle": "Ajouter une application, un raccourci, un script ou un fichier",
    "selectFolderTitle": "Add a folder",
    "fileFilter": "Applications, raccourcis et scripts",
    "allFilesFilter": "Tous les fichiers",
    "emptyTitle": "Aucune application épinglée",
    "emptyHint": "Ajoutez une application de bureau, un raccourci, un script ou un fichier pour le lancer depuis ce widget.",
    "dialogLabel": "Entrée du lanceur",
    "dialogTitle": "Modifier l'entrée du lanceur",
    "name": "Nom",
    "path": "Chemin",
    "arguments": "Arguments",
    "argumentsPlaceholder": "Arguments de lancement facultatifs",
    "workingDirectory": "Répertoire de travail",
    "workingDirectoryPlaceholder": "Chemin de dossier facultatif",
    "launchApp": "Lancer {{name}}",
    "runNormal": "Exécuter",
    "runAdmin": "Exécuter en tant qu'administrateur",
    "runAsUser": "Exécuter en tant qu'autre utilisateur",
    "openFolder": "Ouvrir le dossier",
    "edit": "Modifier",
    "remove": "Retirer",
    "selectError": "Impossible de lire la sélection du lanceur : {{message}}",
    "saveError": "Impossible d'enregistrer les épingles du lanceur : {{message}}",
    "launchError": "Impossible de lancer l'application : {{message}}",
    "savedStatus": "Entrée du lanceur enregistrée : {{name}}.",
    "removedStatus": "Entrée du lanceur retirée : {{name}}.",
    "launchStatus": "Lancement de {{name}}."
  },
  "installer": {
    "title": "Assistant d’installation",
    "powerShell7": {
      "installTitle": "Installer PowerShell 7 ?",
      "installPrompt": "PowerShell 7 (pwsh) n'est pas installé. L'installer maintenant et l'ouvrir, ou utiliser Windows PowerShell à la place ?",
      "installing": "Installation de PowerShell 7…",
      "installFailed": "Échec de l'installation de PowerShell 7, ouverture de Windows PowerShell à la place. {{message}}"
    },
    "psmux": {
      "installTitle": "Installer psmux ?",
      "installPrompt": "psmux n'est pas installé. L'installer maintenant pour activer la gestion des sessions ?",
      "installing": "Installation de psmux…"
    },
    "railLabel": "Assistant d’installation",
    "refresh": "Actualiser",
    "checkingForUpdates": "Vérification des mises à jour",
    "updateAll": "Tout mettre à jour",
    "search": "Rechercher des outils",
    "view": {
      "list": "Vue liste",
      "gallery": "Vue galerie"
    },
    "sidebar": {
      "status": "État",
      "categories": "Catégories",
      "allTools": "Tous les outils",
      "updates": "Mises à jour",
      "show": "Afficher la barre latérale",
      "hide": "Masquer la barre latérale"
    },
    "listColumn": {
      "name": "Nom",
      "status": "État",
      "action": "Action"
    },
    "footer": {
      "tools": "{{count}} outils",
      "installed": "{{count}} installés",
      "updates": "{{count}} mises à jour disponibles"
    },
    "section": {
      "installed": "Installé",
      "available": "Disponible",
      "updates": "Mises à jour disponibles",
      "essentials": "Essentiels",
      "aiAgents": "Agents IA",
      "aiPlatforms": "Plateformes IA",
      "development": "Développement",
      "windowsPowerUser": "Utilisateur avancé Windows",
      "remoteAccess": "Accès distant",
      "packageManagers": "Gestionnaires de paquets",
      "utilities": "Utilitaires",
      "design": "Design"
    },
    "actions": {
      "install": "Installer",
      "update": "Mettre à jour",
      "uninstall": "Désinstaller",
      "run": "Exécuter",
      "stop": "Arrêter",
      "openWebUi": "Ouvrir l’interface web",
      "installService": "Installer le service",
      "registerService": "Enregistrer comme service",
      "removeService": "Supprimer le service",
      "cancel": "Annuler",
      "addToWorkspace": "Ajouter à l'espace de travail"
    },
    "options": {
      "scope": "Mode d’installation",
      "scopeUser": "Mode utilisateur",
      "scopeMachine": "Mode système (UAC)",
      "scopeSelfElevatingHint": "Cet installateur peut encore afficher l’UAC dans le mode utilisateur.",
      "version": "Version",
      "versionLatest": "Dernière",
      "location": "Emplacement d’installation",
      "addToPath": "Ajouter à PATH",
      "pinVersion": "Épingler la version (ignorer dans Tout mettre à jour)",
      "provider": "Fournisseur"
    },
    "status": {
      "scanning": "Recherche des outils installés…",
      "installing": "Installation…",
      "uninstalling": "Désinstallation…",
      "completed": "Terminé",
      "failed": "Échec : {{message}}",
      "cancelled": "Annulé",
      "running": "En cours d'exécution",
      "stopped": "Arrêté",
      "unknown": "Inconnu",
      "serviceInstalled": "Assistant de service Windows terminé.",
      "addedToWorkspace": "\"{{name}}\" ajouté aux Connexions.",
      "serviceRemoved": "Suppression du service Windows terminée.",
      "partial": "Partiellement installé ({{installed}}/{{total}})",
      "noVersion": "(version inconnue)",
      "web": "Web",
      "notInstalled": "Non installé",
      "retrieving": "Récupération...",
      "neverChecked": "Jamais"
    },
    "empty": {
      "loading": "Chargement du catalogue…",
      "noMatches": "Aucun outil ne correspond à votre recherche."
    },
    "confirm": {
      "installTitle": "Installer {{name}} ?",
      "installWithPrereqsBody": "Cela installera également les prérequis suivants :",
      "uacFooter": "Peut afficher jusqu’à {{count}} invite(s) UAC.",
      "adminChocolateyFooter": "Chocolatey nécessite les droits administrateur : une invite UAC s’affichera, et la modification affectera tous les utilisateurs de cette machine.",
      "installConfirm": "Installer",
      "uninstallTitle": "Désinstaller {{name}} ?",
      "uninstallSimpleBody": "Cela supprimera {{name}} de votre système.",
      "uninstallDependentsBody": "La désinstallation de {{name}} laissera ces outils installés sans prérequis :",
      "uninstallDependentsFooter": "Désinstaller quand même ?",
      "uninstallConfirm": "Désinstaller",
      "updateTitle": "Mettre à jour {{name}} ?",
      "updateAllTitle": "Mettre à jour tous les outils installés ?",
      "updateAllBody": "{{count}} mise(s) à jour seront installées.",
      "updateAllConfirm": "Tout mettre à jour"
    },
    "wslReboot": "WSL a été activé pendant cette session. Redémarrez Windows avant d’installer Docker Desktop.",
    "lastChecked": "Dernière vérification : {{time}}",
    "checkingDots": "Vérification…",
    "dialog": {
      "installLocation": "Emplacement d’installation",
      "provider": "Fournisseur",
      "installedVersion": "Version installée",
      "latestVersion": "Dernière version",
      "lastChecked": "Dernière vérification",
      "homepage": "Site web",
      "releaseNotes": "Notes de version",
      "webUi": "Interface web",
      "windowsService": "Service Windows",
      "runtimeStatus": "Statut",
      "serviceStartup": "Démarrage",
      "runHints": "Conseils d'exécution",
      "quickLaunch": "Lancement rapide",
      "prerequisites": "Prérequis",
      "prereqInstalled": "Installé",
      "prereqMissing": "Manquant",
      "adminRequiredChocolatey": "Chocolatey s’exécute en tant qu’administrateur (UAC) et installe pour tous les utilisateurs de la machine.",
      "checkNow": "Vérifier maintenant",
      "checkingDots": "Vérification…",
      "updateAvailable": "Mise à jour disponible : {{from}} → {{to}}",
      "installingTitle": "Installation de {{name}}…",
      "uninstallingTitle": "Désinstallation de {{name}}…",
      "installedTitle": "{{name}} installé",
      "failedTitle": "Échec de l’installation : {{name}}",
      "cancelledTitle": "Installation annulée : {{name}}"
    },
    "quickLaunch": {
      "search": "Rechercher des outils…",
      "openTerminal": "Ouvrir PowerShell en mode administrateur",
      "cli": "CLI",
      "launch": "Lancer",
      "noMatches": "Aucun outil ne correspond à votre recherche."
    },
    "stepper": {
      "failedBadge": "Échec"
    },
    "steps": {
      "resolve": "Résoudre la version",
      "download": "Télécharger",
      "verifyChecksum": "Vérifier la somme de contrôle",
      "extract": "Extraire",
      "placeFiles": "Placer les fichiers",
      "updatePath": "Mettre à jour PATH",
      "install": "Installer",
      "verify": "Vérifier",
      "enable": "Activer la fonctionnalité"
    },
    "wsl": {
      "manageDistros": "Gérer les distributions",
      "installedHeading": "Distributions installées",
      "installHeading": "Installer une distribution",
      "default": "Par défaut",
      "setDefault": "Définir par défaut",
      "unregister": "Désinscrire",
      "selectPlaceholder": "Sélectionner une distribution",
      "noInstalled": "Aucune distribution WSL installée pour le moment.",
      "noOnline": "Aucune distribution supplémentaire à installer.",
      "loading": "Chargement des distributions…",
      "versionLabel": "WSL {{version}}",
      "installing": "Installation de {{name}}… Cela peut prendre plusieurs minutes.",
      "setDefaultDone": "{{name}} est désormais la distribution par défaut.",
      "unregisterDone": "{{name}} a été désinscrite.",
      "installDone": "{{name}} a été installée.",
      "unregisterTitle": "Désinscrire {{name}} ?",
      "unregisterBody": "Cela supprime définitivement la distribution {{name}} et tous ses fichiers. Cette action est irréversible."
    }
  },
  "itops": {
    "railLabel": "IT Ops",
    "title": "IT Ops",
    "tabs": {
      "sites": "Sites",
      "hosts": "Hôtes",
      "runs": "Exécutions par lot",
      "autos": "Automatisations"
    },
    "actions": {
      "newSite": "Nouveau site",
      "newBatchRun": "Nouvelle exécution par lot",
      "startBatchRun": "Démarrer une exécution par lot",
      "newAutomation": "Nouvelle automatisation",
      "runTask": "Exécuter la tâche",
      "cancel": "Annuler",
      "rerun": "Réexécuter",
      "viewReport": "Afficher le rapport",
      "save": "Enregistrer",
      "addAction": "Ajouter une action",
      "addConnections": "Ajouter des connexions…",
      "rename": "Renommer",
      "removeFromGroup": "Retirer du site",
      "more": "Plus",
      "create": "Créer",
      "delete": "Supprimer",
      "edit": "Modifier",
      "editDone": "Terminé",
      "export": "Exporter",
      "run": "Exécuter",
      "back": "Retour",
      "viewActions": "Actions de vue"
    },
    "transport": {
      "auto": "Auto"
    },
    "sites": {
      "heading": "Sites",
      "emptyTitle": "Aucun site pour le moment",
      "emptyBody": "Un site est une sélection nommée de connexions existantes utilisée comme cible pour les exécutions par lot et les automatisations.",
      "createHelp": "Un site est le conteneur de premier niveau des Salles de serveurs, Racks et Connexions. Utilisez-en un pour une région, un emplacement, un client, un projet ou toute autre façon d'organiser votre infrastructure.",
      "dynamicBadge": "DYN",
      "connectionsCount": "{{count}} connexions",
      "dynamicMembership": "appartenance dynamique",
      "transportDefaultLabel": "Transport par défaut",
      "perHostTransport": "Transport par hôte",
      "perHostTransportHint": "Comment une exécution par lot atteint chaque hôte. Auto le déduit de la connexion.",
      "dynamicFilter": "Filtre dynamique",
      "dynamicFilterHint": "Résolu à l'exécution — les connexions nouvellement ajoutées sont prises en compte automatiquement.",
      "filterTypeKey": "type",
      "filterFolderKey": "dossier",
      "membersLabel": "Membres",
      "membersCount": "· {{count}} connexions",
      "editTitle": "Modifier le site",
      "nameLabel": "Nom",
      "namePlaceholder": "ex. Production Web",
      "connectionsLabel": "Connexions",
      "noConnections": "Aucune connexion dans cet espace de travail pour le moment.",
      "selectedCount": "{{count}} sélectionnés",
      "noMembers": "Aucune connexion ne correspond à ce site pour le moment.",
      "savedNotice": "Site « {{name}} » enregistré.",
      "deletedNotice": "Site « {{name}} » supprimé.",
      "deleteTitle": "Supprimer le site ?",
      "deleteBody": "« {{name}} » sera supprimé. Ses connexions ne sont pas affectées.",
      "viewToggleLabel": "Vue du site",
      "viewMembers": "Membres",
      "viewRacks": "Racks",
      "viewLabel": "Mode d'affichage du site",
      "viewOverview": "Vue d'ensemble",
      "autoOrganize": "Organiser automatiquement"
    },
    "hosts": {
      "empty": "Aucun hôte pour l'instant. Importez une liste de noms d'hôte pour constituer l'inventaire de ce site.",
      "hostCount_one": "{{count}} hôte",
      "hostCount_other": "{{count}} hôtes",
      "importAction": "Importer des hôtes",
      "addAction": "Ajouter un hôte",
      "addChildAction": "Ajouter un hôte enfant",
      "rescanAction": "Rescanner",
      "rescanAllAction": "Tout scanner",
      "editAction": "Modifier",
      "deleteAction": "Supprimer",
      "bindingsAction": "Liaisons de connexion",
      "childCount_one": "{{count}} hôte enfant",
      "childCount_other": "{{count}} hôtes enfants",
      "childOverflow": "+{{count}} de plus",
      "scanning": "analyse…",
      "scanPending": "non scanné",
      "scanNone": "aucun accès distant",
      "kindLabel": "Type",
      "kind": {
        "physical": "Appareil physique",
        "vm": "Machine virtuelle",
        "container": "Conteneur",
        "other": "Autre"
      },
      "hostnameLabel": "Nom d'hôte",
      "labelLabel": "Nom d'affichage",
      "parentLabel": "Hôte parent",
      "parentNone": "Aucun (niveau supérieur)",
      "notesLabel": "Notes",
      "dialogTitleAdd": "Ajouter un hôte",
      "dialogTitleEdit": "Modifier l'hôte",
      "importTitle": "Importer des hôtes",
      "importHint": "Collez des noms d'hôte — un par ligne (les virgules séparent aussi, # commence un commentaire). Les hôtes importés sont automatiquement scannés pour l'accès SSH, WinRM et HTTPS.",
      "importSubmit_one": "Importer {{count}} hôte",
      "importSubmit_other": "Importer {{count}} hôtes",
      "importedNotice_one": "{{count}} hôte importé ({{skipped}} ignorés).",
      "importedNotice_other": "{{count}} hôtes importés ({{skipped}} ignorés).",
      "bindingsTitle": "Liaisons de connexion de l'hôte",
      "bindingsHint": "Liez une ou plusieurs connexions à cet hôte — p. ex. son terminal SSH et une connexion URL HTTPS vers son interface de gestion.",
      "deleteConfirmTitle": "Supprimer l'hôte « {{name}} » ?",
      "deleteConfirmBody": "Ses hôtes enfants sont conservés et remontent d'un niveau. Aucune connexion n'est supprimée."
    },
    "racks": {
      "heading": "Racks",
      "empty": "Aucun rack pour le moment. Organisez les hôtes de ce site en un centre de données virtuel.",
      "rackCount": "{{count}} racks",
      "unitCount": "{{count}}U",
      "deviceCount": "{{count}} appareils",
      "newTitle": "Nouveau rack",
      "newServerRoomTitle": "Nouvelle salle de serveurs",
      "editTitle": "Modifier le rack",
      "deleteTitle": "Supprimer le rack ?",
      "deleteBody": "« {{name}} » et ses appareils placés seront supprimés. Les connexions référencées ne sont pas affectées.",
      "deleteServerRoomTitle": "Supprimer la salle de serveurs ?",
      "deleteServerRoomBody": "« {{name}} » et ses {{count}} rack(s) seront supprimés. Les connexions référencées ne sont pas affectées.",
      "deleteItemTitle": "Supprimer l'appareil ?",
      "deleteItemBody": "« {{name}} » sera supprimé du rack. Les connexions référencées ne sont pas affectées.",
      "nameLabel": "Nom",
      "namePlaceholder": "ex. A12",
      "siteLabel": "Site",
      "serverRoomLabel": "Salle des serveurs",
      "serverRoomSiteLabel": "Site",
      "serverRoomNameLabel": "Nom de la salle de serveurs",
      "serverRoomSelectLabel": "Salle de serveurs",
      "serverRoomPlaceholder": "p. ex. Salle B",
      "serverRoomCreateHelp": "Les Salles de serveurs appartiennent à un site et peuvent rester vides jusqu'à l'ajout de racks.",
      "serverRoomRequiredOption": "Sélectionnez une salle de serveurs",
      "firstRackLabel": "Premier rack",
      "firstRackHint": "Les Salles de serveurs sont stockées via leurs racks, ceci crée donc le premier rack de la salle.",
      "shellLabel": "Coque",
      "shell": {
        "black": "Noir métallisé",
        "white": "Blanc laiteux",
        "grey": "Gris métal"
      },
      "unassigned": "Non attribué",
      "ungrouped": "Non groupé",
      "groupLabel": "Groupe",
      "groupPlaceholder": "p. ex. Niveau web",
      "treeSearchPlaceholder": "Rechercher des racks…",
      "placedDevices": "Appareils placés",
      "changeBackground": "Changer l'arrière-plan",
      "backgroundDefaultHint": "Utilise l'arrière-plan par défaut du thème.",
      "portsSpec": "{{count}} ports",
      "disksSpec": "{{count}} baies",
      "addNode": "Ajouter…",
      "addSite": "Nouveau site",
      "addServerRoom": "Nouvelle salle des serveurs",
      "addRack": "Nouveau rack",
      "heightLabel": "Hauteur (U)",
      "depthLabel": "Profondeur",
      "powerCapacityLabel": "Capacité électrique (W)",
      "powerCapacityPlaceholder": "Facultatif",
      "powerDrawLabel": "Consommation électrique (W)",
      "powerDrawHint": "Puissance nominale ou typique ; cumulée dans la carte thermique de puissance de la salle.",
      "depthNetworkOption": "600 mm (Réseau)",
      "depthServerOption": "1000 mm (Serveur)",
      "customOption": "Personnalisé…",
      "heightDecrease": "Moins d'unités de rack",
      "heightIncrease": "Plus d'unités de rack",
      "addItemTitle": "Ajouter un appareil",
      "addDeviceCallout": "Ajouter un appareil",
      "editItemTitle": "Modifier l'appareil",
      "placeAction": "Placer",
      "addAtUnit": "Ajouter un appareil à l'emplacement U{{unit}}",
      "openTitle": "Ouvrir {{name}}",
      "ghostBadge": "manquant",
      "runRack": "Exécuter une tâche sur ce rack",
      "runScope": "Exécuter une tâche sur cette portée",
      "kindLabel": "Type",
      "kindPreviewLabel": "Aperçus des types d'appareils de rack",
      "connectionLabel": "Connexion",
      "hostLabel": "Hôte",
      "hostHint": "L'hôte IT Ops qu'est cet appareil ; ses hôtes enfants apparaissent dans la bulle du rack.",
      "hostNone": "Aucun",
      "noMembers": "Ajoutez d'abord des connexions à ce site pour pouvoir placer un hôte.",
      "labelLabel": "Étiquette",
      "labelHint": "Facultatif. Par défaut, le type d'appareil ou le nom de la connexion.",
      "labelPlaceholder": "ex. core-switch-1",
      "accentLabel": "Accentuation",
      "accentNone": "Sans accentuation",
      "startULabel": "Position (U)",
      "startUDecrease": "Position plus basse",
      "startUIncrease": "Position plus haute",
      "itemHeightLabel": "Hauteur (U)",
      "itemHeightDecrease": "Appareil plus court",
      "itemHeightIncrease": "Appareil plus haut",
      "statusLabel": "État",
      "status": {
        "online": "En ligne",
        "warning": "Avertissement",
        "offline": "Hors ligne"
      },
      "portsLabel": "Ports",
      "portsDecrease": "Moins de ports",
      "portsIncrease": "Plus de ports",
      "disksLabel": "Baies de disque",
      "disksDecrease": "Moins de baies de disque",
      "disksIncrease": "Plus de baies de disque",
      "batteryLabel": "Batterie (%)",
      "batteryDecrease": "Réduire le niveau de batterie",
      "batteryIncrease": "Augmenter le niveau de batterie",
      "loadLabel": "Charge (%)",
      "loadDecrease": "Réduire la charge",
      "loadIncrease": "Augmenter la charge",
      "notesLabel": "Notes",
      "notesHint": "Les notes persistantes peuvent apparaître sous forme de bulles aléatoires dans les vues de rack ou de salle de serveurs.",
      "tagsLabel": "Tags",
      "listHint": "Utilisez des virgules ou une valeur par ligne.",
      "bindingsLabel": "Connexions supplémentaires",
      "bindingsHint": "Identifiants de connexion facultatifs pour les appareils associés à plusieurs connexions.",
      "bindingsAction": "Lier les connexions",
      "portSpeedsLabel": "Vitesses de port",
      "portSpeedsHint": "Utilisez des valeurs telles que gigabit ou 10g ; l'interrogation SNMP peut les actualiser ultérieurement.",
      "snmpLabel": "Interrogation SNMP",
      "snmpHint": "Stockez une cible SNMP ou un indice OID pour la récupération des données.",
      "formFactorLabel": "Format",
      "formFactor": {
        "rack": "Rack",
        "tower": "Tour"
      },
      "serverPanelStyleLabel": "Style de façade",
      "serverPanelStyle": {
        "default": "Par défaut",
        "style1": "Style 1",
        "style2": "Style 2"
      },
      "vendorLabel": "Modèle",
      "vendorHint": "Utilisez Dell 740XD, HP DL380 ou un autre modèle de châssis pour l'aperçu graphique.",
      "expiryLabel": "Expiration",
      "rotationLabel": "Rotation",
      "rotationDecrease": "Pivoter à gauche",
      "rotationIncrease": "Pivoter à droite",
      "kind": {
        "connection": "Hôte",
        "switch": "Commutateur",
        "pdu": "PDU",
        "patchPanel": "Patch panel",
        "blank": "Vide",
        "label": "Étiquette",
        "server": "Serveur",
        "storage": "Matrice de disques",
        "router": "Routeur",
        "firewall": "Pare-feu",
        "ups": "Onduleur",
        "kvm": "Commutateur KVM",
        "equipment": "Équipement",
        "general": "Général",
        "kuaiguai": "Kuai Kuai"
      },
      "kuaiguaiSize": {
        "small": "Petit",
        "regular": "Standard",
        "large": "Grand"
      },
      "kuaiguaiStyleLabel": "Style du paquet",
      "kuaiguaiStyle": {
        "full": "Complet (debout)",
        "laidDown": "Couché (face vers le haut)"
      },
      "portState": {
        "unknown": "Inconnu",
        "up": "Actif",
        "down": "Inactif"
      },
      "addNetworkPort": "Ajouter un port réseau",
      "snmpOidLabel": "OID",
      "refreshSnmp": "Actualiser SNMP",
      "snmpRefreshComplete": "Actualisation SNMP terminée.",
      "boundConnectionCount_one": "{{count}} connexion liée",
      "boundConnectionCount_other": "{{count}} connexions liées",
      "connectAction": "Connecter",
      "goToSessionAction": "Aller à la session",
      "connectOpenedNotice": "{{name}} a été ouvert dans l'Espace de travail."
    },
    "floorPlan": {
      "viewLabel": "Mode d'affichage de la salle",
      "viewElevation": "Élévations",
      "viewFloor": "Plan au sol",
      "view25d": "2,5D",
      "viewAngleLabel": "Angle de vue",
      "rotateViewLeft": "Pivoter la vue à gauche",
      "rotateViewRight": "Pivoter la vue à droite",
      "zoomLabel": "Zoom",
      "zoomSet": "Régler le zoom à {{percent}} %",
      "floorColorLabel": "Couleur du sol",
      "utilizationValue": "{{percent}} % occupé",
      "powerValue": "{{used}} W / {{capacity}} W",
      "powerDrawOnly": "{{watts}} W",
      "tileTitle": "{{name}} — {{detail}}",
      "isoEditHint": "Faites glisser les baies et les objets sur les dalles du sol. Choisissez une carte dans le sélecteur d'objets pour la porter avec le curseur et cliquez sur une dalle pour la placer ; le clic droit annule. Cliquez sur une dalle vide pour ajouter un rack.",
      "blueprintEditHint": "Faites glisser les baies et les objets entre les cellules du sol. Choisissez une carte dans le sélecteur d'objets pour la porter avec le curseur et cliquez sur une cellule pour la placer ; le clic droit annule. Le contrôle de rotation tourne la face avant d'une baie.",
      "isoAddHere": "Ajouter un rack sur cette case",
      "pickerTitle": "Sélecteur d'objets",
      "pickerSearchPlaceholder": "Rechercher des objets…",
      "pickerRack": "Rack",
      "rotateTitle": "Pivoter",
      "cornerTitle": "Coin suivant",
      "raiseTitle": "Monter",
      "lowerTitle": "Descendre",
      "deleteObjectTitle": "Retirer l'objet",
      "objectLevel": "Base à {{z}}U",
      "objectNoSpace": "Aucun espace vertical libre à cet endroit.",
      "floorColor": {
        "default": "Par défaut",
        "concrete": "Béton",
        "graphite": "Graphite",
        "green": "Carrelage vert",
        "blue": "Carrelage bleu"
      },
      "health": {
        "empty": "Vide",
        "ok": "Sain",
        "warning": "Avertissement",
        "critical": "Critique"
      },
      "object": {
        "camera": "Caméra de surveillance",
        "aircon": "Climatiseur",
        "fireExtinguisher": "Extincteur",
        "cableTray": "Chemin de câbles",
        "ups": "Onduleur",
        "sensor": "Capteur d'environnement",
        "smokeDetector": "Détecteur de fumée",
        "crashCart": "Chariot d'intervention",
        "kuaikuai": "Kuai Kuai"
      }
    },
    "export": {
      "pdf": "PDF",
      "excel": "Excel",
      "pdfFilter": "PDF",
      "excelFilter": "Classeur Excel",
      "complete": "« {{name}} » exporté.",
      "devices": "Appareils",
      "noRacks": "Aucun rack",
      "noDevices": "Aucun appareil",
      "inventory": "Inventaire",
      "rack": "Rack",
      "specs": "Spécifications"
    },
    "batchRuns": {
      "emptyTitle": "Aucune exécution par lot pour le moment",
      "emptyBody": "Envoyez un script ou un playbook interactif à chaque hôte d'un site en une fois, avec une sortie en direct par hôte et un rapport enregistré.",
      "stateRunning": "En cours d'exécution",
      "stateCompleted": "Terminé",
      "stateCompletedWithFailures": "Terminé avec des échecs",
      "hostsCount": "{{count}} hôtes",
      "statOk": "OK",
      "statFailed": "Échec",
      "statInFlight": "En cours",
      "statTotal": "Total",
      "legendOk": "{{count}} ok",
      "legendFailed": "{{count}} échoués",
      "legendRunning": "{{count}} en cours",
      "legendQueued": "{{count}} en file d'attente",
      "progressLive": "{{done}} sur {{total}} terminé  ·  limité à {{concurrency}} simultanées",
      "progressDone": "Terminé en {{duration}}  ·  démarré {{time}}",
      "codeExit": "exit {{code}}",
      "codeFailed": "échec",
      "codeRunning": "en cours",
      "codeQueued": "en file d'attente",
      "savedReport": "Rapport consolidé enregistré dans l'historique d'exécution · source manuel · {{ok}}/{{total}} réussis",
      "launchTitle": "Nouvelle exécution par lot",
      "siteLabel": "Site",
      "scopeRack": "Cible : rack {{name}} uniquement",
      "scopeServerRoom": "Cible : salle des serveurs {{name}} uniquement",
      "scriptLabel": "Script",
      "scriptPlaceholder": "sudo apt-get update && sudo apt-get upgrade -y",
      "noGroups": "Créez d'abord un site pour lancer une exécution par lot.",
      "startedNotice": "Exécution par lot démarrée.",
      "stateCanceled": "Annulé",
      "progressComplete": "{{done}} sur {{total}} terminé",
      "historyHeading": "Exécutions récentes",
      "historySummary": "{{ok}}/{{total}} ok",
      "waitingOutput": "En attente de sortie…",
      "noOutput": "Aucune sortie capturée",
      "reportStarted": "Démarré {{time}}",
      "taskTypeLabel": "Tâche",
      "taskTypeScript": "Script",
      "taskTypePlaybook": "Playbook",
      "playbookNameLabel": "Nom du playbook",
      "playbookNamePlaceholder": "ex. Redémarrer le tier web",
      "stepHeading": "Étape {{number}}",
      "stepNameLabel": "Libellé",
      "stepNamePlaceholder": "ex. déclencher le redémarrage",
      "stepSendLabel": "Envoyer",
      "stepSendPlaceholder": "commande ou saisie, ex. sudo systemctl restart nginx",
      "stepExpectLabel": "Attendre",
      "stepExpectHint": "Facultatif. Avance dès que ce texte apparaît dans la sortie.",
      "stepExpectPlaceholder": "ex. [sudo] password:",
      "stepTimeoutLabel": "Délai (secondes)",
      "stepTimeoutPlaceholder": "Valeur par défaut de l'exécution",
      "addStep": "Ajouter une étape",
      "removeStep": "Supprimer"
    },
    "automations": {
      "emptyTitle": "Aucune automatisation pour le moment",
      "emptyBody": "Une règle durable — un déclencheur, une condition facultative et des actions ordonnées — qui se réarme à chaque lancement de KKTerm. Le chien de garde évolué.",
      "armed": "Armé",
      "disabled": "Désactivé",
      "builder": {
        "back": "Automatisations",
        "armedStatus": "Armé · se réarme au lancement",
        "whenTrigger": "Quand — Déclencheur",
        "onlyIfCondition": "Seulement si — Condition",
        "thenActions": "Puis — Actions · dans l'ordre",
        "target": "Cible {{target}}",
        "sampledValue": "Valeur échantillonnée",
        "evaluatedBy": "évalué par le prédicat pur"
      },
      "nameLabel": "Nom",
      "namePlaceholder": "ex. Alerte d'utilisation du disque",
      "metricLabel": "Métrique",
      "conditionLabel": "Condition",
      "thresholdLabel": "Seuil",
      "pollLabel": "Vérifier toutes les (secondes)",
      "notifyLabel": "Notification",
      "savedNotice": "Automatisation « {{name}} » enregistrée.",
      "deletedNotice": "Automatisation « {{name}} » supprimée.",
      "deleteTitle": "Supprimer l'automatisation ?",
      "deleteBody": "« {{name}} » sera supprimé et son chien de garde sera désarmé.",
      "actionsLabel": "Actions",
      "noActionsHint": "Aucune action pour le moment — l'automatisation enregistre uniquement le déclencheur.",
      "actionNotify": "Notifier",
      "actionPopup": "Popup",
      "actionEmail": "E-mail",
      "actionWebhook": "Webhook",
      "actionRunBatch": "Exécuter le lot",
      "levelInApp": "Dans l'application",
      "levelToast": "Toast",
      "levelSound": "Son",
      "popupTitle": "Titre",
      "popupBody": "Message",
      "emailTo": "À (séparés par des virgules)",
      "emailSubject": "Objet",
      "webhookUrl": "URL",
      "webhookMethod": "Méthode",
      "webhookBody": "Corps (facultatif)",
      "triggeredNotice": "Automatisation « {{name}} » déclenchée.",
      "triggerTypeLabel": "Déclencheur",
      "triggerPerf": "Compteur de performance",
      "triggerSchedule": "Planification",
      "cronLabel": "Planification cron",
      "cronHint": "minute heure jour mois jour de la semaine, heure locale (ex. 0 3 * * * = quotidien à 03:00)",
      "triggerLogFile": "Fichier journal",
      "logPathLabel": "Chemin du fichier journal",
      "patternLabel": "Correspondance (sous-chaîne)",
      "patternPlaceholder": "ERROR",
      "triggerPing": "Hôte joignable (ping)",
      "triggerTcp": "Port TCP joignable"
    },
    "errorNotice": "IT Ops : {{message}}",
    "editor": {
      "title": "Modifier l'automatisation",
      "triggerNode": "Déclencheur",
      "conditionNode": "Condition",
      "actionNode": "Action",
      "test": "Tester",
      "testing": "Test en cours…",
      "testResult": "Résultat du test",
      "unset": "non défini",
      "hostLabel": "Hôte",
      "siteLabel": "Site",
      "siteNone": "Aucun site",
      "sessionIdLabel": "ID de session",
      "silenceSecondsLabel": "Durée de silence (secondes)",
      "portLabel": "Port",
      "conditionHint": "Se déclenche lorsque la valeur échantillonnée correspond à cette comparaison.",
      "actionKindLabel": "Action",
      "levelLabel": "Niveau",
      "methodLabel": "Méthode",
      "runBatchSub": "Exécuter la tâche par lot",
      "selectHint": "Sélectionnez un nœud à modifier ou ajoutez une action.",
      "sampledValue": "Valeur échantillonnée",
      "wouldFire": "Condition",
      "fireYes": "Se déclencherait",
      "fireNo": "Ne se déclencherait pas",
      "valueUnavailable": "indisponible",
      "noteSchedule": "Les déclencheurs planifiés s'activent lorsque l'expression cron correspond à la minute actuelle, donc un test se déclenche rarement à la demande.",
      "noteNeedsSession": "Ce déclencheur échantillonne une session en direct ; démarrez la session surveillée pour obtenir une valeur de test significative.",
      "dryRunActions": "Actions (simulation)",
      "dryNotify": "Afficher une notification {{level}}",
      "dryPopup": "Afficher la fenêtre pop-up « {{title}} »",
      "dryEmail": "Envoyer un e-mail à {{to}}",
      "dryWebhook": "{{method}} {{url}}",
      "dryRunBatch": "Démarrer l'exécution par lot configurée"
    }
  },
  "settings": {
    "title": "Paramètres",
    "workspace": "Espace de travail",
    "sectionsNav": "Sections des paramètres",
    "sectionGeneral": "Général",
    "sectionAppearance": "Apparence",
    "sectionDashboard": "Tableau de bord",
    "sectionWorkspace": "Espace de travail",
    "sectionDontSleep": "Anti-Veille",
    "sectionInstaller": "Assistant d’installation",
    "sectionCredentials": "Identifiants",
    "credentialsTitle": "Identifiants",
    "credentialsStored": "Identifiants stockés",
    "credentialsHint": "Gérez les mots de passe enregistrés, les données de saisie des sites, les clés des fournisseurs IA et les secrets de widgets. Les valeurs secrètes restent masquées dans le coffre de secrets sélectionné.",
    "credentialStorage": "Stockage des secrets",
    "credentialStorageHint": "Choisissez où KKTerm lit et écrit les valeurs secrètes sur cet appareil.",
    "credentialStorageBackend": "Coffre de secrets",
    "credentialStorageOs": "Trousseau du système",
    "credentialStorageFile": "Base de données chiffrée",
    "credentialStorageActive": "Backend actif : {{backend}}.",
    "credentialStorageUnavailable": "Backend actuel indisponible : {{error}}",
    "credentialStorageUnknownStatus": "État inconnu",
    "credentialStorageOsComparison": "Le trousseau du système d’exploitation utilise la protection des identifiants du système et se déverrouille avec votre compte connecté. Utilisez-le si vous voulez des invites natives, la récupération via le compte du système et moins de manipulation du mot de passe principal.",
    "credentialStorageEncryptedComparison": "La base de données chiffrée stocke les secrets KKTerm dans SQLite, protégés par votre mot de passe principal. Elle fonctionne sur plusieurs plateformes et peut être déverrouillée avec une variable d’environnement, mais toute personne disposant de la base de données et du mot de passe principal peut la déchiffrer, et KKTerm ne peut pas récupérer un mot de passe perdu.",
    "credentialStorageEncryptedLinuxReminder": "Linux utilise le stockage en base de données chiffrée dans cette version. Protégez votre base de données KKTerm, utilisez un mot de passe principal long et unique, et évitez de placer KKTERM_SECRET_STORE_PASSWORD dans l’historique du shell, les journaux ou les scripts de démarrage partagés.",
    "credentialStorageSwitchNote": "Changer de coffre ne déplace pas les identifiants existants. Enregistrez à nouveau les nouveaux identifiants si vous voulez les rendre disponibles dans le coffre sélectionné.",
    "credentialStorageSaved": "Stockage des identifiants mis à jour.",
    "encryptedSecretStoreSetupTitle": "Configurer le stockage en base de données chiffrée",
    "encryptedSecretStoreSetupAction": "Configurer",
    "encryptedSecretStoreSetupRequiredTitle": "Le stockage en base de données chiffrée doit être configuré",
    "encryptedSecretStoreSetupBody": "Saisissez le mot de passe principal de la base de données chiffrée des secrets.",
    "encryptedSecretStoreSecurityTradeoff": "Par rapport au trousseau du système d’exploitation, le stockage en base de données chiffrée est plus portable, mais la récupération et la protection du fichier vous incombent. Gardez la base de données privée et n’exposez pas le mot de passe principal dans des scripts, des journaux ou l’historique du shell.",
    "encryptedSecretStoreLinuxSafety": "Sous Linux, le stockage en base de données chiffrée est le backend d’identifiants disponible dans cette version. Gardez la base de données KKTerm privée, sauvegardez-la avec précaution et conservez le mot de passe principal hors de KKTerm.",
    "encryptedSecretStoreCreateBody": "Créez un mot de passe principal pour la base de données chiffrée des secrets.",
    "encryptedSecretStorePasswordGuidance": "Utilisez un mot de passe ou une phrase secrète longue et unique, et conservez-le en lieu sûr. KKTerm ne peut pas le récupérer s’il est perdu.",
    "encryptedSecretStoreEnvironmentHint": "Pour éviter cette invite au lancement de l’app, définissez la variable d’environnement KKTERM_SECRET_STORE_PASSWORD avant de démarrer KKTerm.",
    "encryptedSecretStoreUnlock": "Déverrouiller la base de données existante",
    "encryptedSecretStoreCreate": "Créer une clé de base de données",
    "encryptedSecretStorePassword": "Mot de passe principal",
    "encryptedSecretStoreConfirmPassword": "Confirmer le mot de passe principal",
    "encryptedSecretStorePasswordRequired": "Saisissez le mot de passe principal du stockage en base de données chiffrée.",
    "encryptedSecretStorePasswordMismatch": "Les mots de passe ne correspondent pas.",
    "encryptedSecretStoreUnlockAction": "Déverrouiller",
    "encryptedSecretStoreCreateAction": "Créer le mot de passe principal",
    "encryptedSecretStoreResetOffer": "Créer un nouveau mot de passe principal",
    "encryptedSecretStoreResetBody": "Créez un nouveau mot de passe principal et effacez les identifiants chiffrés enregistrés avec l’ancien mot de passe.",
    "encryptedSecretStoreResetWarning": "Les identifiants chiffrés existants seront invalidés et supprimés.",
    "encryptedSecretStoreResetAction": "Réinitialiser le mot de passe principal",
    "encryptedSecretStoreLater": "Plus tard",
    "encryptedSecretStoreConfigured": "Le stockage en base de données chiffrée est prêt.",
    "credentialsEmpty": "Aucun identifiant stocké trouvé.",
    "widgetCredentialsStored": "Identifiants des widgets",
    "widgetCredentialsHint": "Identifiants enregistrés pour les paramètres des widgets du Dashboard. Les valeurs restent dans le coffre de secrets sélectionné; les widgets ne conservent que des références.",
    "widgetCredentialsEmpty": "Aucune information d'identification de widget trouvée.",
    "credentialDeleted": "Identifiant supprimé.",
    "credentialMissingSecret": "Valeur secrète manquante",
    "credentialSavedPassword": "Mot de passe enregistré",
    "credentialSavedApiKey": "Clé API enregistrée",
    "credentialSavedSecret": "Secret enregistré",
    "deleteCredential": "Supprimer l'identifiant",
    "deleteCredentialConfirmBody": "Êtes-vous sûr ? Cette action est irréversible",
    "assistantSkillsTitle": "Skills de l’assistant",
    "assistantSkillsHint": "Dossiers SKILL.md locaux qui enseignent à l’assistant IA des workflows ciblés. Les skills de démarrage inclus sont copiés ici automatiquement. Les scripts ne sont pas exécutés dans cette version ; utilisez le bouton de dossier pour ajouter ou modifier des skills.",
    "assistantCustomSkillsTitle": "Skills personnalisés",
    "assistantCustomSkillsHint": "Chargez des dossiers SKILL.md supplémentaires depuis assistant-skills\\custom quand l’assistant IA démarre une demande ou quand vous actualisez cette liste.",
    "assistantSkillsEmpty": "Aucun skill d’assistant trouvé.",
    "assistantSkillsOpenFolder": "Ouvrir le dossier des skills",
    "assistantCustomSkillsOpenFolder": "Ouvrir le dossier personnalisé",
    "assistantSkillsOpen": "Ouvrir {{name}}",
    "assistantSkillsEnabled": "Activé",
    "assistantSkillsDisabled": "Désactivé",
    "mcpServersTitle": "Serveurs MCP distants",
    "mcpServersHint": "Connectez-vous à des serveurs Model Context Protocol distants pour que l'assistant IA et les widgets du tableau de bord puissent appeler leurs outils. KKTerm prend uniquement en charge les serveurs MCP HTTP streamable ; les configurations stdio qui lancent des processus locaux ne sont pas prises en charge.",
    "mcpServersEmpty": "Aucun serveur MCP configuré.",
    "mcpAddServer": "Ajouter un serveur MCP",
    "mcpDeleteServer": "Supprimer le serveur MCP",
    "mcpDeleteConfirmBody": "Supprimer le serveur MCP « {{name}} » ? Son secret d'authentification sera supprimé du trousseau et les widgets qui référencent ce serveur échoueront jusqu'à reconfiguration.",
    "mcpRefreshTools": "Actualiser les outils",
    "mcpStatusOk": "Connecté",
    "mcpStatusUnreachable": "Inaccessible",
    "mcpStatusAuthError": "Erreur d'authentification",
    "mcpStatusProtocolError": "Erreur de protocole",
    "mcpStatusUnknown": "Pas encore sondé",
    "mcpToolsCount": "{{count}} outils",
    "mcpToolsCount_one": "{{count}} outil",
    "mcpAuthBadge": "Auth",
    "mcpPasteHint": "Collez une configuration JSON de serveur MCP HTTP. Les formats courants fonctionnent : un objet simple { \"url\": ..., \"headers\": ... } ou une map style Claude Desktop { \"mcpServers\": { \"name\": { ... } } }.",
    "mcpPastePlaceholder": "{\n  \"url\": \"https://example.com/mcp\",\n  \"headers\": {\n    \"Authorization\": \"Bearer ...\"\n  }\n}",
    "mcpPasteContinue": "Continuer",
    "mcpConfirmHint": "Vérifiez la configuration analysée avant d'enregistrer. KKTerm sondera la liste d'outils du serveur immédiatement après la création.",
    "mcpCreateServer": "Enregistrer le serveur MCP",
    "mcpServerName": "Nom",
    "mcpServerUrl": "URL",
    "mcpHeadersLabel": "En-têtes",
    "mcpDetectedSecretHint": "Un en-tête d'authentification a été détecté. Le jeton sera stocké dans le trousseau du système d'exploitation ; seul un espace réservé {SECRET} est conservé dans la configuration SQLite.",
    "mcpSecretHeaderName": "En-tête d'authentification",
    "mcpSecretValueTemplate": "Modèle de valeur d'authentification",
    "mcpSecretValue": "Secret d'authentification (stocké dans le trousseau)",
    "mcpAddInvalidJson": "Impossible d'analyser le JSON. Vérifiez que le texte collé est valide.",
    "mcpAddInvalidShape": "La configuration doit être un objet JSON avec au moins un champ url.",
    "mcpAddNoServers": "La map mcpServers est vide.",
    "mcpAddMissingUrl": "Champ url requis manquant.",
    "mcpAddStdioUnsupported": "Ce serveur MCP utilise l'exécution de processus locaux (transport stdio), ce que KKTerm ne prend pas en charge.",
    "mcpStdioGuidance": "Recherchez un point de terminaison MCP basé sur HTTP du même fournisseur ou consultez sa documentation pour une option hébergée.",
    "mcpErrorNotFound": "Serveur MCP introuvable.",
    "mcpErrorDuplicateName": "Un serveur MCP avec ce nom existe déjà.",
    "mcpErrorKeychain": "Le trousseau du système d'exploitation est indisponible ; les secrets ne peuvent pas être stockés.",
    "credentialKindConnectionPassword": "Mots de passe de connexion",
    "credentialKindUrlPassword": "Identifiants de sites web",
    "credentialKindAiApiKey": "Clés de fournisseur IA",
    "credentialKindEmailApiKey": "Clés de fournisseur d’e-mail",
    "credentialKindEmailSmtpPassword": "Mots de passe SMTP",
    "credentialKindWidgetSecret": "Secrets des widgets",
    "sectionAiAssistant": "Assistant IA",
    "sectionSsh": "SSH",
    "sectionTerminal": "Terminal",
    "sectionRdp": "Bureau à distance (RDP)",
    "sectionVnc": "VNC",
    "sectionAbout": "À propos",
    "generalDefaults": "Valeurs par défaut de l'espace de travail",
    "appearanceInterface": "Interface",
    "save": "Enregistrer",
    "appUiFontFamily": "Police de l'interface",
    "layout": "Mise en page",
    "resetLayoutDescription": "Réinitialiser les largeurs des panneaux, les panneaux réduits et les dispositions enregistrées des terminaux.",
    "resetLayout": "Réinitialiser la mise en page",
    "colorScheme": "Jeu de couleurs",
    "schemeDefault": "Défaut",
    "schemeDark": "Sombre",
    "schemeLight": "Clair",
    "schemeMatchOs": "Suivre le système",
    "schemeMac": "Mac",
    "schemeOrange": "Orange",
    "schemePurple": "Violet",
    "schemePink": "Rose",
    "schemeGreenKuaiKuai": "Vert Kuai Kuai",
    "schemeBlueSee": "Bleu See",
    "schemeBlueGreenWhite": "Bleu, vert et blanc",
    "schemeConfetti": "Confetti",
    "schemeBubbleTea": "Thé aux perles",
    "schemeSemiconductor": "Semi-conducteur",
    "schemeCanarinho": "Canarinho",
    "schemeLaAlbiceleste": "La Albiceleste",
    "schemeLesBleus": "Les Bleus",
    "schemeOranje": "Oranje",
    "schemeDieMannschaft": "Die Mannschaft",
    "schemeLaRoja": "La Roja",
    "schemeOsNavegadores": "Os Navegadores",
    "schemeVatreni": "Vatreni",
    "schemeElTri": "El Tri",
    "schemeThreeLions": "Three Lions",
    "schemeSamuraiBlue": "Samurai Blue",
    "schemeStarsAndStripes": "The Stars and Stripes",
    "schemeMatchOsBadge": "AUTO",
    "colorSchemePreview": "Aperçu",
    "language": "Langue",
    "workspaceAccess": "Fenêtre",
    "workspaceAccessHint": "Contrôle l'accès rapide et les autorisations d'exécution locales.",
    "performance": "Performances",
    "performanceHint": "Contrôle le rendu local et l’accélération de capture d’écran.",
    "useDirectxScreenCapture": "Utiliser DirectX pour la capture d’écran",
    "useDirectxScreenCaptureHint": "Utiliser DXGI Desktop Duplication si disponible, avec repli GDI.",
    "statusBar": "Barre d’état",
    "statusBarHint": "Contrôle les indicateurs de la barre d’état inférieure.",
    "statusBarVisible": "Afficher la barre d’état",
    "statusBarVisibleHint": "Afficher la barre inférieure avec les notifications et les indicateurs d’état.",
    "statusBarMonitor": "Afficher le bouton du moniteur CPU/RAM/réseau",
    "statusBarMonitorHint": "Quand il est désactivé, KKTerm cesse de collecter les instantanés d’utilisation de l’hôte.",
    "statusBarMonitorInterval": "Intervalle du moniteur",
    "statusBarMonitorInterval5": "Toutes les 5 secondes",
    "statusBarMonitorInterval15": "Toutes les 15 secondes",
    "statusBarMonitorInterval30": "Toutes les 30 secondes",
    "statusBarMonitorInterval60": "Toutes les 60 secondes",
    "statusBarMonitorInterval300": "Toutes les 5 minutes",
    "settingsData": "Données des paramètres",
    "autoBackup": "Sauvegarde automatique",
    "autoBackupHint": "Les sauvegardes automatiques de plus d'une semaine sont supprimées après chaque sauvegarde au démarrage.",
    "autoUpdateChecks": "Au démarrage",
    "generalDefaultsSaved": "Paramètres généraux enregistrés.",
    "dontSleepForegroundOnly": "Activer Anti-Veille uniquement lorsque l'application est au premier plan",
    "dontSleepForegroundOnlyHint": "Lorsque cette option est désactivée, Anti-Veille maintient le système d'exploitation éveillé globalement tant que KKTerm est en cours d'exécution.",
    "dontSleepSettingsSaved": "Paramètres Anti-Veille enregistrés.",
    "autoStartWithWindows": "Démarrer avec Windows en mode réduit",
    "autoStartWithWindowsHint": "Lancer KKTerm réduit lorsque vous vous connectez à Windows.",
    "minimizeToTray": "Minimiser dans la barre d'état",
    "minimizeToTrayHint": "Garder KKTerm dans la zone de notification au lieu de quitter lors de la réduction ou de la fermeture.",
    "lastBackup": "Dernière sauvegarde : {{value}}",
    "lastBackupNever": "Jamais",
    "importSettings": "Importer",
    "importSettingsConfirm": "L'importation des paramètres fermera toutes les connexions existantes et remplacera la base de données actuelle. Continuer ?",
    "importSettingsComplete": "Paramètres importés. Sauvegarde précédente de la base de données : {{filename}}.",
    "openDatabaseFolder": "Ouvrir le dossier de la base de données",
    "resetAllSettings": "Réinitialiser tous les paramètres",
    "resetAllSettingsConfirm": "Réinitialiser toutes les pages de paramètres aux valeurs par défaut, fermer les sessions ouvertes, réinitialiser les dispositions enregistrées, effacer la langue enregistrée et supprimer les secrets IA/e-mail enregistrés ?",
    "resetAllSettingsComplete": "Tous les paramètres réinitialisés aux valeurs par défaut.",
    "settingsDataActions": "Actions d’exportation et d’importation des paramètres",
    "debug": "Débogage",
    "debugHint": "Contrôle les diagnostics locaux détaillés.",
    "advancedDebugging": "Débogage avancé",
    "advancedDebuggingHint": "Écrit les journaux de débogage complets même dans les builds de publication. Peut inclure les prompts, les arguments d’outils, la sortie de commandes et les captures d’écran.",
    "openLogFolder": "Ouvrir le dossier des journaux",
    "rdpWebviewStability": "Stabilité de session RDP (WebView2)",
    "rdpWebviewStabilityHint": "Force le rendu logiciel afin que KKTerm reste réactif dans un hôte RDP après les reconnexions. Désactive l’accélération GPU ; laissez cette option désactivée pour les installations locales. Redémarrez pour appliquer.",
    "settingsBackupFilter": "Sauvegarde KKTerm",
    "selectiveExport": "Exporter la sélection...",
    "selectiveImport": "Importer la sélection...",
    "selectiveBackupFilter": "Sauvegarde sélective KKTerm",
    "importBackupFileHint": "Choisissez une sauvegarde KKTerm (.kkbackup ou .zip) à importer.",
    "selectiveExportPickHint": "Choisissez les éléments à exporter",
    "selectiveCredentials": "Identifiants",
    "includeCredentials": "Inclure les mots de passe",
    "includeCredentialsHint": "Mots de passe des connexions, URL et proxy SOCKS.",
    "includeCredentialsWarning": "Les mots de passe sont chiffrés avec la phrase secrète ci-dessous. Toute personne important ce fichier doit saisir la même phrase secrète. Sans elle, l’exportation ne contient aucun mot de passe et peut être partagée en toute sécurité.",
    "exportPassphrase": "Phrase secrète",
    "exportPassphraseConfirm": "Confirmer la phrase secrète",
    "exportPassphraseMismatch": "Les phrases secrètes ne correspondent pas.",
    "importPassphrase": "Phrase secrète",
    "selectiveExportComplete": "Sélection exportée vers {{filename}}.",
    "selectiveImportComplete": "{{count}} catégorie(s) importée(s).",
    "selectiveImportChooseFile": "Choisir un fichier de sauvegarde...",
    "fullBackupImport": "ZIP de sauvegarde complète",
    "fullBackupImportHint": "Importe toute la base de données des réglages KKTerm et recharge l’application.",
    "selectiveImportActionsHint": "Choisissez quoi faire pour chaque catégorie",
    "selectiveImportWarning": "Une sauvegarde de sécurité de vos données actuelles est créée avant l’importation. Remplacer vide d’abord cette catégorie ; Ajouter conserve vos éléments existants et ajoute ceux importés.",
    "importActionSkip": "Ignorer",
    "importActionAdd": "Ajouter",
    "importActionReplace": "Remplacer",
    "segment_credentials": "Mots de passe",
    "aiProvider": "Fournisseur IA",
    "provider": "Fournisseur",
    "endpoint": "Point de terminaison",
    "apiMode": "Mode API",
    "apiModeChatCompletions": "Chat Completions",
    "apiModeResponses": "Responses",
    "model": "Modèle",
    "customModelId": "ID de modèle personnalisé",
    "extraHeaders": "En-têtes supplémentaires",
    "extraHeadersPlaceholder": "sid=1, \"env\"=\"3\"",
    "reasoningEffort": "Niveau de raisonnement",
    "howToGetApiKey": "Comment obtenir",
    "sshDefaults": "Valeurs par défaut SSH et SFTP",
    "defaultUser": "Utilisateur par défaut",
    "defaultPort": "Port par défaut",
    "defaultKey": "Clé par défaut",
    "defaultKeyPlaceholder": "C:\\Users\\example\\.ssh\\id_ed25519",
    "sshConnectionDefaults": "Valeurs par défaut de connexion",
    "sshConnectionDefaultsHint": "Pré-remplit les nouvelles connexions SSH.",
    "sshAuthentication": "Authentification",
    "sshAuthenticationHint": "Matériel de clé par défaut pour les nouvelles connexions SSH.",
    "sshTerminal": "Terminal SSH",
    "sshTerminalHint": "Défilement et comportement du presse-papiers distant pour les sessions SSH.",
    "defaultKeyHint": "Utilisé pour les nouvelles connexions SSH qui s'authentifient avec un fichier de clé.",
    "defaultSshUserHint": "Pré-remplit les nouvelles connexions SSH et Telnet.",
    "defaultSshPortHint": "Utilisé quand une connexion SSH ne spécifie pas de port.",
    "defaultSshUserRequired": "L'utilisateur SSH par défaut est requis.",
    "defaultSshPortRange": "Le port SSH par défaut doit être entre 1 et 65535.",
    "sshBufferLines": "Lignes du tampon SSH",
    "sshBufferHint": "La valeur par défaut est 5 000. Utilisé pour le défilement du terminal SSH et l'historique des volets tmux.",
    "defaultTransparency": "Transparence par défaut",
    "defaultTransparencyHint": "Utilisée pour les nouvelles Connections de terminal et les nouveaux Child Connection Tabs.",
    "defaultTransparencyRange": "La transparence par défaut doit être comprise entre 0 et 100.",
    "randomDynamicBackgroundOnCreate": "Arrière-plan dynamique aléatoire à la création",
    "randomDynamicBackgroundOnCreateHint": "Quand cette option est activée, les nouvelles Connections de terminal, les nouveaux tabs et les nouveaux Child Connection Tabs démarrent avec un arrière-plan dynamique aléatoire.",
    "sshBufferRange": "Le tampon SSH doit être entre 100 et 100 000 lignes.",
    "xServer": "Serveur X",
    "xServerHint": "Démarrez VcXsrv avant les SSH Sessions qui ont besoin de fenêtres X11 locales.",
    "xServerManaged": "Démarrer VcXsrv pour les SSH Sessions",
    "xServerManagedHint": "Quand cette option est activée, KKTerm démarre VcXsrv s’il n’est pas déjà en cours d’exécution avant d’ouvrir une SSH Session.",
    "xServerPath": "Chemin de VcXsrv",
    "xServerPathPlaceholder": "C:\\Program Files\\VcXsrv\\vcxsrv.exe",
    "xServerPathHint": "Laissez vide pour utiliser les emplacements d’installation standard de VcXsrv.",
    "xServerDisplay": "Numéro de display",
    "xServerDisplayHint": "Utilise :0 par défaut. Plage : 0 à 99.",
    "xServerDisplayRange": "Le display du serveur X doit être compris entre 0 et 99.",
    "xServerArgs": "Arguments de lancement",
    "xServerArgsHint": "Par défaut : -multiwindow -clipboard -wgl.",
    "xServerLaunch": "Lancer VcXsrv",
    "xServerLaunchStarted": "Lancement de VcXsrv demandé.",
    "xServerAlreadyRunning": "VcXsrv est déjà en cours d’exécution.",
    "sshDefaultsSaved": "Paramètres SSH par défaut enregistrés.",
    "generateSshKey": "Générer une clé",
    "sshKeyEmailPrompt": "E-mail pour le commentaire de la clé SSH :",
    "sshKeyEmailDialogTitle": "Générer une clé SSH",
    "sshKeyEmailDialogHint": "Ajoutez une adresse e-mail comme commentaire de la clé publique pour la reconnaître facilement plus tard.",
    "sshKeyEmailPlaceholder": "admin@exemple.com",
    "sshKeyPassphraseOptional": "Phrase secrète de la clé (facultatif)",
    "sshKeyPassphraseConfirm": "Confirmer la phrase secrète de la clé",
    "sshKeyPassphraseMismatch": "Les phrases secrètes de la clé ne correspondent pas.",
    "sshKeyGenerating": "Génération en cours...",
    "sshKeyGenerated": "Clé SSH générée. Privée : {{privateKeyPath}} Publique : {{publicKeyPath}}",
    "notSet": "Non défini",
    "proxyJump": "ProxyJump",
    "proxyJumpPlaceholder": "bastion.example.com",
    "proxyJumpHint": "Hôte ProxyJump par défaut optionnel pour les nouvelles connexions SSH.",
    "sshSocksProxyPlaceholder": "127.0.0.1:1080",
    "sshCompression": "Compression SSH",
    "sshCompressionFast": "Rapide (zlib)",
    "sshCompressionOff": "Désactivée",
    "sshCompressionHint": "Compression de transport par défaut pour les connexions SSH (équivaut à ssh -XC). Rapide est recommandée pour le transfert X11 et les liaisons lentes ; chaque connexion peut la remplacer.",
    "terminalBehavior": "Comportement du terminal",
    "terminalText": "Texte et curseur",
    "terminalTextHint": "Police, taille, interligne et curseur du terminal local.",
    "terminalSession": "Valeurs par défaut de session",
    "terminalSessionHint": "Shell par défaut et défilement pour les sessions de terminal local.",
    "terminalClipboard": "Presse-papiers et collage",
    "terminalClipboardHint": "Copie du terminal local, OSC 52 et sécurité du collage.",
    "fontFamily": "Famille de police",
    "fontSize": "Taille de police",
    "lineHeight": "Interligne",
    "scrollbackLines": "Lignes de défilement",
    "cursorStyle": "Style de curseur",
    "defaultShell": "Shell par défaut",
    "block": "Bloc",
    "bar": "Barre",
    "underline": "Souligné",
    "powerShell": "PowerShell",
    "powerShell7": "PowerShell 7 (pwsh)",
    "commandPrompt": "Invite de commandes",
    "wsl": "WSL",
    "customShells": "Shells personnalisés",
    "customShellsHint": "Ajoutez des profils shell locaux pour les réutiliser dans le sélecteur de shell par défaut et les connexions terminal local.",
    "customShell": "Shell personnalisé",
    "customShellName": "Nom",
    "customShellNamePlaceholder": "Git Bash",
    "customShellCommandLine": "Ligne de commande",
    "customShellCommandLinePlaceholder": "C:\\Program Files\\Git\\bin\\bash.exe --login -i",
    "addCustomShell": "Ajouter un shell",
    "removeCustomShell": "Supprimer {{name}}",
    "copyOnSelect": "Copier automatiquement le texte sélectionné",
    "copyOnSelectHint": "Le texte sélectionné dans le terminal est immédiatement copié dans les sessions locales et SSH ordinaires. Dans les sessions tmux avec le mode souris activé, maintenez Maj pendant la sélection ou désactivez le mode souris. Les sélections effectuées en mode copie de tmux ne sont pas copiées par cette option.",
    "allowLocalOsc52Clipboard": "Autoriser l'écriture du presse-papiers OSC 52 du terminal local",
    "allowSshOsc52Clipboard": "Autoriser l'écriture du presse-papiers OSC 52 SSH",
    "confirmMultilinePaste": "Confirmer le collage multiligne",
    "scrollbackHint": "La valeur par défaut est 5 000. Plage valide de 100 à 100 000.",
    "qualityDefaults": "Valeurs par défaut de qualité",
    "colorDepth": "Profondeur de couleur",
    "bitmapCache": "Cache bitmap",
    "performanceFlags": "Drapeaux de performance",
    "display": "Affichage",
    "remoteDesktopViewMode": "Mode d’affichage",
    "remoteDesktopViewModeFit": "Adapter à l’espace de travail",
    "remoteDesktopViewModeStretch": "Étirer pour remplir",
    "remoteDesktopViewModeActualSize": "Taille réelle avec barres de défilement",
    "remoteDesktopViewModeFitWidth": "Adapter à la largeur",
    "remoteDesktopViewModeFitHeight": "Adapter à la hauteur",
    "networkPerformance": "Réseau et performance",
    "encoding": "Encodage",
    "rdpColorDepth32": "32-bit",
    "rdpColorDepth24": "24-bit",
    "rdpColorDepth16": "16-bit",
    "rdpColorDepth15": "15-bit",
    "rdpBitmapCacheHint": "Correspond à BitmapPersistence et CachePersistenceActive.",
    "rdpPerformanceBalanced": "Équilibré",
    "rdpPerformanceQuality": "Qualité",
    "rdpPerformanceSpeed": "Vitesse",
    "rdpRemoteResolution": "Résolution distante",
    "rdpRemoteResolutionAutomatic": "Automatique",
    "rdpRedirectClipboard": "Redirection du presse-papiers",
    "rdpRedirectClipboardHint": "Autoriser la copie et le collage du presse-papiers entre KKTerm et le bureau distant.",
    "rdpRedirectDrives": "Redirection de lecteurs",
    "rdpRedirectDrivesHint": "Exposer les lecteurs locaux à la session de bureau distant.",
    "rdpSettingsSaved": "Paramètres RDP par défaut enregistrés.",
    "quality": "Qualité",
    "preferredEncoding": "Encodage préféré",
    "colorLevel": "Niveau de couleur",
    "vncEncodingTight": "Tight",
    "vncEncodingZrle": "ZRLE",
    "vncEncodingRaw": "Raw",
    "vncColorFull": "Couleur complète",
    "vncColor256": "256 couleurs",
    "vncColor64": "64 couleurs",
    "vncColor8": "8 couleurs",
    "vncSharedSession": "Session partagée",
    "vncSharedSessionHint": "Permettre à un autre visualiseur VNC de rester connecté lorsque KKTerm ouvre cette session.",
    "vncViewOnly": "Visualisation seule",
    "vncViewOnlyHint": "Se connecter sans envoyer d'entrée de pointeur ou de clavier.",
    "vncSettingsSaved": "Paramètres VNC par défaut enregistrés.",
    "github": "GitHub",
    "softwareUpdates": "Mise à jour de l’application",
    "updates": "Mises à jour",
    "checkForUpdates": "Vérifier maintenant",
    "lastCheckedAt": "Dernière vérification {{time}}",
    "lastCheckedNever": "Jamais vérifié",
    "checkingForUpdates": "Recherche de mises à jour...",
    "updateNoUpdates": "KKTerm est à jour.",
    "updateAvailableTitle": "Mise à jour disponible",
    "updateAvailableBody": "KKTerm {{version}} est disponible. Vous utilisez {{currentVersion}}.",
    "updatePromptLabel": "Invite de mise à jour KKTerm",
    "updateOpenDownloadPage": "Ouvrir la page de téléchargement",
    "updateDownloadAndInstall": "Télécharger et installer",
    "updateDownloading": "Téléchargement...",
    "updateDownloadCancel": "Annuler le téléchargement de la mise à jour",
    "updateDownloadFailed": "Impossible de télécharger et d’installer la mise à jour : {{message}}",
    "updateLater": "Plus tard",
    "updateNotes": "Notes de version",
    "updateChecksRequireRuntime": "La vérification des mises à jour nécessite l’environnement de bureau Tauri.",
    "updateCheckFailed": "Échec de la vérification des mises à jour : {{message}}",
    "appSlogan": "L’outil terminal pour que vos machines restent sages.",
    "developer": "Développeur",
    "version": "Version",
    "license": "Licence",
    "repository": "Dépôt",
    "uiFontDefault": "Par défaut (SF Pro / Inter)",
    "customFont": "Police personnalisée",
    "customFonts": "Polices personnalisées",
    "recommendedFonts": "Recommandées",
    "openCustomFontsFolder": "Ouvrir le dossier des polices",
    "typography": "Typographie",
    "typographyHint": "Sélection de la police de l'interface de l'application.",
    "theme": "Thème",
    "themeHint": "Jeu de couleurs et aperçu de l'application.",
    "customFontsHint": "Appuyez sur le bouton d’actualisation pour récupérer les polices système. Pour utiliser des polices personnalisées, placez-les dans le dossier des polices.",
    "systemFonts": "Polices système",
    "systemFontsRefreshed": "Polices système actualisées.",
    "systemFontsUnavailable": "La détection des polices système n’est pas disponible dans cette version de l’application.",
    "refreshSystemFonts": "Actualiser les polices système",
    "terminalFontDefault": "Par défaut ({{font}})",
    "providerDefault": "Par défaut du fournisseur",
    "low": "Faible",
    "medium": "Moyen",
    "high": "Élevé",
    "max": "Max",
    "fontFamilyRequired": "La famille de police est requise.",
    "defaultShellRequired": "Le shell par défaut est requis.",
    "fontSizeRange": "La taille de police du terminal doit être entre 8 et 32.",
    "lineHeightRange": "L'interligne du terminal doit être entre 1,0 et 2,0.",
    "scrollbackRange": "Le défilement du terminal doit être entre 100 et 100 000 lignes.",
    "terminalSaved": "Paramètres du terminal enregistrés.",
    "appearanceSaved": "Paramètres d'apparence enregistrés.",
    "aiProviderSaved": "Fournisseur IA enregistré.",
    "secretSaveFailed": "Impossible d’enregistrer l’identifiant dans le magasin de secrets : {{error}}",
    "keychainSaveFailedTitle": "Impossible d’enregistrer dans le magasin de secrets",
    "keychainResetHint": "La réinitialisation supprime l’entrée enregistrée puis l’enregistre à nouveau, ce qui demande au système d’exploitation d’accorder l’accès. Sur macOS, choisissez Allow lorsque l’invite du keychain apparaît.",
    "keychainResetAndRetry": "Réinitialiser et réessayer",
    "refreshModels": "Actualiser les modèles",
    "refreshingModels": "Actualisation des modèles",
    "modelListRefreshed": "Liste des modèles actualisée.",
    "showAllModels": "Afficher tous les modèles",
    "showAllModelsHint": "Afficher tous les modèles renvoyés par le fournisseur lors de l’actualisation, pas seulement les recommandations sélectionnées.",
    "outputLanguage": "Langue de sortie",
    "outputLanguageUiLanguage": "Langue de l'interface",
    "settingsContent": "Paramètres",
    "dashboardGeneral": "Général",
    "dashboardDefaultLanding": "Vue par défaut à l'ouverture",
    "dashboardLandingLast": "Dernière vue active",
    "dashboardLayoutEnforcement": "Disposition des widgets générés",
    "dashboardLayoutEnforcementHint": "Définit avec quelle rigueur KKTerm force les widgets créés par l’IA à remplir leur cadre. Strict fait agir le corps du widget comme le cadre afin que le contenu ne se réduise pas à une petite carte centrée; Modéré conserve le comportement standard; Faible offre le plus de liberté et laisse les widgets adapter leur taille à leur contenu.",
    "dashboardLayoutEnforcementStrict": "Strict — remplir le cadre",
    "dashboardLayoutEnforcementModerate": "Modéré — standard",
    "dashboardLayoutEnforcementLow": "Faible — liberté maximale",
    "dashboardSaved": "Paramètres du tableau de bord enregistrés.",
    "dashboardPerformance": "Performance",
    "dashboardMaxActiveScriptWidgets": "Limite de widgets de script actifs",
    "dashboardMaxActiveScriptWidgetsHint": "Nombre maximal de widgets de script qui affichent leur iframe simultanément sur un tableau de bord. Les widgets excédentaires affichent un espace réservé à activer. Plage autorisée {{min}}–{{max}}.",
    "dashboardUseRandomDynamicBackground": "Utiliser un arrière-plan dynamique aléatoire",
    "dashboardUseRandomDynamicBackgroundDesc": "Les nouvelles vues du Dashboard démarrent automatiquement avec un arrière-plan dynamique aléatoire.",
    "dashboardAllowWidgetNetworkTools": "Autoriser les outils réseau dans les widgets",
    "dashboardAllowWidgetNetworkToolsDesc": "Quand activé, les widgets de script qui demandent permissions.networkTools peuvent exécuter ping, analyse de ports, DNS, WHOIS et Wake-on-LAN. Désactiver pour bloquer globalement ces outils dans tous les widgets.",
    "workspaceTabs": "Onglets",
    "hideTopTabButtons": "Utiliser les onglets de connexion enfant dans l’arborescence des connexions",
    "hideTopTabButtonsDesc": "Lorsque cette option est activée, la bande d’onglets supérieure est masquée et les onglets de connexion enfant enregistrés apparaissent en lignes italiques sous leur connexion parente.",
    "doubleClickOpensConnection": "Double-cliquer pour ouvrir les Connections",
    "doubleClickOpensConnectionDesc": "Quand cette option est activée, un simple clic sur une Connection dans le Connection Tree la sélectionne seulement, et un double-clic l’ouvre. Utilisez l’action Renommer du clic droit pour renommer les Connections.",
    "fileExplorer": "Explorateur de fichiers",
    "fileExplorerOpenMode": "Ouvrir les fichiers",
    "fileExplorerOpenModeHint": "Choisissez si l’Explorateur de fichiers ouvre les fichiers locaux dans KKTerm ou avec l’application par défaut du système d’exploitation.",
    "fileExplorerOpenModeExternal": "Application externe",
    "fileExplorerOpenModeInlineEditor": "Éditeur intégré",
    "fileExplorerTerminal": "Terminal pour le dossier actuel",
    "fileExplorerTerminalHint": "Choisissez le shell utilisé par le bouton de terminal de l’Explorateur de fichiers. Les shells personnalisés sont gérés dans les réglages du Terminal.",
    "submitAiAttachmentsDirectly": "Envoyer la capture/le texte directement à AI Assistant",
    "submitAiAttachmentsDirectlyDesc": "Lorsque cette option est activée, Envoyer à AI Assistant envoie la capture jointe ou le tampon du terminal avec une demande d’aide par défaut. Lorsqu’elle est désactivée, le contexte est seulement joint afin que vous puissiez saisir votre propre question.",
    "terminalBackgrounds": "Arrière-plans du terminal",
    "separateSplitTerminalBackgrounds": "Arrière-plan séparé pour chaque terminal dans les volets divisés",
    "separateSplitTerminalBackgroundsDesc": "Lorsque désactivé, un seul arrière-plan remplit la zone de contenu du workspace terminal d’un onglet de connexion. Lorsque activé, les volets de terminal divisés peuvent conserver des arrière-plans séparés.",
    "workspaceSaved": "Paramètres de l’espace de travail enregistrés.",
    "fileExplorerSaved": "Réglages de l’Explorateur de fichiers enregistrés.",
    "activityRail": "Barre d’activité",
    "installerUpdateChecks": "Vérifications des mises à jour",
    "installerCheckInterval": "Rechercher les dernières versions",
    "installerCheckIntervalDesc": "Fréquence à laquelle l’Assistant d’installation recherche automatiquement les dernières versions disponibles à son ouverture. Utilisez Actualiser pour vérifier immédiatement.",
    "installerSaved": "Paramètres de l’Assistant d’installation enregistrés.",
    "sectionUrl": "URL",
    "urlDefaults": "Données et identifiants URL",
    "urlSecurity": "Sécurité URL",
    "urlSecurityHint": "Contrôle la gestion des certificats pour les connexions URL. Gardez le contournement désactivé sauf si vous faites confiance au site interne et au réseau.",
    "ignoreCertificateErrors": "Ignorer les certificats HTTPS invalides",
    "ignoreCertificateErrorsHint": "Charge les connexions URL avec des certificats auto-signés ou non fiables sans l'avertissement du navigateur. S'applique aux nouveaux onglets URL ouverts.",
    "proxy": "Proxy",
    "proxyHint": "Proxy réseau pour toute l'activité de KKTerm — connexions, mises à jour de l'application, fournisseurs IA et autres requêtes web.",
    "proxyMode": "Réglages proxy",
    "proxyModeSystem": "Utiliser les réglages système",
    "proxyModeNone": "Aucun proxy",
    "proxyModeManual": "Manuel",
    "proxyProtocol": "Type",
    "proxyHttp": "HTTP",
    "proxyHttps": "HTTPS",
    "proxySocks5": "SOCKS5",
    "proxyHost": "Hôte du proxy",
    "proxyHostPlaceholder": "proxy.example.com",
    "proxyPort": "Port du proxy",
    "proxyPlatformHint": "Les réglages système utilisent le proxy du système d'exploitation (Windows WinINET, macOS CFNetwork, variables d'environnement Linux). Un proxy SOCKS5 manuel achemine également les sessions SSH/SFTP et Telnet ; les proxys HTTP et HTTPS ne s'appliquent qu'aux requêtes web et de l'application.",
    "proxySettingsSaved": "Réglages proxy enregistrés.",
    "urlProxyMode": "Type de proxy",
    "urlProxyDirect": "Direct (sans proxy)",
    "urlProxyHttp": "HTTP / HTTPS",
    "urlProxySocks5": "SOCKS5",
    "urlProxyHost": "Hôte du proxy",
    "urlProxyHostPlaceholder": "proxy.example.com",
    "urlProxyPort": "Port du proxy",
    "urlSettingsSaved": "Paramètres URL enregistrés.",
    "savedWebsitePasswords": "Mots de passe/données de saisie de sites enregistrés",
    "savedWebsitePasswordsHint": "Les mots de passe restent dans le coffre de secrets sélectionné ; les données de saisie non secrètes et les détails de la page restent dans SQLite pour le remplissage automatique.",
    "noSavedWebsitePasswords": "Aucun mot de passe/donnée de saisie de site enregistré pour le moment.",
    "urlPasswordDeleted": "Données de site enregistrées supprimées.",
    "urlPasswordUpdated": "Données de site enregistrées mises à jour.",
    "urlPasswordDetails": "Utilisateur : {{username}} · Mis à jour : {{updatedAt}}",
    "urlCredentialUsername": "Nom d'utilisateur",
    "urlCredentialPassword": "Nouveau mot de passe",
    "urlCredentialPasswordPlaceholder": "Laissez vide pour conserver le mot de passe actuel",
    "urlCredentialShowValue": "Afficher la valeur saisie",
    "urlCredentialHideValue": "Masquer la valeur saisie",
    "urlCredentialMaskValue": "Rendre la valeur saisie confidentielle",
    "urlCredentialUnmaskValue": "Rendre la valeur saisie visible",
    "urlCredentialUsernameSelector": "Sélecteur du champ nom d'utilisateur",
    "urlCredentialPasswordSelector": "Sélecteur du champ mot de passe",
    "urlDataShards": "Partitions de données URL",
    "urlDataShardsHint": "Les partitions sont les noms de partitions de données des connexions URL. Effacer une partition retire son affectation des connexions URL correspondantes ; le nettoyage du stockage du moteur de navigateur dépend du magasin de données WebView2 partagé.",
    "noUrlDataShards": "Aucune partition de données URL configurée.",
    "urlDataShardConnectionCount": "{{count}} connexion URL",
    "clearShard": "Effacer la partition",
    "urlDataShardCleared": "Partition de données URL {{name}} effacée.",
    "urlDataShardConnectionCountPlural": "{{count}} connexions URL",
    "aiToolsTitle": "Outils de l'assistant",
    "aiProviderConnection": "Connexion du fournisseur",
    "aiProviderConnectionHint": "Point de terminaison, modèle, raisonnement et clé API.",
    "useCodexCli": "Utiliser Codex CLI",
    "useCodexCliHint": "Utilise le Codex CLI local comme backend OpenAI. Le champ de clé API est désactivé ; l’authentification Codex CLI est utilisée à la place.",
    "useClaudeCli": "Utiliser Claude Code CLI",
    "useClaudeCliHint": "Utilise le Claude Code CLI local comme backend Anthropic. Le champ de clé API est désactivé ; l’authentification Claude Code est utilisée à la place.",
    "aiCliStatusUnknown": "L’état de la CLI n’a pas encore été vérifié.",
    "aiCliStatusMissing": "La CLI n’est pas installée.",
    "aiCliStatusAuthRequired": "La CLI est installée, mais non authentifiée.",
    "aiCliStatusReady": "La CLI est installée et authentifiée.",
    "aiCliRefreshStatus": "Vérifier l’état",
    "aiCliInstall": "Installer la CLI",
    "aiCliAuthenticate": "S’authentifier",
    "aiCliInstallStarted": "L’installation de l’AI CLI est terminée.",
    "aiCliInstallFailed": "L’installation de l’AI CLI ne s’est pas terminée.",
    "aiCliAuthStarted": "L’authentification AI CLI a été ouverte dans un terminal externe.",
    "copilotConnectionHint": "Utilise la connexion par appareil GitHub. Le jeton renvoyé est stocké dans le trousseau du système.",
    "copilotCliInstallHelp": "Comment obtenir Copilot CLI",
    "copilotCliStatusUnknown": "Le statut de Copilot CLI n'a pas encore été vérifié.",
    "copilotCliStatusReady": "Copilot CLI détectée.",
    "copilotCliStatusMissing": "Copilot CLI introuvable. Installez-la ou définissez COPILOT_CLI_PATH.",
    "copilotConnect": "Connecter GitHub Copilot",
    "copilotDisconnect": "Déconnecter GitHub Copilot",
    "copilotAuthCode": "Saisissez le code {{code}} sur GitHub.",
    "copilotAuthPending": "En attente de l'autorisation GitHub…",
    "copilotOpenDevicePage": "Ouvrir la page appareil GitHub",
    "copilotConnected": "GitHub Copilot connecté.",
    "copilotDisconnected": "GitHub Copilot déconnecté.",
    "aiAllowInsecureTls": "Autoriser TLS non sécurisé pour les fournisseurs d'IA",
    "aiAllowInsecureTlsHint": "Ignorer les certificats invalides ou auto-signés pour les requêtes des fournisseurs d'IA. À utiliser uniquement pour des points de terminaison locaux ou internes de confiance.",
    "aiResponseDefaults": "Valeurs par défaut des réponses",
    "aiResponseDefaultsHint": "Préférences de langue pour les réponses de l'assistant.",
    "aiCustomInstructions": "Instructions personnalisées",
    "aiCustomInstructionsHint": "Guide optionnel de l'assistant, jusqu'à {{count}} caractères. Les contraintes de sécurité, d'approbation et de local-first de KKTerm s'appliquent toujours.",
    "aiCustomInstructionsTooLong": "Les instructions personnalisées de l'assistant IA doivent comporter {{count}} caractères ou moins.",
    "aiToolsDescription": "Choisissez quels outils intégrés l'assistant IA peut utiliser pour répondre. Gardez les outils risqués désactivés sauf si nécessaire.",
    "aiToolsSafety": "Protections : les outils de fichiers sont confinés aux données de l'application KKTerm, les commandes shell s'exécutent uniquement depuis les données de l'application, et les demandes de suppression/destruction sont bloquées jusqu'à ce qu'une future invite d'approbation explicite puisse les examiner.",
    "aiTools": {
      "currentTime": {
        "label": "Heure actuelle",
        "description": "Obtenir l'heure locale et UTC actuelle pour la planification et la corrélation des journaux."
      },
      "performanceCounters": {
        "label": "Compteurs de performance",
        "description": "Lire les compteurs locaux à faible surcharge du processeur, de la mémoire, du réseau, des processus, de la disponibilité et de l'espace disque."
      },
      "webSearch": {
        "label": "Recherche web",
        "description": "Rechercher sur le web et renvoyer des titres, liens et extraits compacts."
      },
      "webFetch": {
        "label": "Récupérer une page web",
        "description": "Lire une seule page http/https et résumer son contenu textuel."
      },
      "appDataFileSearch": {
        "label": "Rechercher dans les fichiers de données",
        "description": "Trouver des fichiers par nom uniquement dans les données d'application KKTerm."
      },
      "appDataFileRead": {
        "label": "Lire un fichier de données",
        "description": "Lire de petits fichiers texte uniquement dans les données d'application KKTerm."
      },
      "shellCommand": {
        "label": "Commandes PowerShell / batch",
        "description": "Exécuter des commandes PowerShell ou batch non destructives uniquement depuis les données d'application KKTerm."
      },
      "email": {
        "label": "Envoyer un e-mail",
        "description": "Envoyer des messages vérifiés via Resend, SendGrid, Mailgun, Postmark ou SMTP."
      },
      "dashboard": {
        "label": "Tableau de bord",
        "description": "Lire et modifier les vues du tableau de bord, les instances de widgets et les widgets créés par l’IA."
      },
      "connections": {
        "label": "Connexions",
        "description": "Lister, créer, modifier et supprimer les connexions enregistrées."
      },
      "sessions": {
        "label": "Sessions actives",
        "description": "Lire le contexte visible des sessions et interagir avec les sessions actives de terminal, bureau à distance et explorateur de fichiers."
      },
      "tutorial": {
        "label": "Tutoriel",
        "description": "Mettre en évidence les contrôles visibles de l’application, assombrir le reste de la fenêtre et afficher une aide en bulle en une étape."
      },
      "manual": {
        "label": "Manuel d’utilisation",
        "description": "Rechercher et lire le Manuel d’utilisation KKTerm intégré pour répondre aux questions sur les fonctionnalités de l’application."
      },
      "network": {
        "label": "Outils d'administration réseau",
        "description": "Envoyer un ping aux hôtes, vérifier les ports TCP, résoudre le DNS, exécuter WHOIS, lister les interfaces et envoyer Wake-on-LAN."
      },
      "memory": {
        "label": "Mémoire de l'assistant",
        "description": "Permet à l'assistant d'enregistrer et de rappeler de courtes notes sur vos hôtes et préférences entre les discussions. Ne stocke jamais de secrets."
      }
    },
    "searchProvider": "Fournisseur de recherche",
    "searchProviderScraper": "Intégré (DuckDuckGo)",
    "searchProviderBrave": "Brave Search",
    "searchProviderTavily": "Tavily",
    "searchProviderSearxng": "SearXNG",
    "braveSearchApiKey": "Clé API Brave Search",
    "tavilySearchApiKey": "Clé API Tavily",
    "searxngUrl": "URL de l'instance SearXNG",
    "emailProvider": "Fournisseur d’e-mail",
    "emailProviderResend": "Resend",
    "emailProviderSendGrid": "SendGrid",
    "emailProviderMailgun": "Mailgun",
    "emailProviderPostmark": "Postmark",
    "emailProviderSmtp": "SMTP",
    "emailFrom": "Adresse d’expéditeur",
    "emailApiKey": "Clé API du fournisseur d’e-mail",
    "mailgunDomain": "Domaine Mailgun",
    "smtpHost": "Hôte SMTP",
    "smtpPort": "Port SMTP",
    "smtpSecurity": "Sécurité SMTP",
    "smtpSecurityStartTls": "STARTTLS",
    "smtpSecurityNone": "Aucune",
    "smtpUsername": "Nom d’utilisateur SMTP",
    "smtpPassword": "Mot de passe SMTP",
    "connectedConnectionsRail": "Afficher les connexions dans le rail gauche",
    "connectedConnectionsRailHint": "Ajoute une icône pour chaque connexion connectée dans le rail gauche pour y revenir rapidement.",
    "builtInMcpServerEnabled": "Serveur MCP intégré activé",
    "builtInMcpServerEnabledHint": "Expose kkterm-cli comme serveur MCP stdio pour les outils externes.",
    "builtInMcpAllowAllDangerous": "Outils MCP dangereux intégrés : tout autoriser",
    "builtInMcpAllowAllDangerousHint": "Lorsque cette option est activée, les outils MCP kkterm.dangerous.* dangereux s’exécutent sans demande de confirmation.",
    "allowInsecureMcpHttp": "Autoriser les serveurs Remote MCP HTTP non sécurisés",
    "allowInsecureMcpHttpHint": "Lorsque cette option est activée, les serveurs Remote MCP sur des URL http:// locales ou réseau sont autorisés ; laissez-la désactivée sauf si vous faites confiance au réseau et au serveur.",
    "builtInMcpShowConfig": "Afficher la config",
    "builtInMcpConfigTitle": "Config MCP intégrée",
    "builtInMcpConfigIntro": "Collez l'un de ces extraits dans un outil compatible MCP, ou utilisez une commande de configuration ci-dessous. Le chemin de la commande utilise le binaire kkterm-cli à côté de votre application KKTerm en cours d'exécution.",
    "builtInMcpConfigCopy": "Copier la config",
    "builtInMcpConfigCopied": "Config copiée",
    "builtInMcpConfigLocationsTitle": "Commandes de configuration courantes",
    "builtInMcpConfigFormatJson": "JSON",
    "builtInMcpConfigFormatToml": "TOML",
    "builtInMcpConfigAgentHeader": "Agent",
    "builtInMcpConfigMethodHeader": "Méthode",
    "builtInMcpConfigProjectScopeHeader": "Portée projet (exécuter dans le dossier du projet)",
    "builtInMcpConfigGlobalScopeHeader": "Portée globale (exécuter n’importe où)",
    "builtInMcpConfigMethodRunCommand": "Exécuter la commande",
    "builtInMcpConfigMethodRunCommandOrManualEdit": "Exécuter la commande / modification manuelle",
    "builtInMcpConfigMethodManualEdit": "Modification manuelle",
    "exportSettings": "Exporter",
    "changesNotSaved": "Modification non enregistrée",
    "unsavedQuitTitle": "Paramètres non enregistrés",
    "unsavedQuitBody": "Enregistrer vos modifications avant de fermer les paramètres ?",
    "saveAndQuit": "Enregistrer et fermer",
    "quitWithoutSaving": "Fermer sans enregistrer",
    "sectionItOps": "IT Ops",
    "urlUserAgent": "User agent",
    "urlUserAgentHint": "Choisissez la chaîne user agent par défaut pour les connexions URL. Laissez vide pour utiliser la valeur par défaut du webview de chaque plateforme ; collez une valeur personnalisée lorsqu'un site l'exige.",
    "urlUserAgentDefault": "User agent par défaut",
    "urlUserAgentDefaultPlaceholder": "Valeur par défaut de la plateforme",
    "urlUserAgentChromeWindows": "Chrome sur Windows",
    "urlUserAgentChromeMac": "Chrome sur macOS",
    "urlUserAgentChromeLinux": "Chrome sur Linux",
    "urlUserAgentEdgeWindows": "Edge sur Windows",
    "urlUserAgentEdgeMac": "Edge sur macOS",
    "urlUserAgentFirefoxWindows": "Firefox sur Windows",
    "urlUserAgentFirefoxMac": "Firefox sur macOS",
    "urlUserAgentFirefoxLinux": "Firefox sur Linux",
    "urlUserAgentSafariMac": "Safari sur macOS",
    "terminalColorScheme": "Jeu de couleurs",
    "terminalColorSchemeHint": "Palette par défaut de tous les terminaux. Chaque connexion peut la remplacer depuis le menu du panneau de terminal.",
    "terminalIntegrations": "Intégrations",
    "terminalIntegrationsHint": "Extensions de protocole pour les programmes exécutés dans le terminal.",
    "enableInlineImages": "Images en ligne (Sixel et iTerm2)",
    "enableInlineImagesHint": "Permet aux programmes comme imgcat d'afficher des images directement dans le terminal.",
    "allowTerminalNotifications": "Notifications du terminal (OSC 9/777)",
    "allowTerminalNotificationsHint": "Affiche un avis dans la barre d'état lorsqu'un programme émet une notification de terminal.",
    "hyperlinkRules": "Règles d'hyperliens",
    "hyperlinkRulesHint": "Transforme le texte correspondant en liens Ctrl+clic. $0–$9 dans l'URL insèrent les groupes capturés.",
    "hyperlinkRule": "règle",
    "hyperlinkRulePattern": "Motif (expression régulière)",
    "hyperlinkRuleUrl": "Modèle d'URL",
    "addHyperlinkRule": "Ajouter une règle",
    "removeHyperlinkRule": "Supprimer la règle {{pattern}}",
    "hyperlinkRuleIncomplete": "Chaque règle d'hyperlien nécessite un motif et une URL.",
    "hyperlinkRuleInvalidPattern": "Le motif « {{pattern}} » n'est pas une expression régulière valide.",
    "hyperlinkRuleUrlInvalid": "Les URL des règles d'hyperliens doivent commencer par http:// ou https://."
  },
  "connections": {
    "title": "Connexions",
    "addConnection": "Ajouter une connexion",
    "collapseColumn": "Réduire la colonne Connexions",
    "searchPlaceholder": "Rechercher des hôtes, dossiers",
    "quickConnect": "Connexion rapide",
    "newFolder": "Nouveau dossier",
    "panoramaView": "Vue panoramique",
    "collapseAll": "Tout réduire",
    "expandAll": "Tout développer",
    "showConnected": "Afficher les connectés",
    "hideFolders": "Masquer les dossiers",
    "connectionTree": "Arborescence des connexions",
    "expand": "Développer",
    "collapse": "Réduire",
    "newSubfolderIn": "Nouveau sous-dossier dans",
    "newConnection": "Nouvelle connexion",
    "rename": "Renommer",
    "changeIcon": "Changer l’icône",
    "openAllInFolder": "Ouvrir toutes les connexions",
    "openAllInTabs": "Dans des onglets séparés",
    "openAllInPanorama": "Dans un Panorama",
    "closeAllInFolder": "Fermer toutes les connexions",
    "delete": "Supprimer",
    "pinToRail": "Épingler",
    "unpinFromRail": "Désépingler",
    "pinnedToRailStatus": "{{name}} épinglé.",
    "unpinnedFromRailStatus": "{{name}} désépinglé.",
    "pinRailError": "Impossible de mettre à jour les connexions épinglées : {{message}}",
    "addTo": "Ajouter à...",
    "newTabShortcut": "Ctrl+Left Click",
    "layout": "Disposition",
    "left": "Gauche",
    "right": "Droite",
    "lower": "Inférieur",
    "upper": "Supérieur",
    "properties": "Propriétés",
    "renameFolder": "Renommer le dossier",
    "renameConnection": "Renommer la connexion",
    "deleteFolderConfirm": "Supprimer le dossier",
    "deleteConnectionConfirm": "Supprimer la connexion",
    "cannotBeUndone": "Cette action est irréversible.",
    "quickConnectDialog": "Connexion rapide",
    "ssh": "SSH",
    "telnet": "Telnet",
    "serial": "Série",
    "hostname": "Nom d'hôte",
    "port": "Port",
    "exampleHost": "exemple.interne",
    "connect": "Connecter",
    "cancel": "Annuler",
    "normal": "Normal",
    "admin": "Admin",
    "noRecent": "Aucune connexion récente",
    "moreRecent": "Plus...",
    "secureShell": "Shell sécurisé",
    "telnetShell": "Terminal par mot de passe",
    "serialLine": "Ligne série",
    "localShell": "Shell local",
    "embeddedWebApp": "Application web intégrée",
    "windowsRdp": "Bureau à distance Windows",
    "screenControl": "Contrôle d'écran",
    "type": "Type",
    "connectionProperties": "Propriétés de la connexion",
    "connectionNotFound": "La connexion est introuvable.",
    "childConnectionProperties": "Modifier les propriétés de l’onglet de connexion enfant",
    "newConnectionTitle": "Nouvelle connexion",
    "openOneOffSession": "Connexion rapide — enregistrée dans vos connexions",
    "saveAndConnect": "Enregistrer et connecter",
    "editIcon": "Modifier l'icône de connexion",
    "iconPickerLabel": "Icône de connexion",
    "editIconBackground": "Modifier le fond d'icône de connexion",
    "iconForeground": "Premier plan d'icône",
    "defaultIconForeground": "Utiliser le premier plan d'icône par défaut",
    "selectIconForeground": "Utiliser le premier plan d'icône {{color}}",
    "iconBackground": "Fond d'icône",
    "transparentIconBackground": "Utiliser un fond d'icône transparent",
    "selectIconBackground": "Utiliser le fond d'icône {{color}}",
    "predefinedIcons": "Prédéfini",
    "lucideIcons": "Icônes Lucide",
    "customImage": "Image sélectionnée",
    "currentCustomIcon": "Icône personnalisée actuelle",
    "savedImages": "Images enregistrées",
    "chooseImage": "Choisir",
    "useDefaultIcon": "Utiliser l’icône par défaut",
    "removeCustomIcon": "Supprimer l'icône personnalisée",
    "selectPredefinedIcon": "Utiliser l'icône {{icon}}",
    "selectLucideIcon": "Utiliser l’icône Lucide {{icon}}",
    "selectSavedIcon": "Utiliser l'image enregistrée {{index}}",
    "iconReadError": "Impossible de lire cette image.",
    "iconFileTooLarge": "Choisissez une image de moins de 20 Mo.",
    "wsl": "WSL",
    "close": "Fermer",
    "folder": "Dossier",
    "root": "Racine",
    "nameOptional": "Nom (facultatif)",
    "connectionName": "Nom de la connexion",
    "shell": "Shell",
    "wslDistribution": "Distribution",
    "localStartupDirectory": "Chemin de démarrage",
    "localStartupDirectoryPlaceholder": "C:\\Work\\Project",
    "localStartupDirectoryPickerTitle": "Choisir le chemin de démarrage",
    "localStartupScript": "Script de démarrage",
    "localStartupScriptPlaceholder": "Commandes optionnelles à exécuter après le lancement",
    "sshStartupScript": "Script de démarrage",
    "sshStartupScriptToggle": "Activer le script de démarrage",
    "sshStartupScriptEdit": "Modifier le script",
    "sshStartupScriptEmpty": "Pas encore de script de démarrage — ouvre l'éditeur pour en ajouter un.",
    "sshStartupScriptEditorTitle": "Script de démarrage SSH",
    "sshStartupScriptEditorHint": "Ces commandes sont saisies dans le shell distant à chaque ouverture de session.",
    "sshStartupScriptPlaceholder": "cd /srv/app\nsource .venv/bin/activate",
    "sshStartupScriptApplyExistingTmux": "Appliquer aux sessions tmux existantes lors de l'attachement",
    "sshStartupScriptApplyExistingTmuxDesc": "Réexécuter le script lors du réattachement à une session tmux en cours, pas seulement lors de sa création initiale.",
    "sshStartupScriptGenerateWithAi": "Générer une commande avec l'IA",
    "sshStartupScriptAiPromptLabel": "Décrire la commande",
    "sshStartupScriptAiPromptPlaceholder": "p. ex. activer le virtualenv du projet et aller dans le répertoire de l'application",
    "sshStartupScriptAiGenerate": "Générer",
    "sshStartupScriptAiGenerating": "Génération en cours...",
    "sshStartupScriptAiFailed": "L'IA n'a pas pu générer une commande : {{message}}",
    "environmentVariables": "Variables d'environnement",
    "environmentVariablesUnsupportedShell": "Les variables d'environnement prennent en charge l'invite de commandes, PowerShell, WSL, Bash et zsh.",
    "environmentVariablesHint": "Ces variables sont définies au démarrage de cette connexion.",
    "environmentVariablesNonSecret": "Les valeurs sont stockées dans le script de démarrage. Ne stockez pas de mots de passe, de jetons ni de clés API ici.",
    "environmentVariablesMalformed": "KKTerm ne peut pas modifier en toute sécurité le bloc d'environnement géré existant. Corrigez-le ou supprimez-le d'abord dans le script de démarrage.",
    "environmentVariable": "variable d'environnement",
    "environmentVariableName": "Nom",
    "environmentVariableValue": "Valeur",
    "environmentVariableAdd": "Ajouter une variable",
    "environmentVariableRemove": "Supprimer {{name}}",
    "environmentVariableApply": "Appliquer",
    "environmentVariableInvalidName": "Les noms doivent commencer par une lettre ou un trait de soulignement et ne contenir que des lettres, des chiffres et des traits de soulignement.",
    "environmentVariableDuplicateName": "Chaque nom de variable doit être unique.",
    "environmentVariableMultilineValue": "Les valeurs doivent rester sur une seule ligne.",
    "cliAccountHelper": "Configurer le compte CLI",
    "cliAccountAlternateProfileHint": "Définir un profil de compte alternatif pour l'agent de codage IA",
    "cliAccountUnsupportedShell": "Les profils de compte CLI alternatifs prennent en charge l'invite de commandes, PowerShell, WSL, Bash et zsh.",
    "cliAccountHint": "Choisissez un compte CLI. KKTerm définit un répertoire de données isolé ; connectez-vous normalement après l'ouverture du terminal.",
    "cliAccountTool": "CLI",
    "cliAccountClaudeCode": "Claude Code",
    "cliAccountCodex": "Codex",
    "cliAccountLabel": "Libellé du compte",
    "cliAccountLabelPlaceholder": "Par exemple, Travail ou Personnel",
    "cliAccountDirectory": "Répertoire du compte",
    "cliAccountInvalidLabel": "Saisissez un libellé de compte contenant une lettre ou un chiffre.",
    "cliAccountApply": "Définir le profil de compte",
    "line": "Ligne",
    "speed": "Vitesse",
    "serialLinePlaceholder": "p. ex. COM3 ou /dev/cu.usbserial-1410",
    "serialLineDetect": "Afficher les ports série détectés",
    "serialLineNoneDetected": "Aucun port série détecté",
    "url": "URL",
    "urlPlaceholder": "https://exemple.com",
    "dataPartition": "Partition de données",
    "urlProxy": "Proxy URL",
    "urlOptions": "Options URL",
    "urlProxyOverrideHint": "Héritez de la valeur par défaut des paramètres URL, forcez une connexion directe, ou choisissez un proxy pour cette Connection.",
    "default": "Par défaut",
    "credentialUser": "Identifiant",
    "password": "Mot de passe",
    "optionalUsername": "Nom d'utilisateur facultatif",
    "storedInKeychain": "Stocké dans le trousseau du système",
    "leaveBlankPassword": "Laissez vide pour conserver le mot de passe enregistré",
    "passwordOptionalHint": "Laissez vide pour saisir le mot de passe dans le terminal",
    "savedPassword": "Mot de passe enregistré",
    "typeNewPassword": "Saisir un nouveau mot de passe",
    "host": "Hôte",
    "user": "Utilisateur",
    "domainAdmin": "DOMAINE\\admin",
    "auth": "Auth",
    "keyFile": "Fichier de clé",
    "sshAgent": "Agent SSH",
    "proxyJumpLabel": "Proxy jump",
    "proxyJumpOptional": "Proxy jump",
    "sshProxyOptions": "Options de proxy SSH",
    "sshOptions": "Options SSH",
    "sshSocksProxyOptional": "Proxy SOCKS",
    "sshSocksProxyHint": "Achemine nativement les terminaux, tmux et SFTP de cette Connection via un proxy SOCKS. Ne peut pas être combiné avec ProxyJump.",
    "sshSocksProxyUsernameOptional": "Nom d'utilisateur du proxy SOCKS",
    "sshSocksProxyPasswordOptional": "Mot de passe du proxy SOCKS",
    "sshSocksProxyPasswordPlaceholder": "Laissez vide pour conserver le mot de passe enregistré",
    "jumpInternal": "jump.interne",
    "passwordLabel": "Mot de passe",
    "keyPath": "Chemin de la clé",
    "keyPathExample": "C:\\Users\\example\\.ssh\\id_ed25519",
    "keyPassphraseOptional": "Phrase secrète de la clé (facultatif)",
    "keyPassphraseHint": "Stockée dans le coffre de secrets configuré. Laissez vide pour être invité à la saisir lorsque la clé en exige une.",
    "leaveBlankPassphrase": "Laissez vide pour conserver la phrase secrète enregistrée",
    "browse": "Parcourir",
    "useTmux": "Utiliser les sessions tmux",
    "sshCompression": "Compression",
    "usePsmux": "Gestion des sessions psmux",
    "rdpOptions": "Options RDP",
    "vncOptions": "Options VNC",
    "vncUsername": "Nom d’utilisateur (Apple Remote Desktop)",
    "vncUsernameHint": "Facultatif. Utilisez le nom du compte Mac pour la connexion macOS Screen Sharing / Apple Remote Desktop. Laissez vide pour le VNC avec mot de passe uniquement.",
    "inheritSettingsDefaults": "Utiliser les paramètres par défaut",
    "localTerminal": "Terminal local",
    "sshTerminal": "Terminal SSH",
    "rdp": "RDP",
    "vnc": "VNC",
    "ftp": "FTP",
    "ftpOptions": "Options FTP",
    "ftpProtocol": "Protocole",
    "ftpProtocolFtp": "FTP simple",
    "ftpProtocolFtps": "FTPS (TLS)",
    "ftpProtocolSftp": "SFTP (via SSH)",
    "ftpMode": "Mode de connexion",
    "ftpModePassive": "Passif (PASV)",
    "ftpModeActive": "Actif (PORT)",
    "ftpTlsMode": "Mode TLS",
    "ftpTlsExplicit": "Explicite (AUTH TLS)",
    "ftpTlsImplicit": "Implicite (port 990)",
    "ftpTransferType": "Type de transfert",
    "ftpTransferBinary": "Binaire",
    "ftpTransferAscii": "ASCII",
    "ftpUtf8": "Négocier les chemins UTF-8",
    "ftpShowHidden": "Afficher les fichiers cachés",
    "ftpIgnoreCertErrors": "Autoriser les certificats TLS invalides",
    "ftpConnectTimeoutSecs": "Délai de connexion (s)",
    "ftpKeepaliveSecs": "Keepalive (s, 0 = désactivé)",
    "ftpLocalPath": "Chemin de départ local",
    "ftpLocalPathPlaceholder": "Répertoire personnel",
    "ftpLocalPathPickerTitle": "Choisir le chemin de départ local",
    "ftpRemotePath": "Chemin de départ distant",
    "ftpRemotePathPlaceholder": "Répertoire personnel distant",
    "addToPane": "Ajouter au volet",
    "transferSshPublicKey": "Transférer la clé publique SSH",
    "transferSshPublicKeyAction": "Transférer la clé",
    "transferSshPublicKeyHint": "Transfère uniquement la clé publique sélectionnée vers le fichier authorized_keys de l'utilisateur distant en utilisant l'authentification par mot de passe.",
    "transferSshPublicKeyComplete": "Clé publique SSH transférée depuis {{path}}.",
    "transferSshPublicKeyProxyJumpUnsupported": "Le transfert de clé publique SSH ne prend pas encore en charge les connexions ProxyJump.",
    "createConnectionComplete": "Connexion « {{name}} » ajoutée.",
    "deleteConnectionComplete": "Connexion « {{name}} » supprimée.",
    "expandFolder": "Développer le dossier",
    "collapseFolder": "Réduire le dossier",
    "folderTreeControls": "Contrôles de l'arborescence",
    "quickSessionFallbackName": "Session rapide",
    "newFolderName": "Nom du nouveau dossier",
    "deleteFolderMessage": "Supprimer le dossier",
    "deleteConnectionMessage": "Supprimer la connexion",
    "folderConnectionsCount": "connexion(s)",
    "folderSubfoldersCount": "sous-dossier(s)",
    "import": {
      "tileTitle": "Importer",
      "tileSubtitle": "Depuis un fichier ou un scan réseau",
      "title": "Importer des connexions",
      "back": "Retour",
      "chooseSource": "Choisir une source d'import",
      "fromFileTitle": "Importer depuis un fichier",
      "fromFileSubtitle": "CSV, TSV, RDCMan, MobaXterm, PuTTY",
      "scanTitle": "Analyser le réseau",
      "scanSubtitle": "Sonder une plage pour SSH, Telnet, RDP ouverts",
      "chooseFile": "Choisir un fichier",
      "noFileChosen": "Aucun fichier sélectionné",
      "fileFormatsHint": "Pris en charge : CSV/TSV/texte, RDCMan (.rdg), MobaXterm (.mxtsessions), PuTTY (.reg).",
      "scanTargetLabel": "Cible",
      "scanTargetPlaceholder": "192.168.1.0/24, 10.0.0.10-10.0.0.50, ou IP/hôte unique",
      "scanTargetHint": "Sondage TCP léger sur les ports sélectionnés. Limité à 1024 hôtes par analyse.",
      "scanPortsLabel": "Ports à sonder",
      "portSsh": "SSH",
      "portTelnet": "Telnet",
      "portRdp": "RDP",
      "portHttpHttps": "HTTP/HTTPS",
      "scanStart": "Démarrer l'analyse",
      "scanRunning": "Analyse en cours",
      "scanNoResults": "Aucun port ouvert trouvé dans la plage analysée.",
      "scanTargetRequired": "Saisissez une IP, un nom d'hôte, une plage ou un CIDR cible.",
      "scanPortRequired": "Sélectionnez au moins un port à sonder.",
      "previewHeading": "{{selected}} sur {{count}} sélectionnés",
      "selectAll": "Tout sélectionner",
      "selectNone": "Tout désélectionner",
      "previewAll": "Tout",
      "previewSelected": "Sélectionnés",
      "previewMissingUser": "Utilisateur manquant",
      "previewEmpty": "Aucun résultat. Ajustez le filtre ou choisissez une source d’importation.",
      "selectColumn": "Sélectionner",
      "selectRow": "Sélectionner la ligne",
      "colName": "Nom",
      "colType": "Type",
      "colHost": "Hôte",
      "colPort": "Port",
      "colUser": "Utilisateur",
      "colPassword": "Mot de passe",
      "bulkUserLabel": "Nom d'utilisateur",
      "bulkUserPlaceholder": "Nom d'utilisateur pour les lignes sélectionnées",
      "bulkUserRequired": "Saisissez un nom d'utilisateur à appliquer.",
      "bulkPasswordRequired": "Saisissez un mot de passe à appliquer.",
      "bulkPasswordLabel": "Mot de passe (facultatif)",
      "bulkPasswordPlaceholder": "Mot de passe pour les lignes sélectionnées",
      "setUsernameButton": "Définir l'utilisateur",
      "setPasswordButton": "Définir le mot de passe",
      "bulkScopeAll": "Appliquer à toute la sélection",
      "bulkScopeUnfilled": "Remplir uniquement les entrées vides",
      "bulkApply": "Appliquer",
      "bulkCancel": "Annuler",
      "warningsHeading": "Avertissements",
      "destinationLabel": "Destination",
      "destinationNewFolder": "Créer un nouveau dossier",
      "destinationRoot": "Racine",
      "newFolderNameLabel": "Nom du nouveau dossier",
      "folderNameRequired": "Saisissez un nom de dossier.",
      "noneSelected": "Sélectionnez au moins une ligne à importer.",
      "importCount": "Importer {{count}}",
      "importFileComplete": "Importation de {{count}} connexions depuis le fichier.",
      "importScanComplete": "Importation de {{count}} connexions depuis l'analyse.",
      "bookmarksTitle": "Importer les favoris du navigateur",
      "bookmarksSubtitle": "Favoris URL Edge, Chrome, Firefox",
      "bookmarksLoading": "Recherche des sources de favoris du navigateur...",
      "bookmarksNoSources": "Aucune source de favoris Edge, Chrome ou Firefox trouvée sur cet appareil.",
      "bookmarksSourceLabel": "Profil du navigateur",
      "bookmarksSourcePath": "Fichier source : {{path}}",
      "bookmarksTreeLabel": "Dossiers et liens de favoris",
      "bookmarksPreview": "Aperçu de {{count}} sélectionnés",
      "bookmarksSourceRequired": "Choisissez une source de favoris de navigateur.",
      "bookmarksSelectionRequired": "Sélectionnez au moins un dossier ou favori à importer.",
      "bookmarksNoImportable": "Les favoris sélectionnés ne contenaient aucune URL http ou https.",
      "bookmarkFallbackName": "Favori importé",
      "importBookmarksComplete": "Importation de {{count}} connexions depuis les favoris.",
      "importedFromBookmarks": "Favoris",
      "importedFromScan": "Analyse",
      "importedFromRdcman": "RDCMan",
      "importedFromMobaxterm": "MobaXterm",
      "importedFromPutty": "PuTTY",
      "importedDefault": "Importé"
    },
    "closeConnection": "Fermer la connexion",
    "localFiles": "Explorateur de fichiers",
    "homeDirectory": "Répertoire personnel",
    "localFilesSubtitle": "Navigateur de fichiers local",
    "localFilesRootDirectory": "Dossier de départ",
    "localFilesRootDirectoryPlaceholder": "Dossier personnel",
    "fileView": "Document",
    "fileViewPath": "Fichier",
    "fileViewPathPlaceholder": "Sélectionnez un fichier à afficher",
    "fileViewPickerTitle": "Sélectionnez un fichier à afficher",
    "fileViewOpenExternal": "Ouvrir dans un éditeur externe",
    "fileViewOpenExternalHint": "Ouvrir cette connexion de document avec l'application par défaut du système d'exploitation au lieu de créer un onglet KKTerm."
  },
  "terminal": {
    "openSftp": "Ouvrir le navigateur SFTP",
    "sftp": "SFTP",
    "sshPortRedirect": "Redirection de port SSH",
    "splitLayout": "Diviser la disposition",
    "splitRight": "Diviser à droite",
    "splitLeft": "Diviser à gauche",
    "splitDown": "Diviser en bas",
    "splitUp": "Diviser en haut",
    "actions": "Actions du terminal",
    "saveBuffer": "Enregistrer le tampon",
    "startRecording": "Démarrer l'enregistrement",
    "stopRecording": "Arrêter l'enregistrement",
    "recording": "Enregistrement",
    "recordingStarted": "Enregistrement du terminal démarré.",
    "recordingStopped": "Enregistrement du terminal arrêté.",
    "recordingSaved": "Enregistrement du terminal enregistré dans {{path}}.",
    "recordingFailed": "Échec de l'enregistrement du terminal : {{message}}",
    "recordingUnavailable": "L'enregistrement du terminal nécessite une session de terminal de bureau active.",
    "openRecordings": "Ouvrir les enregistrements",
    "recordingsTitle": "Enregistrements du terminal",
    "openRecordingsFolder": "Ouvrir le dossier des enregistrements",
    "noRecordings": "Aucun enregistrement pour cette connexion.",
    "recordingMetadata": "{{metadata}}",
    "font": "Police",
    "increaseSize": "Augmenter la taille",
    "decreaseSize": "Diminuer la taille",
    "resetSize": "Réinitialiser la taille",
    "opacity": "Transparence",
    "opacityValue": "{{value}} % de transparence",
    "background": "Arrière-plan",
    "backgroundDefaultHint": "Utilise l’arrière-plan de terminal par défaut pour cette connexion.",
    "appearanceSaveFailed": "Impossible d’enregistrer l’apparence du terminal : {{message}}",
    "save": "Enregistrer",
    "reset": "Réinitialiser",
    "starting": "Démarrage",
    "bufferSaveFailed": "Impossible d'enregistrer le tampon du terminal : {{message}}",
    "startingSessionFor": "Démarrage de la session {{type}} pour {{name}}...",
    "desktopRuntimeRequired": "Les sessions de terminal nécessitent l'environnement de bureau Tauri.",
    "verifyingHostKey": "Vérification de la clé d'hôte SSH...",
    "failedToStart": "échec du démarrage de la session",
    "failedToStartDetail": "Échec du démarrage de la session : {{message}}",
    "find": "Rechercher",
    "noResults": "Aucun résultat",
    "findInScrollback": "Rechercher dans le défilement du terminal",
    "closeSearch": "Fermer la recherche du terminal",
    "copySelection": "Copier la sélection du terminal (Ctrl+Shift+C)",
    "sendToAi": "Envoyer le tampon du terminal à l'assistant IA",
    "detachTmux": "Détacher la session tmux",
    "closePane": "Fermer le volet",
    "connectLabel": "Connexion : {{name}}",
    "copy": "Copier",
    "copyShortcut": "Ctrl+Shift+C",
    "paste": "Coller",
    "pasteMultilineConfirm": "Coller plusieurs lignes dans ce terminal ?",
    "terminalBuffer": "tampon du terminal",
    "showTmux": "Afficher les sessions tmux",
    "showPsmux": "Afficher les sessions psmux",
    "editTmuxSession": "Modifier le nom de la session tmux",
    "tmuxSessionName": "nom de la session tmux",
    "tmuxSessionNameRequired": "Saisissez un nom de session tmux.",
    "tmuxSessionNameInvalid": "Utilisez un nom sans espaces, deux-points ou points-virgules.",
    "tmuxSessionRenamed": "session tmux renommée.",
    "tmuxSessions": "sessions tmux",
    "psmuxSessions": "Sessions psmux",
    "refreshTmux": "Actualiser les sessions tmux",
    "loading": "Chargement...",
    "noTmuxSessions": "Aucune session tmux.",
    "open": "Actif",
    "attached": "attaché",
    "detached": "détaché",
    "focusPane": "Focus sur le volet",
    "openInPane": "Ouvrir dans le volet",
    "mouseOn": "Souris : activée",
    "mouseOff": "Souris : désactivée",
    "closeTmux": "Fermer la session tmux",
    "openLeft": "Ouvrir à gauche",
    "openAbove": "Ouvrir au-dessus",
    "openBelow": "Ouvrir en dessous",
    "openRight": "Ouvrir à droite",
    "previousSearch": "Résultat précédent",
    "nextSearch": "Résultat suivant",
    "sshContextUnavailable": "Contexte système SSH indisponible : {{message}}",
    "replaceChangedHostKeyTitle": "Clé d'hôte SSH modifiée",
    "replaceChangedHostKeyWarning": "La clé d'hôte SSH pour {{host}} a changé et présente désormais {{algorithm}} {{fingerprint}}. Cela signifie généralement que le serveur a été réinstallé ou a renouvelé sa clé, mais cela peut aussi indiquer une attaque de l'intercepteur. Ne remplacez la clé approuvée que si vous attendiez ce changement.",
    "trustHostKey": "Faire confiance à la clé d'hôte SSH pour",
    "hostKeyNotTrusted": "La clé d'hôte SSH n'a pas été approuvée.",
    "selectKeyFile": "Sélectionner le fichier de clé SSH",
    "targetLabel": "Cible : {{target}}",
    "saveDialog": "Enregistrer le tampon",
    "logFiles": "Fichiers journaux",
    "textFiles": "Fichiers texte",
    "tauriRequired": "Environnement Tauri indisponible",
    "noSaveDialog": "Aucune boîte de dialogue d'enregistrement disponible dans cet environnement",
    "quickCommandsBar": "Commandes rapides",
    "quickCommandsShow": "Afficher les commandes rapides",
    "quickCommandsHide": "Masquer les commandes rapides",
    "quickCommandsAddFirst": "Ajouter une commande rapide",
    "quickCommandsManage": "Gérer les commandes rapides",
    "quickCommandsNoPane": "Aucun volet terminal actif pour les commandes rapides.",
    "quickCommandsRun": "Exécuter la commande",
    "quickCommandsDangerous": "Dangereux",
    "quickCommandsConfirmTitle": "Exécuter la commande rapide ?",
    "quickCommandsConfirm": "Exécuter \"{{label}}\" dans le volet terminal actif ?",
    "quickCommandsEmpty": "Aucune commande rapide pour le moment.",
    "quickCommandsDelete": "Supprimer la commande rapide {{label}}",
    "quickCommandsMoveUp": "Déplacer {{label}} vers le haut",
    "quickCommandsMoveDown": "Déplacer {{label}} vers le bas",
    "quickCommandsLibrary": "Depuis la bibliothèque",
    "quickCommandsAddCommand": "Ajouter une commande",
    "quickCommandsSearch": "Rechercher dans la bibliothèque",
    "quickCommandsAdd": "Ajouter",
    "quickCommandsNoLibraryMatches": "Aucune commande de bibliothèque ne correspond.",
    "quickCommandsLabel": "Étiquette",
    "quickCommandsCommand": "Commande",
    "quickCommandsSendEnter": "Envoyer Entrée après la commande",
    "quickCommandsRequireConfirm": "Demander une confirmation avant d'exécuter",
    "quickCommandsGenerateWithAi": "Générer une commande avec l'IA",
    "quickCommandsAiPromptLabel": "Décrire la commande",
    "quickCommandsAiPromptPlaceholder": "mettre à jour les paquets apt",
    "quickCommandsAiGenerate": "Générer",
    "quickCommandsAiGenerating": "Génération en cours...",
    "quickCommandsAiFailed": "L'IA n'a pas pu générer une commande : {{message}}",
    "quickCommandsColor": "Couleur",
    "quickCommandsIcon": "Icône",
    "quickCommandsCreate": "Créer une commande",
    "quickCommandsTitle": "Commandes rapides",
    "quickCommandsManageSubtitle": "Épinglées à la barre au-dessus du terminal pour cette Connection. Faites glisser pour réorganiser.",
    "quickCommandsLibraryAction": "Bibliothèque",
    "quickCommandsDone": "Terminé",
    "quickCommandsEditTitle": "Modifier la commande",
    "quickCommandsSendEnterTitle": "Envoyer Entrée",
    "quickCommandsSendEnterDesc": "Appuyer sur Entrée après l’insertion de la commande",
    "quickCommandsRequireConfirmTitle": "Confirmation requise",
    "quickCommandsRequireConfirmDesc": "Demander avant d’exécuter cette commande",
    "quickCommandLibrary": {
      "categoryTabs": "Catégories de la bibliothèque de commandes rapides",
      "subcategoryTabs": "Sous-catégories de la bibliothèque de commandes rapides",
      "categories": {
        "aiAgents": "Agents IA",
        "developerWorkflow": "Flux de travail développeur",
        "containersKubernetes": "Conteneurs et Kubernetes",
        "linuxAdministration": "Administration Linux",
        "macosAdministration": "Administration macOS"
      },
      "subcategories": {
        "codingAgents": "Agents de programmation",
        "autonomousAgents": "Agents autonomes",
        "git": "Git",
        "packageManagersRuntimes": "Gestionnaires de paquets et environnements",
        "docker": "Docker",
        "dockerCompose": "Docker Compose",
        "kubectl": "kubectl",
        "servicesLogs": "Services et journaux",
        "packages": "Paquets",
        "softwareUpdate": "Mise à jour logicielle",
        "networking": "Réseau",
        "launchdPower": "launchd et alimentation",
        "preferences": "Préférences"
      },
      "entries": {
        "aiClaudeNativeInstall": {
          "label": "Installer Claude Code",
          "description": "Installer Claude Code avec l'installateur natif d'Anthropic."
        },
        "aiClaudeStart": {
          "label": "Claude",
          "description": "Démarrer une session Claude Code interactive."
        },
        "aiClaudeBypass": {
          "label": "Claude sans permissions",
          "description": "Exécuter Claude Code sans invites de permission. À utiliser uniquement dans un bac à sable de confiance."
        },
        "aiClaudeBrewInstall": {
          "label": "Installer Claude Code avec Homebrew",
          "description": "Installer Claude Code via Homebrew Cask sur macOS."
        },
        "aiClaudeBrewUpgrade": {
          "label": "Mettre à jour Claude Code",
          "description": "Mettre à jour l'installation Homebrew Cask de Claude Code."
        },
        "aiCodexNpmInstall": {
          "label": "Installer Codex avec npm",
          "description": "Installer l'interface CLI OpenAI Codex globalement avec npm."
        },
        "aiCodexBrewInstall": {
          "label": "Installer Codex avec Homebrew",
          "description": "Installer l'interface CLI OpenAI Codex via Homebrew."
        },
        "aiCodexStart": {
          "label": "Codex",
          "description": "Démarrer une session interactive de l'interface CLI OpenAI Codex."
        },
        "aiCodexPrompt": {
          "label": "Codex explique le code",
          "description": "Démarrer Codex avec une invite pour expliquer le dépôt actuel."
        },
        "aiCodexMcpContext7": {
          "label": "Ajouter Context7 MCP à Codex",
          "description": "Enregistrer l'exemple de serveur Context7 MCP documenté avec la CLI Codex."
        },
        "aiCodexNpmUpgrade": {
          "label": "Mettre à jour Codex avec npm",
          "description": "Installer globalement le dernier paquet CLI d'OpenAI Codex."
        },
        "aiGeminiInstall": {
          "label": "Installer Gemini CLI",
          "description": "Installer globalement la CLI Gemini de Google avec npm."
        },
        "aiGeminiStart": {
          "label": "Gemini",
          "description": "Démarrer une session Gemini CLI interactive."
        },
        "aiQwenNpmInstall": {
          "label": "Installer Qwen Code avec npm",
          "description": "Installer le dernier agent terminal Qwen Code avec npm."
        },
        "aiQwenBrewInstall": {
          "label": "Installer Qwen Code avec Homebrew",
          "description": "Installer Qwen Code via Homebrew."
        },
        "aiQwenStart": {
          "label": "Qwen Code",
          "description": "Démarrer une session Qwen Code interactive. Configurez d'abord un fournisseur ou une clé API."
        },
        "aiAiderInstall": {
          "label": "Installer Aider",
          "description": "Installer Aider avec le programme d'installation officiel Mac/Linux."
        },
        "aiAiderMessage": {
          "label": "Édition unique avec Aider",
          "description": "Exécuter Aider avec une seule demande de modification sur un fichier cible."
        },
        "aiAiderGemini": {
          "label": "Aider avec Gemini",
          "description": "Lancer Aider en utilisant le paramètre de modèle Gemini."
        },
        "aiOpenclawInstall": {
          "label": "Installer OpenClaw",
          "description": "Exécuter le programme d'installation hébergé d'OpenClaw."
        },
        "aiOpenclawNpmInstall": {
          "label": "Installer OpenClaw avec npm",
          "description": "Installer globalement le dernier paquet OpenClaw avec npm."
        },
        "aiOpenclawOnboard": {
          "label": "Intégration OpenClaw",
          "description": "Démarrer le flux d'intégration recommandé d'OpenClaw."
        },
        "aiOpenclawDaemon": {
          "label": "Intégration du démon OpenClaw",
          "description": "Exécuter l'intégration OpenClaw et installer son démon en arrière-plan."
        },
        "aiOpenclawUpdate": {
          "label": "Mettre à jour OpenClaw",
          "description": "Mettre à jour l'installation d'OpenClaw."
        },
        "aiHermesInstall": {
          "label": "Installer Hermes Agent",
          "description": "Exécuter le programme d'installation de Hermes Agent depuis le dépôt Nous Research."
        },
        "aiHermesSourceBashrc": {
          "label": "Recharger le shell bash",
          "description": "Recharger la configuration de démarrage bash après l'installation de Hermes."
        },
        "aiHermesStart": {
          "label": "Hermes",
          "description": "Démarrer un chat interactif avec Hermes Agent."
        },
        "aiHermesSetup": {
          "label": "Configurer Hermes",
          "description": "Ouvrir le flux de configuration du fournisseur et du compte Hermes."
        },
        "aiHermesModel": {
          "label": "Modèle Hermes",
          "description": "Configurer ou inspecter le modèle Hermes actif."
        },
        "aiHermesDoctor": {
          "label": "Diagnostic Hermes",
          "description": "Exécuter les vérifications de santé de Hermes."
        },
        "aiHermesDashboard": {
          "label": "Tableau de bord Hermes",
          "description": "Ouvrir le tableau de bord Hermes local."
        },
        "aiGooseInstall": {
          "label": "Installer Goose",
          "description": "Exécuter le programme d'installation stable de la CLI Goose."
        },
        "devGitSwitch": {
          "label": "Créer une branche de fonctionnalité",
          "description": "Créer une nouvelle branche de fonctionnalité Git et basculer dessus."
        },
        "devGitPullRebase": {
          "label": "Pull avec rebase",
          "description": "Récupérer et rejouer les commits locaux sur la branche amont."
        },
        "devGitRestoreHead": {
          "label": "Restaurer l'arbre de travail",
          "description": "Restaurer les fichiers suivis depuis HEAD. Cela peut supprimer les modifications locales."
        },
        "devGitClean": {
          "label": "Nettoyer les fichiers non suivis",
          "description": "Supprimer les fichiers et dossiers non suivis de l'arbre de travail."
        },
        "devGitRevert": {
          "label": "Annuler un commit",
          "description": "Créer un commit préservant l'historique qui annule un commit sélectionné."
        },
        "devHomebrewInstall": {
          "label": "Installer Homebrew",
          "description": "Exécuter le script d'installation standard de Homebrew."
        },
        "devBrewBundleGlobal": {
          "label": "Installer le Brewfile global",
          "description": "Installer les paquets depuis le Brewfile global d'Homebrew."
        },
        "devNvmInstall": {
          "label": "Installer nvm",
          "description": "Installer nvm avec le script d'installation officiel."
        },
        "devNvmInstallNode24": {
          "label": "Installer Node 24",
          "description": "Installer Node.js 24 avec nvm."
        },
        "devNvmUseNode24": {
          "label": "Utiliser Node 24",
          "description": "Basculer le shell actuel vers Node.js 24 avec nvm."
        },
        "devBrewClaude": {
          "label": "Installer Claude Code avec Brew",
          "description": "Installer Claude Code via Homebrew Cask."
        },
        "devBrewCodex": {
          "label": "Installer Codex avec Brew",
          "description": "Installer la CLI OpenAI Codex via Homebrew."
        },
        "devBrewDocker": {
          "label": "Installer Docker Desktop avec Brew",
          "description": "Installer Docker Desktop via Homebrew Cask."
        },
        "devBrewKubectl": {
          "label": "Installer kubectl avec Brew",
          "description": "Installer kubectl via Homebrew."
        },
        "containerDockerPs": {
          "label": "Conteneurs Docker",
          "description": "Lister les conteneurs Docker en cours d'exécution."
        },
        "containerDockerLogs": {
          "label": "Suivre les logs Docker",
          "description": "Suivre les journaux d'un conteneur. Remplacez le marqueur avant d'exécuter."
        },
        "containerDockerStop": {
          "label": "Arrêter un conteneur Docker",
          "description": "Arrêter un conteneur. Remplacez le marqueur avant d'exécuter."
        },
        "containerComposeUp": {
          "label": "Démarrer Compose en arrière-plan",
          "description": "Démarrer le projet Docker Compose en arrière-plan."
        },
        "containerComposeExec": {
          "label": "Shell Compose",
          "description": "Ouvrir un shell dans le conteneur du service web."
        },
        "containerKubectlVersion": {
          "label": "Version du client kubectl",
          "description": "Afficher la version du client kubectl installé."
        },
        "containerKubectlPods": {
          "label": "Pods kubectl",
          "description": "Lister les pods dans tous les espaces de noms."
        },
        "containerKubectlLogs": {
          "label": "Suivre les logs kubectl",
          "description": "Suivre les journaux d'un pod. Remplacez le marqueur avant d'exécuter."
        },
        "containerKubectlExec": {
          "label": "Shell de pod kubectl",
          "description": "Ouvrir un shell dans un pod. Remplacez le marqueur avant d'exécuter."
        },
        "containerKubectlApply": {
          "label": "kubectl apply",
          "description": "Appliquer les ressources Kubernetes depuis k8s.yaml."
        },
        "linuxSystemctlStatusSshd": {
          "label": "État du service SSH",
          "description": "Vérifier l'état du service systemd sshd."
        },
        "linuxSystemctlRestartSshd": {
          "label": "Redémarrer le service SSH",
          "description": "Redémarrer le service systemd sshd avec sudo."
        },
        "linuxSystemctlEnableDocker": {
          "label": "Activer le service Docker",
          "description": "Activer et démarrer le service systemd Docker."
        },
        "linuxJournalctlSshd": {
          "label": "Journaux du service SSH",
          "description": "Lire les journaux pour le service sshd."
        },
        "linuxAptUpgrade": {
          "label": "Mettre à jour et améliorer APT",
          "description": "Mettre à jour les métadonnées des paquets et améliorer les paquets Debian."
        },
        "linuxAptInstallDocker": {
          "label": "Installer les paquets Docker avec APT",
          "description": "Installer Docker Engine et le plugin Compose avec apt."
        },
        "linuxDnfUpgrade": {
          "label": "Mise à niveau DNF",
          "description": "Mettre à niveau les paquets Fedora avec dnf."
        },
        "linuxDnfInstallCompose": {
          "label": "Installer le plugin Compose avec DNF",
          "description": "Installer le plugin Docker Compose avec dnf."
        },
        "macosSoftwareupdateInstallers": {
          "label": "Lister les installateurs macOS",
          "description": "Lister les programmes d'installation macOS complets disponibles."
        },
        "macosNetworksetupServices": {
          "label": "Lister les services réseau",
          "description": "Lister les services réseau macOS avec networksetup."
        },
        "macosNetworksetupManual": {
          "label": "Définir l'IP Ethernet manuelle",
          "description": "Définir une configuration IP manuelle pour Ethernet. Modifiez les valeurs avant d'exécuter."
        },
        "macosScutilSmbProtocol": {
          "label": "Modifier la carte de protocole SMB",
          "description": "Ouvrir une commande de préférences scutil avancée pour les paramètres du protocole SMB."
        },
        "macosLaunchctlUnloadNetbiosd": {
          "label": "Décharger netbiosd",
          "description": "Décharger le démon de lancement netbiosd de macOS."
        },
        "macosLaunchctlLoadNetbiosd": {
          "label": "Charger netbiosd",
          "description": "Charger le démon de lancement netbiosd de macOS."
        },
        "macosPmsetSchedule": {
          "label": "Afficher le planning d'alimentation",
          "description": "Afficher les événements d'alimentation planifiés de macOS."
        },
        "macosPmsetRepeatWake": {
          "label": "Planifier le réveil du lundi",
          "description": "Planifier un événement de réveil répétitif le lundi."
        },
        "macosPmsetRepeatCancel": {
          "label": "Annuler le planning d'alimentation répétitif",
          "description": "Annuler les événements d'alimentation répétitifs de macOS."
        },
        "macosDefaultsRead": {
          "label": "Lire le domaine des préférences",
          "description": "Lire un domaine de préférences macOS. Remplacez le marqueur avant d'exécuter."
        },
        "macosDefaultsWrite": {
          "label": "Écrire une valeur de préférences",
          "description": "Écrire une valeur de préférences macOS. Remplacez les marqueurs avant d'exécuter."
        }
      }
    },
    "sshPortForwardingTitle": "Transfert de port SSH",
    "addForward": "Ajouter un transfert",
    "sshRemoteGatewayPortsHint": "Les écouteurs distants génériques nécessitent GatewayPorts clientspecified ; GatewayPorts no les limite à l’interface de bouclage.",
    "sshPortForwardInvalid": "Saisissez un port d'écoute et une destination valides.",
    "sshPortForwardBindConflict": "{{address}}:{{port}} est déjà utilisé par un autre transfert SSH.",
    "sshPortForwardSessionUnavailable": "Ouvrez cette boîte de dialogue depuis un volet SSH natif connecté et réessayez.",
    "sshPortForwardStartupFailed": "La connexion SSH est établie, mais un ou plusieurs transferts de port enregistrés n’ont pas pu démarrer : {{message}}",
    "sshPortForwardSomeFailed": "Certains transferts de port n'ont pas pu démarrer.",
    "sshPortForwardFailed": "Échec de démarrage",
    "thisPc": "Ce PC",
    "internet": "Internet",
    "anyHost": "n'importe quel hôte",
    "runningForwards": "En cours",
    "noSshForwards": "Aucun transfert {{mode}} en cours pour le moment.",
    "opening": "ouverture",
    "active": "actif",
    "enableForwarding": "Activer le transfert",
    "disabled": "désactivé",
    "remoteListener": "Écouteur distant",
    "localListener": "Écouteur local",
    "onServer": "sur le serveur",
    "onThisPc": "sur ce PC",
    "bindAddress": "Adresse d'écoute",
    "socksPort": "Port SOCKS",
    "listenPort": "Port d'écoute",
    "forwardTo": "Transférer vers",
    "destination": "Destination",
    "reachableFromServer": "accessible depuis le serveur",
    "host": "Hôte",
    "port": "Port",
    "sshForwardModeLocal": "Local",
    "sshForwardModeLocalTagline": "Ramener un service distant vers ce PC",
    "sshForwardModeRemote": "Distant",
    "sshForwardModeRemoteTagline": "Exposer un service de ce PC au serveur",
    "sshForwardModeDynamic": "Dynamique",
    "sshForwardModeDynamicTagline": "Acheminer le trafic via le serveur (SOCKS)",
    "sshForwardListening": "En écoute",
    "colorScheme": "Jeu de couleurs",
    "colorSchemeGlobalDefault": "Utiliser la valeur globale",
    "colorSchemeSaveFailed": "Échec de l'enregistrement du jeu de couleurs : {{message}}",
    "quickSelect": "Sélection rapide",
    "quickSelectHint": "Cliquez ou saisissez une étiquette pour copier. Ctrl-clic ou Maj-clic sur une URL pour l’ouvrir. Échap pour annuler.",
    "quickSelectNoMatches": "Aucun texte copiable n'est visible à l'écran.",
    "quickSelectCopied": "{{text}} copié",
    "notification": "Notification de {{name}} : {{message}}",
    "notificationWithTitle": "Notification de {{name}} : {{title}} — {{message}}"
  },
  "sftp": {
    "connecting": "Connexion",
    "verifyingHost": "Vérification de l'hôte",
    "connected": "Connecté",
    "refreshing": "Actualisation",
    "openingFolder": "Ouverture du dossier",
    "tauriUnavailable": "Environnement Tauri indisponible",
    "loadingLocal": "Chargement des fichiers locaux",
    "noSshConnection": "Aucune connexion SSH sélectionnée",
    "upload": "Téléverser",
    "download": "Télécharger",
    "local": "Local",
    "remote": "Distant",
    "noFiles": "Aucun fichier",
    "loading": "Chargement...",
    "clear": "Effacer",
    "noTransfers": "Aucun transfert pour le moment",
    "copyPath": "Copier le chemin",
    "getInfo": "Obtenir les infos",
    "protocolSftp": "SFTP",
    "protocolFtp": "FTP",
    "protocolFtpsExplicit": "FTPS",
    "protocolFtpsImplicit": "Implicit FTPS",
    "protocolSelectorAria": "Protocole de transfert de fichiers",
    "plainFtpWarning": "FTP en clair",
    "plainFtpWarningTitle": "Le FTP en clair n’est pas chiffré.",
    "ftpConnectionErrorTitle": "Échec de la connexion FTP",
    "plainFtpFallbackWarningTitle": "FTPS a échoué, ce navigateur de fichiers utilise donc du FTP non chiffré.",
    "openingProtocol": "Ouverture de {{protocol}}",
    "ftpsFallbackStatus": "FTPS a échoué. Essai de FTP en clair.",
    "passwordDialogTitle": "Saisir le mot de passe du navigateur de fichiers",
    "passwordDialogBody": "Saisissez le mot de passe de {{user}}@{{host}} pour ouvrir ce navigateur de fichiers.",
    "passwordDialogPlaceholder": "Mot de passe",
    "passwordDialogSubmit": "Connecter",
    "passwordRequired": "Saisissez un mot de passe pour vous connecter.",
    "passwordPromptCanceled": "La saisie du mot de passe a été annulée.",
    "notConnected": "Non connecté",
    "editPathTitle": "Double-cliquez pour modifier le chemin",
    "viewMode": "Mode d’affichage",
    "listView": "Vue liste",
    "galleryView": "Vue galerie",
    "searchPlaceholder": "Rechercher",
    "searchAria": "Rechercher des fichiers dans ce dossier",
    "searchClear": "Effacer la recherche",
    "searchNoResults": "Aucune correspondance pour \"{{query}}\"",
    "viewOptions": "Options d’affichage",
    "zoom": "Zoom",
    "zoomAria": "Ajuster la taille des éléments",
    "background": "Arrière-plan…",
    "backgroundDefaultHint": "Utilise l’arrière-plan par défaut pour cette vue.",
    "sidebar": {
      "title": "Barre latérale",
      "show": "Afficher la barre latérale",
      "hide": "Masquer la barre latérale",
      "favorites": "Favoris",
      "commonFolders": "Courants",
      "locations": "Emplacements",
      "noFavorites": "Aucun favori pour l’instant ; faites glisser un fichier ou un dossier ici, ou survolez un dossier ci-dessous et appuyez sur +.",
      "loadingPlaces": "Chargement des emplacements…",
      "addFavorite": "Ajouter aux favoris",
      "removeFavorite": "Retirer des favoris",
      "inFavorites": "Dans les favoris",
      "driveFree": "{{free}} libres sur {{total}}"
    },
    "itemsCount": "{{count}} éléments",
    "foldersCount": "{{count}} dossiers",
    "availableSpace": "{{size}} disponibles",
    "transferringStatus": "{{count}} en cours de transfert · {{percent}}%",
    "transfersIdleStatus": "{{count}} terminés · inactif",
    "transferHint": "Faites glisser les fichiers entre les volets ou utilisez les flèches de transfert pour démarrer un transfert.",
    "transferState": {
      "queued": "En file d’attente",
      "active": "Actif",
      "done": "Terminé",
      "failed": "Échec",
      "canceled": "Annulé"
    },
    "canceled": "annulé",
    "waiting": "En attente",
    "preparing": "Préparation",
    "canceling": "Annulation",
    "canceledBeforeStart": "Annulé avant le début",
    "skippedExisting": "Cible existante ignorée",
    "transferCanceled": "Transfert annulé",
    "cancelTransfer": "Annuler",
    "newRemoteFolder": "Nom du nouveau dossier distant",
    "folderNameBlank": "Le nom du dossier distant ne peut pas être vide",
    "remoteNameBlank": "Le nom distant ne peut pas être vide",
    "renaming": "Renommage",
    "deleting": "Suppression",
    "creatingFolder": "Création du dossier",
    "deleteRemoteConfirm": "Supprimer l'élément distant",
    "folder": "Dossier",
    "symlink": "Lien symbolique",
    "file": "Fichier",
    "openParent": "Ouvrir le dossier parent",
    "createFolder": "Créer un dossier",
    "deleteSelected": "Supprimer l'élément sélectionné",
    "refreshFiles": "Actualiser les fichiers",
    "name": "Nom",
    "date": "Date",
    "doubleClickToOpen": "Double-cliquer pour ouvrir",
    "renameItem": "Renommer",
    "transfer": "Transfert",
    "deleteLabel": "Supprimer",
    "sftpProperties": "Propriétés SFTP",
    "type": "Type",
    "size": "Taille",
    "modified": "Modifié",
    "accessed": "Accédé",
    "owner": "Propriétaire",
    "group": "Groupe",
    "mode": "Mode",
    "chmod": "chmod",
    "chownUid": "chown uid",
    "chownGid": "chown gid",
    "save": "Enregistrer",
    "modeHint": "Le mode doit être en octal, par exemple 755 ou 0644",
    "folderExists": "Le dossier existe",
    "fileExists": "Le fichier existe",
    "uploadConflict": "Conflit de téléversement",
    "downloadConflict": "Conflit de téléchargement",
    "targetExists": "La cible existe déjà",
    "moreConflicts": "d'autres conflits peuvent suivre.",
    "skip": "Ignorer",
    "overwrite": "Écraser",
    "overwriteAll": "Tout écraser",
    "sessionUnavailable": "Session SFTP indisponible",
    "waitingToOverwrite": "En attente d'écrasement",
    "localFiles": "Fichiers locaux",
    "doubleClickToOpenFile": "Double-cliquer pour ouvrir {{name}}",
    "openParentFolderAria": "Ouvrir le dossier parent {{pane}}",
    "openTerminalHereAria": "Ouvrir le terminal dans le dossier {{pane}}",
    "createFolderAria": "Créer un dossier {{pane}}",
    "refreshFilesAria": "Actualiser les fichiers {{pane}}",
    "transferConflict": "Conflit de transfert",
    "moreConflictsDetail": "{{count}} conflit(s) sélectionné(s) supplémentaire(s) peuvent suivre.",
    "cancelTransferName": "Annuler {{name}}",
    "ownerMustBeNumber": "Le propriétaire doit être un nombre non négatif",
    "groupMustBeNumber": "Le groupe doit être un nombre non négatif",
    "deleteRemoteItemConfirm": "Supprimer le {{kind}} distant « {{name}} » ?",
    "deleteRemoteItemsMultiple": "Supprimer {{count}} éléments distants ?",
    "renameFileAria": "Renommer {{name}}",
    "fileTypeLabel": "Fichier {{ext}}",
    "targetExistsDetail": "Le {{kind}} cible existe déjà. Choisissez d'écraser {{name}}.",
    "windowsDrives": "Ce PC",
    "pathInputAria": "Saisir le chemin {{pane}}",
    "recentPathsAria": "Ouvrir les chemins {{pane}} récents"
  },
  "webview": {
    "goBack": "Retour",
    "back": "Précédent",
    "goForward": "Avancer",
    "forward": "Suivant",
    "reload": "Recharger",
    "autoRefresh": "Actualisation automatique",
    "autoRefreshOff": "Pas d'actualisation automatique",
    "autoRefreshSeconds": "{{count}} secondes",
    "address": "Adresse",
    "urlPlaceholder": "https://exemple.com",
    "fill": "Remplir auto.",
    "fillCredential": "Remplir l'identifiant enregistré",
    "noSavedCredential": "Aucune donnée de formulaire enregistrée",
    "fillingCredential": "Restauration des données du formulaire",
    "credentialFilled": "Données du formulaire restaurées",
    "downloadStarted": "Téléchargement démarré",
    "downloadComplete": "Téléchargement terminé",
    "downloadFailed": "Échec du téléchargement",
    "invalidCertificateWarning": "Ce site ne peut pas être ouvert, car son certificat HTTPS n’est pas valide. Désactivez la validation des certificats dans Paramètres → URL pour continuer.",
    "noUrlConfigured": "Cette connexion URL n'a pas d'URL configurée.",
    "openExternally": "Ouvrir en externe",
    "savePassword": "Enregistrer les données du formulaire",
    "savePasswordTitle": "Enregistrer tout ce qui est saisi dans cette page afin de le restaurer plus tard",
    "fillSavedCredential": "Restaurer les données de formulaire enregistrées",
    "screenshotTarget": "Vue URL {{title}}",
    "desktopRuntimeOnly": "Le navigateur intégré n'est disponible que dans le runtime desktop. Ouvrir en externe :",
    "capturingPassword": "Collecte des champs saisis",
    "savingPassword": "Enregistrement des données du formulaire",
    "passwordSaved": "Données du formulaire enregistrées",
    "savePasswordInvalidCapture": "La page a renvoyé une réponse de capture de formulaire non valide.",
    "savePasswordNoPasswordField": "Aucun champ remplissable avec des valeurs n’a été trouvé sur cette page.",
    "savePasswordFailed": "Impossible d’enregistrer les données du formulaire de cette page."
  },
  "compare": {
    "title": "Comparer les fichiers",
    "selectLeft": "Sélectionner le côté gauche pour comparer",
    "compareTo": "Comparer à « {{name}} »",
    "leftSelected": "« {{name}} » sélectionné comme côté gauche pour la comparaison.",
    "versus": "vs",
    "loading": "Chargement de la comparaison…",
    "modeLabel": "Mode de comparaison",
    "mode": {
      "text": "Texte",
      "image": "Image",
      "hex": "Hex"
    },
    "imageLeft": "Gauche",
    "imageRight": "Droite",
    "heatmap": "Carte de chaleur des différences",
    "tolerance": "Tolérance",
    "differingPixels": "{{percent}} % différents",
    "hexTruncated": "Affiche la première partie de chaque fichier ; le reste a été tronqué.",
    "hexOffset": "Décalage",
    "mismatch": "Sélectionnez deux fichiers ou deux dossiers à comparer.",
    "folderTitle": "Comparaison de dossiers",
    "folderRemoteUnsupported": "La comparaison de dossiers n'est disponible que pour les dossiers locaux.",
    "folderDesktopOnly": "La comparaison de dossiers n'est disponible que dans l'application de bureau.",
    "folderScanning": "Analyse des dossiers…",
    "folderNoEntries": "Aucun élément à afficher",
    "folderFilter": "Filtre de comparaison de dossiers",
    "folderSummary": "Résumé de la comparaison",
    "folderCopyToRight": "Copier vers la droite",
    "folderCopyToLeft": "Copier vers la gauche",
    "folderDelete": "Supprimer",
    "folderRefresh": "Réanalyser",
    "folderExpand": "Développer",
    "folderCollapse": "Réduire",
    "folderCopied": "{{name}} copié",
    "folderDeleted": "{{name}} supprimé",
    "folderDeleteConfirm": "Supprimer « {{name}} » de {{side}} ?",
    "folderCountDifferent": "{{count}} différents",
    "folderCountLeftOnly": "{{count}} à gauche uniquement",
    "folderCountRightOnly": "{{count}} à droite uniquement",
    "folderCountSame": "{{count}} identiques",
    "folderTruncated": "Cette arborescence est très volumineuse — affichage des {{count}} premières entrées."
  },
  "git": {
    "title": "Git — {{repo}}",
    "openBrowser": "Ouvrir le Navigateur Git",
    "loading": "Chargement du dépôt…",
    "loadFailed": "Impossible de charger ce dépôt.",
    "columnCommit": "Commit",
    "columnAuthor": "Auteur",
    "columnSha": "SHA",
    "columnWhen": "Quand",
    "workingTree": "Arbre de travail",
    "uncommittedChanges": "Modifications non validées",
    "now": "maintenant",
    "fetch": "Récupérer",
    "pull": "Tirer",
    "push": "Pousser",
    "branch": "Branche",
    "merge": "Fusionner",
    "stash": "Stash",
    "history": "Historique",
    "commit": "Commit",
    "searchCommits": "Rechercher des commits…",
    "local": "Local",
    "remotes": "Distants",
    "tags": "Étiquettes",
    "showMoreTags": "… {{count}} de plus",
    "showFewerTags": "Afficher moins",
    "stashes": "Stashes",
    "stashApply": "Appliquer le stash",
    "stashPop": "Pop le stash",
    "stashDrop": "Supprimer le stash",
    "committed": "validé",
    "commitLabel": "commit",
    "parentLabel": "parent",
    "mergeLabel": "fusion",
    "copySha": "Copier le SHA",
    "copyMessage": "Copier le message",
    "copied": "Copié dans le presse-papiers",
    "changedFiles": "Fichiers modifiés",
    "selectFileForDiff": "Sélectionner un fichier pour voir son diff",
    "loadingDiff": "Chargement du diff…",
    "noDiff": "Aucune modification à afficher",
    "filteredLines": "{{count}} lignes filtrées — cliquez pour développer",
    "collapseLines": "{{count}} lignes — cliquez pour réduire",
    "advancedDiffTitle": "Comparer — {{file}}",
    "searchDiff": "Rechercher dans le diff…",
    "previousDifference": "Différence précédente",
    "nextDifference": "Différence suivante",
    "wordWrap": "Retour à la ligne",
    "diffOriginal": "Original",
    "diffModified": "Modifié",
    "diffDisplayMode": "Mode d'affichage",
    "diffMode": {
      "all": "Tout",
      "diff": "Différences",
      "same": "Identique"
    },
    "diffNavigationMap": "Carte des différences",
    "jumpToDifference": "Aller à la différence {{number}}",
    "staged": "Indexé",
    "changes": "Modifications",
    "stageAll": "Tout indexer",
    "unstageAll": "Tout désindexer",
    "nothingStaged": "Rien d'indexé",
    "noChanges": "Aucune modification",
    "commitMessagePlaceholder": "Message de commit",
    "amend": "Modifier",
    "commitFiles_one": "Faire un commit de {{count}} fichier",
    "commitFiles_other": "Faire un commit de {{count}} fichiers",
    "stagedUnstagedCount": "{{staged}} indexé · {{unstaged}} non indexé",
    "fetchDone": "Récupéré depuis les distants",
    "pullDone": "Modifications tirées",
    "pushConfirmTitle": "Pousser vers le distant ?",
    "pushConfirmBody": "Pousser les commits de {{branch}} vers son distant en amont.",
    "pushDone": "Poussé vers le distant",
    "newBranchTitle": "Nouvelle branche",
    "branchName": "Nom de la branche",
    "createBranch": "Créer une branche",
    "branchCreated": "Branche {{name}} créée",
    "mergeTitle": "Fusionner",
    "mergeRef": "Branche ou commit à fusionner",
    "mergeRefPlaceholder": "ex. feature/login",
    "mergeDone": "{{ref}} fusionné",
    "stashed": "Stash enregistré",
    "stagedNotice": "Fichier indexé",
    "unstagedNotice": "Fichier non indexé",
    "stagedAllNotice": "Toutes les modifications indexées",
    "unstagedAllNotice": "Toutes les modifications désindexées",
    "committedDone": "Modifications validées",
    "checkoutCommit": "Extraire le commit",
    "checkoutConfirmTitle": "Extraire le commit ?",
    "checkoutConfirmBody": "Extraire {{sha}} détachera HEAD de votre branche.",
    "checkout": "Extraire",
    "checkedOut": "Extrait",
    "createBranchHere": "Créer une branche ici",
    "createTag": "Créer une étiquette…",
    "newTagTitle": "Nouvelle étiquette",
    "tagName": "Nom de l'étiquette",
    "tagCreated": "Étiquette {{name}} créée",
    "cherryPick": "Cherry-pick",
    "cherryPickConfirmTitle": "Cherry-pick du commit ?",
    "cherryPickConfirmBody": "Appliquer les modifications de {{sha}} sur la branche actuelle.",
    "cherryPicked": "Commit cherry-piqué",
    "revertCommit": "Rétablir le commit",
    "revertConfirmTitle": "Rétablir le commit ?",
    "revertConfirmBody": "Créer un nouveau commit qui annule {{sha}}.",
    "revert": "Rétablir",
    "reverted": "Commit rétabli",
    "stashApplied": "Stash appliqué",
    "stashPopped": "Stash dépilé",
    "stashDropped": "Stash supprimé",
    "sync": "Sync",
    "syncConfirmTitle": "Synchroniser avec le distant ?",
    "syncConfirmBody": "Tirer (rebase) puis pousser les commits de {{branch}}.",
    "syncDone": "Synchronisé avec le distant",
    "defaultBranch": "défaut",
    "switchRefConfirmTitle": "Changer ?",
    "switchRefConfirmBody": "Extraire {{ref}} dans cet arbre de travail.",
    "trackRemoteConfirmBody": "Créer une branche locale {{branch}} qui suit {{ref}} et l'extraire.",
    "renameBranch": "Renommer la branche…",
    "renameBranchTitle": "Renommer la branche",
    "rename": "Renommer",
    "branchRenamed": "Branche renommée en {{name}}",
    "deleteBranch": "Supprimer la branche",
    "deleteBranchConfirmTitle": "Supprimer la branche ?",
    "deleteBranchConfirmBody": "Supprimer la branche locale {{name}}.",
    "delete": "Supprimer",
    "branchDeleted": "Branche {{name}} supprimée",
    "discard": "Abandonner les modifications",
    "discardAll": "Tout abandonner",
    "discardConfirmTitle": "Abandonner les modifications ?",
    "discardConfirmBody": "Abandonner les modifications de l'arbre de travail pour {{path}}. Cette action est irréversible.",
    "discardAllConfirmBody": "Abandonner les modifications de l'arbre de travail pour {{count}} fichiers. Cette action est irréversible.",
    "discardedNotice": "Modifications abandonnées",
    "reset": "Réinitialiser",
    "resetSoft": "Réinitialiser (soft) ici",
    "resetMixed": "Réinitialiser (mixed) ici",
    "resetHard": "Réinitialiser (hard) ici",
    "resetConfirmTitle": "Réinitialiser la branche ?",
    "resetSoftConfirmBody": "Déplacer la branche actuelle vers {{sha}}, en gardant toutes les modifications indexées.",
    "resetMixedConfirmBody": "Déplacer la branche actuelle vers {{sha}}, en gardant les modifications dans l'arbre de travail.",
    "resetHardConfirmBody": "Déplacer la branche actuelle vers {{sha}} et abandonner toutes les modifications. Cette action est irréversible.",
    "resetDone": "Branche réinitialisée",
    "worktrees": "Arbres de travail",
    "addWorktree": "Ajouter un arbre de travail…",
    "addWorktreeTitle": "Ajouter un arbre de travail",
    "worktreePath": "Chemin de l'arbre de travail",
    "worktreePathPlaceholder": "ex. ../my-feature-worktree",
    "worktreeAdded": "Arbre de travail ajouté",
    "removeWorktree": "Supprimer l'arbre de travail",
    "removeWorktreeConfirmTitle": "Supprimer l'arbre de travail ?",
    "removeWorktreeConfirmBody": "Supprimer l'arbre de travail à {{path}}.",
    "worktreeRemoved": "Arbre de travail supprimé",
    "remove": "Supprimer",
    "switchWorktree": "Changer d'arbre de travail",
    "switchWorktreeConfirmTitle": "Changer d'arbre de travail ?",
    "switchWorktreeConfirmBody": "Pointer le Navigateur Git sur l'arbre de travail {{path}}.",
    "resizeWindow": "Redimensionner la fenêtre",
    "resizeSidebar": "Redimensionner la barre latérale",
    "resizeDetail": "Redimensionner le panneau de détail",
    "resizeWorktree": "Redimensionner le panneau de l'arbre de travail",
    "resizeColumn": "Redimensionner la colonne {{column}}",
    "gitNeededTitle": "Git n'est pas installé",
    "gitNeededBody": "Le Navigateur Git nécessite l'outil en ligne de commande git. Installez-le pour continuer.",
    "installGit": "Installer Git",
    "installing": "Installation…",
    "recheck": "Revérifier"
  },
  "remoteDesktop": {
    "typeLabel": "Bureau à distance",
    "sendCtrlAltDel": "Envoyer Ctrl+Alt+Suppr",
    "sendCtrlAltDelHint": "Appuyez sur CTRL+ALT+END pour envoyer CTRL+ALT+DEL",
    "reconnect": "Reconnecter",
    "reconnecting": "Reconnexion",
    "connecting": "Connexion",
    "connected": "Connecté",
    "preparingDisplay": "Préparation de l'affichage",
    "disconnected": "Déconnecté",
    "waitingFramebuffer": "Connecté, en attente du tampon d'image",
    "rdpDesktopRequired": "RDP utilise l'environnement de bureau Windows.",
    "vncDesktopRequired": "VNC utilise l'environnement de bureau.",
    "rdpActiveX": "L'hôte Microsoft RDP ActiveX est en cours d'exécution dans cet espace de travail.",
    "rdpErrorStatus": "Erreur RDP : {{message}}",
    "vncFramebuffer": "Le tampon d'image VNC est en cours d'exécution dans cet espace de travail.",
    "transportUnavailable": "Transport de bureau à distance indisponible.",
    "session": "session",
    "displayAria": "Affichage VNC",
    "viewModeButton": "Mode d’affichage : {{mode}}",
    "viewModeSaved": "Mode d’affichage enregistré : {{mode}}"
  },
  "ai": {
    "title": "Assistant IA",
    "refresh": "Actualiser l'assistant IA",
    "settings": "Paramètres de l'assistant IA",
    "newChat": "Nouvelle discussion",
    "collapsePanel": "Réduire le panneau Assistant IA",
    "noActiveSession": "Aucune session active",
    "workspace": "Espace de travail",
    "settingsContextLabel": "Page des paramètres actuelle",
    "skillInvoked": "Skill utilisé : {{skills}}",
    "extensionDraft": "Brouillon d'extension",
    "extensionReviewOnly": "Révision uniquement ; aucune installation ou exécution sans approbation explicite.",
    "dashboardToolsDisabledTitle": "Les outils du tableau de bord sont désactivés",
    "dashboardToolsDisabledHint": "Activez Paramètres > Assistant IA > Outils de l'assistant > Tableau de bord avant que l'Assistant puisse créer ou modifier des widgets.",
    "tutorialInvalidRequest": "Les demandes de tutoriel nécessitent une cible, un titre et un texte d’aide.",
    "tutorialTargetNotFound": "Cette cible du tutoriel n’est pas visible pour le moment.",
    "tutorialSurfaceNotOpen": "Cette commande se trouve dans un onglet qui n’est pas ouvert pour le moment.",
    "chats": "Discussions",
    "viewAll": "Tout voir",
    "noChatsYet": "Aucune discussion pour le moment.",
    "noMessages": "Aucun message",
    "saved": "enregistré",
    "close": "Fermer",
    "closeChatHistory": "Fermer l'historique des discussions",
    "allChats": "Toutes les discussions",
    "deleteChat": "Supprimer la discussion {{title}}",
    "clearContext": "Effacer le contexte sélectionné",
    "addContext": "Ajouter un contexte",
    "contextUsage": "Utilisation du contexte",
    "contextUsageUnavailable": "L'utilisation du contexte apparaîtra après la prochaine requête.",
    "contextUsageModel": "Modèle",
    "contextUsageEstimate": "Estimation",
    "contextUsageTokens": "{{used}} / {{limit}} tokens",
    "contextUsageHistory": "Caractères d'historique",
    "contextUsageCurrent": "Caractères actuels",
    "contextUsageMessages": "Messages",
    "contextUsageMessageCounts": "{{retained}} conservés, {{omitted}} omis",
    "contextUsageApproximate": "Estimé avec une approximation de tokens indépendante du fournisseur.",
    "contextUsageExact": "Estimé depuis la fenêtre de contexte connue du modèle.",
    "addFiles": "Ajouter des fichiers/photos",
    "addScreenshot": "Ajouter une capture d'écran",
    "addTerminalBuffer": "Ajouter le tampon du terminal",
    "createWidget": "Créer un widget",
    "watchdog": "Chien de garde",
    "selectedIntent": "Intention de l'assistant sélectionnée",
    "queuedPrompts": "Prompts en file",
    "queuedPromptIndex": "Suivant {{index}}",
    "deleteQueuedPrompt": "Supprimer le prompt en file : {{prompt}}",
    "clearIntent": "Effacer {{intent}}",
    "extensions": "Extensions",
    "draftExtension": "Brouillon d'extension",
    "pastedImageSource": "Image collée",
    "pastedImageSourceWithNumber": "Image collée {{number}}",
    "pastedImages": "Images collées ({{count}})",
    "attachedFiles": "Fichiers joints ({{count}})",
    "removeImageAttachment": "Retirer {{label}}",
    "removeFileAttachment": "Supprimer {{label}}",
    "openImagePreview": "Ouvrir l'aperçu {{label}}",
    "imagePreviewTitle": "Aperçu {{label}}",
    "fileTooLarge": "{{name}} dépasse 10 Mo.",
    "imageInputNotSupported": "Ce modèle ne prend pas en charge l'entrée d'image ; les captures d'écran collées ne seront pas envoyées.",
    "composerPlaceholder": "Demandez ce que vous voulez à l'assistant IA.",
    "createWidgetPlaceholder": "Décrivez le widget à créer.",
    "watchdogPlaceholder": "Décrivez ce qu'il faut surveiller.",
    "createWidgetExamples": [
      "Horloge ronde",
      "Mini-moniteur CPU & RAM",
      "Liste de connexions SSH rapides",
      "Barre mémoire & swap",
      "Utilisation disque par partition",
      "Temps de fonctionnement système",
      "Graphique réseau entrée/sortie",
      "Moniteur de latence ping",
      "Liste de conteneurs Docker",
      "Branche & statut Git",
      "Liste de services systemd",
      "Visionneuse de queue de log",
      "Widget météo",
      "Expiration certificat SSL",
      "Vérification santé endpoint HTTP",
      "Prochain lancement cron",
      "Affichage métrique shell personnalisé",
      "Badges statut API",
      "Horloge mondiale (multi-fuseaux)",
      "Top processus par CPU",
      "Compteur d'échecs de connexion",
      "Mises à jour de paquets en attente",
      "Minuterie décompte",
      "Chronomètre",
      "Info noyau & OS",
      "Jeu Snake",
      "Tetris",
      "Casse-briques",
      "2048",
      "Démineur",
      "Pong",
      "Clone de Flappy Bird",
      "Clone de Space Invaders",
      "Clone de Wordle",
      "Simon Says",
      "Jeu de la vie de Conway",
      "Balles physiques rebondissantes",
      "Animation pluie Matrix",
      "Cube 3D rotatif",
      "Feux d'artifice",
      "Canevas pixel art",
      "Clicker de cookies passif",
      "Test de temps de réaction",
      "Boule magique 8",
      "Lancer de dés",
      "Blague nulle du jour",
      "C'est vendredi aujourd'hui ?",
      "Fidget spinner",
      "Animation lampe à lave",
      "Fait aléatoire sur les chats"
    ],
    "watchdogExamples": [
      "alerter si le CPU dépasse 90 % pendant 5 min",
      "alerter lorsque la RAM dépasse 80 %",
      "alerter lorsque l'utilisation du disque dépasse 85 %",
      "alerter si l'espace disque libre descend sous 10 %",
      "alerter lorsque la mémoire engagée dépasse 90 %",
      "alerter si le nombre de processus dépasse brusquement 800",
      "alerter lorsque le nombre de handles dépasse 50000",
      "alerter si la RAM de KKTerm dépasse 1 Go",
      "alerter lorsque le trafic réseau montant dépasse 50 Mo/s",
      "préviens-moi quand le CPU redescend sous 50 %",
      "ping my-server.example.com - alerter s'il devient hors ligne",
      "surveiller 192.168.1.10 et notifier s'il ne répond plus",
      "alerter si SSH sur my-host n'accepte plus les connexions",
      "alerter si le port 443 sur api.example.com se ferme",
      "alerter si le port 5432 de ma base de données n'écoute plus",
      "surveiller le port 8080 - me dire quand il redevient disponible",
      "surveiller ma session CLI Codex - la relancer si elle reste silencieuse 60 secondes",
      "surveiller cette session SSH pendant 2 minutes de silence puis me notifier",
      "surveiller mon build long - alerter si la sortie s'arrête pendant 5 min",
      "si Codex reste bloqué sur une invite, envoie /continue automatiquement"
    ],
    "toolPermissionMode": "Permissions des outils",
    "toolPermissionPrompt": "Demander",
    "toolPermissionAllowAll": "Tout autoriser",
    "toolApprovalTitle": "Approuver l'appel d'outil ?",
    "toolApprovalTool": "Outil {{tool}}",
    "toolApprovalBody": "Cette action peut modifier KKTerm ou la machine locale.",
    "toolApprovalDetails": "Détails de la requête",
    "toolApprovalRiskTitle": "Signalé comme risqué",
    "watchdogApproval": {
      "lede": "Créer un watchdog \"{{name}}\" avec intervention IA ?",
      "target": "Cible",
      "trigger": "Déclencheur",
      "poll": "Intervalle d'interrogation",
      "stop": "Arrêter quand",
      "goal": "Objectif d'intervention",
      "allowedTools": "Outils autorisés ({{count}})",
      "allowedToolsCaveat": "L'IA peut appeler n'importe lequel de ces outils sans autres invites pendant la durée de vie de ce watchdog. Les autres outils sont refusés à l'exécution.",
      "caps": "Limite stricte : {{max}} interventions max · {{suppression}} s de délai entre les actions"
    },
    "toolApprovalWaiting": "En attente de votre réponse.",
    "toolApprovalSelectAction": "Sélectionner une action",
    "toolApprovalAllow": "Autoriser",
    "toolApprovalAllowSession": "Autoriser pour cette session",
    "toolApprovalDeny": "Refuser",
    "toolApprovalApproved": "Autorisé. Reprise…",
    "toolApprovalAllowedSession": "Autorisé pour cette session. Reprise…",
    "toolApprovalDenied": "Refusé.",
    "toolApprovalCancelled": "Annulé. Reprise…",
    "sendMessage": "Envoyer le message",
    "stopMessage": "Arrêter la réponse",
    "copy": "Copier",
    "send": "Envoyer",
    "code": "code",
    "copyMessage": "Copier le message",
    "directAttachmentPrompt": "Aidez-moi avec ceci. Expliquez ce que vous voyez et, si cela ressemble à une erreur, un avertissement ou un problème, faites de votre mieux pour expliquer comment le corriger.",
    "sendToTerminal": "Envoyer au terminal actif",
    "extensionReviewTooltip": "Les brouillons d'extension sont en révision uniquement",
    "showLess": "Afficher moins",
    "more": "Plus",
    "errorPrefix": "Erreur de l'assistant IA",
    "providerError": "Erreur de configuration du fournisseur IA",
    "copilotConnectRequired": "Connectez GitHub Copilot dans les Paramètres avant que l'assistant IA ne puisse dialoguer.",
    "chargingBeacon": "Chargement de la balise de réponse",
    "preparingResponse": "Préparation de la réponse...",
    "extensionDraftPrompt": "Créer un brouillon d'extension KKTerm pour : ",
    "providerEndpointRequired": "Le point de terminaison du fournisseur est requis.",
    "modelRequired": "Le modèle est requis.",
    "apiKeyRequired": "{{provider}} a besoin d'une clé API avant que l'Assistant IA puisse discuter.",
    "secretCardAiProviderMessage": "{{provider}} a besoin d'une clé API avant que l'Assistant IA puisse discuter.",
    "secretCardAiProviderDescription": "Enregistrée comme clé du fournisseur d'IA pour {{provider}}.",
    "secretCardDefaultDescription": "Enregistré directement dans {{backend}}.",
    "secretCardStorageBackendOs": "le trousseau du système d'exploitation",
    "secretCardStorageBackendFile": "la base de données chiffrée",
    "secretCardPrivacy": "Saisissez-le ici ; il sera enregistré localement et ne sera pas envoyé au modèle d'IA.",
    "secretCardInputLabel": "Secret",
    "secretCardPlaceholder": "Coller le secret",
    "secretCardShow": "Afficher le secret",
    "secretCardHide": "Masquer le secret",
    "secretCardSave": "Enregistrer dans le coffre",
    "secretCardSaved": "Enregistré",
    "secretCardStoredInline": "Stocké dans {{backend}}",
    "secretCardStoredStatus": "{{label}} enregistré dans {{backend}}.",
    "secretCardStoredMessage": "{{label}} est enregistré. Vous pouvez continuer.",
    "secretCardRuntimeRequired": "Le stockage des secrets nécessite l'environnement de bureau KKTerm.",
    "secretCardInvalidWidgetRequest": "La demande de secret du widget n'est pas valide.",
    "secretCardMissingWidget": "L'instance du widget est introuvable.",
    "newAiChat": "Nouvelle discussion avec l'assistant IA",
    "addedToPane": "Ajouté au volet",
    "thinking": "Réflexion…",
    "thoughtFor": "A réfléchi pendant",
    "workedFor": "A travaillé pendant {{duration}}",
    "thinkingStep": "Réflexion",
    "workPlanTitle": "Plan de travail",
    "toolCallRunning": "En cours",
    "toolCallUsing": "Utilisation de l'outil {{tool}}...",
    "toolCallComplete": "Terminé",
    "workDurationUnderSecond": "<1s",
    "workDurationSeconds": "{{count}}s",
    "workDurationMinutesSeconds": "{{minutes}}m {{seconds}}s",
    "toolWebSearch": "Recherche sur le web…",
    "toolWebFetch": "Récupération de la page web…",
    "toolShellCommand": "Exécution de la commande…",
    "toolFileSearch": "Recherche de fichiers…",
    "toolFileRead": "Lecture du fichier…",
    "toolCurrentTime": "Vérification de l'heure…",
    "toolPerformanceCounters": "Lecture des compteurs de performance…",
    "toolEmail": "Envoi d’un e-mail…",
    "toolSecretRequest": "Demande d’entrée secrète…",
    "toolDashboard": "Mise à jour du tableau de bord…",
    "toolConnections": "Gestion des connexions…",
    "toolSessions": "Travail avec les sessions…",
    "toolTutorial": "Affichage de l’aide du tutoriel...",
    "toolWebSearchDone": "A cherché sur le web",
    "toolWebFetchDone": "A récupéré la page web",
    "toolShellCommandDone": "A exécuté la commande",
    "toolFileSearchDone": "A cherché des fichiers",
    "toolFileReadDone": "A lu le fichier",
    "toolCurrentTimeDone": "A vérifié l'heure",
    "toolPerformanceCountersDone": "Compteurs de performance lus",
    "toolEmailDone": "E-mail envoyé",
    "toolSecretRequestDone": "Entrée secrète demandée",
    "toolDashboardDone": "Tableau de bord mis à jour",
    "toolConnectionsDone": "Connexions gérées",
    "toolSessionsDone": "A travaillé avec les sessions",
    "toolTutorialDone": "Aide du tutoriel affichée",
    "waitingPhrases": [
      "Réparation du canon à phaser",
      "Ouverture de l'écoutille",
      "Chargement du moteur de saut",
      "Alignement de la carte stellaire",
      "Mise en route du ventilateur ionique",
      "Polissage du pont de commandement",
      "Réglage de la bouilloire warp",
      "Redémarrage du routeur lunaire",
      "Comptage des photons de rechange",
      "Réchauffement du condensateur de flux",
      "Calibrage des cuillères laser",
      "Amorçage de la pompe à nébuleuse",
      "Négociation avec le sas",
      "Classement des documents d'astéroïdes",
      "Dépoussiérage de l'étagère d'antimatière",
      "Réticulation des splines spatiales",
      "Vérification des ondes du casque",
      "Défragmentation de la soute",
      "Déblocage du bouton holographique",
      "Équilibrage du plateau à plasma",
      "Recherche du propulseur gauche",
      "Chatouillement de la console de débogage",
      "Redémarrage du café orbital",
      "Gonflage de la gravité de secours",
      "Recâblage du micro-réacteur",
      "Tapotement de la jauge tribord",
      "Chargement du ruban adhésif cosmique",
      "Persuasion de l'ordinateur de navigation",
      "Séquencement des confettis de l'écoutille",
      "Indexation des reçus de comètes",
      "Graissage de la charnière de trou de ver",
      "Test ping vers Mars",
      "Tri du tiroir à photons",
      "Refroidissement des nouilles laser",
      "Serrage des boulons de gravité",
      "Amorçage du kazoo d'évacuation",
      "Peinture des bandes de course",
      "Démêlage des câbles de capteurs",
      "Réveil du module de sommeil",
      "Audit de l'inventaire de poussière d'étoile",
      "Secouage de la boule à neige quantique",
      "Recherche du nord dans l'espace",
      "Pliage de la voile solaire",
      "Chargement de la lumière stellaire de secours",
      "Répétition des bonnes manières du sas",
      "Cuisson d'un paquet lunaire",
      "Chargement du bouclier à sarcasme",
      "Polissage de la pince d'amarrage",
      "Affûtage du pointeur laser",
      "Amorçage du moteur de pensée",
      "Réchauffement du fauteuil de commandement",
      "Demande polie au tableau de bord",
      "Cyclage des vannes à photons",
      "Actualisation du cache orbital",
      "Rééquilibrage de la grille holographique",
      "Réglage des sourcils d'antenne",
      "Ouverture d'un mini trou de ver",
      "Apaisement du grille-pain à fusion",
      "Tapotement de la vitre du réacteur",
      "Vérification du compteur kilométrique spatial",
      "Remuage de la soupe de données",
      "Remplissage du tableur d'oxygène",
      "Alignement des chaussettes satellites",
      "Chargement du cadran blaster",
      "Tracé d'une trajectoire de collation",
      "Lavage du réseau de capteurs",
      "Invocation des pixels auxiliaires",
      "Recherche de virgules égarées",
      "Décryptage du gribouillage du capitaine",
      "Inventaire des piles laser",
      "Amorçage du presse-papiers turbo",
      "Serrage du loquet de la console",
      "Réchauffage de la carte stellaire",
      "Cyclage du pare-brise spatial",
      "Rempaquetage de la boîte à outils",
      "Test des porte-gobelets en apesanteur",
      "Stabilisation du tiroir temporel",
      "Chargement de la musique d'ascenseur orbital",
      "Recherche du bouton de secours",
      "Recharge du canon à idées",
      "Ajustement du miroir lunaire",
      "Nettoyage au fil dentaire de la liaison fibre",
      "Polissage de la capsule d'évacuation",
      "Réinitialisation de l'amortisseur de drame",
      "Ouverture du canal banane",
      "Correctif du modem astro",
      "Vérification de la garantie warp",
      "Tri de la file d'astéroïdes",
      "Mesure du haussement cosmique",
      "Fermeture de la fermeture éclair du vide",
      "Cyclage du carillon de lancement",
      "Redémarrage du ventilateur de gravité",
      "Massage de la matrice",
      "Accordage du kazoo ionique",
      "Recharge de l'encre stellaire",
      "Alignement des voyants clignotants",
      "Amorçage du mixeur orbital",
      "Comptage des taches de rousseur laser",
      "Déverrouillage du tiroir scientifique",
      "Graissage des rails d'amarrage",
      "Ping vers la lune de commandement",
      "Refactorisation de l'hyperespace",
      "Démarrage de la mini supernova",
      "Recherche de qubits amicaux",
      "Tapotement du compteur de fusion",
      "Chargement du module de patience",
      "Composition du bureau à photons",
      "Rotation de la gaufre tribord",
      "Vérification de la liste du capitaine",
      "Équilibrage de la fourchette d'antenne",
      "Rembobinage de la cassette temporelle",
      "Alimentation du propulseur poli",
      "Accordage de la guitare orbitale",
      "Chargement du compilateur lunaire",
      "Dénouage du nœud de données",
      "Calibrage du balai à comètes",
      "Chargement de la lanterne de signal",
      "Redémarrage de la cloche d'écoutille",
      "Retournement de la crêpe à plasma",
      "Ouverture du rideau auxiliaire",
      "Test du sifflet à vide",
      "Amorçage du grille-pain tribord",
      "Polissage du bouton quantique",
      "Actualisation du cache nébuleux",
      "Réchauffement des chaussettes de fusée",
      "Assemblage du sandwich spatial",
      "Alignement de l'agrafeuse laser",
      "Vérification de la facture orbitale",
      "Accordage de l'harmonica warp",
      "Alimentation de la file de commandes",
      "Empilage des chronologies de rechange",
      "Nettoyage de la lentille à photons",
      "Correctif du firmware de l'écoutille",
      "Chargement des confettis de la console",
      "Répétition du clin d'œil d'amarrage",
      "Démarrage du métronome à plasma",
      "Comptage des univers de secours",
      "Serrage du bocal de lumière stellaire",
      "Polissage de la cuillère de télémétrie",
      "Réinitialisation du grille-pain orbital",
      "Ouverture du tiroir lunaire",
      "Chargement de la balise de débogage",
      "Accordage du hamac statique",
      "Rangement de la boîte à outils nébuleuse",
      "Recherche de points-virgules perdus",
      "Amorçage de l'antenne turbo",
      "Ajustement de la fermeture temporelle",
      "Chargement de la playlist tribord",
      "Vérification du reçu de gravité",
      "Dépoussiérage du bouton de lancement",
      "Redémarrage du planificateur de comètes",
      "Recherche du presse-papier cosmique",
      "Équilibrage de la tasse à capteurs",
      "Double tapotement de l'écoutille",
      "Pliage de la serviette de trou de ver",
      "Chargement de la lanterne orbitale",
      "Polissage du pignon warp",
      "Actualisation du garde-manger à photons",
      "Vérification du calendrier spatial",
      "Accordage du kazoo de navigation",
      "Chargement des propulseurs de réponse",
      "Recâblage du modem à poussière d'étoile",
      "Ouverture de la fortune du cargo",
      "Mesure du sourire de lancement",
      "Débouchage de l'entonnoir à plasma",
      "Comptage des bips silencieux",
      "Calibrage de la théière quantique",
      "Amorçage de l'agrafeuse orbitale",
      "Correction du vacillement du tableau de bord",
      "Test du clin d'œil tribord",
      "Recharge de la lanterne de pensée",
      "Tri des coupons de l'hyperespace",
      "Polissage du miroir de signal",
      "Chargement du mot de passe de l'écoutille",
      "Cyclage du ventilateur d'antimatière",
      "Vérification du joint lunaire",
      "Accordage du marimba de capteurs",
      "Lancement de la mini liste de vérification",
      "Alignement de la règle à nébuleuse",
      "Redémarrage du fauteuil du capitaine",
      "Emballage des photons de rechange",
      "Ouverture du garde-manger de diagnostics",
      "Amorçage de l'accordéon laser",
      "Démêlage des spaghettis orbitaux",
      "Chargement du laser poli",
      "Vérification de la tasse à fusion",
      "Décongélation du plateau à comètes",
      "Réaccordage du banjo spatial",
      "Chargement de la cartouche de réponse",
      "Correctif de la prise lunaire",
      "Comptage des trombones célestes",
      "Stabilisation des blinkenlights",
      "Réchauffement du moteur de réponse",
      "Rééquilibrage des ondes tribord",
      "Ouverture du mini sas",
      "Test de la fermeture éclair hyperspatiale",
      "Actualisation du tampon de commande",
      "Calibrage de la cuillère orbitale",
      "Chargement de la balise de réponse",
      "Vérification de la dernière écoutille"
    ],
    "tmuxSessionLabels": [
      "Sas",
      "Andromède",
      "Antimatière",
      "Astéroïde",
      "Astronaute",
      "Atmosphère",
      "Aurore",
      "Binaire",
      "Biosphère",
      "TrouNoir",
      "Blazar",
      "Capsule",
      "Céleste",
      "Chromosphère",
      "Chronos",
      "Amas",
      "Comète",
      "Constellation",
      "Couronne",
      "Cosmos",
      "Cratère",
      "Cryo",
      "Cyber",
      "Datasphère",
      "EspaceProfond",
      "Amarrage",
      "BouclierDôme",
      "Dérive",
      "ÉtoileNaine",
      "Éclipse",
      "ÉlectroMag",
      "Équinoxe",
      "Événement",
      "Exoplanète",
      "Exosphère",
      "Filament",
      "Survol",
      "Fusion",
      "Galaxie",
      "Portail",
      "Géodésique",
      "Gluon",
      "Gravité",
      "Hangar",
      "Hélice",
      "Holodeck",
      "Horizon",
      "Hydrogène",
      "Hypernova",
      "Hyperespace",
      "Allumage",
      "Impulsion",
      "Inertie",
      "Infrarouge",
      "PropulsionIon",
      "Ionosphère",
      "CourantJet",
      "PorteSaut",
      "Jupiter",
      "Kepler",
      "RampeLancement",
      "AnnéeLumière",
      "Lithium",
      "ÉtoileGuide",
      "UnitéCentrale",
      "Mars",
      "Mercure",
      "Météore",
      "Mission",
      "BaseLunaire",
      "TirLunaire",
      "Nébuleuse",
      "Neptune",
      "CoureurRéseau",
      "Neutron",
      "NouvelleGen",
      "Nova",
      "Observatoire",
      "Orbite",
      "Orion",
      "Parsec",
      "ChargeUtile",
      "Photon",
      "Planétoïde",
      "Plasma",
      "Polaris",
      "Sonde",
      "Pulsar",
      "Quantique",
      "Quasar",
      "DécalageRouge",
      "Rover",
      "Satellite",
      "Singularité",
      "VentSolaire",
      "LaboratoireSpatial",
      "PoussièreÉtoile",
      "Vaisseau",
      "TacheSolaire",
      "Supernova"
    ]
  },
  "watchdog": {
    "openDetail": "Ouvrir {{name}}",
    "cancel": "Annuler",
    "completedAction": "Terminé",
    "close": "Fermer",
    "saveReport": "Enregistrer le rapport",
    "state": {
      "armed": "Armé",
      "running": "En cours",
      "triggered": "Déclenché",
      "intervening": "En intervention",
      "suppressed": "Supprimé",
      "completed": "Terminé",
      "canceled": "Annulé",
      "error": "Erreur"
    },
    "detail": {
      "lastValue": "Dernière valeur",
      "elapsed": "Écoulé",
      "watchSummary": "Résumé de surveillance",
      "nextCheck": "Prochaine vérification",
      "exitCondition": "Condition de sortie",
      "notificationMethod": "Notification",
      "actionMode": "Action",
      "polls": "Sondages",
      "triggers": "Déclenchements",
      "interval": "Intervalle",
      "targetPerformance": "Performance : {{metric}}",
      "targetSshSilence": "Silence de sortie de la Session SSH",
      "targetPing": "Ping {{host}}",
      "targetTcp": "TCP {{host}}:{{port}}",
      "targetMock": "Compteur de test",
      "stopAfterDuration": "Après {{duration}}",
      "stopAfterTriggerCount": "Après {{count}} déclenchements",
      "stopAfterFirstTrigger": "Après le premier déclenchement",
      "stopAfterPollCount": "Après {{count}} sondages",
      "stopUntilCanceled": "Jusqu'à annulation",
      "notification": {
        "inAppOnly": "Dans l'app uniquement",
        "inAppPlusToast": "Dans l'app plus notification toast",
        "inAppPlusSound": "Dans l'app plus son"
      },
      "action": {
        "notify": "Notifier seulement",
        "aiIntervene": "Intervention IA"
      },
      "notEnoughData": "Collecte des données…",
      "sparkline": "Valeurs récentes",
      "triggerEvents": "Événements déclencheurs",
      "interventions": "Interventions IA",
      "aiSummary": "Résumé IA",
      "summarize": "Résumer",
      "regenerate": "Régénérer",
      "summarizing": "Résumé en cours…",
      "summaryEmpty": "Cliquez sur Résumer pour générer un post-mortem en langage naturel de ce watchdog.",
      "targetSchedule": "Planification : {{cron}}",
      "targetLogFile": "Le fichier journal {{path}} contient « {{pattern}} »",
      "targetOutputMatch": "La sortie de la session contient « {{pattern}} »"
    }
  },
  "workspace": {
    "tabs": "Onglets de l'espace de travail",
    "noActiveSession": "Aucune session active",
    "openFromTree": "Ouvrez une connexion depuis l'arborescence, ou créez une nouvelle connexion :",
    "syncInput": "Synchroniser la saisie vers tous les terminaux",
    "syncInputEnabledNotice": "La saisie est maintenant dupliquée vers chaque terminal ouvert.",
    "newTab": "Nouvel onglet",
    "hostUsage": "Utilisation de l'hôte",
    "cpu": "CPU",
    "cpuUsage": "Utilisation CPU",
    "ram": "RAM",
    "ramUsage": "Utilisation RAM",
    "network": "Réseau",
    "networkUsage": "Débit réseau",
    "networkDownstream": "Descendant",
    "networkDownstreamUsage": "Débit descendant",
    "networkUpstream": "Montant",
    "networkUpstreamUsage": "Débit montant",
    "takeScreenshot": "Prendre une capture d'écran",
    "copyRegion": "Capturer la région (Presse-papiers)",
    "copyEntirePanel": "Capturer toute la fenêtre (Presse-papiers)",
    "sendEntirePanelToAi": "Capturer toute la fenêtre (Assistant IA)",
    "sentToAi": "Envoyé à l'IA",
    "copied": "Copié",
    "selectRegion": "Sélectionner la région de capture",
    "screenshotsRequireRuntime": "Les captures d'écran nécessitent l'environnement de bureau Tauri.",
    "screenshotCaptureError": "Impossible de capturer la capture d'écran : {{message}}",
    "screenshot": "capture d'écran",
    "scrollTabsLeft": "Défiler les onglets vers la gauche",
    "scrollTabsRight": "Défiler les onglets vers la droite",
    "renameTab": "Renommer {{title}}",
    "closeTab": "Fermer {{title}}",
    "terminalPane": "volet terminal",
    "sftpBrowser": "navigateur SFTP",
    "webview": "Webview",
    "workspace": "Espace de travail",
    "terminal": "Terminal",
    "connectionKind": "Connexion {{type}}",
    "localTerminalSession": "Session de terminal local",
    "workspaceSwitcher": "Espaces de travail",
    "defaultWorkspace": "Par défaut",
    "defaultWorkspaceTitle": "Espace de travail par défaut",
    "newWorkspace": "Nouvel espace de travail",
    "workspaceName": "Nom",
    "workspaceNamePlaceholder": "Nom de l'espace de travail",
    "editWorkspaceIcon": "Modifier l'icône de l'espace de travail",
    "iconPickerLabel": "Sélecteur d'icône d'espace de travail",
    "importConnections": "Importer des connexions",
    "importConnectionsHint": "Copiez des connexions depuis des espaces de travail existants vers celui-ci.",
    "importFromWorkspace": "Importer depuis un espace de travail",
    "searchConnections": "Rechercher des connexions",
    "filterConnectionTypes": "Filtrer les types de connexion",
    "allConnectionTypes": "Tous",
    "selectAllConnections": "Tout sélectionner",
    "deselectAllConnections": "Tout désélectionner",
    "noImportConnections": "Aucune connexion correspondante.",
    "createWorkspace": "Créer un espace de travail",
    "editWorkspace": "Modifier le Workspace",
    "deleteWorkspace": "Supprimer l'espace de travail",
    "deleteWorkspaceConfirm": "Supprimer \"{{name}}\" et toutes ses connexions ? Cette action est irréversible.",
    "workspaceCreated": "Espace de travail \"{{name}}\" créé",
    "fileViewer": {
      "loading": "Chargement…",
      "noFile": "Aucun fichier sélectionné pour cette Connection de document.",
      "truncated": "Ce fichier est volumineux ; un aperçu partiel est affiché.",
      "invalidJson": "JSON non valide ; affichage du texte brut.",
      "imageTooLarge": "Cette image est trop grande pour être prévisualisée.",
      "filterRows": "Filtrer les lignes…",
      "filterLines": "Filtrer les lignes…",
      "rowCount": "{{count}} lignes",
      "tableTruncated": "Affichage des {{count}} premières lignes.",
      "follow": "Suivre",
      "followOn": "Suivi actif — cliquez pour suspendre",
      "following": "Suivi actif",
      "parser": "Analyseur",
      "parserType": {
        "auto": "Automatique",
        "generic": "Générique",
        "json": "JSON",
        "logfmt": "logfmt",
        "syslog": "Syslog",
        "http-access": "Accès HTTP",
        "windows-event": "Événement Windows",
        "java-stack": "Pile Java",
        "container": "Conteneur"
      },
      "find": "Rechercher",
      "softWrap": "Retour à la ligne",
      "expandAll": "Tout développer",
      "collapseAll": "Tout réduire",
      "valid": "Valide",
      "invalid": "Invalide",
      "keyCount": "{{count}} clés",
      "tableShape": "{{rows}} lignes × {{cols}} colonnes",
      "lineCountOf": "{{count}} sur {{total}} lignes",
      "wordCount": "{{count}} mots",
      "dimensions": "{{width}} × {{height}}",
      "byteCount": "{{count}} octets",
      "hexOffset": "Décalage",
      "zoomIn": "Zoom avant",
      "zoomOut": "Zoom arrière",
      "fit": "Ajuster",
      "actualSize": "Taille réelle",
      "rotate": "Pivoter",
      "readOnly": "Lecture seule",
      "saved": "Enregistré",
      "unsaved": "Non enregistré",
      "view": {
        "preview": "Aperçu",
        "split": "Partagé",
        "source": "Source"
      },
      "kind": {
        "text": "Texte",
        "markdown": "Markdown",
        "csv": "Tableau",
        "json": "JSON",
        "image": "Image",
        "log": "Journal",
        "hex": "Hex",
        "pdf": "PDF",
        "unsupported": "Non pris en charge"
      },
      "level": {
        "error": "Erreur",
        "warn": "Avertissement",
        "info": "Info",
        "debug": "Débogage",
        "trace": "Trace"
      },
      "retry": "Réessayer",
      "pdfPage": "{{page}} / {{count}}",
      "dependencyNeededTitle": "L’aperçu nécessite un module complémentaire",
      "dependencyNeededBody": "L’aperçu de ce type de fichier utilise {{tool}}, un petit module complémentaire que KKTerm télécharge à la demande au lieu de l’intégrer.",
      "dependencyInstall": "Installer {{tool}}",
      "dependencyInstalling": "Installation de {{tool}}…",
      "dependencyManualHint": "Installez {{tool}}, assurez-vous qu’il se trouve dans votre PATH, puis réessayez.",
      "dependencyToolNote": "Téléchargé une seule fois dans votre dossier utilisateur — aucun droit admin requis.",
      "dep": {
        "poppler": "Poppler"
      },
      "save": "Enregistrer",
      "saving": "Enregistrement…",
      "discardConfirm": "Ignorer les modifications non enregistrées ?",
      "saveConflictConfirm": "Ce fichier a changé sur le disque depuis son ouverture. Le remplacer par vos modifications ?",
      "viewOptions": "Options d'affichage",
      "background": "Arrière-plan",
      "backgroundDefaultHint": "Utiliser l'arrière-plan par défaut du visualiseur de documents pour cette connexion.",
      "textMenu": "Police et encodage",
      "font": "Police",
      "fontDefault": "Par défaut (à chasse fixe)",
      "fontSize": "Taille",
      "fontSizeDefault": "Par défaut",
      "encoding": "Encodage",
      "encodingAuto": "Automatique",
      "encodingDetected": "Automatique ({{label}})",
      "unsupportedTitle": "Fichier non pris en charge",
      "unsupportedBody": "KKTerm n'a pas de visionneuse intégrée pour {{name}}. Choisissez comment l'ouvrir.",
      "openAsText": "Ouvrir en texte",
      "openAsBinary": "Ouvrir en binaire",
      "openExternalEditor": "Ouvrir dans un éditeur externe"
    }
  },
  "common": {
    "allFilesFilter": "Tous les fichiers",
    "clear": "Effacer",
    "collapse": "Réduire",
    "customColor": "Couleur personnalisée",
    "properties": "Propriétés",
    "expand": "Développer",
    "hexColor": "Couleur hexadécimale",
    "save": "Enregistrer",
    "cancel": "Annuler",
    "close": "Fermer",
    "delete": "Supprimer",
    "copy": "Copier",
    "cut": "Couper",
    "paste": "Coller",
    "search": "Rechercher",
    "searchForMore": "Rechercher plus",
    "loading": "Chargement...",
    "ok": "OK",
    "back": "Retour",
    "forward": "Suivant",
    "refresh": "Actualiser",
    "reset": "Réinitialiser",
    "edit": "Modifier",
    "add": "Ajouter",
    "remove": "Supprimer",
    "open": "Ouvrir",
    "am": "AM",
    "pm": "PM"
  },
  "languages": {
    "en": "English",
    "fr": "Français",
    "it": "Italiano",
    "de": "Deutsch",
    "es": "Español (España)",
    "es-MX": "Español (México)",
    "pt-BR": "Português (Brasil)",
    "zh-TW": "中文 (繁體)",
    "zh-CN": "中文 (简体)",
    "ja": "日本語",
    "ko": "한국어",
    "th": "ไทย",
    "id": "Bahasa Indonesia",
    "vi": "Tiếng Việt"
  },
  "manual": {
    "title": "Manuel d’utilisation",
    "subtitle": "Comment utiliser KKTerm. Fourni avec chaque version.",
    "chaptersLabel": "Chapitres",
    "back": "Retour",
    "loading": "Chargement…",
    "loadError": "Impossible de charger le manuel : {{message}}",
    "tauriRequired": "Le manuel est disponible uniquement dans l’environnement d’exécution de bureau."
  }
}
