{
  "settings_view": {
    "title": "Paramètres",
    "portable_badge": "Mode portable actif",
    "portable_description": "OxideTerm est exécuté depuis un dossier portable. Les données restent à côté de l'exécutable et les mises à jour automatiques sont désactivées.",
    "local_terminal": {
      "title": "Terminal local",
      "description": "Configurer le shell du terminal local et les préférences.",
      "shell": "Shell",
      "default_shell": "Shell par défaut",
      "default_shell_hint": "Shell à utiliser lors de l'appui sur Cmd+T",
      "select_shell": "Sélectionner le shell",
      "path": "Chemin",
      "git_bash_path": "Git Bash Path",
      "git_bash_path_hint": "Optional: point to Git for Windows bash.exe, useful when Git is installed on another drive",
      "git_bash_path_placeholder": "e.g. D:\\Program Files\\Git\\bin\\bash.exe",
      "default_cwd": "Répertoire de travail par défaut",
      "default_cwd_hint": "Répertoire initial pour les nouveaux terminaux (vide = accueil)",
      "shortcuts": "Raccourcis clavier",
      "new_default_shell": "Nouveau terminal local (Shell par défaut)",
      "new_shell_launcher": "Nouveau terminal local (Lanceur de shell)",
      "available_shells": "Shells disponibles",
      "loading_shells": "Chargement des shells disponibles...",
      "default": "Par défaut",
      "shell_profile": "Profil shell",
      "load_shell_profile": "Charger le profil shell",
      "load_shell_profile_hint": "Exécuter les fichiers de démarrage du shell (.bashrc, .zshrc, Profile.ps1, etc.)",
      "oh_my_posh": "Oh My Posh (Windows)",
      "oh_my_posh_enable": "Activer Oh My Posh",
      "oh_my_posh_enable_hint": "Initialiser automatiquement Oh My Posh avec le support UTF-8",
      "oh_my_posh_theme": "Chemin du thème",
      "oh_my_posh_theme_hint": "Chemin vers le fichier de thème Oh My Posh (.omp.json), vide = thème par défaut",
      "oh_my_posh_theme_placeholder": "ex: C:\\Users\\VotreNom\\.poshthemes\\agnoster.omp.json",
      "oh_my_posh_note": "Nécessite l'installation de oh-my-posh. Lorsqu'activé, PowerShell initialisera automatiquement UTF-8 et Oh My Posh",
      "custom_env": "Variables d'environnement personnalisées",
      "custom_env_hint": "Variables d'environnement supplémentaires (format: KEY=VALUE, une par ligne)"
    },
    "tabs": {
      "general": "Général",
      "terminal": "Terminal",
      "sftp": "Transfert SFTP",
      "ide": "IDE (Mini)",
      "appearance": "Apparence",
      "connections": "Connexions",
      "ssh": "Clés SSH",
      "ai": "OxideSens",
      "knowledge": "Base de connaissances",
      "local": "Terminal local",
      "reconnect": "Reconnexion",
      "help": "Aide et À propos",
      "keybindings": "Raccourcis clavier"
    },
    "general": {
      "title": "Général",
      "description": "Paramètres généraux de l'application.",
      "language": "Langue",
      "language_hint": "Choisissez votre langue préférée",
      "data_directory": "Répertoire de données",
      "data_directory_hint": "Emplacement de stockage des connexions, journaux et autres données",
      "select_data_directory": "Sélectionner le répertoire de données",
      "data_directory_changed": "Le répertoire de données a été modifié. Redémarrez l'application pour appliquer.",
      "change": "Modifier",
      "reset_data_directory": "Réinitialiser le répertoire de données",
      "reset_data_directory_confirm": "Réinitialiser le répertoire de données par défaut ? Les données existantes à l'emplacement personnalisé ne seront pas déplacées. Un redémarrage est nécessaire.",
      "reset_to_default": "Rétablir par défaut",
      "data_directory_reset": "Le répertoire de données a été réinitialisé par défaut. Redémarrez l'application pour appliquer.",
      "data_directory_restart_notice": "La modification du répertoire de données nécessite un redémarrage de l'application. Les données existantes ne sont pas migrées automatiquement.",
      "data_directory_conflict": "Données existantes détectées",
      "data_directory_conflict_detail": "Le répertoire sélectionné contient déjà des fichiers de données OxideTerm : {{files}}. Ces fichiers pourraient être écrasés. Continuer ?",
      "portable_runtime": "Exécution portable",
      "portable_runtime_hint": "Ce profil portable s'exécute depuis un dossier local, avec le verrou d'instance et l'état du coffre portable gérés à côté de l'application.",
      "portable_runtime_disabled_hint": "Les contrôles d'exécution portable ne sont disponibles que lorsque OxideTerm démarre depuis un marqueur portable ou un portable.json situé à côté de l'application.",
      "portable_root_dir": "Répertoire racine portable",
      "portable_activation": "Source d'activation",
      "portable_activation_marker": "Fichier marqueur portable",
      "portable_activation_config": "Configuration portable.json",
      "portable_activation_disabled": "Mode portable désactivé",
      "portable_config_path": "Chemin de configuration portable",
      "portable_instance_lock_path": "Chemin du verrou d'instance",
      "portable_instance_lock_unavailable": "Aucun verrou d'instance portable n'est actif",
      "portable_biometric": "Déverrouillage biométrique",
      "portable_biometric_bound": "Ce dossier portable est lié à la biométrie du système sur cet appareil.",
      "portable_biometric_unbound": "Aucun déverrouillage biométrique n'est encore lié. Vous pouvez l'activer sans modifier le format de stockage portable.",
      "portable_biometric_unsupported": "Le déverrouillage biométrique n'est pas disponible sur cet appareil. Le mode portable continue de fonctionner uniquement avec le mot de passe local.",
      "portable_enable_biometric": "Activer le déverrouillage biométrique",
      "portable_disable_biometric": "Désactiver le déverrouillage biométrique",
      "portable_disable_biometric_confirm": "Supprimer le lien biométrique de ce dossier portable sur cet appareil ? Le mot de passe portable continuera de fonctionner normalement.",
      "portable_change_password": "Changer le mot de passe portable",
      "portable_password_changed": "Mot de passe portable mis à jour.",
      "portable_biometric_enabled": "Déverrouillage biométrique activé pour ce dossier portable.",
      "portable_biometric_disabled": "Déverrouillage biométrique désactivé pour ce dossier portable.",
      "portable_change_password_title": "Changer le mot de passe portable",
      "portable_change_password_description": "Rechiffrez le coffre portable avec un nouveau mot de passe. Si le déverrouillage biométrique est déjà lié sur cet appareil, OxideTerm mettra également ce lien à jour.",
      "portable_change_password_pending": "Mise à jour du mot de passe portable...",
      "portable_current_password": "Mot de passe portable actuel",
      "portable_new_password": "Nouveau mot de passe portable",
      "portable_confirm_password": "Confirmer le nouveau mot de passe portable",
      "portable_submit_change_password": "Mettre à jour le mot de passe",
      "portable_enable_biometric_title": "Activer le déverrouillage biométrique",
      "portable_enable_biometric_description": "Confirmez une fois le mot de passe portable actuel pour enregistrer sur cet appareil un déverrouillage protégé par biométrie. Le dossier portable lui-même reste basé sur un mot de passe et portable.",
      "portable_enable_biometric_pending": "Activation du déverrouillage biométrique...",
      "portable_submit_enable_biometric": "Activer la biométrie",
      "portable_password_too_short": "Le mot de passe doit contenir au moins 6 caractères.",
      "portable_password_mismatch": "Les mots de passe ne correspondent pas.",
      "portable_migration": "Migration portable",
      "portable_migration_installed_hint": "Créez un bundle .oxide prêt pour le mode portable à partir de ce profil installé, y compris les secrets portables pouvant être restaurés en toute sécurité.",
      "portable_migration_portable_hint": "Importez un bundle .oxide portable dans ce profil et restaurez les secrets portables, comme les clés de fournisseurs d'IA.",
      "portable_migration_current_dir": "Répertoire de données actuel",
      "portable_migration_target_dir": "Répertoire de données portable",
      "portable_migration_secret_summary": "Éléments de secrets portables disponibles pour la migration : {{count}}",
      "portable_migration_export": "Exporter le bundle portable",
      "portable_migration_import": "Importer le bundle portable",
      "cli_companion": "Compagnon CLI",
      "cli_tool": "Outil CLI",
      "cli_tool_hint": "Installez l'outil CLI oxt pour gérer les connexions depuis votre terminal",
      "cli_installed": "Installé",
      "cli_not_installed": "Non installé",
      "cli_install": "Installer",
      "cli_reinstall_required": "Réinstallation requise",
      "cli_reinstall": "Réinstaller",
      "cli_reinstall_hint": "La CLI installée diffère de la CLI fournie avec OxideTerm {{version}}. Réinstallez la CLI fournie pour éviter des incompatibilités de protocole.",
      "cli_uninstall": "Désinstaller",
      "cli_not_bundled": "Le binaire CLI n'est pas inclus dans cette version"
    },
    "terminal": {
      "title": "Paramètres du terminal",
      "description": "Configurer l'apparence et le comportement de l'émulateur de terminal.",
      "font": "Police",
      "font_family": "Famille de police",
      "font_family_hint": "Polices prédéfinies (✓ = police de secours incluse)",
      "select_font": "Sélectionner la police",
      "custom_font": "Personnalisée...",
      "custom_font_stack": "Liste de polices personnalisée",
      "custom_font_stack_hint": "Entrez les noms de polices par ordre de priorité, séparés par des virgules",
      "font_preview": "Aperçu de la police",
      "font_size": "Taille de police",
      "font_size_hint": "Taille des caractères du terminal",
      "line_height": "Hauteur de ligne",
      "line_height_hint": "Espacement entre les lignes",
      "renderer": "Moteur de rendu",
      "renderer_hint": "Choisir le rendu WebGL ou Canvas",
      "renderer_auto": "Auto (WebGL préféré)",
      "adaptive_renderer": "Taux de rafraîchissement dynamique",
      "adaptive_renderer_hint": "Ajuste automatiquement la fréquence de rendu : 120Hz+ en sortie rapide, 60Hz en saisie, 1-15Hz en veille",
      "adaptive_renderer_auto": "Auto (Adaptatif)",
      "adaptive_renderer_always60": "Toujours 60Hz",
      "adaptive_renderer_off": "Désactivé (écriture directe)",
      "show_fps_overlay": "Afficher la superposition FPS",
      "show_fps_overlay_hint": "Affiche un badge de niveau de rendu en temps réel (B=boost/N=normal/I=inactif), la cadence d'images et le débit d'écriture dans le coin du terminal",
      "cursor": "Curseur",
      "cursor_style": "Style de curseur",
      "cursor_style_hint": "Forme du curseur de texte",
      "cursor_block": "Bloc █",
      "cursor_underline": "Souligné _",
      "cursor_bar": "Barre |",
      "cursor_blink": "Clignotement du curseur",
      "cursor_blink_hint": "Animer le clignotement du curseur",
      "input_safety": "Sécurité de saisie",
      "paste_protection": "Protection au collage",
      "paste_protection_hint": "Confirmer avant de coller du contenu multiligne pour éviter l'exécution accidentelle de commandes",
      "osc52_clipboard": "Presse-papiers OSC 52",
      "osc52_clipboard_hint": "Autoriser les programmes distants (tmux, vim) à écrire dans le presse-papiers système via la séquence d'échappement OSC 52",
      "copy_on_select": "Copier à la sélection",
      "copy_on_select_hint": "Copier automatiquement le texte du terminal dans le presse-papiers système dès que la sélection à la souris se stabilise",
      "middle_click_paste": "Coller au clic central",
      "middle_click_paste_hint": "Coller le contenu actuel du presse-papiers avec le clic central lorsque le terminal n'est pas en mode de suivi de souris",
      "smart_copy": "Copie intelligente avec Ctrl+C",
      "smart_copy_hint": "Sous Windows et Linux, Ctrl+C copie la sélection actuelle et n'envoie SIGINT que si rien n'est sélectionné",
      "selection_requires_shift": "Exiger Maj pour sélectionner du texte",
      "selection_requires_shift_hint": "Lorsqu'elle est activée, un glisser simple préserve l'interaction du terminal et seul Maj + glisser démarre une sélection de texte",
      "in_band_transfer": {
        "title": "Transfert de fichiers in-band",
        "enabled": "Activer le transfert trzsz",
        "enabled_hint": "Gère directement dans la session du terminal les séquences d'envoi et de réception trzsz.",
        "allow_directory": "Autoriser le transfert de répertoires",
        "allow_directory_hint": "Lorsqu'il est désactivé, les envois et téléchargements de dossiers sont rejetés avant le début du transfert.",
        "max_chunk_bytes": "Taille maximale des blocs",
        "max_chunk_bytes_hint": "Limite supérieure en octets pour chaque bloc de données trzsz.",
        "max_file_count": "Nombre maximal de fichiers",
        "max_file_count_hint": "Nombre maximal de fichiers acceptés dans un seul transfert.",
        "max_total_bytes": "Nombre maximal total d'octets",
        "max_total_bytes_hint": "Taille cumulée maximale de transfert en octets pour une session de transfert.",
        "runtime_note": "L'activation ou la désactivation de trzsz prend effet immédiatement. Les limites de répertoire et de taille s'appliquent au prochain transfert démarré après la modification."
      },
      "buffer": "Tampon",
      "scrollback": "Main Terminal Scrollback Lines",
      "scrollback_hint": "Controls how many lines the main terminal view can scroll directly. Lower values reduce xterm memory usage; use Scrollback Viewer for longer history.",
      "backend_buffer_lines": "History Hot Buffer Lines",
      "backend_buffer_lines_hint": "Controls recent history retained by the backend for Scrollback Viewer, full-history search, and AI context.",
      "backend_buffer_recommended": "Applies to newly created sessions. Open sessions keep the backend buffer size they were created with.",
      "bg_title": "Image d'arrière-plan",
      "bg_enabled": "Activer l'arrière-plan",
      "bg_enabled_hint": "Interrupteur principal — désactiver sans supprimer les images",
      "bg_gallery": "Galerie d'images",
      "bg_add": "Ajouter une image",
      "bg_clear_all": "Tout supprimer",
      "bg_active": "Actif",
      "bg_label": "Arrière-plan du terminal",
      "bg_hint": "Définir une image personnalisée comme arrière-plan du terminal. Prend en charge PNG, JPEG, WebP et GIF animé.",
      "bg_select": "Choisir une image",
      "bg_select_title": "Choisir l'image d'arrière-plan",
      "bg_change": "Changer l'image",
      "bg_clear": "Supprimer",
      "bg_opacity": "Opacité de l'image",
      "bg_opacity_hint": "Visibilité de l'image d'arrière-plan (plus bas = plus subtil)",
      "bg_blur": "Flou d'arrière-plan",
      "bg_blur_hint": "Flouter l'image d'arrière-plan (limité automatiquement sur GPU intégré)",
      "bg_fit": "Mode d'ajustement",
      "bg_fit_hint": "Comment l'image remplit la zone du terminal",
      "bg_fit_cover": "Couvrir",
      "bg_fit_contain": "Contenir",
      "bg_fit_fill": "Étirer",
      "bg_fit_tile": "Mosaïque",
      "bg_tabs": "Onglets activés",
      "bg_tabs_hint": "Choisissez les types d'onglets affichant l'image de fond",
      "bg_tab_terminal": "Terminal SSH",
      "bg_tab_local": "Terminal local",
      "bg_tab_sftp": "SFTP",
      "bg_tab_forwards": "Transfert de port",
      "bg_tab_settings": "Paramètres",
      "bg_tab_ide": "IDE",
      "bg_tab_monitor": "Moniteur de connexion",
      "bg_tab_connections": "Connexions",
      "bg_tab_topology": "Topologie",
      "bg_tab_files": "Gestionnaire de fichiers",
      "bg_tab_sessions": "Gestionnaire de sessions",
      "bg_tab_launcher": "Lanceur",
      "bg_tab_plugins": "Extensions",
      "highlight_rules": {
        "title": "Règles de surbrillance",
        "description": "Conserve des surbrillances basées sur des mots-clés ou des regex pour la sortie du terminal. En cas de chevauchement, la règle la plus prioritaire l'emporte.",
        "add_preset": "Ajouter un préréglage",
        "preset_group_logs": "Journaux et état",
        "preset_group_network": "Réseau",
        "preset_group_system": "Chemins et fichiers",
        "preset_group_identity": "IDs et signatures",
        "preset_status": "Ajouter le préréglage d'état",
        "preset_ip": "Ajouter le préréglage IPv4",
        "preset_mac": "Ajouter le préréglage MAC",
        "preset_timestamp": "Ajouter le préréglage d'horodatage",
        "preset_url": "Ajouter le préréglage d'URL",
        "preset_port": "Ajouter le préréglage de port",
        "preset_path": "Ajouter le préréglage de chemin",
        "preset_uuid": "Ajouter le préréglage UUID",
        "preset_email": "Ajouter le préréglage d'e-mail",
        "preset_domain": "Ajouter le préréglage de domaine",
        "preset_sha256": "Ajouter le préréglage SHA256",
        "add_rule": "Ajouter une règle",
        "limit": "Jusqu'à {{count}} règles par profil.",
        "priority_hint": "Faites glisser pour réordonner la priorité de haut en bas.",
        "empty": "Aucune règle de surbrillance pour l'instant. Ajoutez une règle ou partez d'un préréglage.",
        "untitled_rule": "Règle sans titre",
        "collapse_rule": "Replier la règle",
        "expand_rule": "Déplier la règle",
        "preview": "Aperçu",
        "preview_hint": "Les correspondances sont résolues avec les mêmes règles de priorité que dans le terminal.",
        "drag_rule": "Faire glisser la règle",
        "label": "Libellé",
        "label_placeholder": "Nom facultatif pour cette règle",
        "pattern": "Motif",
        "pattern_placeholder": "Mot-clé ou motif regex",
        "render_mode": "Mode de rendu",
        "render_mode_background": "Arrière-plan",
        "render_mode_underline": "Soulignement",
        "render_mode_outline": "Contour",
        "foreground": "Premier plan",
        "background": "Arrière-plan",
        "enabled": "Activé",
        "disabled": "Désactivé",
        "regex": "Regex",
        "case_sensitive": "Sensible à la casse",
        "delete": "Supprimer",
        "invalid_rule": "Règle invalide",
        "toast_auto_disabled_title": "Règle de surbrillance désactivée",
        "toast_auto_disabled_description": "{{count}} règle a été désactivée automatiquement car la correspondance a échoué : {{reason}}.",
        "preset_label_error": "Erreur",
        "preset_label_warning": "Avertissement",
        "preset_label_ok": "OK",
        "preset_label_ip": "IPv4",
        "preset_label_mac": "MAC",
        "preset_label_timestamp": "Horodatage",
        "preset_label_url": "URL",
        "preset_label_port": "Port",
        "preset_label_path": "Chemin",
        "preset_label_uuid": "UUID",
        "preset_label_email": "E-mail",
        "preset_label_domain": "Domaine",
        "preset_label_sha256": "SHA256",
        "preview_line_error": "2026-04-13 21:52:33 ERROR délai du bridge sur la session 127.0.0.1",
        "preview_line_warning": "warning : nouvelle tentative de connexion ssh vers 10.0.0.25:2222 via https://gateway.example.com",
        "preview_line_ok": "OK 02:3B:4C:5D:6E:7F artefact téléversé vers 192.168.1.52",
        "preview_line_trace": "trace : la requête 550e8400-e29b-41d4-a716-446655440000 a ouvert /var/log/nginx/access.log",
        "preview_line_audit": "audit : admin@example.com a téléchargé le paquet depuis cdn.example.com avec sha256 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
        "mode_hint": {
          "literal": "Le mode littéral correspond au texte brut exactement tel qu'il est écrit.",
          "regex": "Le mode regex utilise une syntaxe compatible RE2 pour une correspondance sûre."
        },
        "runtime_reason": {
          "timeout": "le moteur de correspondance a expiré",
          "error": "le moteur de correspondance a renvoyé une erreur"
        },
        "validation": {
          "empty-pattern": "Saisissez un mot-clé ou un motif regex.",
          "pattern-too-long": "Le motif est trop long.",
          "invalid-regex": "La syntaxe regex est invalide.",
          "unsupported-regex-syntax": "Cette regex utilise une syntaxe non prise en charge par RE2.",
          "empty-match": "La regex ne peut pas correspondre à un texte vide."
        }
      },
      "encoding": "Terminal Encoding",
      "encoding_hint": "Text encoding for terminal input/output. Keep UTF-8 unless the remote host uses a legacy locale.",
      "autosuggest_local_history": "Barre de commande : historique shell local",
      "autosuggest_local_history_hint": "Utilise l’historique zsh/bash/fish local comme source du panneau d’historique de la barre de commande. N’active pas le ghost text dans le terminal.",
      "command_bar": "Barre de commande",
      "command_bar_hint": "Affiche une barre en bas du terminal pour les suggestions OxideTerm, le mode question, la diffusion, l’enregistrement, la lecture cast et les divisions.",
      "command_bar_legacy_toolbar": "Afficher l’ancienne barre supérieure",
      "command_bar_legacy_toolbar_hint": "Garde les anciens boutons d’action dans la barre d’onglets quand la barre de commande est activée.",
      "command_bar_focus_handoff": "Focaliser le terminal pour les commandes TUI",
      "command_bar_focus_handoff_hint": "Après ces commandes depuis la barre de commande, le terminal reprend le focus car elles capturent souvent le clavier. Séparez les commandes par espaces, virgules ou retours ligne.",
      "command_marks": "Repères de commandes",
      "command_marks_hint": "Ajoute des repères légers façon iTerm2 aux commandes fiables envoyées par la barre de commande, l’IA et la diffusion. Le buffer du terminal reste intact.",
      "command_marks_hover_actions": "Actions au survol",
      "command_marks_hover_actions_hint": "Show the copy output action in the command selection toolbar.",
      "gpu_canvas_experiments": "WebGPU canvas experiments",
      "gpu_canvas_experiments_hint": "Experimental GPU-backed visualizations. Does not replace the terminal renderer.",
      "quick_commands": "Quick Commands",
      "quick_commands_hint": "Show a built-in quick command library in the Command Bar.",
      "quick_commands_confirm": "Confirm Quick Command Run",
      "quick_commands_confirm_hint": "Ask before running a quick command from the Run button.",
      "quick_commands_toast": "Quick Command Toast",
      "quick_commands_toast_hint": "Show a toast after a quick command is sent.",
      "page_display": "Affichage",
      "page_input": "Saisie",
      "page_commandBar": "Barre de commande",
      "page_history": "Historique et marques",
      "page_transfer": "Transfert",
      "page_highlight": "Surlignage"
    },
    "appearance": {
      "title": "Apparence",
      "description": "Personnaliser le thème de l'application.",
      "theme": "Thème",
      "color_theme": "Thème de couleurs",
      "color_theme_hint": "Schéma de couleurs du terminal",
      "select_theme": "Sélectionner le thème",
      "layout": "Disposition",
      "layout_hint": "La barre latérale peut être redimensionnée en faisant glisser son bord droit. Utilisez le bouton de réduction (◧) pour la masquer.",
      "theme_group_oxide": "Série Oxide",
      "theme_group_classic": "Classique / Autre",
      "theme_group_custom": "Personnalisé",
      "theme_import": "Importer",
      "theme_export": "Exporter",
      "theme_import_success": "Thème \"{{name}}\" importé avec succès",
      "theme_import_error": "Échec de l'import du thème : {{error}}",
      "theme_export_success": "Thème exporté avec succès",
      "density": "Densité de l'interface",
      "density_hint": "Contrôler l'espacement et le padding dans l'interface",
      "density_compact": "Compact",
      "density_compact_desc": "Espacement réduit, plus de contenu visible",
      "density_comfortable": "Confortable",
      "density_comfortable_desc": "Espacement équilibré (par défaut)",
      "density_spacious": "Spacieux",
      "density_spacious_desc": "Espacement plus grand, plus d'espace",
      "border_radius": "Rayon des coins",
      "border_radius_hint": "Arrondi global des coins des éléments UI",
      "border_radius_unit": "px",
      "ui_font": "Police de l'interface",
      "ui_font_hint": "Police personnalisée pour l'interface de l'application. Laisser vide pour la police par défaut.",
      "ui_font_placeholder": "Par défaut du système (Inter)",
      "animation": "Vitesse d'animation",
      "animation_hint": "Contrôler la vitesse des transitions et animations",
      "animation_off": "Désactivé",
      "animation_reduced": "Réduit",
      "animation_normal": "Normal",
      "animation_fast": "Rapide",
      "frosted_glass": "Effet verre dépoli",
      "frosted_glass_hint": "Appliquer un effet de flou translucide aux panneaux",
      "frosted_glass_off": "Désactivé",
      "frosted_glass_css": "Flou CSS",
      "frosted_glass_native": "Vibrancy natif",
      "frosted_glass_native_hint": "Vibrancy natif (macOS/Windows uniquement)"
    },
    "custom_theme": {
      "create": "Nouveau thème",
      "edit": "Modifier",
      "create_title": "Créer un thème personnalisé",
      "edit_title": "Modifier le thème personnalisé",
      "description": "Personnalisez les couleurs du terminal et de l'interface pour créer votre propre thème.",
      "name": "Nom du thème",
      "name_placeholder": "Mon thème personnalisé",
      "new_theme_name": "Mon thème",
      "duplicate_from": "Basé sur",
      "select_base": "Sélectionner un thème de base...",
      "terminal_colors": "Couleurs du terminal",
      "ui_colors": "Couleurs de l'interface",
      "ui_colors_hint": "Couleurs de l'application (barre latérale, panneaux, bordures)",
      "auto_derive": "Auto depuis le terminal",
      "save": "Enregistrer",
      "cancel": "Annuler",
      "delete": "Supprimer",
      "click_to_edit_hex": "Cliquer pour saisir la valeur hexadécimale",
      "section_background": "Arrière-plan",
      "section_text": "Texte",
      "section_border": "Bordures et séparateurs",
      "section_accent": "Accentuation",
      "section_semantic": "Couleurs d'état",
      "colors": {
        "bg": "Arrière-plan",
        "fg": "Premier plan",
        "cursor": "Curseur",
        "selection": "Sélection",
        "black": "Noir",
        "red": "Rouge",
        "green": "Vert",
        "yellow": "Jaune",
        "blue": "Bleu",
        "magenta": "Magenta",
        "cyan": "Cyan",
        "white": "Blanc",
        "bright_black": "Noir clair",
        "bright_red": "Rouge clair",
        "bright_green": "Vert clair",
        "bright_yellow": "Jaune clair",
        "bright_blue": "Bleu clair",
        "bright_magenta": "Magenta clair",
        "bright_cyan": "Cyan clair",
        "bright_white": "Blanc brillant",
        "ui_bg": "Arrière-plan",
        "ui_panel": "Panneau",
        "ui_bg_card": "Carte",
        "ui_bg_elevated": "Élevé",
        "ui_bg_sunken": "En retrait",
        "ui_hover": "Survol",
        "ui_border": "Bordure",
        "ui_text": "Texte",
        "ui_text_muted": "Texte atténué",
        "ui_accent": "Accent",
        "ui_accent_hover": "Accent survol",
        "ui_active": "Actif",
        "ui_bg_secondary": "Arrière-plan sec.",
        "ui_text_secondary": "Texte secondaire",
        "ui_border_strong": "Bordure forte",
        "ui_divider": "Séparateur",
        "ui_accent_text": "Texte accent",
        "ui_accent_secondary": "Accent secondaire",
        "ui_success": "Succès",
        "ui_warning": "Avertissement",
        "ui_error": "Erreur",
        "ui_info": "Info"
      }
    },
    "connections": {
      "title": "Valeurs par défaut des connexions",
      "description": "Paramètres par défaut pour les nouvelles connexions.",
      "default_username": "Nom d'utilisateur par défaut",
      "default_port": "Port par défaut",
      "groups": {
        "title": "Groupes",
        "description": "Gérer les groupes de connexions.",
        "new_placeholder": "Nouveau nom de groupe...",
        "add": "Ajouter"
      },
      "ssh_config": {
        "title": "Importer depuis la config SSH",
        "description": "Scanner ~/.ssh/config pour les hôtes.",
        "no_hosts": "Aucun hôte trouvé dans ~/.ssh/config",
        "import": "Importer",
        "select_all": "Tout sélectionner",
        "deselect_all": "Tout désélectionner",
        "import_selected": "Importer la sélection ({{count}})",
        "importing": "Importation...",
        "batch_import_success": "{{count}} hôte(s) importé(s) avec succès",
        "batch_import_skipped": "{{count}} hôte(s) ignoré(s) (déjà existant(s))",
        "already_imported": "Déjà importé"
      },
      "idle_timeout": {
        "title": "Pool de connexions",
        "description": "Configurer la gestion des connexions SSH inactives.",
        "label": "Délai d'inactivité",
        "5min": "5 minutes",
        "15min": "15 minutes",
        "30min": "30 minutes (par défaut)",
        "1hr": "1 heure",
        "never": "Jamais (maintenir la connexion)",
        "hint": "Les connexions SSH sans terminaux ouverts seront déconnectées après cette période. Définissez sur « Jamais » pour maintenir les connexions indéfiniment.",
        "save_failed": "Échec de la sauvegarde du délai d'inactivité"
      }
    },
    "ssh_keys": {
      "title": "Clés SSH",
      "description": "Gérer les clés SSH locales détectées dans ~/.ssh/",
      "encrypted": "Chiffré",
      "no_keys": "Aucune clé trouvée à l'emplacement par défaut."
    },
    "ai": {
      "title": "OxideSens",
      "description": "Configurer l'API compatible OpenAI et les limites de contexte.",
      "general": "Général",
      "enable": "Activer les fonctionnalités IA",
      "enable_hint": "Activer le chat en ligne et l'analyse du contexte",
      "privacy_notice": "Avis de confidentialité",
      "privacy_text": "Toutes les requêtes sont initiées localement. Les clés API sont stockées dans le trousseau système. Seul le contexte de terminal sélectionné est envoyé au point de terminaison configuré.",
      "provider_settings": "Paramètres du fournisseur",
      "provider_settings_summary": "{{count}} fournisseurs configurés",
      "base_url": "URL de base",
      "model": "Modèle",
      "api_key": "Clé API",
      "api_key_stored": "Stockée de manière sécurisée dans le trousseau système.",
      "remove": "Supprimer",
      "remove_confirm": "Supprimer la clé API ?",
      "remove_failed": "Échec de la suppression de la clé API : {{error}}",
      "save": "Enregistrer",
      "saving": "Enregistrement...",
      "save_failed": "Échec de l'enregistrement de la clé API : {{error}}",
      "context_controls": "Contrôles de contexte",
      "max_context": "Longueur max du contexte",
      "max_context_hint": "Nombre maximum de caractères à envoyer pour l'analyse.",
      "buffer_history": "Historique du tampon",
      "buffer_history_hint": "Nombre de lignes de sortie du terminal à inclure.",
      "chars_2000": "2 000 car. (~500 tokens)",
      "chars_4000": "4 000 car. (~1 000 tokens)",
      "chars_8000": "8 000 car. (~2 000 tokens)",
      "chars_16000": "16 000 car. (~4 000 tokens)",
      "chars_32000": "32 000 car. (~8 000 tokens)",
      "lines_50": "50 lignes",
      "lines_100": "100 lignes",
      "lines_200": "200 lignes",
      "lines_400": "400 lignes",
      "context_sources": "Sources de contexte",
      "context_source_ide": "Contexte IDE",
      "context_source_ide_hint": "Inclure les fichiers ouverts et les informations du projet en mode IDE dans le contexte IA.",
      "context_source_sftp": "Contexte SFTP",
      "context_source_sftp_hint": "Inclure le répertoire actuel et les fichiers sélectionnés du navigateur de fichiers dans le contexte IA.",
      "active": "Actif",
      "set_active": "Activer",
      "provider_enabled": "Activé",
      "provider_disabled": "Désactivé",
      "provider_models_summary": "{{count}} modèles",
      "provider_name": "Nom affiché",
      "default_model": "Modèle par défaut",
      "custom_provider": "Fournisseur personnalisé",
      "add_provider": "Ajouter un fournisseur",
      "provider_template": "Provider Protocol",
      "provider_template_openai_compatible": "OpenAI-compatible / Relay",
      "provider_template_deepseek": "DeepSeek",
      "provider_template_openai": "OpenAI",
      "provider_template_anthropic": "Anthropic",
      "provider_template_gemini": "Google Gemini",
      "provider_template_ollama": "Ollama / Local",
      "embedding_title": "Configuration des embeddings",
      "embedding_description": "Configurez un modèle d'embedding dédié pour la base de connaissances. Ce paramètre est distinct du modèle de chat.",
      "embedding_provider": "Fournisseur d'embedding",
      "embedding_provider_placeholder": "Sélectionner un fournisseur...",
      "embedding_provider_default": "Sélectionner automatiquement un fournisseur d'embedding",
      "embedding_model": "Modèle d'embedding",
      "remove_provider_confirm": "Supprimer le fournisseur \"{{name}}\" ?",
      "available_models": "Modèles disponibles",
      "refresh_models": "Actualiser la liste des modèles",
      "refresh_failed": "Échec de l'actualisation des modèles : {{error}}",
      "show_all_models": "Afficher les {{count}}",
      "show_fewer_models": "Afficher moins",
      "click_to_set_default": "Cliquer pour définir comme modèle par défaut",
      "system_prompt_title": "Prompt système",
      "custom_system_prompt": "Prompt système personnalisé",
      "system_prompt_placeholder": "Entrez un prompt système personnalisé... (laissez vide pour utiliser le défaut)",
      "system_prompt_hint": "Personnalisez le comportement de OxideSens. Laissez vide pour utiliser le prompt OxideSens par défaut.",
      "max_response_tokens": "Tokens de réponse max",
      "max_response_tokens_hint": "Nombre maximum de tokens que l'IA peut utiliser pour sa réponse. Laissez vide pour le calcul automatique.",
      "reasoning_title": "Raisonnement / réflexion par défaut",
      "reasoning_hint": "Utilisé lorsqu’un fournisseur ou un modèle ne le remplace pas. Les fournisseurs non compatibles ignorent ce réglage.",
      "reasoning_provider_default": "Raisonnement par défaut",
      "reasoning_inherit_global": "Hériter du global ({{value}})",
      "reasoning_inherit_provider": "Hériter du fournisseur",
      "reasoning_auto": "Auto (valeur par défaut du fournisseur)",
      "reasoning_off": "Désactivé",
      "reasoning_low": "Faible",
      "reasoning_medium": "Moyen",
      "reasoning_high": "Élevé",
      "reasoning_max": "Maximum",
      "model_reasoning_overrides": "Remplacements de raisonnement par modèle",
      "model_reasoning_overrides_hint": "Profondeur de réflexion facultative par modèle. Laissez hérité sauf si un modèle précis nécessite un comportement différent.",
      "model_reasoning_overrides_empty": "Actualisez les modèles de chaque fournisseur avant de configurer le raisonnement par modèle.",
      "model_reasoning_provider_summary": "{{count}} modèles · {{overrides}} remplacements",
      "model_context_windows": "Fenêtres de contexte du modèle",
      "model_context_windows_hint": "Remplace la taille de fenêtre de contexte détectée pour chaque modèle. Les valeurs utilisateur priment sur les résultats de l'API et les règles intégrées.",
      "model_context_windows_empty": "Actualisez les modèles de chaque fournisseur avant de configurer les fenêtres de contexte.",
      "ctx_source_user": "Valeur utilisateur",
      "ctx_source_api": "Résultat de l'API",
      "ctx_source_pattern": "Règle de motif",
      "ctx_source_name": "Règle par nom",
      "ctx_source_default": "Valeur par défaut",
      "ctx_reset": "Réinitialiser",
      "ctx_provider_summary": "{{count}} modèles · {{overrides}} remplacements",
      "tool_use": "Utilisation d'outils",
      "tool_use_enabled": "Activer l'utilisation d'outils",
      "tool_use_enabled_hint": "Permettre à l'IA d'exécuter des commandes, lire des fichiers et effectuer des actions sur les serveurs distants via Function Calling.",
      "tool_use_approve_hint": "Sélectionnez les outils que l'IA peut utiliser sans confirmation. Les outils non sélectionnés demanderont confirmation avant l'exécution.",
      "tool_use_disabled_tools_title": "{{count}} outils sont désactivés globalement",
      "tool_use_disabled_tools_hint": "Ces outils ne seront pas exposés à OxideSens. Cet état vient généralement de l'ancien sélecteur d'outils du chat ou d'un diagnostic de sécurité.",
      "tool_use_restore_disabled_tools": "Restaurer tous les outils",
      "tool_use_max_rounds": "Cycles d'outils maximum",
      "tool_use_max_rounds_hint": "Nombre maximal d'allers-retours outil/modèle par réponse avant qu'OxideSens n'arrête la boucle. Par défaut : 10.",
      "tool_use_policy_summary": "Les actions en lecture seule sont automatiques ; l'exécution, les écritures, les changements de paramètres et les transferts suivent la politique d'approbation ci-dessous.",
      "tool_policy_read_title": "Découverte en lecture seule",
      "tool_policy_read_desc": "Les cibles, l'observation du terminal, la lecture des paramètres et le rappel des préférences sont toujours autorisés automatiquement.",
      "tool_policy_execute_title": "Exécuter des commandes",
      "tool_policy_execute_desc": "Autoriser run_command sans demander à chaque fois. Les commandes destructrices nécessitent toujours une confirmation.",
      "tool_policy_interactive_title": "Entrée terminal",
      "tool_policy_interactive_desc": "Autoriser l'envoi d'entrées aux terminaux visibles, y compris Entrée et les séquences de contrôle.",
      "tool_policy_write_title": "Modifications de ressources",
      "tool_policy_write_desc": "Choisissez quelles actions d’écriture peuvent s’exécuter sans confirmation à chaque fois.",
      "tool_policy_navigation_title": "Connexions et surfaces d’application",
      "tool_policy_navigation_desc": "Contrôlez séparément si OxideSens peut connecter des cibles ou seulement ouvrir des surfaces d’interface sans demander.",
      "tool_policy_warning": "En mode Default, les commandes dangereuses nécessitent une approbation. Le mode Bypass peut ignorer cette approbation uniquement pour la conversation actuelle après confirmation explicite. Les mots de passe, invites sudo, phrases secrètes et identifiants doivent toujours être gérés par vous.",
      "tool_use_group_terminal": "Terminal & Fichiers",
      "tool_use_group_session": "Session",
      "tool_use_group_infrastructure": "Infrastructure",
      "tool_use_group_sftp": "SFTP",
      "tool_use_group_ide": "IDE",
      "tool_use_group_local_terminal": "Terminal local",
      "tool_use_group_settings": "Paramètres",
      "tool_use_group_connection_pool": "Pool de connexions",
      "tool_use_group_connection_monitor": "Moniteur connexions",
      "tool_use_group_session_manager": "Gestion sessions",
      "tool_use_group_plugin_manager": "Gestion plugins",
      "tool_use_group_tui_interaction": "Interaction TUI",
      "tool_use_group_mcp": "Serveurs MCP",
      "tool_use_group_navigation": "Navigation",
      "tool_use_group_status": "État et observabilité",
      "tool_use_group_rag": "Base de connaissances (RAG)",
      "experimental": "Expérimental",
      "tool_use_subgroup_read_only": "Lecture seule",
      "tool_use_subgroup_write": "Écriture / Exécution",
      "tool_use_approve_all": "Tout approuver",
      "tool_use_approve_none": "Tout révoquer",
      "tool_use_expand": "Déplier",
      "tool_use_collapse": "Replier",
      "tool_use_collapsed_summary": "{{approved}} / {{total}} outils approuvés pour l’utilisation automatique",
      "tool_use_write_warning": "Les outils d'écriture donnent à l'IA des capacités d'exécution de commandes et de modification de fichiers. Activez uniquement sur des serveurs de confiance.",
      "memory_title": "Mémoire / préférences",
      "memory_enabled": "Inclure la mémoire enregistrée",
      "memory_enabled_hint": "Injecte ces préférences durables dans les conversations IA. Le contenu reste local jusqu’à l’envoi d’un message.",
      "memory_placeholder": "- Préférer des réponses concises en français.\n- Expliquer le plan avant les gros changements de code.\n- Je suis attentif aux performances du rendu terminal et de SSH.",
      "memory_hint": "À utiliser uniquement pour des préférences stables. Évitez les secrets, mots de passe, jetons ou faits ponctuels. Les instructions de la conversation actuelle restent toujours prioritaires.",
      "memory_clear": "Effacer la mémoire",
      "tool_policy_read_auto": "La découverte en lecture seule est toujours autorisée automatiquement",
      "tool_policy_execute_run_command": "Exécuter des commandes non destructives",
      "tool_policy_interactive_send_input": "Envoyer du texte, Entrée et des séquences de contrôle",
      "tool_policy_connect_target": "Connecter des cibles SSH enregistrées",
      "tool_policy_open_surface": "Ouvrir des onglets et surfaces de l’application",
      "tool_policy_write_settings": "Modifier les paramètres",
      "tool_policy_write_file": "Écrire des fichiers distants/locaux",
      "tool_policy_transfer_resource": "Démarrer des transferts SFTP",
      "tool_policy_remember_preference": "Enregistrer des préférences mémoire IA durables",
      "execution_profiles": "Execution Profiles",
      "execution_profiles_hint": "Bundle model, reasoning, tool policy, context chips, and memory/RAG preferences.",
      "profile_add": "New profile",
      "profile_default": "Default",
      "profile_set_default": "Set default",
      "profile_inherit_provider": "Use active provider",
      "profile_inherit_model": "Use provider default"
    },
    "sftp": {
      "title": "Transfert SFTP",
      "description": "Configurer le comportement et les performances du transfert de fichiers.",
      "concurrent": "Transferts simultanés max",
      "concurrent_hint": "Nombre maximum de transferts de fichiers simultanés (1-10)",
      "directory_parallelism": "Parallélisme des transferts de dossiers",
      "directory_parallelism_hint": "Nombre de fichiers transférés en même temps lors de l'envoi ou du téléchargement récursif d'un dossier. Repasse en série lorsque la limitation de débit est activée.",
      "bandwidth": "Limitation de bande passante",
      "bandwidth_hint": "Limiter la vitesse de téléversement/téléchargement par transfert",
      "speed_limit": "Limite de vitesse (Ko/s)",
      "conflict": "Action par défaut en cas de conflit",
      "conflict_hint": "Comportement lorsque le fichier de destination existe",
      "conflict_ask": "Demander à chaque fois",
      "conflict_overwrite": "Toujours écraser",
      "conflict_skip": "Toujours ignorer",
      "conflict_rename": "Garder les deux (renommer)",
      "transfer_count_one": "{{count}} transfert",
      "transfer_count_other": "{{count}} transferts"
    },
    "ide": {
      "title": "Mode IDE (Mini)",
      "description": "Configurer le comportement de l'éditeur de code intégré.",
      "auto_save": "Sauvegarde automatique",
      "auto_save_hint": "Sauvegarder automatiquement les fichiers lors du changement d'onglet ou de la perte du focus.",
      "word_wrap": "Retour à la ligne",
      "word_wrap_hint": "Replier les longues lignes au lieu de défiler horizontalement.",
      "agent_title": "Agent distant",
      "agent_description": "OxideTerm peut déployer un agent binaire léger sur les hôtes distants pour améliorer les performances IDE. L'agent fournit des opérations de fichiers natives POSIX, la surveillance en temps réel et une recherche rapide — le tout s'exécutant localement sur le serveur distant.",
      "agent_feature_atomic": "Écriture atomique de fichiers (aucune perte de données en cas d'interruption réseau)",
      "agent_feature_watch": "Surveillance en temps réel via inotify (rafraîchissement instantané)",
      "agent_feature_hash": "Détection de conflits basée sur le hachage (empêche l'écrasement des modifications externes)",
      "agent_feature_search": "Recherche grep côté serveur et chargement profond de l'arborescence",
      "agent_supported": "Inclus : x86_64, aarch64 (Linux)",
      "agent_auto_hint": "Lors de l'ouverture du mode IDE sur les hôtes Linux x86_64/aarch64 pris en charge, le déploiement suit la politique ci-dessous — une confirmation vous sera demandée lors de la première utilisation (ou déploiement automatique si défini sur 'Toujours activer').",
      "agent_extra_hint": "Les binaires précompilés ne sont plus fournis pour les autres architectures. Vous devez compiler l'agent vous-même depuis les sources, puis le téléverser manuellement vers ~/.oxideterm/oxideterm-agent sur l'hôte distant.",
      "agent_transparency_title": "Transparence et confidentialité",
      "agent_path_label": "Chemin de déploiement",
      "agent_path_detail": "Le binaire de l'agent est placé à ~/.oxideterm/oxideterm-agent dans le répertoire personnel de l'utilisateur distant.",
      "agent_lifecycle_label": "Cycle de vie",
      "agent_lifecycle_detail": "Déployé à la première ouverture du mode IDE et persiste entre les sessions. Automatiquement mis à jour lorsqu'une nouvelle version est disponible. Peut être supprimé en toute sécurité — il sera redéployé si nécessaire.",
      "agent_privacy_label": "Confidentialité",
      "agent_privacy_detail": "L'agent est un binaire autonome qui communique exclusivement avec OxideTerm via la connexion SSH existante (stdio). Il n'établit aucune connexion réseau tierce, n'envoie aucune télémétrie et ne collecte aucune donnée.",
      "editor_typography": "Typographie de l'éditeur",
      "editor_typography_hint": "Personnaliser la taille de police et l'interligne de l'éditeur de code. Laisser vide pour suivre les paramètres du terminal.",
      "font_size": "Taille de police",
      "font_size_hint": "Taille de police de l'éditeur (px). Vide = suivre le terminal.",
      "line_height": "Hauteur de ligne",
      "line_height_hint": "Interligne de l'éditeur. Vide = suivre le terminal.",
      "agent_mode_label": "Politique de déploiement de l'agent",
      "agent_mode_hint": "Contrôler si OxideTerm déploie l'agent sur les hôtes distants lors de l'ouverture du mode IDE.",
      "agent_mode_ask": "Demander à chaque fois",
      "agent_mode_enabled": "Toujours activer",
      "agent_mode_disabled": "SFTP uniquement"
    },
    "ai_confirm": {
      "title": "Activer les fonctionnalités IA ?",
      "description": "Confirmer l'activation des fonctionnalités IA pour l'analyse du contexte du terminal.",
      "intro": "Cela permettra à OxideTerm d'envoyer le contexte de terminal sélectionné à votre point de terminaison IA configuré.",
      "point_local": "Toutes les requêtes sont initiées directement depuis votre machine locale",
      "point_no_server": "Aucun serveur intermédiaire n'est utilisé (sauf configuration contraire)",
      "point_context": "Seul le texte que vous sélectionnez ou interrogez spécifiquement est envoyé à l'API",
      "cancel": "Annuler",
      "enable": "Activer"
    },
    "help": {
      "title": "Aide et À propos",
      "description": "Informations sur l'application, raccourcis clavier et ressources.",
      "version_info": "Informations de version",
      "app_name": "Application",
      "version": "Version",
      "tech_stack": "Stack technologique",
      "shortcuts": "Raccourcis clavier",
      "shortcut_new_tab": "Nouvel onglet terminal",
      "shortcut_shell_launcher": "Lanceur Shell",
      "shortcut_close_tab": "Fermer l'onglet",
      "shortcut_find": "Rechercher dans le terminal",
      "shortcut_ai_panel": "OxideSens",
      "shortcut_split_h": "Division horizontale",
      "shortcut_split_v": "Division verticale",
      "shortcut_close_pane": "Fermer le panneau",
      "shortcut_nav_pane": "Naviguer entre panneaux",
      "shortcut_next_tab": "Onglet suivant",
      "shortcut_prev_tab": "Onglet précédent",
      "shortcut_go_to_tab": "Aller à l'onglet 1-9",
      "shortcut_new_connection": "Nouvelle connexion SSH",
      "shortcut_command_palette": "Palette de commandes",
      "shortcut_toggle_sidebar": "Basculer la barre latérale",
      "shortcut_settings": "Ouvrir les paramètres",
      "shortcut_zen_mode": "Basculer le mode Zen",
      "shortcut_close_other_tabs": "Fermer les autres onglets",
      "shortcut_nav_back": "Retour",
      "shortcut_nav_forward": "Avancer",
      "shortcut_font_increase": "Augmenter la taille de police",
      "shortcut_font_decrease": "Réduire la taille de police",
      "shortcut_font_reset": "Réinitialiser la taille de police",
      "shortcut_recording": "Basculer l'enregistrement",
      "category_palette": "Palette de commandes",
      "shortcut_event_log": "Journal d'événements",
      "shortcut_ai_sidebar": "Barre latérale IA",
      "shortcut_broadcast": "Mode diffusion",
      "category_app": "Application",
      "category_terminal": "Terminal",
      "category_split": "Panneau divisé",
      "category_file_manager": "Gestionnaire de fichiers",
      "category_editor": "Éditeur",
      "category_sftp": "Transfert de fichiers SFTP",
      "shortcut_sftp_enter_dir": "Ouvrir le répertoire",
      "shortcut_sftp_upload": "Téléverser",
      "shortcut_sftp_download": "Télécharger",
      "shortcut_close_panel": "Fermer le panneau",
      "shortcut_select_all": "Tout sélectionner",
      "shortcut_copy": "Copier",
      "shortcut_cut": "Couper",
      "shortcut_paste": "Coller",
      "shortcut_rename": "Renommer",
      "shortcut_delete": "Supprimer",
      "shortcut_quick_look": "Coup d'œil",
      "shortcut_open": "Ouvrir/Entrer",
      "shortcut_save": "Enregistrer",
      "shortcut_close": "Fermer",
      "resources": "Ressources",
      "github": "Dépôt GitHub",
      "issues": "Signaler un problème",
      "disclaimer": "Avertissement",
      "website": "Site officiel",
      "documentation": "Documentation",
      "diagnostics": "Diagnostics",
      "open_logs": "Répertoire des journaux",
      "open_logs_hint": "Ouvrir le répertoire des journaux de l'application dans le gestionnaire de fichiers",
      "open": "Ouvrir",
      "license": "OxideTerm est un logiciel libre sous licence GNU General Public License v3.0 (GPL-3.0).",
      "copyright": "Copyright © {{year}} {{author}}",
      "shortcut_keyboard_shortcuts": "Raccourcis clavier",
      "check_update": "Vérifier les mises à jour",
      "checking": "Vérification des mises à jour...",
      "up_to_date": "Vous êtes à jour",
      "update_available": "Nouvelle version disponible",
      "update_available_toast": "Une nouvelle version est disponible. Allez dans Paramètres → Aide pour mettre à jour.",
      "download_install": "Télécharger et installer",
      "downloading": "Téléchargement de la mise à jour...",
      "ready_to_restart": "Mise à jour installée — redémarrez pour appliquer",
      "restart_now": "Redémarrer maintenant",
      "update_error": "Échec de la vérification des mises à jour",
      "retry": "Réessayer",
      "release_notes": "Notes de version",
      "no_changelog": "Aucune note de version disponible",
      "skip_version": "Ignorer cette version",
      "cancel": "Annuler",
      "verifying": "Vérification...",
      "installing": "Installation...",
      "skipped_version": "Ignorée : v{{version}}",
      "clear_skip": "Effacer",
      "portable_mode": "Mode portable",
      "portable_mode_hint": "Cette session utilise le flux d'amorçage portable et conserve ses données à côté de l'exécutable.",
      "updates_manual_only": "Mises à jour manuelles uniquement",
      "updates_manual_only_hint": "La vérification automatique des mises à jour et l'installation intégrée sont désactivées en mode portable. Pour mettre à jour, remplacez tout le dossier portable par une version plus récente d'OxideTerm.",
      "update_channel": "Canal de mise à jour",
      "update_channel_hint": "Le canal bêta reçoit les versions pré-release",
      "channel_stable": "Stable",
      "channel_beta": "Bêta",
      "memory_diagnostics_title": "Memory Diagnostics",
      "memory_diagnostics_hint": "Break down process memory, WebView estimates, terminal buffers, viewer caches, AI/tool output, and GPU surfaces. Sampling runs only while this panel is open.",
      "memory_recording": "Recording",
      "memory_refresh": "Refresh",
      "memory_export": "Export report",
      "memory_rss": "Process RSS",
      "memory_rss_hint": "Resident memory reported by the operating system.",
      "memory_webview_heap": "WebView heap",
      "memory_webview_heap_hint": "JavaScript heap when the WebView exposes it.",
      "memory_scrollback": "Scrollback buffers",
      "memory_scrollback_hint": "{{count}} hot buffers tracked by Rust.",
      "memory_frontend_estimate": "Frontend estimate",
      "memory_frontend_estimate_hint": "Provider estimates and heap when available.",
      "memory_timeline": "Memory timeline",
      "memory_breakdown": "Breakdown / session heatmap",
      "memory_gpu_enabled": "WebGPU experiment enabled",
      "memory_canvas2d": "Canvas2D fallback",
      "memory_warning_rss_high": "Process RSS is above 1 GB. Check terminal count, scrollback buffers, and loaded AI/tool output.",
      "memory_warning_scrollbuffer_near_cap": "One or more ScrollBuffers are near their max line cap.",
      "memory_warning_frontend_high_risk": "A frontend provider reports high memory pressure.",
      "memory_warning_gpu_surfaces_many": "Many GPU/Canvas surfaces are alive. Closed views may be leaking renderers.",
      "memory_source": "Source",
      "memory_objects": "Objects",
      "memory_estimate": "Estimate",
      "memory_risk": "Risk",
      "memory_risk_low": "Low",
      "memory_risk_medium": "Medium",
      "memory_risk_high": "High",
      "memory_no_providers": "No frontend diagnostics providers reported data yet.",
      "memory_export_warning": "Exported diagnostics contain counts, estimates, paths or session identifiers only. Terminal output, AI message text, API keys and environment values are not included.",
      "memory_open": "Open",
      "memory_close": "Close"
    },
    "errors": {
      "create_group_failed": "Échec de la création du groupe : {{error}}",
      "delete_group_failed": "Échec de la suppression du groupe : {{error}}",
      "import_success": "\"{{name}}\" importé avec succès comme connexion enregistrée !",
      "import_failed": "Échec de l'importation de l'hôte : {{error}}"
    },
    "mcp": {
      "title": "Serveurs MCP",
      "description": "Connectez-vous aux serveurs Model Context Protocol pour étendre les capacités de l'IA avec des outils externes.",
      "add_server": "Ajouter un serveur",
      "no_servers": "Aucun serveur MCP configuré. Ajoutez un serveur pour commencer.",
      "status_disconnected": "Déconnecté",
      "status_connecting": "Connexion",
      "status_connected": "Connecté",
      "status_error": "Erreur",
      "connect": "Connecter",
      "disconnect": "Déconnecter",
      "connecting": "Connexion...",
      "refresh_tools": "Actualiser les outils",
      "remove": "Supprimer le serveur",
      "tools_count": "{{count}} outils disponibles",
      "add_server_title": "Ajouter un serveur MCP",
      "add_server_description": "Configurer une nouvelle connexion à un serveur MCP.",
      "server_name": "Nom du serveur",
      "transport": "Transport",
      "command": "Commande",
      "args": "Arguments (un par ligne)",
      "url": "URL du serveur",
      "cancel": "Annuler",
      "add": "Ajouter",
      "auth_token": "Jeton d'authentification",
      "auth_token_placeholder": "Jeton Bearer (optionnel)",
      "fallback_legacy_sse": "Repli SSE hérité",
      "env_vars": "Variables d'environnement",
      "env_key_placeholder": "Nom de variable",
      "env_value_placeholder": "Valeur",
      "add_env_var": "Ajouter une variable",
      "auth_header_name": "En-tête d'authentification",
      "auth_header_mode": "Mode d'authentification",
      "auth_header_mode_bearer": "Jeton Bearer",
      "auth_header_mode_raw": "Jeton brut",
      "auth_header_mode_none": "Aucun en-tête d'authentification",
      "extra_headers": "En-têtes supplémentaires",
      "header_key_placeholder": "Nom d'en-tête",
      "header_value_placeholder": "Valeur d'en-tête",
      "add_header": "Ajouter un en-tête",
      "extra_headers_hint": "Les en-têtes supplémentaires sont stockés comme paramètres ordinaires. Placez les secrets dans le champ du jeton d'authentification.",
      "retry_on_disconnect": "Reconnexion automatique"
    },
    "reconnect": {
      "title": "Reconnexion automatique",
      "description": "Configurer le comportement de reconnexion automatique lorsque les connexions SSH sont perdues.",
      "enabled": "Activer la reconnexion automatique",
      "enabled_hint": "Tenter automatiquement de restaurer les connexions lorsque des interruptions réseau sont détectées.",
      "strategy": "Stratégie de réessai",
      "max_attempts": "Tentatives maximum",
      "max_attempts_hint": "Nombre maximum de tentatives de reconnexion avant d'abandonner.",
      "base_delay": "Délai de réessai de base",
      "base_delay_hint": "Temps d'attente initial avant la première tentative.",
      "max_delay": "Délai de réessai maximum",
      "max_delay_hint": "Limite supérieure du délai avec backoff exponentiel.",
      "formula_hint": "Les réessais utilisent un backoff exponentiel avec gigue : chaque tentative suivante attend plus longtemps (jusqu'au délai maximum), avec une petite variation aléatoire pour éviter l'effet de troupeau."
    },
    "knowledge": {
      "title": "Base de connaissances",
      "description": "Importez et gérez la documentation opérationnelle pour la recherche assistée par IA. Les documents sont indexés et peuvent être référencés automatiquement lors du chat OxideSens.",
      "collections": "Collections",
      "create_collection": "Nouvelle collection",
      "create_description": "Créez une nouvelle collection de documents. Les collections regroupent les documents connexes.",
      "collection_name": "Nom de la collection",
      "collection_name_placeholder": "ex. Guides de déploiement",
      "scope": "Portée",
      "scope_global": "Globale",
      "scope_connection": "Spécifique à la connexion",
      "no_collections": "Aucune collection. Créez-en une pour commencer à importer des documents.",
      "import_files": "Importer des fichiers",
      "generate_embeddings": "Générer les embeddings",
      "semantic_search": "Recherche sémantique",
      "semantic_search_description": "Recherche vectorielle optionnelle pour la base de connaissances. La recherche par mots-clés fonctionne sans embeddings.",
      "keyword_search_ready": "Recherche par mots-clés disponible",
      "semantic_search_using": "Recherche sémantique : {{provider}} · {{model}}",
      "semantic_search_not_configured": "Recherche sémantique non configurée",
      "semantic_search_missing_model": "Modèle d'embedding manquant",
      "embedding_api_key_checking": "Vérification de la clé API...",
      "embedding_api_key_missing": "Clé API manquante",
      "configure_embeddings": "Configurer",
      "auto_embedding_provider": "Sélectionner automatiquement un fournisseur d'embedding",
      "embedding_provider_unsupported": "Le fournisseur sélectionné ne prend pas en charge les embeddings",
      "reindex": "Reconstruire l'index",
      "no_documents": "Aucun document dans cette collection. Importez des fichiers Markdown ou texte pour commencer.",
      "chunks": "fragments",
      "stat_docs": "documents",
      "stat_chunks": "fragments",
      "stat_embedded": "intégrés",
      "stat_updated": "Mis à jour",
      "delete_confirm_title": "Confirmer la suppression",
      "delete_collection_confirm": "Êtes-vous sûr de vouloir supprimer la collection \"{{name}}\" ? Tous les documents et index seront supprimés.",
      "delete_document_confirm": "Êtes-vous sûr de vouloir supprimer le document \"{{name}}\" ?",
      "error_create_collection": "Échec de la création de la collection",
      "error_import": "Échec de l'importation des fichiers",
      "error_generate_embeddings": "Échec de la génération des embeddings",
      "error_reindex": "Échec de la reconstruction de l'index",
      "error_delete": "Échec de la suppression",
      "error_no_embedding_support": "Le fournisseur sélectionné ne prend pas en charge les embeddings. Configurez un fournisseur d'embedding dans les paramètres de la base de connaissances.",
      "error_no_embedding_model": "Aucun modèle d'embedding configuré. Définissez un modèle d'embedding dans les paramètres de la base de connaissances.",
      "error_no_embedding_api_key": "Aucune clé API n'est configurée pour le fournisseur d'embedding sélectionné.",
      "new_document": "Nouveau document",
      "new_document_description": "Créer un document vide que vous pouvez modifier dans un éditeur externe.",
      "new_document_title": "Titre du document",
      "new_document_title_placeholder": "ex : Guide de configuration serveur",
      "new_document_format": "Format",
      "edit_externally": "Modifier dans un éditeur externe",
      "sync_changes": "Synchroniser les modifications de l'éditeur externe",
      "doc_updated": "Document mis à jour et réindexé",
      "doc_no_changes": "Aucune modification détectée",
      "error_open_external": "Impossible d'ouvrir l'éditeur externe",
      "error_sync": "Échec de la synchronisation des modifications",
      "error_create_document": "Échec de la création du document",
      "embedding_partial_failure": "{{failed}} sur {{total}} fragments n'ont pas pu être intégrés",
      "stats_stale": "Les statistiques peuvent ne pas être à jour",
      "file_filter_documents": "Documents"
    },
    "keybindings": {
      "title": "Raccourcis clavier",
      "description": "Personnaliser les raccourcis clavier pour toutes les actions.",
      "intl_keyboard_note": "Sur les dispositions de clavier internationales (ex. français, allemand), les raccourcis avec symboles (comme ⌘/Ctrl+[ ] \\ |) sont automatiquement normalisés pour la compatibilité multi-disposition. Pour lier des actions spécifiques à Alt, veuillez utiliser des touches non-symboles.",
      "search_placeholder": "Rechercher des actions...",
      "scope_all": "Tous",
      "scope_global": "Global",
      "scope_terminal": "Terminal",
      "scope_split": "Volet fractionné",
      "scope_palette": "Palette de commandes",
      "column_action": "Action",
      "column_shortcut": "Raccourci",
      "column_scope": "Portée",
      "record_prompt": "Appuyez sur une combinaison de touches...",
      "record_cancel": "Appuyez sur Échap pour annuler",
      "conflict_warning": "Conflit avec \"{{action}}\" dans la portée {{scope}}",
      "override_anyway": "Attribuer quand même",
      "reset_to_default": "Réinitialiser",
      "reset_all": "Tout réinitialiser",
      "reset_all_confirm": "Réinitialiser tous les raccourcis clavier à leurs valeurs par défaut ? Cette action est irréversible.",
      "modified": "Modifié",
      "default_value": "Par défaut",
      "no_results": "Aucune action correspondante trouvée",
      "import": "Importer",
      "export": "Exporter",
      "import_success": "Raccourcis clavier importés avec succès",
      "import_error": "Échec de l'importation des raccourcis : {{error}}",
      "export_success": "Raccourcis clavier exportés avec succès",
      "export_error": "Échec de l'exportation des raccourcis",
      "import_invalid": "Format de fichier de raccourcis invalide",
      "actions": {
        "app.newTerminal": "Nouvel onglet terminal",
        "app.shellLauncher": "Lanceur de shell",
        "app.closeTab": "Fermer l'onglet",
        "app.closeOtherTabs": "Fermer les autres onglets",
        "app.newConnection": "Nouvelle connexion SSH",
        "app.settings": "Ouvrir les paramètres",
        "app.toggleSidebar": "Basculer la barre latérale",
        "app.commandPalette": "Palette de commandes",
        "app.zenMode": "Basculer le mode zen",
        "app.nextTab": "Onglet suivant",
        "app.prevTab": "Onglet précédent",
        "app.navBack": "Retour",
        "app.navForward": "Avancer",
        "app.goToTab1": "Aller à l'onglet 1",
        "app.goToTab2": "Aller à l'onglet 2",
        "app.goToTab3": "Aller à l'onglet 3",
        "app.goToTab4": "Aller à l'onglet 4",
        "app.goToTab5": "Aller à l'onglet 5",
        "app.goToTab6": "Aller à l'onglet 6",
        "app.goToTab7": "Aller à l'onglet 7",
        "app.goToTab8": "Aller à l'onglet 8",
        "app.goToTab9": "Aller à l'onglet 9",
        "app.fontIncrease": "Augmenter la taille de police",
        "app.fontDecrease": "Réduire la taille de police",
        "app.fontReset": "Réinitialiser la taille de police",
        "app.showShortcuts": "Afficher les raccourcis",
        "terminal.search": "Rechercher dans le terminal",
        "terminal.paste": "Coller dans le terminal",
        "terminal.aiPanel": "Panneau OxideSens",
        "terminal.recording": "Basculer l'enregistrement",
        "terminal.closePanel": "Fermer le panneau",
        "split.horizontal": "Division horizontale",
        "split.vertical": "Division verticale",
        "split.closePane": "Fermer le volet",
        "split.navLeft": "Aller au volet gauche",
        "split.navRight": "Aller au volet droit",
        "palette.eventLog": "Journal d'événements",
        "palette.aiSidebar": "Barre latérale IA",
        "palette.broadcast": "Mode diffusion"
      }
    }
  }
}
