{
  "terminal": {
    "local": {
      "title": "Terminal local",
      "shell": "Shell : {{shell}}",
      "shell_unknown": "Inconnu",
      "session_ended": "Session terminée",
      "exit_code": "Le processus s'est terminé avec le code : {{code}}",
      "process_terminated": "Processus terminé"
    },
    "search": {
      "visible_buffer": "Tampon visible",
      "deep_history": "Historique profond",
      "deep_history_tooltip": "Rechercher dans tout l'historique de la session (au-delà du défilement)",
      "placeholder_active": "Search visible terminal...",
      "placeholder_deep": "Search full history...",
      "searching": "Recherche en cours...",
      "searching_archived": "{{count}} correspondance(s) trouvée(s) jusqu'ici ({{ms}} ms), recherche dans l'historique archivé...",
      "error": "Erreur",
      "no_results_history": "Aucun résultat dans l'historique",
      "matches_count": "{{count}} correspondance(s) ({{ms}} ms)",
      "no_results": "Aucun résultat",
      "matches_exceeded": "{{count}}+ correspondances",
      "previous_match": "Correspondance précédente (Maj+Entrée)",
      "next_match": "Correspondance suivante (Entrée)",
      "search_full_history": "Search full history (Enter)",
      "search_button": "Rechercher",
      "close": "Fermer (Échap)",
      "case_sensitive": "Respecter la casse",
      "regex": "Utiliser une expression régulière",
      "whole_word": "Mot entier",
      "click_to_jump": "Cliquez pour accéder à l'emplacement de la correspondance",
      "line_number": "Ligne {{line}}",
      "recent_match": "Récent",
      "archived_match": "Archivé",
      "archived_preview": "Aperçu de l'archive",
      "showing_first": "Affichage des 100 premiers sur {{total}} correspondances",
      "partial_results": "Résultats partiels : certains segments archivés n'ont pas pu être parcourus.",
      "no_matches_in_history": "Aucune correspondance trouvée dans l'historique de la session",
      "visible_terminal": "Visible terminal",
      "full_history": "Full history",
      "visible_terminal_hint": "Search the main terminal visible scrollback.",
      "full_history_hint": "Search backend hot history and archived excerpts. Results open in Scrollback Viewer.",
      "results_map": "Results map",
      "results_map_hint": "Click to jump"
    },
    "ai": {
      "title": "OxideSens",
      "api_key_required": "Clé API requise",
      "api_key_hint": "Configurez votre clé API dans Paramètres → IA pour utiliser cette fonctionnalité.",
      "context": "Contexte :",
      "context_selection": "Sélection",
      "context_visible": "Visible",
      "context_none": "Aucun",
      "tokens_estimate": "~{{count}} tokens",
      "prompt_placeholder": "Demandez de l'aide à l'IA pour les commandes...",
      "inline_placeholder": "Demander une commande à l'IA...",
      "selection_placeholder": "Question sur la sélection...",
      "to_send": "envoyer",
      "to_insert": "insérer",
      "to_run": "exécuter",
      "generating": "Génération...",
      "regenerate": "Réessayer",
      "send_shortcut": "pour envoyer",
      "close_shortcut": "pour fermer",
      "copy": "Copier",
      "copied": "Copié",
      "insert": "Insérer",
      "execute": "Exécuter"
    },
    "paste": {
      "title": "Lignes multiples détectées ({{count}} lignes)",
      "more_lines": "... {{count}} lignes supplémentaires",
      "confirm": "Confirmer",
      "cancel": "Annuler",
      "paste": "Coller"
    },
    "ssh": {
      "initialized": "OxideTerm initialisé",
      "connecting": "Connexion à {{user}}@{{host}}...",
      "connected": "Connecté.",
      "reconnecting": "Reconnexion à {{user}}@{{host}}...",
      "reconnected": "Reconnecté avec succès !",
      "connection_closed": "Connexion fermée.",
      "connection_closed_code": "Connexion fermée (code : {{code}})",
      "ws_error": "Erreur WebSocket : {{error}}",
      "ws_reconnect_error": "Erreur de reconnexion WebSocket",
      "ws_establish_failed": "Échec de l'établissement du WebSocket : {{error}}",
      "server_error": "Erreur serveur : {{error}}",
      "no_ws_url": "Aucune URL WebSocket disponible pour la session.",
      "connection_lost": "[OxideTerm] Connexion perdue. Reconnexion en cours...",
      "connection_lost_reconnect": "[OxideTerm] Connexion SSH perdue. Veuillez vous reconnecter.",
      "attempting_reconnect": "[OxideTerm] Tentative de reconnexion...",
      "link_restored": "[OxideTerm] Lien restauré. Session shell réinitialisée.",
      "connection_failed": "[OxideTerm] La connexion a définitivement échoué.",
      "history_match": "Correspondance historique (Ligne {{line}})",
      "buffer_empty": "⚠ Tampon vide - affichage de l'instantané en cache :",
      "buffer_rotated": "⚠ Tampon pivoté - le contexte en direct peut ne pas correspondre. Affichage du cache + actuel :",
      "cached_match": "Correspondance en cache :",
      "current_line": "Ligne actuelle à l'index {{index}} :",
      "fetch_context_failed": "⚠ Échec de la récupération du contexte - affichage de l'instantané en cache :"
    },
    "trzsz": {
      "select_upload_directory_title": "Sélectionner un dossier à envoyer",
      "select_upload_directory_description": "Choisissez le répertoire local à envoyer via trzsz.",
      "select_upload_files_title": "Sélectionner des fichiers à envoyer",
      "select_upload_files_description": "Choisissez un ou plusieurs fichiers locaux pour ce transfert trzsz.",
      "select_download_directory_title": "Choisir où enregistrer les téléchargements",
      "select_download_directory_description": "Choisissez un dossier local pour les fichiers trzsz reçus.",
      "cancelled_title": "Transfert annulé",
      "cancelled_description": "Le transfert trzsz a été annulé avant la fin.",
      "completed_title": "Transfert terminé",
      "completed_description": "Le transfert trzsz s'est terminé avec succès.",
      "failed_title": "Échec du transfert",
      "failed_description": "OxideTerm n'a pas pu terminer le transfert trzsz.",
      "connection_lost_title": "Transfert interrompu par perte de connexion",
      "connection_lost_description": "La connexion SSH a changé alors qu'un transfert trzsz était actif. Relancez le transfert après vous être reconnecté.",
      "partial_cleanup_title": "Nettoyage du transfert incomplet",
      "partial_cleanup_description": "L'état temporaire du transfert n'a pas pu être entièrement nettoyé. Vous pouvez continuer à utiliser le terminal, mais des fichiers de transfert obsolètes peuvent subsister.",
      "version_mismatch_title": "Incompatibilité du protocole trzsz",
      "version_mismatch_description": "L'environnement d'exécution trzsz distant est incompatible avec cette build d'OxideTerm.",
      "path_invalid_title": "Chemin de téléchargement rejeté",
      "path_invalid_description": "OxideTerm a bloqué ce transfert trzsz parce que le chemin sélectionné était invalide ou situé en dehors de la racine de téléchargement approuvée.",
      "symlink_not_supported_title": "Transfert de lien symbolique non pris en charge",
      "symlink_not_supported_description": "OxideTerm n'écrit pas de liens symboliques via le bridge trzsz actuel.",
      "conflict_detected_title": "Conflit de fichiers détecté",
      "conflict_detected_description": "Un fichier ou dossier portant le même nom existe déjà à la destination.",
      "directory_not_allowed_title": "Transfert de répertoire désactivé",
      "directory_not_allowed_description": "Les paramètres actuels du terminal n'autorisent pas les transferts de répertoire trzsz.",
      "max_file_count_title": "Trop de fichiers sélectionnés",
      "max_file_count_description": "Ce transfert comprend {{selected}} fichiers, ce qui dépasse la limite configurée de {{max}}.",
      "max_total_bytes_title": "Limite de taille de transfert dépassée",
      "max_total_bytes_description": "Ce transfert nécessite {{selected}}, ce qui dépasse la limite configurée de {{max}}.",
      "disabled_title": "trzsz n'est pas activé",
      "disabled_description": "Le serveur distant a initié un transfert trzsz, mais le transfert de fichiers intégré est désactivé. Activez-le dans Paramètres → Terminal pour utiliser trzsz."
    },
    "standby": {
      "connection_lost": "Connexion perdue",
      "reconnecting": "Reconnexion en cours...",
      "input_locked": "L'entrée est verrouillée pendant la reconnexion"
    },
    "disconnected": {
      "message": "Connexion déconnectée",
      "retry": "Reconnecter"
    },
    "pane": {
      "split_horizontal": "Diviser horizontalement",
      "split_vertical": "Diviser verticalement",
      "close_pane": "Fermer le volet",
      "max_panes_reached": "Nombre maximum de volets atteint ({{max}})",
      "focus_next": "Volet suivant",
      "focus_previous": "Volet précédent",
      "cannot_close_last": "Impossible de fermer le dernier volet",
      "ssh_split_coming_soon": "Division du terminal SSH bientôt disponible"
    },
    "typeLocal": "LOCAL",
    "typeSsh": "SSH",
    "mouse_mode_hint": "⇧ Shift + glisser pour sélectionner",
    "broadcast": {
      "broadcast_input": "Diffusion d'entrée",
      "select_targets": "Sélectionner les cibles",
      "select_all": "Tout sélectionner",
      "deselect_all": "Tout désélectionner",
      "no_targets": "Aucun autre terminal disponible",
      "target_count": "{{count}} cible(s)",
      "local_terminal": "Terminal local",
      "enabled": "Diffusion activée",
      "disabled": "Diffusion désactivée",
      "current": "Actuel"
    },
    "recording": {
      "start": "Enregistrer la session",
      "stop": "Arrêter l'enregistrement",
      "pause": "Pause",
      "resume": "Reprendre",
      "discard": "Abandonner",
      "save": "Enregistrer",
      "recording": "REC",
      "paused": "EN PAUSE",
      "elapsed": "{{time}}",
      "events": "{{count}} événements",
      "confirm_stop_title": "Arrêter l'enregistrement?",
      "confirm_stop_message": "Enregistrer comme fichier asciicast (.cast)?",
      "confirm_discard_title": "Abandonner l'enregistrement?",
      "confirm_discard_message": "Ceci abandonnera l'enregistrement en cours. Cette action est irréversible.",
      "saved": "Enregistrement sauvegardé",
      "open_cast": "Ouvrir un fichier Cast",
      "security_warning": "Les enregistrements peuvent contenir des données sensibles (mots de passe, tokens). Vérifiez avant de partager.",
      "player": {
        "title": "Lecteur Cast",
        "play": "Lire",
        "pause": "Pause",
        "speed": "Vitesse",
        "seek": "Chercher",
        "duration": "Durée",
        "search": "Rechercher dans l'enregistrement...",
        "no_results": "Aucun résultat",
        "matches": "{{count}} correspondance(s)",
        "jump_to": "Aller au résultat",
        "loading": "Construction des snapshots...",
        "dimensions": "{{cols}}×{{rows}}",
        "close": "Fermer le lecteur"
      }
    },
    "encoding_hint": {
      "title": "Terminal output may use another encoding",
      "description": "OxideTerm detected garbled text while using UTF-8. You can try {{encodings}}; nothing will change unless you choose one.",
      "use_encoding": "Use {{encoding}}"
    },
    "command_bar": {
      "command": "Commande",
      "command_mode": "Mode commande",
      "command_placeholder": "Exécuter une commande",
      "run_command": "Exécuter",
      "local_shell": "Shell local",
      "remote_shell": "Shell distant",
      "all_targets": "tous",
      "recording": "REC",
      "source_runtime": "historique",
      "source_local_history": "local",
      "source_ai_ledger": "IA",
      "source_history": "history",
      "source_command": "command",
      "source_option": "option",
      "source_path": "path",
      "source_ai": "AI",
      "group_history": "History",
      "group_command": "Command",
      "group_option": "Option",
      "group_path": "Path",
      "group_quick_commands": "Quick Commands",
      "source_quick_command": "quick"
    },
    "command_selection": {
      "actions": "Command selection actions",
      "copy": "Copy",
      "copy_title": "Copy command output"
    },
    "scrollback_viewer": {
      "title": "Scrollback Viewer",
      "open": "Open Scrollback Viewer",
      "live_hint": "Showing live scrollback. Archived matches open as excerpts.",
      "stats": "{{current}} live / {{total}} total · max {{max}} · {{memory}} MB",
      "search_placeholder": "Search live and archived history...",
      "search": "Search",
      "case_sensitive": "Case sensitive",
      "regex": "Regular expression",
      "whole_word": "Whole word",
      "previous_match": "Previous match",
      "next_match": "Next match",
      "refresh": "Refresh",
      "clear": "Clear scrollback",
      "close": "Close",
      "empty_title": "No live scrollback yet",
      "empty_description": "Terminal output will appear here after it scrolls into the buffer.",
      "loading_line": "Loading...",
      "matches": "Matches",
      "live_buffer_badge": "Live buffer",
      "archive_badge": "Archive",
      "line_number": "Line {{line}}",
      "archive_excerpt": "Archive excerpt",
      "clear_confirm_title": "Clear current scrollback buffer?",
      "clear_confirm_description": "Archived history is not removed.",
      "clear_confirm_action": "Clear scrollback",
      "minimap": "History minimap",
      "limited_live_hint": "Showing the latest {{shown}} live scrollback lines out of {{available}} available. Use full-history search/archive excerpts for older output."
    },
    "quick_commands": {
      "title": "Quick Commands",
      "open": "Quick Commands",
      "close": "Close Quick Commands",
      "search_placeholder": "Search quick commands...",
      "add": "Add",
      "edit": "Edit",
      "delete": "Delete",
      "run": "Run",
      "save": "Save",
      "cancel": "Cancel",
      "empty_search": "No matching quick commands",
      "empty_category": "No quick commands in this category",
      "name_placeholder": "Name",
      "command_placeholder": "Command",
      "description_placeholder": "Description",
      "host_pattern_placeholder": "Host pattern, e.g. *.prod",
      "confirm_title": "Run quick command?",
      "confirm_description": "Run: {{command}}",
      "confirm_risky_description": "This command may be destructive or sensitive. Run: {{command}}",
      "toast_executed": "Quick command sent",
      "add_group": "Add group",
      "edit_group": "Edit group",
      "delete_group": "Delete group",
      "save_group": "Save group",
      "group_name_placeholder": "Group name",
      "icon_terminal": "Terminal",
      "icon_server": "Server",
      "icon_folder": "Folder",
      "icon_docker": "Docker",
      "icon_zap": "Custom"
    }
  }
}
