// Force strict mode and setup for ESM
"use strict";
import {
  init_esbuild_shims
} from "./chunk-5O2XNYP6.js";
import "./chunk-J2S4EL5Y.js";

// packages/cli/src/i18n/locales/fr.js
init_esbuild_shims();
var fr_default = {
  // ============================================================================
  // Aide / Composants UI
  // ============================================================================
  "\u2191 to manage attachments": "\u2191 pour g\xE9rer les pi\xE8ces jointes",
  "\u2190 \u2192 select, Delete to remove, \u2193 to exit": "\u2190 \u2192 s\xE9lectionner, Delete pour retirer, \u2193 pour quitter",
  "Attachments: ": "Pi\xE8ces jointes : ",
  "Basics:": "Bases :",
  "Add context": "Ajouter du contexte",
  "Use {{symbol}} to specify files for context (e.g., {{example}}) to target specific files or folders.": "Utilisez {{symbol}} pour sp\xE9cifier des fichiers de contexte (ex. {{example}}) pour cibler des fichiers ou dossiers sp\xE9cifiques.",
  "@": "@",
  "@src/myFile.ts": "@src/myFile.ts",
  "Shell mode": "Mode shell",
  "YOLO mode": "Mode YOLO",
  "Auto mode": "Mode auto",
  "auto_mode.entry_notice": "Mode auto activ\xE9.\n   Un classificateur LLM \xE9value chaque appel d'outil \u2014 les actions s\xFBres sont approuv\xE9es automatiquement,\n   les actions risqu\xE9es sont bloqu\xE9es. Quitter : Shift+Tab ou /approval-mode default.",
  "plan mode": "mode plan",
  "auto-accept edits": "acceptation automatique des modifications",
  "Accepting edits": "Acceptation des modifications",
  "(shift + tab to cycle)": "(Shift + Tab pour cycler)",
  "(tab to cycle)": "(Tab pour cycler)",
  "Execute shell commands via {{symbol}} (e.g., {{example1}}) or use natural language (e.g., {{example2}}).": "Ex\xE9cutez des commandes shell via {{symbol}} (ex. {{example1}}) ou utilisez le langage naturel (ex. {{example2}}).",
  "!": "!",
  "!npm run start": "!npm run start",
  "start server": "d\xE9marrer le serveur",
  "Commands:": "Commandes :",
  "shell command": "commande shell",
  "Model Context Protocol command (from external servers)": "Commande Model Context Protocol (depuis des serveurs externes)",
  "Keyboard Shortcuts:": "Raccourcis clavier :",
  "Toggle this help display": "Afficher/masquer cette aide",
  "Toggle shell mode": "Basculer le mode shell",
  "Open command menu": "Ouvrir le menu des commandes",
  "Add file context": "Ajouter un contexte de fichier",
  "Accept suggestion / Autocomplete": "Accepter la suggestion / Autocompl\xE9tion",
  "Reverse search history": "Recherche invers\xE9e dans l'historique",
  "Press ? again to close": "Appuyez \xE0 nouveau sur ? pour fermer",
  "for shell mode": "pour le mode shell",
  "for commands": "pour les commandes",
  "for file paths": "pour les chemins de fichiers",
  "to clear input": "pour effacer l'entr\xE9e",
  "to cycle approvals": "pour cycler les approbations",
  "to quit": "pour quitter",
  "for newline": "pour une nouvelle ligne",
  "to clear screen": "pour effacer l'\xE9cran",
  "to search history": "pour rechercher dans l'historique",
  "to paste images": "pour coller des images",
  "for external editor": "pour un \xE9diteur externe",
  "Jump through words in the input": "Sauter de mot en mot dans l'entr\xE9e",
  "Close dialogs, cancel requests, or quit application": "Fermer les bo\xEEtes de dialogue, annuler les requ\xEAtes ou quitter l'application",
  "New line": "Nouvelle ligne",
  "New line (Alt+Enter works for certain linux distros)": "Nouvelle ligne (Alt+Enter fonctionne sur certaines distributions Linux)",
  "Clear the screen": "Effacer l'\xE9cran",
  "Open input in external editor": "Ouvrir l'entr\xE9e dans un \xE9diteur externe",
  "Send message": "Envoyer le message",
  "Initializing...": "Initialisation...",
  "Connecting to MCP servers... ({{connected}}/{{total}})": "Connexion aux MCP servers... ({{connected}}/{{total}})",
  "Type your message or @path/to/file": "Tapez votre message ou @chemin/vers/fichier",
  "? for shortcuts": "? pour les raccourcis",
  "Press 'i' for INSERT mode and 'Esc' for NORMAL mode.": "Appuyez sur 'i' pour le mode INSERTION et 'Esc' pour le mode NORMAL.",
  "Cancel operation / Clear input (double press)": "Annuler l'op\xE9ration / Effacer l'entr\xE9e (double appui)",
  "Cycle approval modes": "Cycler les modes d'approbation",
  "Cycle through your prompt history": "Parcourir l'historique des invites",
  "For a full list of shortcuts, see {{docPath}}": "Pour la liste compl\xE8te des raccourcis, voir {{docPath}}",
  "docs/keyboard-shortcuts.md": "docs/keyboard-shortcuts.md",
  "for help on Qwen Code": "pour l'aide de Qwen Code",
  "show version info": "afficher les informations de version",
  "submit a bug report": "soumettre un rapport de bogue",
  Status: "Statut",
  // ============================================================================
  // Informations système
  // ============================================================================
  "Qwen Code": "Qwen Code",
  Runtime: "Environnement",
  OS: "OS",
  Model: "Mod\xE8le",
  "Fast Model": "Mod\xE8le rapide",
  Sandbox: "Bac \xE0 sable",
  "Session ID": "ID de session",
  "Base URL": "Base URL",
  Proxy: "Proxy",
  "Memory Usage": "Utilisation m\xE9moire",
  "IDE Client": "Client IDE",
  // ============================================================================
  // Commandes - Général
  // ============================================================================
  "Analyzes the project and creates a tailored QWEN.md file.": "Analyse le projet et cr\xE9e un fichier QWEN.md personnalis\xE9.",
  "List available Qwen Code tools. Usage: /tools [desc]": "Lister les outils Qwen Code disponibles. Utilisation : /tools [desc]",
  "Open the skills panel (browse, search, toggle, pick).": "Ouvrir le panneau des comp\xE9tences (parcourir, rechercher, activer, choisir).",
  "Manage Skills": "G\xE9rer les comp\xE9tences",
  "Skills configuration saved.": "Configuration des comp\xE9tences enregistr\xE9e.",
  "Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.": "Configuration des comp\xE9tences enregistr\xE9e, mais le rafra\xEEchissement a \xE9chou\xE9 : {{error}}. Red\xE9marrez pour garantir l\u2019application du nouvel \xE9tat.",
  "Workspace is untrusted; workspace settings are ignored by the merged config. Run /trust first to persist skills changes here, or edit ~/.qwen/settings.json directly to manage skills at user scope.": "L\u2019espace de travail n\u2019est pas approuv\xE9 ; les param\xE8tres de l\u2019espace de travail sont ignor\xE9s par la configuration fusionn\xE9e. Ex\xE9cutez d\u2019abord /trust, ou modifiez directement ~/.qwen/settings.json pour g\xE9rer les comp\xE9tences au niveau utilisateur.",
  "SkillManager not available.": "SkillManager non disponible.",
  "Loading skills\u2026": "Chargement des comp\xE9tences\u2026",
  "Failed to load skills: {{error}}": "\xC9chec du chargement des comp\xE9tences : {{error}}",
  "Failed to save skills configuration: {{error}}": "\xC9chec de l'enregistrement de la configuration des comp\xE9tences : {{error}}",
  "All available skills are disabled. Edit ~/.qwen/settings.json or .qwen/settings.json (skills.disabled) to re-enable.": "Toutes les comp\xE9tences disponibles sont d\xE9sactiv\xE9es. Modifiez ~/.qwen/settings.json ou .qwen/settings.json (skills.disabled) pour les r\xE9activer.",
  "Press esc to close.": "Appuyez sur \xC9chap pour fermer.",
  "{{count}} skills \xB7 ": "{{count}} comp\xE9tences \xB7 ",
  "{{matched}} / {{total}} skills \xB7 ": "{{matched}} / {{total}} comp\xE9tences \xB7 ",
  "Space toggle \xB7 Enter pick (fill input) \xB7 Esc save & exit \xB7 workspace scope": "Espace bascule \xB7 Entr\xE9e choisir (remplit l\u2019entr\xE9e) \xB7 \xC9chap enregistrer & quitter \xB7 port\xE9e espace de travail",
  "Search:": "Recherche :",
  "type to filter\u2026": "tapez pour filtrer\u2026",
  "No skills are currently available.": "Aucune comp\xE9tence n\u2019est actuellement disponible.",
  "All available skills are locked at a higher scope (see below).": "Toutes les comp\xE9tences disponibles sont verrouill\xE9es \xE0 une port\xE9e sup\xE9rieure (voir ci-dessous).",
  "No skills match the search.": "Aucune comp\xE9tence ne correspond \xE0 la recherche.",
  "Locked by higher-scope settings (cannot toggle here):": "Verrouill\xE9es par des param\xE8tres de port\xE9e sup\xE9rieure (impossible de basculer ici) :",
  "higher scope": "port\xE9e sup\xE9rieure",
  "  {{name}} {{description}}  [locked: {{scope}}]": "  {{name}} {{description}}  [verrouill\xE9e : {{scope}}]",
  "\u2191/\u2193 navigate \xB7 backspace edits search": "\u2191/\u2193 naviguer \xB7 Retour modifie la recherche",
  Bundled: "Int\xE9gr\xE9e",
  "Available Qwen Code CLI tools:": "Outils Qwen Code CLI disponibles :",
  "No tools available": "Aucun outil disponible",
  "View or change the approval mode for tool usage": "Voir ou modifier le mode d'approbation pour l'utilisation des outils",
  'Invalid approval mode "{{arg}}". Valid modes: {{modes}}': `Mode d'approbation invalide "{{arg}}". Modes valides : {{modes}}`,
  'Approval mode set to "{{mode}}"': `Mode d'approbation d\xE9fini sur "{{mode}}"`,
  "View or change the language setting": "Voir ou modifier le param\xE8tre de langue",
  "List background tasks (text dump \u2014 interactive dialog opens via the footer pill)": "Lister les t\xE2ches d'arri\xE8re-plan (sortie texte ; la bo\xEEte de dialogue interactive s'ouvre depuis la pastille du pied de page)",
  "Delete a previous session": "Supprimer une session pr\xE9c\xE9dente",
  "Run installation and environment diagnostics": "Ex\xE9cuter les diagnostics d'installation et d'environnement",
  "Browse dynamic model catalogs and choose which models stay enabled locally": "Parcourir les catalogues de mod\xE8les dynamiques et choisir ceux qui restent activ\xE9s localement",
  "Generate a one-line session recap now": "G\xE9n\xE9rer maintenant un r\xE9capitulatif de session en une ligne",
  "Rename the current conversation. --auto lets the fast model pick a title.": "Renommer la conversation en cours. --auto laisse le mod\xE8le rapide choisir un titre.",
  "Rewind conversation to a previous turn": "Revenir \xE0 un tour pr\xE9c\xE9dent de la conversation",
  "Rewind Conversation": "Rembobiner la conversation",
  "No user turns to rewind to.": "Aucun tour utilisateur vers lequel rembobiner.",
  "Rewind to: ": "Rembobiner vers : ",
  "Restore code and conversation": "Restaurer le code et la conversation",
  "Restore conversation only": "Restaurer la conversation uniquement",
  "Restore code only": "Restaurer le code uniquement",
  "Never mind": "Annuler",
  "Computing file changes...": "Calcul des modifications de fichiers...",
  "Restoring...": "Restauration en cours...",
  "Restored {{count}} file(s).": "{{count}} fichier(s) restaur\xE9(s).",
  "Failed to restore files: {{error}}": "\xC9chec de la restauration des fichiers : {{error}}",
  "Rewind failed: {{error}}": "\xC9chec du retour en arri\xE8re : {{error}}",
  "Cannot rewind conversation: no active model client.": "Impossible de revenir en arri\xE8re sur la conversation : aucun client de mod\xE8le actif.",
  "Code restored, but conversation could not be rewound (no active client).": "Code restaur\xE9, mais la conversation n\u2019a pas pu \xEAtre ramen\xE9e en arri\xE8re (aucun client actif).",
  "Conversation rewound. Edit your prompt and press Enter to continue.": "Conversation ramen\xE9e en arri\xE8re. Modifiez votre invite et appuyez sur Entr\xE9e pour continuer.",
  "Rewinding does not affect files edited manually or via shell commands.": "Le retour en arri\xE8re n\u2019affecte pas les fichiers \xE9dit\xE9s manuellement ou via des commandes shell.",
  "Cannot rewind to a turn that was compressed. Try a more recent turn.": "Impossible de revenir \xE0 un tour qui a \xE9t\xE9 compress\xE9. Essayez un tour plus r\xE9cent.",
  "File restore is unavailable for this turn (no captured file changes, or this turn predates the current session).": "La restauration des fichiers est indisponible pour ce tour (aucune modification captur\xE9e, ou ce tour est ant\xE9rieur \xE0 la session actuelle).",
  "(+{{insertions}} -{{deletions}} in {{count}} file)": "(+{{insertions}} -{{deletions}} dans {{count}} fichier)",
  "(+{{insertions}} -{{deletions}} in {{count}} files)": "(+{{insertions}} -{{deletions}} dans {{count}} fichiers)",
  "Failed to restore {{count}} file(s): {{files}}": "\xC9chec de la restauration de {{count}} fichier(s) : {{files}}",
  "Cannot restore files: this turn was created before file checkpointing was enabled.": "Impossible de restaurer les fichiers : ce tour a \xE9t\xE9 cr\xE9\xE9 avant l'activation des points de contr\xF4le de fichiers.",
  "No files needed to be restored.": "Aucun fichier n'a eu besoin d'\xEAtre restaur\xE9.",
  "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to go back": "\u2191\u2193 naviguer \xB7 Enter s\xE9lectionner \xB7 Esc retour",
  "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel": "\u2191\u2193 naviguer \xB7 Enter s\xE9lectionner \xB7 Esc annuler",
  "Enter/Y to confirm \xB7 Esc/N to go back": "Enter/Y confirmer \xB7 Esc/N retour",
  "change the theme": "changer le th\xE8me",
  "Select Theme": "S\xE9lectionner un th\xE8me",
  Preview: "Aper\xE7u",
  "(Use Enter to select, Tab to configure scope)": "(Utilisez Enter pour s\xE9lectionner, Tab pour configurer la port\xE9e)",
  "(Use Enter to apply scope, Tab to go back)": "(Utilisez Enter pour appliquer la port\xE9e, Tab pour revenir)",
  "Theme configuration unavailable due to NO_COLOR env variable.": "Configuration du th\xE8me indisponible en raison de la variable d'environnement NO_COLOR.",
  'Theme "{{themeName}}" not found.': 'Th\xE8me "{{themeName}}" introuvable.',
  'Theme "{{themeName}}" not found in selected scope.': 'Th\xE8me "{{themeName}}" introuvable dans la port\xE9e s\xE9lectionn\xE9e.',
  "Clear conversation history and free up context": "Effacer l'historique de conversation et lib\xE9rer le contexte",
  "Compresses the context by replacing it with a summary.": "Compresse le contexte en le rempla\xE7ant par un r\xE9sum\xE9.",
  "open full Qwen Code documentation in your browser": "ouvrir la documentation compl\xE8te de Qwen Code dans votre navigateur",
  "Configuration not available.": "Configuration non disponible.",
  "Connect an LLM provider": "Se connecter \xE0 un fournisseur LLM",
  "Copy the last AI response to clipboard (/copy N for Nth-latest)": "Copier la derni\xE8re r\xE9ponse IA dans le presse-papiers (/copy N pour la Ni\xE8me)",
  // ============================================================================
  // Commandes - Agents
  // ============================================================================
  "Manage subagents for specialized task delegation.": "G\xE9rer les sous-agents pour la d\xE9l\xE9gation de t\xE2ches sp\xE9cialis\xE9es.",
  "Manage existing subagents (view, edit, delete).": "G\xE9rer les sous-agents existants (voir, modifier, supprimer).",
  "Create a new subagent with guided setup.": "Cr\xE9er un nouveau sous-agent avec configuration guid\xE9e.",
  // ============================================================================
  // Agents - Boîte de dialogue de gestion
  // ============================================================================
  Agents: "Agents",
  "Choose Action": "Choisir une action",
  "Edit {{name}}": "Modifier {{name}}",
  "Edit Tools: {{name}}": "Modifier les outils : {{name}}",
  "Edit Color: {{name}}": "Modifier la couleur : {{name}}",
  "Delete {{name}}": "Supprimer {{name}}",
  "Unknown Step": "\xC9tape inconnue",
  "Esc to close": "Esc pour fermer",
  Transcript: "Transcription",
  "to close": "pour fermer",
  "to scroll": "pour d\xE9filer",
  "Failed to render transcript.": "\xC9chec du rendu de la transcription.",
  "Read {{count}} file": "Lu {{count}} fichier",
  "Read {{count}} files": "Lu {{count}} fichiers",
  "Reading {{count}} file": "Lecture de {{count}} fichier",
  "Reading {{count}} files": "Lecture de {{count}} fichiers",
  "Edited {{count}} file": "Modifi\xE9 {{count}} fichier",
  "Edited {{count}} files": "Modifi\xE9 {{count}} fichiers",
  "Editing {{count}} file": "Modification de {{count}} fichier",
  "Editing {{count}} files": "Modification de {{count}} fichiers",
  "Wrote {{count}} file": "\xC9crit {{count}} fichier",
  "Wrote {{count}} files": "\xC9crit {{count}} fichiers",
  "Writing {{count}} file": "\xC9criture de {{count}} fichier",
  "Writing {{count}} files": "\xC9criture de {{count}} fichiers",
  "Searched {{count}} pattern": "Recherch\xE9 {{count}} motif",
  "Searched {{count}} patterns": "Recherch\xE9 {{count}} motifs",
  "Searching {{count}} pattern": "Recherche de {{count}} motif",
  "Searching {{count}} patterns": "Recherche de {{count}} motifs",
  "Listed {{count}} directory": "List\xE9 {{count}} r\xE9pertoire",
  "Listed {{count}} directories": "List\xE9 {{count}} r\xE9pertoires",
  "Listing {{count}} directory": "Liste de {{count}} r\xE9pertoire",
  "Listing {{count}} directories": "Liste de {{count}} r\xE9pertoires",
  "Ran {{count}} command": "Ex\xE9cut\xE9 {{count}} commande",
  "Ran {{count}} commands": "Ex\xE9cut\xE9 {{count}} commandes",
  "Running {{count}} command": "Ex\xE9cution de {{count}} commande",
  "Running {{count}} commands": "Ex\xE9cution de {{count}} commandes",
  "Ran {{count}} agent": "Ex\xE9cut\xE9 {{count}} agent",
  "Ran {{count}} agents": "Ex\xE9cut\xE9 {{count}} agents",
  "Running {{count}} agent": "Ex\xE9cution de {{count}} agent",
  "Running {{count}} agents": "Ex\xE9cution de {{count}} agents",
  "Used {{count}} tool": "Utilis\xE9 {{count}} outil",
  "Used {{count}} tools": "Utilis\xE9 {{count}} outils",
  "Using {{count}} tool": "Utilisation de {{count}} outil",
  "Using {{count}} tools": "Utilisation de {{count}} outils",
  "Enter to select, \u2191\u2193 to navigate, Esc to close": "Enter pour s\xE9lectionner, \u2191\u2193 pour naviguer, Esc pour fermer",
  "Esc to go back": "Esc pour revenir",
  "Enter to confirm, Esc to cancel": "Enter pour confirmer, Esc pour annuler",
  "Enter to select, \u2191\u2193 to navigate, Esc to go back": "Enter pour s\xE9lectionner, \u2191\u2193 pour naviguer, Esc pour revenir",
  "Enter to submit, Esc to go back": "Enter pour soumettre, Esc pour revenir",
  "Invalid step: {{step}}": "\xC9tape invalide : {{step}}",
  "No subagents found.": "Aucun sous-agent trouv\xE9.",
  "Use '/agents create' to create your first subagent.": "Utilisez '/agents create' pour cr\xE9er votre premier sous-agent.",
  "(built-in)": "(int\xE9gr\xE9)",
  "(overridden by project level agent)": "(remplac\xE9 par un agent au niveau du projet)",
  "Project Level ({{path}})": "Niveau projet ({{path}})",
  "User Level ({{path}})": "Niveau utilisateur ({{path}})",
  "Built-in Agents": "Agents int\xE9gr\xE9s",
  "Extension Agents": "Agents d'extension",
  "Using: {{count}} agents": "Utilisation : {{count}} agents",
  "View Agent": "Voir l'agent",
  "Edit Agent": "Modifier l'agent",
  "Delete Agent": "Supprimer l'agent",
  Back: "Retour",
  "No agent selected": "Aucun agent s\xE9lectionn\xE9",
  "File Path: ": "Chemin du fichier : ",
  "Tools: ": "Outils : ",
  "Color: ": "Couleur : ",
  "Description:": "Description :",
  "System Prompt:": "Invite syst\xE8me :",
  "Open in editor": "Ouvrir dans l'\xE9diteur",
  "Edit tools": "Modifier les outils",
  "Edit color": "Modifier la couleur",
  "\u2717 Error:": "\u2717 Erreur :",
  'Are you sure you want to delete agent "{{name}}"?': `\xCAtes-vous s\xFBr de vouloir supprimer l'agent "{{name}}" ?`,
  // ============================================================================
  // Agents - Assistant de création
  // ============================================================================
  "Project Level (.qwen/agents/)": "Niveau projet (.qwen/agents/)",
  "User Level (~/.qwen/agents/)": "Niveau utilisateur (~/.qwen/agents/)",
  "\u2713 Subagent Created Successfully!": "\u2713 Sous-agent cr\xE9\xE9 avec succ\xE8s !",
  'Subagent "{{name}}" has been saved to {{level}} level.': 'Le sous-agent "{{name}}" a \xE9t\xE9 enregistr\xE9 au niveau {{level}}.',
  "Name: ": "Nom : ",
  "Location: ": "Emplacement : ",
  "\u2717 Error saving subagent:": "\u2717 Erreur lors de la sauvegarde du sous-agent :",
  "Warnings:": "Avertissements :",
  'Name "{{name}}" already exists at {{level}} level - will overwrite existing subagent': 'Le nom "{{name}}" existe d\xE9j\xE0 au niveau {{level}} - le sous-agent existant sera \xE9cras\xE9',
  'Name "{{name}}" exists at user level - project level will take precedence': 'Le nom "{{name}}" existe au niveau utilisateur - le niveau projet aura la priorit\xE9',
  'Name "{{name}}" exists at project level - existing subagent will take precedence': 'Le nom "{{name}}" existe au niveau projet - le sous-agent existant aura la priorit\xE9',
  "Description is over {{length}} characters": "La description d\xE9passe {{length}} caract\xE8res",
  "System prompt is over {{length}} characters": "L'invite syst\xE8me d\xE9passe {{length}} caract\xE8res",
  "Step {{n}}: Choose Location": "\xC9tape {{n}} : Choisir l'emplacement",
  "Step {{n}}: Choose Generation Method": "\xC9tape {{n}} : Choisir la m\xE9thode de g\xE9n\xE9ration",
  "Generate with Qwen Code (Recommended)": "G\xE9n\xE9rer avec Qwen Code (Recommand\xE9)",
  "Manual Creation": "Cr\xE9ation manuelle",
  "Describe what this subagent should do and when it should be used. (Be comprehensive for best results)": "D\xE9crivez ce que ce sous-agent doit faire et quand il doit \xEAtre utilis\xE9. (Soyez complet pour de meilleurs r\xE9sultats)",
  "e.g., Expert code reviewer that reviews code based on best practices...": "ex. R\xE9viseur de code expert qui r\xE9vise le code selon les meilleures pratiques...",
  "Generating subagent configuration...": "G\xE9n\xE9ration de la configuration du sous-agent...",
  "Failed to generate subagent: {{error}}": "\xC9chec de la g\xE9n\xE9ration du sous-agent : {{error}}",
  "Step {{n}}: Describe Your Subagent": "\xC9tape {{n}} : D\xE9crire votre sous-agent",
  "Step {{n}}: Enter Subagent Name": "\xC9tape {{n}} : Entrer le nom du sous-agent",
  "Step {{n}}: Enter System Prompt": "\xC9tape {{n}} : Entrer l'invite syst\xE8me",
  "Step {{n}}: Enter Description": "\xC9tape {{n}} : Entrer la description",
  "Step {{n}}: Select Tools": "\xC9tape {{n}} : S\xE9lectionner les outils",
  "All Tools (Default)": "Tous les outils (par d\xE9faut)",
  "All Tools": "Tous les outils",
  "Read-only Tools": "Outils en lecture seule",
  "Read & Edit Tools": "Outils lecture et \xE9dition",
  "Read & Edit & Execution Tools": "Outils lecture, \xE9dition et ex\xE9cution",
  "All tools selected, including MCP tools": "Tous les outils s\xE9lectionn\xE9s, y compris les MCP tools",
  "Selected tools:": "Outils s\xE9lectionn\xE9s :",
  "Read-only tools:": "Outils en lecture seule :",
  "Edit tools:": "Outils d'\xE9dition :",
  "Execution tools:": "Outils d'ex\xE9cution :",
  "Step {{n}}: Choose Background Color": "\xC9tape {{n}} : Choisir la couleur d'arri\xE8re-plan",
  "Step {{n}}: Confirm and Save": "\xC9tape {{n}} : Confirmer et enregistrer",
  "Esc to cancel": "Esc pour annuler",
  "Press Enter to save, e to save and edit, Esc to go back": "Appuyez sur Enter pour enregistrer, e pour enregistrer et modifier, Esc pour revenir",
  "Press Enter to continue, {{navigation}}Esc to {{action}}": "Appuyez sur Enter pour continuer, {{navigation}}Esc pour {{action}}",
  cancel: "annuler",
  "go back": "revenir",
  "\u2191\u2193 to navigate, ": "\u2191\u2193 pour naviguer, ",
  "Enter a clear, unique name for this subagent.": "Entrez un nom clair et unique pour ce sous-agent.",
  "e.g., Code Reviewer": "ex. R\xE9viseur de code",
  "Name cannot be empty.": "Le nom ne peut pas \xEAtre vide.",
  "Write the system prompt that defines this subagent's behavior. Be comprehensive for best results.": "R\xE9digez l'invite syst\xE8me qui d\xE9finit le comportement de ce sous-agent. Soyez complet pour de meilleurs r\xE9sultats.",
  "e.g., You are an expert code reviewer...": "ex. Vous \xEAtes un r\xE9viseur de code expert...",
  "System prompt cannot be empty.": "L'invite syst\xE8me ne peut pas \xEAtre vide.",
  "Describe when and how this subagent should be used.": "D\xE9crivez quand et comment ce sous-agent doit \xEAtre utilis\xE9.",
  "e.g., Reviews code for best practices and potential bugs.": "ex. R\xE9vise le code pour les meilleures pratiques et les bogues potentiels.",
  "Description cannot be empty.": "La description ne peut pas \xEAtre vide.",
  "Failed to launch editor: {{error}}": "\xC9chec du lancement de l'\xE9diteur : {{error}}",
  "Failed to save and edit subagent: {{error}}": "\xC9chec de la sauvegarde et modification du sous-agent : {{error}}",
  // ============================================================================
  // Extensions - Boîte de dialogue de gestion
  // ============================================================================
  "Manage Extensions": "G\xE9rer les extensions",
  "Extension Details": "D\xE9tails de l'extension",
  "View Extension": "Voir l'extension",
  "Update Extension": "Mettre \xE0 jour l'extension",
  "Disable Extension": "D\xE9sactiver l'extension",
  "Enable Extension": "Activer l'extension",
  "Uninstall Extension": "D\xE9sinstaller l'extension",
  "Select Scope": "S\xE9lectionner la port\xE9e",
  "User Scope": "Port\xE9e utilisateur",
  "Workspace Scope": "Port\xE9e espace de travail",
  "No extensions found.": "Aucune extension trouv\xE9e.",
  "Updating...": "Mise \xE0 jour...",
  Unknown: "Inconnu",
  Error: "Erreur",
  "Stopped because": "Arr\xEAt\xE9 parce que",
  "Version:": "Version :",
  "Status:": "Statut :",
  'Are you sure you want to uninstall extension "{{name}}"?': `\xCAtes-vous s\xFBr de vouloir d\xE9sinstaller l'extension "{{name}}" ?`,
  "This action cannot be undone.": "Cette action est irr\xE9versible.",
  'Extension "{{name}}" updated successfully.': 'Extension "{{name}}" mise \xE0 jour avec succ\xE8s.',
  "Name:": "Nom :",
  "MCP Servers:": "MCP Servers :",
  "Settings:": "Param\xE8tres :",
  active: "actif",
  disabled: "d\xE9sactiv\xE9",
  enabled: "activ\xE9",
  "View Details": "Voir les d\xE9tails",
  "Update failed:": "\xC9chec de la mise \xE0 jour :",
  "Updating {{name}}...": "Mise \xE0 jour de {{name}}...",
  "Update complete!": "Mise \xE0 jour termin\xE9e !",
  "User (global)": "Utilisateur (global)",
  "Workspace (project-specific)": "Espace de travail (sp\xE9cifique au projet)",
  'Disable "{{name}}" - Select Scope': 'D\xE9sactiver "{{name}}" - S\xE9lectionner la port\xE9e',
  'Enable "{{name}}" - Select Scope': 'Activer "{{name}}" - S\xE9lectionner la port\xE9e',
  "No extension selected": "Aucune extension s\xE9lectionn\xE9e",
  "{{count}} extensions installed": "{{count}} extensions install\xE9es",
  "Use '/extensions install' to install your first extension.": "Utilisez '/extensions install' pour installer votre premi\xE8re extension.",
  "up to date": "\xE0 jour",
  "update available": "mise \xE0 jour disponible",
  "checking...": "v\xE9rification...",
  "not updatable": "non mise \xE0 jour possible",
  error: "erreur",
  // ============================================================================
  // Commandes - Général (suite)
  // ============================================================================
  "View and edit Qwen Code settings": "Voir et modifier les param\xE8tres de Qwen Code",
  Settings: "Param\xE8tres",
  "To see changes, Qwen Code must be restarted. Press r to exit and apply changes now.": "Pour voir les changements, Qwen Code doit \xEAtre red\xE9marr\xE9. Appuyez sur r pour quitter et appliquer les changements maintenant.",
  // ============================================================================
  // Étiquettes des paramètres
  // ============================================================================
  "Vim Mode": "Mode Vim",
  "Attribution: commit": "Attribution : commit",
  "Terminal Bell Notification": "Notification sonore du terminal",
  "Enable Usage Statistics": "Activer les statistiques d'utilisation",
  Theme: "Th\xE8me",
  "Preferred Editor": "\xC9diteur pr\xE9f\xE9r\xE9",
  "Auto-connect to IDE": "Connexion automatique \xE0 l'IDE",
  "Debug Keystroke Logging": "Journalisation des frappes de d\xE9bogage",
  "Language: UI": "Langue : Interface",
  "Language: Model": "Langue : Mod\xE8le",
  "Output Format": "Format de sortie",
  "Hide Window Title": "Masquer le titre de la fen\xEAtre",
  "Show Status in Title": "Afficher le statut dans le titre",
  "Hide Tips": "Masquer les conseils",
  "Show Line Numbers in Code": "Afficher les num\xE9ros de ligne dans le code",
  "Show Citations": "Afficher les citations",
  "Custom Witty Phrases": "Phrases personnalis\xE9es spirituelles",
  "Show Welcome Back Dialog": "Afficher le dialogue de bienvenue",
  "Enable User Feedback": "Activer les retours utilisateur",
  "How is Qwen doing this session? (optional)": "Comment se passe cette session avec Qwen ? (facultatif)",
  Bad: "Mauvais",
  Fine: "Correct",
  Good: "Bien",
  Dismiss: "Ignorer",
  "Screen Reader Mode": "Mode lecteur d'\xE9cran",
  "Max Session Turns": "Nombre maximum de tours de session",
  "Skip Next Speaker Check": "Ignorer la v\xE9rification du prochain interlocuteur",
  "Skip Loop Detection": "Ignorer la d\xE9tection de boucle",
  "Skip Startup Context": "Ignorer le contexte de d\xE9marrage",
  "Enable OpenAI Logging": "Activer la journalisation OpenAI",
  "OpenAI Logging Directory": "R\xE9pertoire de journalisation OpenAI",
  Timeout: "D\xE9lai d'attente",
  "Max Retries": "Nombre maximum de tentatives",
  "Load Memory From Include Directories": "Charger la m\xE9moire depuis les r\xE9pertoires inclus",
  "Respect .gitignore": "Respecter .gitignore",
  "Respect .qwenignore": "Respecter .qwenignore",
  "Enable Recursive File Search": "Activer la recherche r\xE9cursive de fichiers",
  "Interactive Shell (PTY)": "Shell interactif (PTY)",
  "Show Color": "Afficher les couleurs",
  "Auto Accept": "Acceptation automatique",
  "Use Ripgrep": "Utiliser Ripgrep",
  "Use Builtin Ripgrep": "Utiliser Ripgrep int\xE9gr\xE9",
  "Tool Output Truncation Threshold": "Seuil de troncature de sortie des outils",
  "Tool Output Truncation Lines": "Lignes de troncature de sortie des outils",
  "Folder Trust": "Confiance des dossiers",
  "Tool Schema Compliance": "Conformit\xE9 Tool Schema",
  "Auto (detect from system)": "Auto (d\xE9tecter depuis le syst\xE8me)",
  "Auto (detect terminal theme)": "Auto (d\xE9tecter le th\xE8me du terminal)",
  Text: "Texte",
  JSON: "JSON",
  Plan: "Plan",
  "Ask permissions": "Demander l'autorisation",
  "Auto Edit": "\xC9dition automatique",
  YOLO: "YOLO",
  "toggle vim mode on/off": "activer/d\xE9sactiver le mode Vim",
  "Show model-specific usage statistics.": "Afficher les statistiques d'utilisation sp\xE9cifiques au mod\xE8le.",
  "Show tool-specific usage statistics.": "Afficher les statistiques d'utilisation sp\xE9cifiques aux outils.",
  "Show daily token usage statistics.": "Afficher les statistiques quotidiennes d'utilisation des tokens.",
  "Show monthly token usage statistics.": "Afficher les statistiques mensuelles d'utilisation des tokens.",
  "Export token usage statistics to CSV or JSON.": "Exporter les statistiques d'utilisation des tokens en CSV ou JSON.",
  "No usage data.": "Aucune donn\xE9e d'utilisation.",
  "{{label}}: {{tokens}} tokens ({{requests}} requests)": "{{label}} : {{tokens}} tokens ({{requests}} requ\xEAtes)",
  "Daily token usage for {{value}}": "Utilisation quotidienne des tokens pour {{value}}",
  "Monthly token usage for {{value}}": "Utilisation mensuelle des tokens pour {{value}}",
  "Total: {{tokens}} tokens": "Total : {{tokens}} tokens",
  "Requests: {{requests}}": "Requ\xEAtes : {{requests}}",
  "Breakdown:": "D\xE9tail :",
  "Input: {{tokens}}": "Entr\xE9e : {{tokens}}",
  "Output: {{tokens}}": "Sortie : {{tokens}}",
  "Cached (included in Input): {{tokens}}": "Cache (inclus dans l\u2019entr\xE9e) : {{tokens}}",
  "Thoughts: {{tokens}}": "Raisonnement : {{tokens}}",
  "By model:": "Par mod\xE8le :",
  "By auth type:": "Par type d'authentification :",
  "By model/auth type:": "Par mod\xE8le/type d'authentification :",
  "By source:": "Par source :",
  "Failed to load token usage stats: {{error}}": "\xC9chec du chargement des statistiques d'utilisation des tokens : {{error}}",
  "Expected --format csv or --format json.": "--format csv ou --format json attendu.",
  "Expected a file path after --output.": "Un chemin de fichier est attendu apr\xE8s --output.",
  "Unexpected argument: {{argument}}": "Argument inattendu : {{argument}}",
  "Usage: /stats export <daily|monthly> [YYYY-MM-DD|YYYY-MM] [--format csv|json] [--output path]": "Utilisation : /stats export <daily|monthly> [YYYY-MM-DD|YYYY-MM] [--format csv|json] [--output path]",
  "Token usage export path must be within the project working directory.": "Le chemin d'export de l'utilisation des tokens doit rester dans le r\xE9pertoire de travail du projet.",
  "Export target does not exist: {{path}}": "La cible d'export n'existe pas : {{path}}",
  "Cannot resolve export path within the working directory.": "Impossible de r\xE9soudre le chemin d'export dans le r\xE9pertoire de travail.",
  "Could not create a temporary export file.": "Impossible de cr\xE9er un fichier d'export temporaire.",
  "Token usage exported to {{format}}: {{path}}": "Utilisation des tokens export\xE9e en {{format}} : {{path}}",
  "Failed to export token usage stats: {{error}}": "\xC9chec de l'export des statistiques d'utilisation des tokens : {{error}}",
  "Unclosed quote in arguments.": "Guillemet non ferm\xE9 dans les arguments.",
  "Note: generation timing (TTFT/TPS) belongs to generation metrics.": "Remarque : les temps de g\xE9n\xE9ration (TTFT/TPS) rel\xE8vent des m\xE9triques de g\xE9n\xE9ration.",
  "exit the cli": "quitter le CLI",
  "Manage workspace directories": "G\xE9rer les r\xE9pertoires de l'espace de travail",
  "Add directories to the workspace. Use comma to separate multiple paths": "Ajouter des r\xE9pertoires \xE0 l'espace de travail. Utilisez une virgule pour s\xE9parer plusieurs chemins",
  "Show all directories in the workspace": "Afficher tous les r\xE9pertoires de l'espace de travail",
  "set external editor preference": "d\xE9finir la pr\xE9f\xE9rence d'\xE9diteur externe",
  "Select Editor": "S\xE9lectionner l'\xE9diteur",
  "Editor Preference": "Pr\xE9f\xE9rence d'\xE9diteur",
  "These editors are currently supported. Please note that some editors cannot be used in sandbox mode.": "Ces \xE9diteurs sont actuellement pris en charge. Notez que certains \xE9diteurs ne peuvent pas \xEAtre utilis\xE9s en mode bac \xE0 sable.",
  "Your preferred editor is:": "Votre \xE9diteur pr\xE9f\xE9r\xE9 est :",
  "Manage extensions": "G\xE9rer les extensions",
  "Manage installed extensions": "G\xE9rer les extensions install\xE9es",
  "Disable an extension": "D\xE9sactiver une extension",
  "Enable an extension": "Activer une extension",
  "Install an extension from a git repo or local path": "Installer une extension depuis un d\xE9p\xF4t git ou un chemin local",
  "Uninstall an extension": "D\xE9sinstaller une extension",
  "No extensions installed.": "Aucune extension install\xE9e.",
  'Extension "{{name}}" not found.': 'Extension "{{name}}" introuvable.',
  "No extensions to update.": "Aucune extension \xE0 mettre \xE0 jour.",
  "Usage: /extensions install <source>": "Utilisation : /extensions install <source>",
  'Installing extension from "{{source}}"...': `Installation de l'extension depuis "{{source}}"...`,
  'Extension "{{name}}" installed successfully.': 'Extension "{{name}}" install\xE9e avec succ\xE8s.',
  'Failed to install extension from "{{source}}": {{error}}': `\xC9chec de l'installation de l'extension depuis "{{source}}" : {{error}}`,
  "Do you want to continue? [Y/n]: ": "Voulez-vous continuer ? [O/n] : ",
  "Do you want to continue?": "Voulez-vous continuer ?",
  'Installing extension "{{name}}".': `Installation de l'extension "{{name}}".`,
  "**Extensions may introduce unexpected behavior. Ensure you have investigated the extension source and trust the author.**": "**Les extensions peuvent introduire des comportements inattendus. Assurez-vous d'avoir examin\xE9 la source de l'extension et de faire confiance \xE0 l'auteur.**",
  "This extension will run the following MCP servers:": "Cette extension ex\xE9cutera les MCP servers suivants :",
  local: "local",
  remote: "distant",
  "This extension will add the following commands: {{commands}}.": "Cette extension ajoutera les commandes suivantes : {{commands}}.",
  "This extension will append info to your QWEN.md context using {{fileName}}": "Cette extension ajoutera des informations \xE0 votre contexte QWEN.md en utilisant {{fileName}}",
  "This extension will install the following skills:": "Cette extension installera les comp\xE9tences suivantes :",
  "This extension will install the following subagents:": "Cette extension installera les sous-agents suivants :",
  'Installation cancelled for "{{name}}".': 'Installation annul\xE9e pour "{{name}}".',
  "You are installing an extension from {{originSource}}. Some features may not work perfectly with Qwen Code.": "Vous installez une extension depuis {{originSource}}. Certaines fonctionnalit\xE9s peuvent ne pas fonctionner parfaitement avec Qwen Code.",
  "--ref and --auto-update are not applicable for marketplace extensions.": "--ref et --auto-update ne sont pas applicables aux extensions du marketplace.",
  'Extension "{{name}}" installed successfully and enabled.': 'Extension "{{name}}" install\xE9e et activ\xE9e avec succ\xE8s.',
  "The github URL, local path, or marketplace source (marketplace-url:plugin-name) of the extension to install.": "L'URL GitHub, le chemin local ou la source marketplace (marketplace-url:nom-plugin) de l'extension \xE0 installer.",
  "The git ref to install from.": "La r\xE9f\xE9rence git depuis laquelle installer.",
  "Enable auto-update for this extension.": "Activer la mise \xE0 jour automatique pour cette extension.",
  "Enable pre-release versions for this extension.": "Activer les versions pr\xE9-release pour cette extension.",
  "Acknowledge the security risks of installing an extension and skip the confirmation prompt.": "Reconna\xEEtre les risques de s\xE9curit\xE9 li\xE9s \xE0 l'installation d'une extension et ignorer la confirmation.",
  "The source argument must be provided.": "L'argument source doit \xEAtre fourni.",
  'Extension "{{name}}" successfully uninstalled.': 'Extension "{{name}}" d\xE9sinstall\xE9e avec succ\xE8s.',
  "Uninstalls an extension.": "D\xE9sinstalle une extension.",
  "The name or source path of the extension to uninstall.": "Le nom ou le chemin source de l'extension \xE0 d\xE9sinstaller.",
  "Please include the name of the extension to uninstall as a positional argument.": "Veuillez inclure le nom de l'extension \xE0 d\xE9sinstaller comme argument positionnel.",
  "Enables an extension.": "Active une extension.",
  "The name of the extension to enable.": "Le nom de l'extension \xE0 activer.",
  "The scope to enable the extenison in. If not set, will be enabled in all scopes.": "La port\xE9e dans laquelle activer l'extension. Si non d\xE9finie, sera activ\xE9e dans toutes les port\xE9es.",
  'Extension "{{name}}" successfully enabled for scope "{{scope}}".': 'Extension "{{name}}" activ\xE9e avec succ\xE8s pour la port\xE9e "{{scope}}".',
  'Extension "{{name}}" successfully enabled in all scopes.': 'Extension "{{name}}" activ\xE9e avec succ\xE8s dans toutes les port\xE9es.',
  "Invalid scope: {{scope}}. Please use one of {{scopes}}.": "Port\xE9e invalide : {{scope}}. Veuillez utiliser l'une de : {{scopes}}.",
  "Disables an extension.": "D\xE9sactive une extension.",
  "The name of the extension to disable.": "Le nom de l'extension \xE0 d\xE9sactiver.",
  "The scope to disable the extenison in.": "La port\xE9e dans laquelle d\xE9sactiver l'extension.",
  'Extension "{{name}}" successfully disabled for scope "{{scope}}".': 'Extension "{{name}}" d\xE9sactiv\xE9e avec succ\xE8s pour la port\xE9e "{{scope}}".',
  'Extension "{{name}}" successfully updated: {{oldVersion}} \u2192 {{newVersion}}.': 'Extension "{{name}}" mise \xE0 jour avec succ\xE8s : {{oldVersion}} \u2192 {{newVersion}}.',
  'Unable to install extension "{{name}}" due to missing install metadata': `Impossible d'installer l'extension "{{name}}" en raison de m\xE9tadonn\xE9es d'installation manquantes`,
  'Extension "{{name}}" is already up to date.': `L'extension "{{name}}" est d\xE9j\xE0 \xE0 jour.`,
  "Updates all extensions or a named extension to the latest version.": "Met \xE0 jour toutes les extensions ou une extension nomm\xE9e vers la derni\xE8re version.",
  "Update all extensions.": "Mettre \xE0 jour toutes les extensions.",
  "Either an extension name or --all must be provided": "Un nom d'extension ou --all doit \xEAtre fourni",
  "Lists installed extensions.": "Liste les extensions install\xE9es.",
  "Path:": "Chemin :",
  "Source:": "Source :",
  "Type:": "Type :",
  "Ref:": "R\xE9f :",
  "Release tag:": "Tag de version :",
  "Enabled (User):": "Activ\xE9 (Utilisateur) :",
  "Enabled (Workspace):": "Activ\xE9 (Espace de travail) :",
  "Context files:": "Fichiers de contexte :",
  "Skills:": "Comp\xE9tences :",
  "Agents:": "Agents :",
  "MCP servers:": "MCP servers :",
  "Link extension failed to install.": "\xC9chec de l'installation de l'extension li\xE9e.",
  'Extension "{{name}}" linked successfully and enabled.': 'Extension "{{name}}" li\xE9e et activ\xE9e avec succ\xE8s.',
  "Links an extension from a local path. Updates made to the local path will always be reflected.": "Lie une extension depuis un chemin local. Les modifications apport\xE9es au chemin local seront toujours refl\xE9t\xE9es.",
  "The name of the extension to link.": "Le nom de l'extension \xE0 lier.",
  "Set a specific setting for an extension.": "D\xE9finir un param\xE8tre sp\xE9cifique pour une extension.",
  "Name of the extension to configure.": "Nom de l'extension \xE0 configurer.",
  "The setting to configure (name or env var).": "Le param\xE8tre \xE0 configurer (nom ou variable d'environnement).",
  "The scope to set the setting in.": "La port\xE9e dans laquelle d\xE9finir le param\xE8tre.",
  "List all settings for an extension.": "Lister tous les param\xE8tres d'une extension.",
  "Name of the extension.": "Nom de l'extension.",
  'Extension "{{name}}" has no settings to configure.': `L'extension "{{name}}" n'a aucun param\xE8tre \xE0 configurer.`,
  'Settings for "{{name}}":': 'Param\xE8tres pour "{{name}}" :',
  "(workspace)": "(espace de travail)",
  "(user)": "(utilisateur)",
  "[not set]": "[non d\xE9fini]",
  "[value stored in keychain]": "[valeur stock\xE9e dans le trousseau]",
  "Value:": "Valeur :",
  "Manage extension settings.": "G\xE9rer les param\xE8tres des extensions.",
  "You need to specify a command (set or list).": "Vous devez sp\xE9cifier une commande (set ou list).",
  // ============================================================================
  // Choix de plugin / Marketplace
  // ============================================================================
  "No plugins available in this marketplace.": "Aucun plugin disponible dans ce marketplace.",
  'Select a plugin to install from marketplace "{{name}}":': 'S\xE9lectionnez un plugin \xE0 installer depuis le marketplace "{{name}}" :',
  "Plugin selection cancelled.": "S\xE9lection de plugin annul\xE9e.",
  'Select a plugin from "{{name}}"': 'S\xE9lectionner un plugin depuis "{{name}}"',
  "Use \u2191\u2193 or j/k to navigate, Enter to select, Escape to cancel": "Utilisez \u2191\u2193 ou j/k pour naviguer, Enter pour s\xE9lectionner, Escape pour annuler",
  "{{count}} more above": "{{count}} de plus au-dessus",
  "{{count}} more below": "{{count}} de plus en dessous",
  "manage IDE integration": "g\xE9rer l'int\xE9gration IDE",
  "check status of IDE integration": "v\xE9rifier le statut de l'int\xE9gration IDE",
  "install required IDE companion for {{ideName}}": "installer le compagnon IDE requis pour {{ideName}}",
  "enable IDE integration": "activer l'int\xE9gration IDE",
  "disable IDE integration": "d\xE9sactiver l'int\xE9gration IDE",
  "IDE integration is not supported in your current environment. To use this feature, run Qwen Code in one of these supported IDEs: VS Code or VS Code forks.": "L'int\xE9gration IDE n'est pas prise en charge dans votre environnement actuel. Pour utiliser cette fonctionnalit\xE9, ex\xE9cutez Qwen Code dans l'un des IDEs pris en charge : VS Code ou ses d\xE9riv\xE9s.",
  "Set up GitHub Actions": "Configurer GitHub Actions",
  "Configure terminal keybindings for multiline input (VS Code, Cursor, Windsurf, Trae)": "Configurer les raccourcis du terminal pour la saisie multiligne (VS Code, Cursor, Windsurf, Trae)",
  "Please restart your terminal for the changes to take effect.": "Veuillez red\xE9marrer votre terminal pour que les modifications prennent effet.",
  "Failed to configure terminal: {{error}}": "\xC9chec de la configuration du terminal : {{error}}",
  "Could not determine {{terminalName}} config path on Windows: APPDATA environment variable is not set.": "Impossible de d\xE9terminer le chemin de configuration de {{terminalName}} sur Windows : la variable d'environnement APPDATA n'est pas d\xE9finie.",
  "{{terminalName}} keybindings.json exists but is not a valid JSON array. Please fix the file manually or delete it to allow automatic configuration.": "{{terminalName}} keybindings.json existe mais n'est pas un tableau JSON valide. Veuillez corriger le fichier manuellement ou le supprimer pour permettre la configuration automatique.",
  "File: {{file}}": "Fichier : {{file}}",
  "Failed to parse {{terminalName}} keybindings.json. The file contains invalid JSON. Please fix the file manually or delete it to allow automatic configuration.": "\xC9chec de l'analyse de {{terminalName}} keybindings.json. Le fichier contient du JSON invalide. Veuillez corriger le fichier manuellement ou le supprimer pour permettre la configuration automatique.",
  "Error: {{error}}": "Erreur : {{error}}",
  "Shift+Enter binding already exists": "Le raccourci Shift+Enter existe d\xE9j\xE0",
  "Ctrl+Enter binding already exists": "Le raccourci Ctrl+Enter existe d\xE9j\xE0",
  "Existing keybindings detected. Will not modify to avoid conflicts.": "Raccourcis existants d\xE9tect\xE9s. Aucune modification pour \xE9viter les conflits.",
  "Please check and modify manually if needed: {{file}}": "Veuillez v\xE9rifier et modifier manuellement si n\xE9cessaire : {{file}}",
  "Added Shift+Enter and Ctrl+Enter keybindings to {{terminalName}}.": "Raccourcis Shift+Enter et Ctrl+Enter ajout\xE9s \xE0 {{terminalName}}.",
  "Modified: {{file}}": "Modifi\xE9 : {{file}}",
  "{{terminalName}} keybindings already configured.": "Raccourcis {{terminalName}} d\xE9j\xE0 configur\xE9s.",
  "Failed to configure {{terminalName}}.": "\xC9chec de la configuration de {{terminalName}}.",
  "Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).": "Votre terminal est d\xE9j\xE0 configur\xE9 pour une exp\xE9rience optimale avec la saisie multiligne (Shift+Enter et Ctrl+Enter).",
  // ============================================================================
  // Commandes - Hooks
  // ============================================================================
  "Manage Qwen Code hooks": "G\xE9rer les hooks Qwen Code",
  "List all configured hooks": "Lister tous les hooks configur\xE9s",
  Hooks: "Hooks",
  "Loading hooks...": "Chargement des hooks...",
  "Error loading hooks:": "Erreur lors du chargement des hooks :",
  "Press Escape to close": "Appuyez sur Escape pour fermer",
  "Press Escape, Ctrl+C, or Ctrl+D to cancel": "Appuyez sur Escape, Ctrl+C ou Ctrl+D pour annuler",
  "Press Space, Enter, or Escape to dismiss": "Appuyez sur Space, Enter ou Escape pour ignorer",
  "No hook selected": "Aucun hook s\xE9lectionn\xE9",
  "No hook events found.": "Aucun \xE9v\xE9nement de hook trouv\xE9.",
  "{{count}} hook configured": "{{count}} hook configur\xE9",
  "{{count}} hooks configured": "{{count}} hooks configur\xE9s",
  "This menu is read-only. To add or modify hooks, edit settings.json directly or ask Qwen Code.": "Ce menu est en lecture seule. Pour ajouter ou modifier des hooks, \xE9ditez settings.json directement ou demandez \xE0 Qwen Code.",
  "Enter to select \xB7 Esc to cancel": "Enter pour s\xE9lectionner \xB7 Esc pour annuler",
  "Exit codes:": "Codes de sortie :",
  "Configured hooks:": "Hooks configur\xE9s :",
  "No hooks configured for this event.": "Aucun hook configur\xE9 pour cet \xE9v\xE9nement.",
  "To add hooks, edit settings.json directly or ask Qwen.": "Pour ajouter des hooks, \xE9ditez settings.json directement ou demandez \xE0 Qwen.",
  "Enter to select \xB7 Esc to go back": "Enter pour s\xE9lectionner \xB7 Esc pour revenir",
  "Hook details": "D\xE9tails du hook",
  "Event:": "\xC9v\xE9nement :",
  "Extension:": "Extension :",
  "Desc:": "Description :",
  "No hook config selected": "Aucune configuration de hook s\xE9lectionn\xE9e",
  "To modify or remove this hook, edit settings.json directly or ask Qwen to help.": "Pour modifier ou supprimer ce hook, \xE9ditez settings.json directement ou demandez \xE0 Qwen.",
  "Hook Configuration - Disabled": "Configuration du hook - D\xE9sactiv\xE9",
  "All hooks are currently disabled. You have {{count}} that are not running.": "Tous les hooks sont actuellement d\xE9sactiv\xE9s. Vous en avez {{count}} qui ne s'ex\xE9cutent pas.",
  "{{count}} configured hook": "{{count}} hook configur\xE9",
  "{{count}} configured hooks": "{{count}} hooks configur\xE9s",
  "When hooks are disabled:": "Quand les hooks sont d\xE9sactiv\xE9s :",
  "No hook commands will execute": "Aucune commande de hook ne s'ex\xE9cutera",
  "StatusLine will not be displayed": "La barre de statut ne sera pas affich\xE9e",
  "Tool operations will proceed without hook validation": "Les op\xE9rations d'outils se poursuivront sans validation des hooks",
  'To re-enable hooks, remove "disableAllHooks" from settings.json or ask Qwen Code.': 'Pour r\xE9activer les hooks, supprimez "disableAllHooks" de settings.json ou demandez \xE0 Qwen Code.',
  Project: "Projet",
  User: "Utilisateur",
  Skill: "Comp\xE9tence",
  System: "Syst\xE8me",
  Extension: "Extension",
  "Local Settings": "Param\xE8tres locaux",
  "User Settings": "Param\xE8tres utilisateur",
  "System Settings": "Param\xE8tres syst\xE8me",
  Extensions: "Extensions",
  "Before tool execution": "Avant l'ex\xE9cution de l'outil",
  "After tool execution": "Apr\xE8s l'ex\xE9cution de l'outil",
  "After tool execution fails": "Apr\xE8s l'\xE9chec de l'ex\xE9cution de l'outil",
  "When notifications are sent": "Quand des notifications sont envoy\xE9es",
  "When the user submits a prompt": "Quand l'utilisateur soumet une invite",
  "When a slash command expands into a prompt": "Quand une commande slash se d\xE9veloppe en invite",
  "When a new session is started": "Quand une nouvelle session est d\xE9marr\xE9e",
  "Right before Qwen Code concludes its response": "Juste avant que Qwen Code conclue sa r\xE9ponse",
  "When a subagent (Agent tool call) is started": "Quand un sous-agent (appel d'outil Agent) est d\xE9marr\xE9",
  "Right before a subagent concludes its response": "Juste avant qu'un sous-agent conclue sa r\xE9ponse",
  "Before conversation compaction": "Avant la compaction de la conversation",
  "When a session is ending": "Quand une session se termine",
  "When a permission dialog is displayed": "Quand un dialogue de permission est affich\xE9",
  "When a new todo item is created": "Quand un nouvel \xE9l\xE9ment todo est cr\xE9\xE9",
  "When a todo item is marked as completed": "Quand un \xE9l\xE9ment todo est marqu\xE9 comme termin\xE9",
  "Input to command is JSON of tool call arguments.": "L'entr\xE9e de la commande est du JSON des arguments d'appel d'outil.",
  'Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).': `L'entr\xE9e de la commande est du JSON avec les champs "inputs" (arguments d'appel d'outil) et "response" (r\xE9ponse de l'appel d'outil).`,
  "Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.": "L'entr\xE9e de la commande est du JSON avec tool_name, tool_input, tool_use_id, error, error_type, is_interrupt et is_timeout.",
  "Input to command is JSON with notification message and type.": "L'entr\xE9e de la commande est du JSON avec le message et le type de notification.",
  "Input to command is JSON with original user prompt text.": "L'entr\xE9e de la commande est du JSON avec le texte d'invite original de l'utilisateur.",
  "Input to command is JSON with command_name, command_args, and expanded prompt text.": "L'entr\xE9e de la commande est du JSON avec command_name, command_args et le texte d'invite d\xE9velopp\xE9.",
  "Input to command is JSON with session start source.": "L'entr\xE9e de la commande est du JSON avec la source de d\xE9marrage de session.",
  "Input to command is JSON with session end reason.": "L'entr\xE9e de la commande est du JSON avec la raison de fin de session.",
  "Input to command is JSON with agent_id and agent_type.": "L'entr\xE9e de la commande est du JSON avec agent_id et agent_type.",
  "Input to command is JSON with agent_id, agent_type, and agent_transcript_path.": "L'entr\xE9e de la commande est du JSON avec agent_id, agent_type et agent_transcript_path.",
  "Input to command is JSON with compaction details.": "L'entr\xE9e de la commande est du JSON avec les d\xE9tails de compaction.",
  "Input to command is JSON with tool_name, tool_input, and tool_use_id. Output JSON with hookSpecificOutput containing decision to allow or deny.": "L'entr\xE9e de la commande est du JSON avec tool_name, tool_input et tool_use_id. Sortie JSON avec hookSpecificOutput contenant la d\xE9cision d'autoriser ou de refuser.",
  "Input to command is JSON with todo_id, todo_content, todo_status, all_todos, and phase. In validation, output JSON with decision (allow/block/deny) and reason. In postWrite, block/deny is ignored.": "L'entr\xE9e de la commande est du JSON avec todo_id, todo_content, todo_status, all_todos et phase. Dans validation, sortie JSON avec decision (allow/block/deny) et reason. Dans postWrite, block/deny est ignor\xE9.",
  "Input to command is JSON with todo_id, todo_content, previous_status, all_todos, and phase. In validation, output JSON with decision (allow/block/deny) and reason. In postWrite, block/deny is ignored.": "L'entr\xE9e de la commande est du JSON avec todo_id, todo_content, previous_status, all_todos et phase. Dans validation, sortie JSON avec decision (allow/block/deny) et reason. Dans postWrite, block/deny est ignor\xE9.",
  "stdout/stderr not shown": "stdout/stderr non affich\xE9",
  "show stderr to model and continue conversation": "afficher stderr au mod\xE8le et continuer la conversation",
  "show stderr to user only": "afficher stderr \xE0 l'utilisateur uniquement",
  "stdout shown in transcript mode (ctrl+o)": "stdout affich\xE9 en mode transcription (ctrl+o)",
  "show stderr to model immediately": "afficher stderr au mod\xE8le imm\xE9diatement",
  "show stderr to user only but continue with tool call": "afficher stderr \xE0 l'utilisateur uniquement mais continuer l'appel d'outil",
  "block processing, erase original prompt, and show stderr to user only": "bloquer le traitement, effacer l'invite originale et afficher stderr \xE0 l'utilisateur uniquement",
  "block expanded prompt submission and show stderr to user only": "bloquer l'envoi de l'invite d\xE9velopp\xE9e et afficher stderr uniquement \xE0 l'utilisateur",
  "stdout shown to Qwen": "stdout affich\xE9 \xE0 Qwen",
  "show stderr to user only (blocking errors ignored)": "afficher stderr \xE0 l'utilisateur uniquement (erreurs bloquantes ignor\xE9es)",
  "command completes successfully": "la commande se termine avec succ\xE8s",
  "stdout shown to subagent": "stdout affich\xE9 au sous-agent",
  "show stderr to subagent and continue having it run": "afficher stderr au sous-agent et continuer son ex\xE9cution",
  "stdout appended as custom compact instructions": "stdout ajout\xE9 comme instructions compactes personnalis\xE9es",
  "block compaction": "bloquer la compaction",
  "show stderr to user only but continue with compaction": "afficher stderr \xE0 l'utilisateur uniquement mais continuer la compaction",
  "use hook decision if provided": "utiliser la d\xE9cision du hook si fournie",
  "allow todo creation": "autoriser la cr\xE9ation de todo",
  "block todo creation and show reason to model": "bloquer la cr\xE9ation de todo et afficher la raison au mod\xE8le",
  "allow todo completion": "autoriser la compl\xE9tion de todo",
  "block todo completion and show reason to model": "bloquer la compl\xE9tion de todo et afficher la raison au mod\xE8le",
  "Config not loaded.": "Configuration non charg\xE9e.",
  "Hooks are not enabled. Enable hooks in settings to use this feature.": "Les hooks ne sont pas activ\xE9s. Activez les hooks dans les param\xE8tres pour utiliser cette fonctionnalit\xE9.",
  // ============================================================================
  // Commandes - Export de session
  // ============================================================================
  "Export current session message history to a file": "Exporter l'historique des messages de la session actuelle vers un fichier",
  "Export session to HTML format": "Exporter la session au format HTML",
  "Export session to JSON format": "Exporter la session au format JSON",
  "Export session to JSONL format (one message per line)": "Exporter la session au format JSONL (un message par ligne)",
  "Export session to markdown format": "Exporter la session au format markdown",
  // ============================================================================
  // Commandes - Insights
  // ============================================================================
  "generate personalized programming insights from your chat history": "g\xE9n\xE9rer des insights de programmation personnalis\xE9s depuis votre historique de chat",
  // ============================================================================
  // Commandes - Historique de session
  // ============================================================================
  "Resume a previous session": "Reprendre une session pr\xE9c\xE9dente",
  "Fork the current conversation into a new session": "Cr\xE9er une branche de la conversation actuelle dans une nouvelle session",
  "Spawn a background agent that inherits the full conversation": "Lancer un agent en arri\xE8re-plan qui h\xE9rite de toute la conversation",
  "Please provide a directive. Usage: /fork <directive>": "Veuillez fournir une directive. Utilisation : /fork <directive>",
  "Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.": "Impossible de cr\xE9er un fork pendant qu'une r\xE9ponse ou un appel d'outil est en cours. Attendez la fin ou traitez l'appel d'outil en attente.",
  "Cannot fork before the first conversation turn.": "Impossible de cr\xE9er un fork avant le premier tour de conversation.",
  "The agent tool is unavailable; cannot fork.": "L'outil agent est indisponible ; impossible de cr\xE9er un fork.",
  "Failed to launch fork: {{error}}": "\xC9chec du lancement du fork : {{error}}",
  "User launched a background fork via /fork: {{directive}}": "L'utilisateur a lanc\xE9 un fork en arri\xE8re-plan via /fork : {{directive}}",
  "Forked into a background agent. It inherits this conversation and runs without blocking \u2014 track it in the background tasks panel; it reports back when done.": "Fork lanc\xE9 dans un agent en arri\xE8re-plan. Il h\xE9rite de cette conversation et s'ex\xE9cute sans bloquer \u2014 suivez-le dans le panneau des t\xE2ches en arri\xE8re-plan ; il fera un rapport une fois termin\xE9.",
  "Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.": "Impossible de cr\xE9er une branche pendant qu'une r\xE9ponse ou un appel d'outil est en cours. Attendez la fin ou traitez l'appel d'outil en attente.",
  "No conversation to branch.": "Aucune conversation \xE0 dupliquer dans une branche.",
  "Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "Restaurer un appel d'outil. Cela r\xE9initialisera la conversation et l'historique des fichiers \xE0 l'\xE9tat o\xF9 il se trouvait lors de la suggestion de l'appel d'outil",
  "Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, and Trae.": "Impossible de d\xE9tecter le type de terminal. Terminaux pris en charge : VS Code, Cursor, Windsurf et Trae.",
  'Terminal "{{terminal}}" is not supported yet.': `Le terminal "{{terminal}}" n'est pas encore pris en charge.`,
  // ============================================================================
  // Commandes - Langue
  // ============================================================================
  "Invalid language. Available: {{options}}": "Langue invalide. Disponibles : {{options}}",
  "Language subcommands do not accept additional arguments.": "Les sous-commandes de langue n'acceptent pas d'arguments suppl\xE9mentaires.",
  "Current UI language: {{lang}}": "Langue de l'interface actuelle : {{lang}}",
  "Current LLM output language: {{lang}}": "Langue de sortie LLM actuelle : {{lang}}",
  "Set UI language": "D\xE9finir la langue de l'interface",
  "Set LLM output language": "D\xE9finir la langue de sortie LLM",
  "Usage: /language ui [{{options}}]": "Utilisation : /language ui [{{options}}]",
  "Usage: /language output <language>": "Utilisation : /language output <langue>",
  "Example: /language output \u4E2D\u6587": "Exemple : /language output \u4E2D\u6587",
  "Example: /language output English": "Exemple : /language output English",
  "Example: /language output \u65E5\u672C\u8A9E": "Exemple : /language output \u65E5\u672C\u8A9E",
  "UI language changed to {{lang}}": "Langue de l'interface chang\xE9e en {{lang}}",
  "LLM output language set to {{lang}}": "Langue de sortie LLM d\xE9finie sur {{lang}}",
  "Please restart the application for the changes to take effect.": "Veuillez red\xE9marrer l'application pour que les modifications prennent effet.",
  "Failed to generate LLM output language rule file: {{error}}": "\xC9chec de la g\xE9n\xE9ration du fichier de r\xE8gle de langue de sortie LLM : {{error}}",
  "Invalid command. Available subcommands:": "Commande invalide. Sous-commandes disponibles :",
  "Available subcommands:": "Sous-commandes disponibles :",
  "To request additional UI language packs, please open an issue on GitHub.": "Pour demander des packs de langue d'interface suppl\xE9mentaires, veuillez ouvrir un ticket sur GitHub.",
  "Available options:": "Options disponibles :",
  "Set UI language to {{name}}": "D\xE9finir la langue de l'interface sur {{name}}",
  // ============================================================================
  // Commandes - Mode d'approbation
  // ============================================================================
  "Tool Approval Mode": "Mode d'approbation des outils",
  "Analyze only, do not modify files or execute commands": "Analyser uniquement, ne pas modifier les fichiers ni ex\xE9cuter des commandes",
  "Require approval for file edits or shell commands": "Demander l'approbation pour les modifications de fichiers ou les commandes shell",
  "Automatically approve file edits": "Approuver automatiquement les modifications de fichiers",
  "Use classifier to automatically approve safe tool calls": "Utiliser le classificateur pour approuver automatiquement les appels d\u2019outils s\xFBrs",
  "Automatically approve all tools": "Approuver automatiquement tous les outils",
  "Workspace approval mode exists and takes priority. User-level change will have no effect.": "Un mode d'approbation d'espace de travail existe et a la priorit\xE9. La modification au niveau utilisateur n'aura aucun effet.",
  "Apply To": "Appliquer \xE0",
  "Workspace Settings": "Param\xE8tres de l'espace de travail",
  "Open MCP management dialog": "Ouvrir le dialogue de gestion MCP",
  "Could not retrieve tool registry.": "Impossible de r\xE9cup\xE9rer le registre des outils.",
  "Successfully authenticated and refreshed tools for '{{name}}'.": "Authentification r\xE9ussie et outils actualis\xE9s pour '{{name}}'.",
  "Re-discovering tools from '{{name}}'...": "Red\xE9couverte des outils depuis '{{name}}'...",
  "Discovered {{count}} tool(s) from '{{name}}'.": "{{count}} outil(s) d\xE9couvert(s) depuis '{{name}}'.",
  "Authentication complete. Returning to server details...": "Authentification termin\xE9e. Retour aux d\xE9tails du serveur...",
  "Authentication successful.": "Authentification r\xE9ussie.",
  // ============================================================================
  // Boîte de dialogue de gestion MCP
  // ============================================================================
  "Manage MCP servers": "G\xE9rer les MCP servers",
  "Server Detail": "D\xE9tail du serveur",
  Tools: "Outils",
  "Tool Detail": "D\xE9tail de l'outil",
  "Loading...": "Chargement...",
  "Unknown step": "\xC9tape inconnue",
  "Esc to back": "Esc pour revenir",
  "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to close": "\u2191\u2193 pour naviguer \xB7 Enter pour s\xE9lectionner \xB7 Esc pour fermer",
  "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to back": "\u2191\u2193 pour naviguer \xB7 Enter pour s\xE9lectionner \xB7 Esc pour revenir",
  "\u2191\u2193 to navigate \xB7 Enter to confirm \xB7 Esc to back": "\u2191\u2193 pour naviguer \xB7 Enter pour confirmer \xB7 Esc pour revenir",
  "User Settings (global)": "Param\xE8tres utilisateur (global)",
  "Workspace Settings (project-specific)": "Param\xE8tres espace de travail (sp\xE9cifique au projet)",
  "Disable server:": "D\xE9sactiver le serveur :",
  "Select where to add the server to the exclude list:": "S\xE9lectionnez o\xF9 ajouter le serveur \xE0 la liste d'exclusion :",
  "Press Enter to confirm, Esc to cancel": "Appuyez sur Enter pour confirmer, Esc pour annuler",
  "View tools": "Voir les outils",
  Reconnect: "Reconnecter",
  Enable: "Activer",
  Disable: "D\xE9sactiver",
  Authenticate: "Authentifier",
  "Re-authenticate": "R\xE9authentifier",
  "Clear Authentication": "Effacer l'authentification",
  "Server:": "Serveur :",
  "Command:": "Commande :",
  "Working Directory:": "R\xE9pertoire de travail :",
  "No server selected": "Aucun serveur s\xE9lectionn\xE9",
  prompts: "invites",
  "Error:": "Erreur :",
  tool: "outil",
  tools: "outils",
  connected: "connect\xE9",
  connecting: "connexion en cours",
  disconnected: "d\xE9connect\xE9",
  "User MCPs": "MCPs utilisateur",
  "Project MCPs": "MCPs projet",
  "Extension MCPs": "MCPs d'extension",
  server: "serveur",
  servers: "serveurs",
  "Add MCP servers to your settings to get started.": "Ajoutez des MCP servers \xE0 vos param\xE8tres pour commencer.",
  "Run qwen --debug to see error logs": "Ex\xE9cutez qwen --debug pour voir les journaux d'erreurs",
  "OAuth Authentication": "Authentification OAuth",
  "Authenticating... Please complete the login in your browser.": "Authentification... Veuillez compl\xE9ter la connexion dans votre navigateur.",
  "No tools available for this server.": "Aucun outil disponible pour ce serveur.",
  destructive: "destructif",
  "read-only": "lecture seule",
  "open-world": "monde ouvert",
  idempotent: "idempotent",
  "Tools for {{serverName}}": "Outils pour {{serverName}}",
  "{{current}}/{{total}}": "{{current}}/{{total}}",
  required: "requis",
  Parameters: "Param\xE8tres",
  "No tool selected": "Aucun outil s\xE9lectionn\xE9",
  Server: "Serveur",
  "{{count}} invalid tools": "{{count}} outils invalides",
  invalid: "invalide",
  "invalid: {{reason}}": "invalide : {{reason}}",
  "missing name": "nom manquant",
  "missing description": "description manquante",
  "(unnamed)": "(sans nom)",
  "Warning: This tool cannot be called by the LLM": "Avertissement : Cet outil ne peut pas \xEAtre appel\xE9 par le LLM",
  Reason: "Raison",
  "Tools must have both name and description to be used by the LLM.": "Les outils doivent avoir un nom et une description pour \xEAtre utilis\xE9s par le LLM.",
  // ===========================================================
  // Commandes - Résumé
  // ============================================================================
  "Generate a project summary and save it to .qwen/PROJECT_SUMMARY.md": "G\xE9n\xE9rer un r\xE9sum\xE9 du projet et l'enregistrer dans .qwen/PROJECT_SUMMARY.md",
  "No chat client available to generate summary.": "Aucun client de chat disponible pour g\xE9n\xE9rer le r\xE9sum\xE9.",
  "Already generating summary, wait for previous request to complete": "G\xE9n\xE9ration de r\xE9sum\xE9 d\xE9j\xE0 en cours, attendez que la demande pr\xE9c\xE9dente se termine",
  "No conversation found to summarize.": "Aucune conversation trouv\xE9e \xE0 r\xE9sumer.",
  "Failed to generate project context summary: {{error}}": "\xC9chec de la g\xE9n\xE9ration du r\xE9sum\xE9 du contexte du projet : {{error}}",
  "Saved project summary to {{filePathForDisplay}}.": "R\xE9sum\xE9 du projet enregistr\xE9 dans {{filePathForDisplay}}.",
  "Saving project summary...": "Enregistrement du r\xE9sum\xE9 du projet...",
  "Generating project summary...": "G\xE9n\xE9ration du r\xE9sum\xE9 du projet...",
  "Processing summary...": "Traitement du r\xE9sum\xE9...",
  "Project summary generated and saved successfully!": "Le r\xE9sum\xE9 du projet a \xE9t\xE9 g\xE9n\xE9r\xE9 et enregistr\xE9 avec succ\xE8s !",
  "Saved to: {{filePath}}": "Enregistr\xE9 dans : {{filePath}}",
  "Failed to generate summary - no text content received from LLM response": "\xC9chec de la g\xE9n\xE9ration du r\xE9sum\xE9 - aucun contenu texte re\xE7u de la r\xE9ponse LLM",
  // ============================================================================
  // Commandes - Modèle
  // ============================================================================
  "Switch the model for this session (--fast for suggestion model, [model-id] to switch immediately).": "Changer le mod\xE8le pour cette session (--fast pour le mod\xE8le de suggestion)",
  "Set a lighter model for prompt suggestions and speculative execution": "D\xE9finir un mod\xE8le plus l\xE9ger pour les suggestions d'invite et l'ex\xE9cution sp\xE9culative",
  "Content generator configuration not available.": "Configuration du g\xE9n\xE9rateur de contenu non disponible.",
  "Authentication type not available.": "Type d'authentification non disponible.",
  "No models available for the current authentication type ({{authType}}).": "Aucun mod\xE8le disponible pour le type d'authentification actuel ({{authType}}).",
  // Needs translation
  " (not in model registry)": " (not in model registry)",
  // ============================================================================
  // Commandes - Effacer
  // ============================================================================
  "Starting a new session, resetting chat, and clearing terminal.": "D\xE9marrage d'une nouvelle session, r\xE9initialisation du chat et effacement du terminal.",
  "Starting a new session and clearing.": "D\xE9marrage d'une nouvelle session et effacement.",
  // ============================================================================
  // Commandes - Compresser
  // ============================================================================
  "Already compressing, wait for previous request to complete": "Compression d\xE9j\xE0 en cours, attendez que la demande pr\xE9c\xE9dente se termine",
  "Failed to compress chat history.": "\xC9chec de la compression de l'historique du chat.",
  "Failed to compress chat history: {{error}}": "\xC9chec de la compression de l'historique du chat : {{error}}",
  "Compressing chat history": "Compression de l'historique du chat",
  "Chat history compressed from {{originalTokens}} to {{newTokens}} tokens.": "L'historique du chat a \xE9t\xE9 compress\xE9 de {{originalTokens}} \xE0 {{newTokens}} tokens.",
  "Compression was not beneficial for this history size.": "La compression n'\xE9tait pas b\xE9n\xE9fique pour cette taille d'historique.",
  "Chat history compression did not reduce size. This may indicate issues with the compression prompt.": "La compression de l'historique du chat n'a pas r\xE9duit la taille. Cela peut indiquer des probl\xE8mes avec l'invite de compression.",
  "Could not compress chat history due to a token counting error.": "Impossible de compresser l'historique du chat en raison d'une erreur de comptage de tokens.",
  // ============================================================================
  // Commandes - Répertoire
  // ============================================================================
  "Configuration is not available.": "Configuration non disponible.",
  "Please provide at least one path to add.": "Veuillez fournir au moins un chemin \xE0 ajouter.",
  "The /directory add command is not supported in restrictive sandbox profiles. Please use --include-directories when starting the session instead.": "La commande /directory add n'est pas prise en charge dans les profils de bac \xE0 sable restrictifs. Utilisez plut\xF4t --include-directories lors du d\xE9marrage de la session.",
  "Error adding '{{path}}': {{error}}": "Erreur lors de l'ajout de '{{path}}' : {{error}}",
  "Successfully added QWEN.md files from the following directories if there are:\n- {{directories}}": "Fichiers QWEN.md ajout\xE9s avec succ\xE8s depuis les r\xE9pertoires suivants s'ils existent :\n- {{directories}}",
  "Error refreshing memory: {{error}}": "Erreur lors de l'actualisation de la m\xE9moire : {{error}}",
  "Successfully added directories:\n- {{directories}}": "R\xE9pertoires ajout\xE9s avec succ\xE8s :\n- {{directories}}",
  "Current workspace directories:\n{{directories}}": "R\xE9pertoires actuels de l'espace de travail :\n{{directories}}",
  // ============================================================================
  // Commandes - Documentation
  // ============================================================================
  "Please open the following URL in your browser to view the documentation:\n{{url}}": "Veuillez ouvrir l'URL suivante dans votre navigateur pour voir la documentation :\n{{url}}",
  "Opening documentation in your browser: {{url}}": "Ouverture de la documentation dans votre navigateur : {{url}}",
  // ============================================================================
  // Boîtes de dialogue - Confirmation d'outil
  // ============================================================================
  "Do you want to proceed?": "Voulez-vous continuer ?",
  "Yes, allow once": "Oui, autoriser une fois",
  "Allow always": "Toujours autoriser",
  Yes: "Oui",
  No: "Non",
  "No (esc)": "Non (\xE9chap)",
  "Modify in progress:": "Modification en cours :",
  "Save and close external editor to continue": "Enregistrez et fermez l'\xE9diteur externe pour continuer",
  "Apply this change?": "Appliquer cette modification ?",
  "Yes, allow always": "Oui, toujours autoriser",
  "Modify with external editor": "Modifier avec l'\xE9diteur externe",
  "No, suggest changes (esc)": "Non, sugg\xE9rer des modifications (\xE9chap)",
  "Allow execution of: '{{command}}'?": "Autoriser l'ex\xE9cution de : '{{command}}' ?",
  "Always allow in this project": "Toujours autoriser dans ce projet",
  "Always allow {{action}} in this project": "Toujours autoriser {{action}} dans ce projet",
  "Always allow for this user": "Toujours autoriser pour cet utilisateur",
  "Always allow {{action}} for this user": "Toujours autoriser {{action}} pour cet utilisateur",
  "Yes, restore previous mode ({{mode}})": "Oui, restaurer le mode pr\xE9c\xE9dent ({{mode}})",
  "Yes, and auto-accept edits": "Oui, et accepter automatiquement les modifications",
  "Yes, and manually approve edits": "Oui, et approuver manuellement les modifications",
  "No, keep planning (esc)": "Non, continuer la planification (\xE9chap)",
  "URLs to fetch:": "URLs \xE0 r\xE9cup\xE9rer :",
  "MCP Server: {{server}}": "MCP Server : {{server}}",
  "Tool: {{tool}}": "Outil : {{tool}}",
  'Allow execution of MCP tool "{{tool}}" from server "{{server}}"?': `Autoriser l'ex\xE9cution de MCP tool "{{tool}}" depuis MCP server "{{server}}" ?`,
  // ============================================================================
  // Boîtes de dialogue - Confirmation shell
  // ============================================================================
  "Shell Command Execution": "Ex\xE9cution de commande shell",
  "A custom command wants to run the following shell commands:": "Une commande personnalis\xE9e veut ex\xE9cuter les commandes shell suivantes :",
  // ============================================================================
  // Boîtes de dialogue - Bienvenue
  // ============================================================================
  "Current Plan:": "Plan actuel :",
  "Progress: {{done}}/{{total}} tasks completed": "Progression : {{done}}/{{total}} t\xE2ches termin\xE9es",
  ", {{inProgress}} in progress": ", {{inProgress}} en cours",
  "Pending Tasks:": "T\xE2ches en attente :",
  "What would you like to do?": "Que souhaitez-vous faire ?",
  "Choose how to proceed with your session:": "Choisissez comment poursuivre votre session :",
  "Start new chat session": "D\xE9marrer une nouvelle session de chat",
  "Continue previous conversation": "Continuer la conversation pr\xE9c\xE9dente",
  "Welcome back! (Last updated: {{timeAgo}})": "Bon retour ! (Derni\xE8re mise \xE0 jour : {{timeAgo}})",
  "Overall Goal:": "Objectif global :",
  "Connect a Provider": "Connecter un fournisseur",
  "You must connect a provider to proceed. Press Ctrl+C again to exit.": "Vous devez connecter un fournisseur pour continuer. Appuyez \xE0 nouveau sur Ctrl+C pour quitter.",
  "Terms of Services and Privacy Notice": "Conditions d'utilisation et avis de confidentialit\xE9",
  "Qwen OAuth": "Qwen OAuth",
  "Discontinued \u2014 switch to Coding Plan or API Key": "Abandonn\xE9 \u2014 passez \xE0 Coding Plan ou API Key",
  "Qwen OAuth free tier was discontinued on 2026-04-15. Please select Coding Plan or API Key instead.": "Le niveau gratuit Qwen OAuth a \xE9t\xE9 abandonn\xE9 le 2026-04-15. Veuillez s\xE9lectionner Coding Plan ou API Key.",
  "Qwen OAuth free tier was discontinued on 2026-04-15. Please select a model from another provider or run /auth to switch.": "Le niveau gratuit de Qwen OAuth a \xE9t\xE9 abandonn\xE9 le 2026-04-15. Veuillez s\xE9lectionner un mod\xE8le d'un autre fournisseur ou ex\xE9cuter /auth pour changer.",
  "\n\u26A0 Qwen OAuth free tier was discontinued on 2026-04-15. Please select another option.\n": "\n\u26A0 Le niveau gratuit Qwen OAuth a \xE9t\xE9 abandonn\xE9 le 2026-04-15. Veuillez s\xE9lectionner une autre option.\n",
  "Paid \xB7 Up to 6,000 requests/5 hrs \xB7 All Alibaba Cloud Coding Plan Models": "Payant \xB7 Jusqu'\xE0 6 000 requ\xEAtes/5h \xB7 Tous les mod\xE8les Alibaba Cloud Coding Plan",
  "Alibaba Cloud Coding Plan": "Alibaba Cloud Coding Plan",
  "Bring your own API key": "Apportez votre propre API Key",
  "Browser-based authentication with third-party providers (e.g. OpenRouter, ModelScope)": "Authentification bas\xE9e sur le navigateur avec des fournisseurs tiers (par exemple OpenRouter, ModelScope)",
  "Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.": "L'authentification est impos\xE9e \xE0 {{enforcedType}}, mais vous utilisez actuellement {{currentType}}.",
  "Qwen OAuth Authentication": "Authentification Qwen OAuth",
  "Please visit this URL to authorize:": "Veuillez visiter cette URL pour autoriser :",
  "Waiting for authorization": "En attente d'autorisation",
  "Time remaining:": "Temps restant :",
  "Qwen OAuth Authentication Timeout": "D\xE9lai d'authentification Qwen OAuth",
  "OAuth token expired (over {{seconds}} seconds). Please select authentication method again.": "Token OAuth expir\xE9 (plus de {{seconds}} secondes). Veuillez s\xE9lectionner \xE0 nouveau la m\xE9thode d'authentification.",
  "Press any key to return to authentication type selection.": "Appuyez sur n'importe quelle touche pour revenir \xE0 la s\xE9lection du type d'authentification.",
  "Waiting for Qwen OAuth authentication...": "En attente de l'authentification Qwen OAuth...",
  "Authentication timed out. Please try again.": "L'authentification a expir\xE9. Veuillez r\xE9essayer.",
  "Waiting for auth... (Press ESC or CTRL+C to cancel)": "En attente d'authentification... (Appuyez sur \xC9CHAP ou CTRL+C pour annuler)",
  "Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.": "API Key manquante pour l'authentification compatible OpenAI. D\xE9finissez settings.security.auth.apiKey ou la variable d'environnement {{envKeyHint}}.",
  "{{envKeyHint}} environment variable not found. Please set it in your .env file or environment variables.": "Variable d'environnement {{envKeyHint}} introuvable. Veuillez la d\xE9finir dans votre fichier .env ou les variables d'environnement.",
  "{{envKeyHint}} environment variable not found (or set settings.security.auth.apiKey). Please set it in your .env file or environment variables.": "Variable d'environnement {{envKeyHint}} introuvable (ou d\xE9finissez settings.security.auth.apiKey). Veuillez la d\xE9finir dans votre fichier .env ou les variables d'environnement.",
  "Missing API key for OpenAI-compatible auth. Set the {{envKeyHint}} environment variable.": "API Key manquante pour l'authentification compatible OpenAI. D\xE9finissez la variable d'environnement {{envKeyHint}}.",
  "Anthropic provider missing required baseUrl in modelProviders[].baseUrl.": "Le fournisseur Anthropic manque le baseUrl requis dans modelProviders[].baseUrl.",
  "ANTHROPIC_BASE_URL environment variable not found.": "Variable d'environnement ANTHROPIC_BASE_URL introuvable.",
  "Invalid auth method selected.": "M\xE9thode d'authentification invalide s\xE9lectionn\xE9e.",
  "Failed to authenticate. Message: {{message}}": "\xC9chec de l'authentification. Message : {{message}}",
  "Authenticated successfully with {{authType}} credentials.": "Authentification r\xE9ussie avec les identifiants {{authType}}.",
  'Invalid QWEN_DEFAULT_AUTH_TYPE value: "{{value}}". Valid values are: {{validValues}}': 'Valeur QWEN_DEFAULT_AUTH_TYPE invalide : "{{value}}". Valeurs valides : {{validValues}}',
  // ============================================================================
  // Boîtes de dialogue - Modèle
  // ============================================================================
  "Select Model": "S\xE9lectionner un mod\xE8le",
  " (this project)": " (ce projet)",
  " (global)": " (global)",
  "Persist the model selection to the project settings (workspace scope)": "Persister la s\xE9lection du mod\xE8le dans les param\xE8tres du projet (\xE9tendue workspace)",
  "Persist the model selection to the user settings (global scope)": "Persister la s\xE9lection du mod\xE8le dans les param\xE8tres utilisateur (\xE9tendue globale)",
  "API Key": "API Key",
  "(default)": "(par d\xE9faut)",
  "(not set)": "(non d\xE9fini)",
  Modality: "Modalit\xE9",
  "Context Window": "Fen\xEAtre de contexte",
  text: "texte",
  "text-only": "texte uniquement",
  image: "image",
  pdf: "pdf",
  audio: "audio",
  video: "vid\xE9o",
  "not set": "non d\xE9fini",
  none: "aucun",
  unknown: "inconnu",
  // ============================================================================
  // Boîtes de dialogue - Permissions
  // ============================================================================
  "Manage folder trust settings": "G\xE9rer les param\xE8tres de confiance des dossiers",
  "Manage permission rules": "G\xE9rer les permission rules",
  Allow: "Autoriser",
  Ask: "Demander",
  Deny: "Refuser",
  Workspace: "Espace de travail",
  "Qwen Code won't ask before using allowed tools.": "Qwen Code ne demandera pas avant d'utiliser les outils autoris\xE9s.",
  "Qwen Code will ask before using these tools.": "Qwen Code demandera avant d'utiliser ces outils.",
  "Qwen Code is not allowed to use denied tools.": "Qwen Code n'est pas autoris\xE9 \xE0 utiliser les outils refus\xE9s.",
  "Manage trusted directories for this workspace.": "G\xE9rer les r\xE9pertoires de confiance pour cet espace de travail.",
  "Any use of the {{tool}} tool": "Toute utilisation de l'outil {{tool}}",
  "{{tool}} commands matching '{{pattern}}'": "Commandes {{tool}} correspondant \xE0 '{{pattern}}'",
  "From user settings": "Depuis les param\xE8tres utilisateur",
  "From project settings": "Depuis les param\xE8tres du projet",
  "From session": "Depuis la session",
  "Project settings": "Param\xE8tres du projet",
  "Checked in at .qwen/settings.json": "Valid\xE9 dans .qwen/settings.json",
  "User settings": "Param\xE8tres utilisateur",
  "Saved in at ~/.qwen/settings.json": "Enregistr\xE9 dans ~/.qwen/settings.json",
  "Add a new rule\u2026": "Ajouter une nouvelle r\xE8gle\u2026",
  "Add {{type}} permission rule": "Ajouter {{type}} permission rule",
  "Permission rules are a tool name, optionally followed by a specifier in parentheses.": "Les permission rules sont un nom d'outil, suivi optionnellement d'un sp\xE9cificateur entre parenth\xE8ses.",
  "e.g.,": "ex.,",
  or: "ou",
  "Enter permission rule\u2026": "Entrer une permission rule\u2026",
  "Enter to submit \xB7 Esc to cancel": "Enter pour soumettre \xB7 Esc pour annuler",
  "Where should this rule be saved?": "O\xF9 cette r\xE8gle doit-elle \xEAtre enregistr\xE9e ?",
  "Enter to confirm \xB7 Esc to cancel": "Enter pour confirmer \xB7 Esc pour annuler",
  "Delete {{type}} rule?": "Supprimer la r\xE8gle {{type}} ?",
  "Are you sure you want to delete this permission rule?": "\xCAtes-vous s\xFBr de vouloir supprimer cette permission rule ?",
  "Permissions:": "Permissions :",
  "(\u2190/\u2192 or tab to cycle)": "(\u2190/\u2192 ou Tab pour cycler)",
  "Press \u2191\u2193 to navigate \xB7 Enter to select \xB7 Type to search \xB7 Esc to cancel": "Appuyez sur \u2191\u2193 pour naviguer \xB7 Enter pour s\xE9lectionner \xB7 Tapez pour rechercher \xB7 Esc pour annuler",
  "Search\u2026": "Rechercher\u2026",
  "Add directory\u2026": "Ajouter un r\xE9pertoire\u2026",
  "Add directory to workspace": "Ajouter un r\xE9pertoire \xE0 l'espace de travail",
  "Qwen Code can read files in the workspace, and make edits when auto-accept edits is on.": "Qwen Code peut lire les fichiers dans l'espace de travail et effectuer des modifications lorsque l'acceptation automatique est activ\xE9e.",
  "Qwen Code will be able to read files in this directory and make edits when auto-accept edits is on.": "Qwen Code pourra lire les fichiers dans ce r\xE9pertoire et effectuer des modifications lorsque l'acceptation automatique est activ\xE9e.",
  "Enter the path to the directory:": "Entrez le chemin vers le r\xE9pertoire :",
  "Enter directory path\u2026": "Entrez le chemin du r\xE9pertoire\u2026",
  "Tab to complete \xB7 Enter to add \xB7 Esc to cancel": "Tab pour compl\xE9ter \xB7 Enter pour ajouter \xB7 Esc pour annuler",
  "Remove directory?": "Supprimer le r\xE9pertoire ?",
  "Are you sure you want to remove this directory from the workspace?": "\xCAtes-vous s\xFBr de vouloir supprimer ce r\xE9pertoire de l'espace de travail ?",
  "  (Original working directory)": "  (R\xE9pertoire de travail d'origine)",
  "  (from settings)": "  (depuis les param\xE8tres)",
  "Directory does not exist.": "Le r\xE9pertoire n'existe pas.",
  "Path is not a directory.": "Le chemin n'est pas un r\xE9pertoire.",
  "This directory is already in the workspace.": "Ce r\xE9pertoire est d\xE9j\xE0 dans l'espace de travail.",
  "Already covered by existing directory: {{dir}}": "D\xE9j\xE0 couvert par le r\xE9pertoire existant : {{dir}}",
  // ============================================================================
  // Barre de statut
  // ============================================================================
  "Using:": "Utilisation :",
  "{{count}} open file": "{{count}} fichier ouvert",
  "{{count}} open files": "{{count}} fichiers ouverts",
  "(ctrl+g to view)": "(ctrl+g pour afficher)",
  "{{count}} {{name}} file": "{{count}} fichier {{name}}",
  "{{count}} {{name}} files": "{{count}} fichiers {{name}}",
  "{{count}} MCP server": "{{count}} MCP server",
  "{{count}} MCP servers": "{{count}} MCP servers",
  "{{count}} Blocked": "{{count}} bloqu\xE9(s)",
  "(ctrl+t to view)": "(ctrl+t pour afficher)",
  "(ctrl+t to toggle)": "(ctrl+t pour basculer)",
  "Press Ctrl+C again to exit.": "Appuyez \xE0 nouveau sur Ctrl+C pour quitter.",
  "Press Ctrl+D again to exit.": "Appuyez \xE0 nouveau sur Ctrl+D pour quitter.",
  "Press Esc again to clear.": "Appuyez \xE0 nouveau sur Esc pour effacer.",
  // ============================================================================
  // Statut MCP
  // ============================================================================
  "No MCP servers configured.": "Aucun MCP servers configur\xE9.",
  "\u25CC MCP servers are starting up ({{count}} initializing)...": "\u25CC Les MCP servers d\xE9marrent ({{count}} en initialisation)...",
  "Note: First startup may take longer. Tool availability will update automatically.": "Remarque : Le premier d\xE9marrage peut prendre plus de temps. La disponibilit\xE9 des outils se mettra \xE0 jour automatiquement.",
  "Configured MCP servers:": "MCP servers configur\xE9s :",
  Ready: "Pr\xEAt",
  "Starting... (first startup may take longer)": "D\xE9marrage... (le premier d\xE9marrage peut prendre plus de temps)",
  Disconnected: "D\xE9connect\xE9",
  "{{count}} tool": "{{count}} outil",
  "{{count}} tools": "{{count}} outils",
  "{{count}} prompt": "{{count}} invite",
  "{{count}} prompts": "{{count}} invites",
  "(from {{extensionName}})": "(depuis {{extensionName}})",
  OAuth: "OAuth",
  "OAuth expired": "OAuth expir\xE9",
  "OAuth not authenticated": "OAuth non authentifi\xE9",
  "tools and prompts will appear when ready": "les outils et invites appara\xEEtront quand pr\xEAts",
  "{{count}} tools cached": "{{count}} outils mis en cache",
  "Tools:": "Outils :",
  "Parameters:": "Param\xE8tres :",
  "Prompts:": "Invites :",
  "Resources:": "Ressources :",
  Blocked: "Bloqu\xE9",
  "\u2605 Tips:": "\u2605 Conseils :",
  Use: "Utilisez",
  "to show server and tool descriptions": "pour afficher les descriptions des serveurs et des outils",
  "to show tool parameter schemas": "pour afficher les tool parameter schemas",
  "to hide descriptions": "pour masquer les descriptions",
  "to authenticate with OAuth-enabled servers": "pour authentifier avec des serveurs compatibles OAuth",
  Press: "Appuyez sur",
  "to toggle tool descriptions on/off": "pour activer/d\xE9sactiver les descriptions des outils",
  "Starting OAuth authentication for MCP server '{{name}}'...": "D\xE9marrage de l'authentification OAuth pour MCP server '{{name}}'...",
  // ============================================================================
  // Conseils de démarrage
  // ============================================================================
  "Tips:": "Conseils :",
  "Use /compress when the conversation gets long to summarize history and free up context.": "Utilisez /compress quand la conversation devient longue pour r\xE9sumer l'historique et lib\xE9rer le contexte.",
  "Start a fresh idea with /clear or /new; the previous session stays available in history.": "Commencez une nouvelle id\xE9e avec /clear ou /new ; la session pr\xE9c\xE9dente reste disponible dans l'historique.",
  "Use /bug to submit issues to the maintainers when something goes off.": "Utilisez /bug pour soumettre des probl\xE8mes aux mainteneurs quand quelque chose ne va pas.",
  "Switch auth type quickly with /auth.": "Changez rapidement le type d'authentification avec /auth.",
  "You can run any shell commands from Qwen Code using ! (e.g. !ls).": "Vous pouvez ex\xE9cuter n'importe quelle commande shell depuis Qwen Code en utilisant ! (ex. !ls).",
  "Type / to open the command popup; Tab autocompletes slash commands and saved prompts.": "Tapez / pour ouvrir le menu des commandes ; Tab autocompl\xE9te les commandes slash et les invites sauvegard\xE9es.",
  "You can resume a previous conversation by running qwen --continue or qwen --resume.": "Vous pouvez reprendre une conversation pr\xE9c\xE9dente en ex\xE9cutant qwen --continue ou qwen --resume.",
  "You can switch permission mode quickly with Shift+Tab or /approval-mode.": "Vous pouvez changer rapidement le mode de permission avec Shift+Tab ou /approval-mode.",
  "You can switch permission mode quickly with Tab or /approval-mode.": "Vous pouvez changer rapidement le mode de permission avec Tab ou /approval-mode.",
  "Try /insight to generate personalized insights from your chat history.": "Essayez /insight pour g\xE9n\xE9rer des insights personnalis\xE9s depuis votre historique de chat.",
  // ============================================================================
  // Écran de sortie / Stats
  // ============================================================================
  "Agent powering down. Goodbye!": "Agent en cours d'arr\xEAt. Au revoir !",
  "To continue this session, run": "Pour continuer cette session, ex\xE9cutez",
  "Interaction Summary": "R\xE9sum\xE9 de l'interaction",
  "Session ID:": "ID de session :",
  "Tool Calls:": "Appels d'outils :",
  "Success Rate:": "Taux de succ\xE8s :",
  "User Agreement:": "Accord de l'utilisateur :",
  reviewed: "r\xE9vis\xE9",
  "Code Changes:": "Modifications du code :",
  Performance: "Performance",
  "Wall Time:": "Temps r\xE9el :",
  "Agent Active:": "Agent actif :",
  "API Time:": "Temps API :",
  "Tool Time:": "Temps d'outil :",
  "Session Stats": "Stats de session",
  "Model Usage": "Utilisation du mod\xE8le",
  Reqs: "Req.",
  "Input Tokens": "Tokens d'entr\xE9e",
  "Output Tokens": "Tokens de sortie",
  "Savings Highlight:": "\xC9conomies notables :",
  "of input tokens were served from the cache, reducing costs.": "des tokens d'entr\xE9e ont \xE9t\xE9 servis depuis le cache, r\xE9duisant les co\xFBts.",
  "Tip: For a full token breakdown, run `/stats model`.": "Conseil : Pour une d\xE9composition compl\xE8te des tokens, ex\xE9cutez `/stats model`.",
  "Model Stats For Nerds": "Stats du mod\xE8le pour les geeks",
  "Tool Stats For Nerds": "Stats des outils pour les geeks",
  Metric: "M\xE9trique",
  API: "API",
  Requests: "Requ\xEAtes",
  Errors: "Erreurs",
  "Avg Latency": "Latence moyenne",
  Total: "Total",
  Prompt: "Invite",
  Cached: "En cache",
  Thoughts: "R\xE9flexions",
  Output: "Sortie",
  "No API calls have been made in this session.": "Aucun appel API n'a \xE9t\xE9 effectu\xE9 dans cette session.",
  "Tool Name": "Nom de l'outil",
  Calls: "Appels",
  "Success Rate": "Taux de succ\xE8s",
  "Avg Duration": "Dur\xE9e moyenne",
  "User Decision Summary": "R\xE9sum\xE9 des d\xE9cisions de l'utilisateur",
  "Total Reviewed Suggestions:": "Total des suggestions r\xE9vis\xE9es :",
  " \xBB Accepted:": " \xBB Accept\xE9es :",
  " \xBB Rejected:": " \xBB Rejet\xE9es :",
  " \xBB Modified:": " \xBB Modifi\xE9es :",
  " Overall Agreement Rate:": " Taux d'accord global :",
  "No tool calls have been made in this session.": "Aucun appel d'outil n'a \xE9t\xE9 effectu\xE9 dans cette session.",
  "Session start time is unavailable, cannot calculate stats.": "L'heure de d\xE9but de session est indisponible, impossible de calculer les stats.",
  Activity: "Activit\xE9",
  Efficiency: "Efficacit\xE9",
  Today: "Aujourd'hui",
  "Token Trend": "Tendance Tokens",
  "Cache Hit Rate": "Taux de cache",
  "Tool Success": "Succ\xE8s outils",
  "Tool Leaderboard": "Classement outils",
  Time: "Temps",
  Success: "Succ\xE8s",
  Cache: "Cache",
  Latency: "Latence",
  "Code Impact": "Impact code",
  net: "net",
  streak: "s\xE9rie",
  best: "record",
  // ============================================================================
  // Migration de format de commande
  // ============================================================================
  "Command Format Migration": "Migration du format de commande",
  "Found {{count}} TOML command file:": "Trouv\xE9 {{count}} fichier de commande TOML :",
  "Found {{count}} TOML command files:": "Trouv\xE9 {{count}} fichiers de commande TOML :",
  "Current tasks": "T\xE2ches actuelles",
  "Background tasks": "T\xE2ches en arri\xE8re-plan",
  "No tasks currently running": "Aucune t\xE2che en cours",
  "No entry to show.": "Aucune entr\xE9e \xE0 afficher.",
  "needs approval": "n\xE9cessite une approbation",
  "rejected \u2014 edit config to re-approve": "rejet\xE9 \u2014 modifiez la configuration pour r\xE9approuver",
  "Background agent needs approval": "L'agent en arri\xE8re-plan n\xE9cessite une approbation",
  "Approve or deny the request above": "Approuvez ou refusez la demande ci-dessus",
  Running: "En cours",
  Paused: "En pause",
  Completed: "Termin\xE9",
  Failed: "\xC9chec",
  Stopped: "Arr\xEAt\xE9",
  Shell: "Shell",
  Monitor: "Moniteur",
  Command: "Commande",
  Dream: "Dream",
  "[dream] memory consolidation": "[dream] consolidation de la m\xE9moire",
  "[dream] memory consolidation (reviewing {{count}} session)": "[dream] consolidation de la m\xE9moire (analyse de {{count}} session)",
  "[dream] memory consolidation (reviewing {{count}} sessions)": "[dream] consolidation de la m\xE9moire (analyse de {{count}} sessions)",
  "... and {{count}} more": "... et {{count}} de plus",
  "The TOML format is deprecated. Would you like to migrate them to Markdown format?": "Le format TOML est obsol\xE8te. Souhaitez-vous les migrer vers le format Markdown ?",
  "(Backups will be created and original files will be preserved)": "(Des sauvegardes seront cr\xE9\xE9es et les fichiers originaux seront conserv\xE9s)",
  // ============================================================================
  // Phrases de chargement
  // ============================================================================
  "Waiting for user confirmation...": "En attente de la confirmation de l'utilisateur...",
  // ============================================================================
  // Phrases de chargement amusantes
  // ============================================================================
  WITTY_LOADING_PHRASES: [
    "Je me sens chanceux",
    "Livraison d'excellence...",
    "Repeignant les empattements...",
    "Navigation dans le moisissure num\xE9rique...",
    "Consultation des esprits num\xE9riques...",
    "R\xE9ticuler les splines...",
    "R\xE9chauffement des hamsters IA...",
    "Consultation de la conque magique...",
    "G\xE9n\xE9ration d'une r\xE9plique spirituelle...",
    "Polissage des algorithmes...",
    "Ne pr\xE9cipitez pas la perfection (ni mon code)...",
    "Brassage de nouveaux octets...",
    "Comptage des \xE9lectrons...",
    "Engagement des processeurs cognitifs...",
    "V\xE9rification des erreurs de syntaxe dans l'univers...",
    "Un instant, optimisation de l'humour...",
    "M\xE9lange des chutes de r\xE9pliques...",
    "D\xE9m\xEAlage des r\xE9seaux de neurones...",
    "Compilation de la brillance...",
    "Chargement de wit.exe...",
    "Invocation du nuage de sagesse...",
    "Pr\xE9paration d'une r\xE9ponse spirituelle...",
    "Juste une seconde, je d\xE9bogue la r\xE9alit\xE9...",
    "Confusion des options...",
    "Accord des fr\xE9quences cosmiques...",
    "Cr\xE9ation d'une r\xE9ponse digne de votre patience...",
    "Compilation des 0 et des 1...",
    "R\xE9solution des d\xE9pendances... et des crises existentielles...",
    "D\xE9fragmentation des m\xE9moires... RAM et personnelles...",
    "Red\xE9marrage du module humoristique...",
    "Mise en cache de l'essentiel (surtout les m\xE8mes de chats)...",
    "Optimisation pour une vitesse ludicrous",
    "\xC9change de bits... ne le dites pas aux octets...",
    "Nettoyage de la m\xE9moire... je reviens...",
    "Assemblage des internets...",
    "Conversion de caf\xE9 en code...",
    "Mise \xE0 jour de la syntaxe de la r\xE9alit\xE9...",
    "Rec\xE2blage des synapses...",
    "Recherche d'un point-virgule \xE9gar\xE9...",
    "Graissage des rouages de la machine...",
    "Pr\xE9chauffage des serveurs...",
    "Calibrage du condensateur de flux...",
    "Engagement de l'entra\xEEnement de l'improbabilit\xE9...",
    "Canalisation de la Force...",
    "Alignement des \xE9toiles pour une r\xE9ponse optimale...",
    "Qu'il en soit ainsi pour nous tous...",
    "Chargement de la prochaine grande id\xE9e...",
    "Juste un moment, je suis dans la zone...",
    "Pr\xE9paration \xE0 vous \xE9blouir de brillance...",
    "Juste un instant, je peaufine mon esprit...",
    "Attendez, je cr\xE9e un chef-d'\u0153uvre...",
    "Juste une seconde, je d\xE9bogue l'univers...",
    "Juste un moment, j'aligne les pixels...",
    "Juste un instant, j'optimise l'humour...",
    "Juste un moment, j'accorde les algorithmes...",
    "Vitesse warp enclench\xE9e...",
    "Extraction de plus de cristaux de Dilithium...",
    "Pas de panique...",
    "Suivre le lapin blanc...",
    "La v\xE9rit\xE9 est l\xE0... quelque part...",
    "Souffler sur la cartouche...",
    "Chargement... Faites un tonneau !",
    "En attente du respawn...",
    "Finir la course de Kessel en moins de 12 parsecs...",
    "Le g\xE2teau n'est pas un mensonge, il charge juste encore...",
    "Bidouillage de l'\xE9cran de cr\xE9ation de personnage...",
    "Juste un moment, je cherche le bon m\xE8me...",
    "Appuyer sur 'A' pour continuer...",
    "Rassemblement de chats num\xE9riques...",
    "Polissage des pixels...",
    "Recherche d'un jeu de mots d'\xE9cran de chargement appropri\xE9...",
    "Vous distraire avec cette phrase spirituelle...",
    "Presque l\xE0... probablement...",
    "Nos hamsters travaillent aussi vite qu'ils peuvent...",
    "Donnant une tape dans le dos \xE0 Cloudy...",
    "Caressant le chat...",
    "Rickrolling mon patron...",
    "Je ne vais jamais vous abandonner, je ne vais jamais vous laisser tomber...",
    "Claquant la basse...",
    "Go\xFBtant les snozberries...",
    "Je vais jusqu'au bout, je vais \xE0 toute vitesse...",
    "Est-ce la vraie vie ? Est-ce juste une fantaisie ?...",
    "J'ai un bon pressentiment \xE0 ce sujet...",
    "Poking l'ours...",
    "Faire des recherches sur les derniers m\xE8mes...",
    "Trouver comment rendre \xE7a plus spirituel...",
    "Hmm... laissez-moi r\xE9fl\xE9chir...",
    "Comment appelle-t-on un poisson sans yeux ? Un posson...",
    "Pourquoi l'ordinateur est-il all\xE9 en th\xE9rapie ? Il avait trop d'octets...",
    "Pourquoi les programmeurs n'aiment pas la nature ? Elle a trop de bugs...",
    "Pourquoi les programmeurs pr\xE9f\xE8rent le mode sombre ? Parce que la lumi\xE8re attire les bugs...",
    "Pourquoi le d\xE9veloppeur est-il fauch\xE9 ? Parce qu'il a utilis\xE9 tout son cache...",
    "Que peut-on faire avec un crayon cass\xE9 ? Rien, c'est inutile...",
    "Application de la maintenance percussive...",
    "Recherche de la bonne orientation USB...",
    "S'assurer que la fum\xE9e magique reste \xE0 l'int\xE9rieur des c\xE2bles...",
    "Essai de quitter Vim...",
    "Mise en marche de la roue du hamster...",
    "Ce n'est pas un bug, c'est une fonctionnalit\xE9 non document\xE9e...",
    "Engage.",
    "Je reviendrai... avec une r\xE9ponse.",
    "Mon autre processus est un TARDIS...",
    "Communion avec l'esprit machine...",
    "Laisser les pens\xE9es mariner...",
    "Je viens de me souvenir o\xF9 j'ai mis mes cl\xE9s...",
    "Contemplation de l'orbe...",
    "J'ai vu des choses que vous ne croiriez pas... comme un utilisateur qui lit les messages de chargement.",
    "Initiation du regard pensif...",
    "Quel est le go\xFBter pr\xE9f\xE9r\xE9 d'un ordinateur ? Les microchips.",
    "Pourquoi les d\xE9veloppeurs Java portent-ils des lunettes ? Parce qu'ils ne C# pas.",
    "Chargement du laser... pew pew !",
    "Division par z\xE9ro... je plaisante !",
    "Recherche d'un superviseur... je veux dire, traitement.",
    "Faire du bip boop.",
    "Buffering... parce que m\xEAme les IAs ont besoin d'un moment.",
    "Enchev\xEAtrement de particules quantiques pour une r\xE9ponse plus rapide...",
    "Polissage du chrome... sur les algorithmes.",
    "N'\xEAtes-vous pas diverti ? (On y travaille !)",
    "Invocation des lutins de code... pour aider, bien s\xFBr.",
    "En attente de la tonalit\xE9 du modem...",
    "Recalibrage du sens de l'humour.",
    "Mon autre \xE9cran de chargement est encore plus dr\xF4le.",
    "Je suis presque s\xFBr qu'il y a un chat qui marche sur le clavier quelque part...",
    "Am\xE9lioration... Am\xE9lioration... Toujours en chargement.",
    "Ce n'est pas un bug, c'est une caract\xE9ristique... de cet \xE9cran de chargement.",
    "Avez-vous essay\xE9 de l'\xE9teindre et de le rallumer ? (L'\xE9cran de chargement, pas moi.)",
    "Construction de pyl\xF4nes suppl\xE9mentaires..."
  ],
  // ============================================================================
  // Paramètres d'extension - Saisie
  // ============================================================================
  "Enter value...": "Entrer une valeur...",
  "Enter sensitive value...": "Entrer une valeur sensible...",
  "Press Enter to submit, Escape to cancel": "Appuyez sur Enter pour soumettre, Escape pour annuler",
  // ============================================================================
  // Outil de migration de commandes
  // ============================================================================
  "Markdown file already exists: {{filename}}": "Le fichier Markdown existe d\xE9j\xE0 : {{filename}}",
  "TOML Command Format Deprecation Notice": "Avis d'obsolescence du format de commande TOML",
  "Found {{count}} command file(s) in TOML format:": "Trouv\xE9 {{count}} fichier(s) de commande au format TOML :",
  "The TOML format for commands is being deprecated in favor of Markdown format.": "Le format TOML pour les commandes est en cours d'abandon au profit du format Markdown.",
  "Markdown format is more readable and easier to edit.": "Le format Markdown est plus lisible et plus facile \xE0 modifier.",
  "You can migrate these files automatically using:": "Vous pouvez migrer ces fichiers automatiquement en utilisant :",
  "Or manually convert each file:": "Ou convertir chaque fichier manuellement :",
  'TOML: prompt = "..." / description = "..."': 'TOML : prompt = "..." / description = "..."',
  "Markdown: YAML frontmatter + content": "Markdown : YAML frontmatter + contenu",
  "The migration tool will:": "L'outil de migration va :",
  "Convert TOML files to Markdown": "Convertir les fichiers TOML en Markdown",
  "Create backups of original files": "Cr\xE9er des sauvegardes des fichiers originaux",
  "Preserve all command functionality": "Pr\xE9server toutes les fonctionnalit\xE9s des commandes",
  "TOML format will continue to work for now, but migration is recommended.": "Le format TOML continuera \xE0 fonctionner pour l'instant, mais la migration est recommand\xE9e.",
  // ============================================================================
  // Extensions - Commande Explore
  // ============================================================================
  "Open extensions page in your browser": "Ouvrir la page des extensions dans votre navigateur",
  "Unknown extensions source: {{source}}.": "Source d'extensions inconnue : {{source}}.",
  "Would open extensions page in your browser: {{url}} (skipped in test environment)": "Ouvrirait la page des extensions dans votre navigateur : {{url}} (ignor\xE9 en environnement de test)",
  "View available extensions at {{url}}": "Voir les extensions disponibles sur {{url}}",
  "Opening extensions page in your browser: {{url}}": "Ouverture de la page des extensions dans votre navigateur : {{url}}",
  "Failed to open browser. Check out the extensions gallery at {{url}}": "\xC9chec de l'ouverture du navigateur. Consultez la galerie d'extensions sur {{url}}",
  "Retrying in {{seconds}} seconds\u2026 (attempt {{attempt}}/{{maxRetries}})": "Nouvelle tentative dans {{seconds}} secondes\u2026 (tentative {{attempt}}/{{maxRetries}})",
  "Press Ctrl+Y to retry": "Appuyez sur Ctrl+Y pour r\xE9essayer",
  "No failed request to retry.": "Aucune requ\xEAte \xE9chou\xE9e \xE0 r\xE9essayer.",
  "to retry last request": "pour r\xE9essayer la derni\xE8re requ\xEAte",
  // ============================================================================
  // Authentification du plan de codage
  // ============================================================================
  "API key cannot be empty.": "L'API Key ne peut pas \xEAtre vide.",
  "You can get your Coding Plan API key here": "Vous pouvez obtenir votre Coding Plan API Key ici",
  "Failed to update Coding Plan configuration: {{message}}": "\xC9chec de la mise \xE0 jour de la configuration Coding Plan : {{message}}",
  // ============================================================================
  // Configuration de clé API personnalisée
  // ============================================================================
  "You can configure your API key and models in settings.json": "Vous pouvez configurer votre API Key et vos mod\xE8les dans settings.json",
  "Refer to the documentation for setup instructions": "Consultez la documentation pour les instructions de configuration",
  // ============================================================================
  // Boîte de dialogue Auth - Titres et étiquettes
  // ============================================================================
  "Coding Plan": "Coding Plan",
  Custom: "Personnalis\xE9",
  "Select Region for Coding Plan": "S\xE9lectionner la r\xE9gion pour Coding Plan",
  "Choose based on where your account is registered": "Choisissez en fonction de l'endroit o\xF9 votre compte est enregistr\xE9",
  "Enter Coding Plan API Key": "Entrer la Coding Plan API Key",
  // ============================================================================
  // Mises à jour internationales Coding Plan
  // ============================================================================
  "New model configurations are available for {{region}}. Update now?": "De nouvelles configurations de mod\xE8le sont disponibles pour {{region}}. Mettre \xE0 jour maintenant ?",
  '{{region}} configuration updated successfully. Model switched to "{{model}}".': 'Configuration {{region}} mise \xE0 jour avec succ\xE8s. Mod\xE8le chang\xE9 en "{{model}}".',
  // ============================================================================
  // Composant d'utilisation du contexte
  // ============================================================================
  "Context Usage": "Utilisation du contexte",
  "No API response yet. Send a message to see actual usage.": "Pas encore de r\xE9ponse API. Envoyez un message pour voir l'utilisation r\xE9elle.",
  "Estimated pre-conversation overhead": "Surcharge estim\xE9e avant la conversation",
  "Context window": "Fen\xEAtre de contexte",
  Used: "Utilis\xE9",
  Free: "Libre",
  "Autocompact buffer": "Tampon de compaction automatique",
  "Usage by category": "Utilisation par cat\xE9gorie",
  "System prompt": "Invite syst\xE8me",
  "Built-in tools": "Outils int\xE9gr\xE9s",
  "MCP tools": "MCP tools",
  "Memory files": "Fichiers m\xE9moire",
  Skills: "Comp\xE9tences",
  Messages: "Messages",
  "Run /context detail for per-item breakdown.": "Ex\xE9cutez /context detail pour une r\xE9partition par \xE9l\xE9ment.",
  "body loaded": "corps charg\xE9",
  memory: "m\xE9moire",
  "{{region}} configuration updated successfully.": "Configuration {{region}} mise \xE0 jour avec succ\xE8s.",
  "Authenticated successfully with {{region}}. API key and model configs saved to settings.json.": "Authentification r\xE9ussie avec {{region}}. API Key et configurations de mod\xE8le enregistr\xE9es dans settings.json.",
  "Tip: Use /model to switch between available Coding Plan models.": "Conseil : Utilisez /model pour basculer entre les mod\xE8les Coding Plan disponibles.",
  "Type something...": "Tapez quelque chose...",
  Submit: "Soumettre",
  "Submit answers": "Soumettre les r\xE9ponses",
  Cancel: "Annuler",
  "Your answers:": "Vos r\xE9ponses :",
  "(not answered)": "(sans r\xE9ponse)",
  "Ready to submit your answers?": "Pr\xEAt \xE0 soumettre vos r\xE9ponses ?",
  "\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Enter: Select": "\u2191/\u2193 : Naviguer | \u2190/\u2192 : Changer d'onglet | Enter : S\xE9lectionner",
  "\u2191/\u2193: Navigate | Enter: Select | Esc: Cancel": "\u2191/\u2193 : Naviguer | Enter : S\xE9lectionner | Esc : Annuler",
  "Authenticate using Qwen OAuth": "Authentifier avec Qwen OAuth",
  "Authenticate using Alibaba Cloud Coding Plan": "Authentifier avec Alibaba Cloud Coding Plan",
  "Region for Coding Plan (china/global)": "R\xE9gion pour Coding Plan (china/global)",
  "API key for Coding Plan": "API Key pour Coding Plan",
  "Show current authentication status": "Afficher le statut d'authentification actuel",
  "Authentication completed successfully.": "Authentification termin\xE9e avec succ\xE8s.",
  "Starting Qwen OAuth authentication...": "D\xE9marrage de l'authentification Qwen OAuth...",
  "Successfully authenticated with Qwen OAuth.": "Authentification r\xE9ussie avec Qwen OAuth.",
  "Failed to authenticate with Qwen OAuth: {{error}}": "\xC9chec de l'authentification avec Qwen OAuth : {{error}}",
  "Processing Alibaba Cloud Coding Plan authentication...": "Traitement de l'authentification Alibaba Cloud Coding Plan...",
  "Successfully authenticated with Alibaba Cloud Coding Plan.": "Authentification r\xE9ussie avec Alibaba Cloud Coding Plan.",
  "Failed to authenticate with Coding Plan: {{error}}": "\xC9chec de l'authentification avec Coding Plan : {{error}}",
  "\u963F\u91CC\u4E91\u767E\u70BC (aliyun.com)": "\u963F\u91CC\u4E91\u767E\u70BC (aliyun.com)",
  Global: "Global",
  "Alibaba Cloud (alibabacloud.com)": "Alibaba Cloud (alibabacloud.com)",
  "Select region for Coding Plan:": "S\xE9lectionner la r\xE9gion pour Coding Plan :",
  "Enter your Coding Plan API key: ": "Entrez votre Coding Plan API Key : ",
  "Select authentication method:": "S\xE9lectionner la m\xE9thode d'authentification :",
  "\n=== Authentication Status ===\n": "\n=== Statut d'authentification ===\n",
  "\u26A0  No authentication method configured.\n": "\u26A0  Aucune m\xE9thode d'authentification configur\xE9e.\n",
  "Run one of the following commands to get started:\n": "Ex\xE9cutez l'une des commandes suivantes pour commencer :\n",
  "  qwen auth qwen-oauth     - Authenticate with Qwen OAuth (discontinued)": "  qwen auth qwen-oauth     - Authentification avec Qwen OAuth (abandonn\xE9)",
  "Or simply run:": "Ou simplement ex\xE9cutez :",
  "  qwen auth                - Interactive authentication setup\n": "  qwen auth                - Configuration d'authentification interactive\n",
  "\u2713 Authentication Method: Qwen OAuth": "\u2713 M\xE9thode d'authentification : Qwen OAuth",
  "  Type: Free tier (discontinued 2026-04-15)": "  Type : Niveau gratuit (abandonn\xE9 2026-04-15)",
  "  Limit: No longer available": "  Limite : Plus disponible",
  "Qwen OAuth free tier was discontinued on 2026-04-15. Run /auth to switch to Coding Plan, OpenRouter, Fireworks AI, or another provider.": "Le niveau gratuit Qwen OAuth a \xE9t\xE9 abandonn\xE9 le 2026-04-15. Ex\xE9cutez /auth pour passer \xE0 Coding Plan, OpenRouter, Fireworks AI ou un autre fournisseur.",
  "\u2713 Authentication Method: Alibaba Cloud Coding Plan": "\u2713 M\xE9thode d'authentification : Alibaba Cloud Coding Plan",
  "\u4E2D\u56FD (China) - \u963F\u91CC\u4E91\u767E\u70BC": "\u4E2D\u56FD (Chine) - \u963F\u91CC\u4E91\u767E\u70BC",
  "Global - Alibaba Cloud": "Global - Alibaba Cloud",
  "  Region: {{region}}": "  R\xE9gion : {{region}}",
  "  Current Model: {{model}}": "  Mod\xE8le actuel : {{model}}",
  "  Config Version: {{version}}": "  Version de config : {{version}}",
  "  Status: API key configured\n": "  Statut : API Key configur\xE9e\n",
  "\u26A0  Authentication Method: Alibaba Cloud Coding Plan (Incomplete)": "\u26A0  M\xE9thode d'authentification : Alibaba Cloud Coding Plan (Incompl\xE8te)",
  "  Issue: API key not found in environment or settings\n": "  Probl\xE8me : API Key introuvable dans l'environnement ou les param\xE8tres\n",
  "  Run `qwen auth coding-plan` to re-configure.\n": "  Ex\xE9cutez `qwen auth coding-plan` pour reconfigurer.\n",
  "\u2713 Authentication Method: {{type}}": "\u2713 M\xE9thode d'authentification : {{type}}",
  "  Status: Configured\n": "  Statut : Configur\xE9\n",
  "Failed to check authentication status: {{error}}": "\xC9chec de la v\xE9rification du statut d'authentification : {{error}}",
  "Select an option:": "S\xE9lectionner une option :",
  "Raw mode not available. Please run in an interactive terminal.": "Mode brut non disponible. Veuillez ex\xE9cuter dans un terminal interactif.",
  "(Use \u2191 \u2193 arrows to navigate, Enter to select, Ctrl+C to exit)\n": "(Utilisez les fl\xE8ches \u2191 \u2193 pour naviguer, Enter pour s\xE9lectionner, Ctrl+C pour quitter)\n",
  "Switch to plan mode or exit plan mode": "Passer en mode plan ou quitter le mode plan",
  "Set how hard reasoning-capable models think ({{tiers}}); mapped and clamped per provider.": "D\xE9finit l'intensit\xE9 de r\xE9flexion des mod\xE8les compatibles avec le raisonnement ({{tiers}}) ; mapp\xE9e et limit\xE9e selon le fournisseur.",
  "Exited plan mode. Previous approval mode restored.": "Mode plan quitt\xE9. Mode d'approbation pr\xE9c\xE9dent restaur\xE9.",
  "Enabled plan mode. The agent will analyze and plan without executing tools.": "Mode plan activ\xE9. L'agent analysera et planifiera sans ex\xE9cuter d'outils.",
  'Already in plan mode. Use "/plan exit" to exit plan mode.': 'D\xE9j\xE0 en mode plan. Utilisez "/plan exit" pour quitter le mode plan.',
  'Not in plan mode. Use "/plan" to enter plan mode first.': `Pas en mode plan. Utilisez "/plan" pour entrer en mode plan d'abord.`,
  "Set up Qwen Code's status line UI": "Configurer l'interface de la barre de statut de Qwen Code",
  "Press \u2191 to edit queued messages": "Appuyez sur \u2191 pour modifier les messages en file d\u2019attente",
  "Add a QWEN.md file to give Qwen Code persistent project context.": "Ajoutez un fichier QWEN.md pour donner \xE0 Qwen Code un contexte de projet persistant.",
  "Use /btw to ask a quick side question without disrupting the conversation.": "Utilisez /btw pour poser une question secondaire rapide sans perturber la conversation.",
  "Context is almost full! Run /compress now or start /new to continue.": "Le contexte est presque plein ! Lancez /compress maintenant ou d\xE9marrez /new pour continuer.",
  "Context is getting full. Use /compress to free up space.": "Le contexte se remplit. Utilisez /compress pour lib\xE9rer de l\u2019espace.",
  "Long conversation? /compress summarizes history to free context.": "Conversation longue ? /compress r\xE9sume l\u2019historique pour lib\xE9rer du contexte.",
  "Manage extension settings": "G\xE9rer les param\xE8tres de l\u2019extension",
  "Ask a quick side question without affecting the main conversation": "Poser rapidement une question annexe sans affecter la conversation principale",
  "Manage Arena sessions": "G\xE9rer les sessions Arena",
  "Start an Arena session with multiple models competing on the same task": "D\xE9marrer une session Arena o\xF9 plusieurs mod\xE8les s'affrontent sur la m\xEAme t\xE2che",
  "Stop the current Arena session": "Arr\xEAter la session Arena en cours",
  "Show the current Arena session status": "Afficher l'\xE9tat de la session Arena en cours",
  "Select a model result and merge its diff into the current workspace": "S\xE9lectionner un r\xE9sultat de mod\xE8le et fusionner son diff dans l'espace de travail actuel",
  "No running Arena session found.": "Aucune session Arena en cours trouv\xE9e.",
  "No Arena session found. Start one with /arena start.": "Aucune session Arena trouv\xE9e. Lancez-en une avec /arena start.",
  "Arena session is still running. Wait for it to complete or use /arena stop first.": "La session Arena est encore en cours. Attendez qu'elle se termine ou utilisez d'abord /arena stop.",
  "No successful agent results to select from. All agents failed or were cancelled.": "Aucun r\xE9sultat d'agent r\xE9ussi \xE0 s\xE9lectionner. Tous les agents ont \xE9chou\xE9 ou ont \xE9t\xE9 annul\xE9s.",
  "Use /arena stop to end the session.": "Utilisez /arena stop pour terminer la session.",
  'No idle agent found matching "{{name}}".': 'Aucun agent inactif trouv\xE9 correspondant \xE0 "{{name}}".',
  "Failed to apply changes from {{label}}: {{error}}": "\xC9chec de l'application des modifications de {{label}}\u202F: {{error}}",
  "Applied changes from {{label}} to workspace. Arena session complete.": "Modifications de {{label}} appliqu\xE9es \xE0 l'espace de travail. Session Arena termin\xE9e.",
  "Discard all Arena results and clean up worktrees?": "Supprimer tous les r\xE9sultats Arena et nettoyer les arbres de travail\u202F?",
  "Arena results discarded. All worktrees cleaned up.": "R\xE9sultats Arena supprim\xE9s. Tous les arbres de travail ont \xE9t\xE9 nettoy\xE9s.",
  "Arena is not supported in non-interactive mode. Use interactive mode to start an Arena session.": "Arena n'est pas pris en charge en mode non interactif. Utilisez le mode interactif pour d\xE9marrer une session Arena.",
  "Arena is not supported in non-interactive mode. Use interactive mode to stop an Arena session.": "Arena n'est pas pris en charge en mode non interactif. Utilisez le mode interactif pour arr\xEAter une session Arena.",
  "Arena is not supported in non-interactive mode.": "Arena n'est pas pris en charge en mode non interactif.",
  "An Arena session exists. Use /arena stop or /arena select to end it before starting a new one.": "Une session Arena existe. Utilisez /arena stop ou /arena select pour la terminer avant d'en d\xE9marrer une nouvelle.",
  "Usage: /arena start --models model1,model2 <task>": "Utilisation\u202F: /arena start --models model1,model2 <t\xE2che>",
  "Models to compete (required, at least 2)": "Mod\xE8les en comp\xE9tition (obligatoire, au moins 2)",
  "Format: authType:modelId or just modelId": "Format\u202F: authType:modelId ou simplement modelId",
  "Arena requires at least 2 models. Use --models model1,model2 to specify.": "Arena n\xE9cessite au moins 2 mod\xE8les. Utilisez --models model1,model2 pour les sp\xE9cifier.",
  'Arena started with {{count}} agents on task: "{{task}}"\nModels:\n{{modelList}}': 'Arena d\xE9marr\xE9e avec {{count}} agents sur la t\xE2che\u202F: "{{task}}"\nMod\xE8les\u202F:\n{{modelList}}',
  "Arena panes are running in tmux. Attach with: `{{command}}`": "Les panneaux Arena sont en cours d'ex\xE9cution dans tmux. Attachez avec\u202F: `{{command}}`",
  "[{{label}}] failed: {{error}}": "[{{label}}] a \xE9chou\xE9\u202F: {{error}}",
  "Loading suggestions...": "Chargement des suggestions...",
  "Open the memory manager.": "Ouvrir le gestionnaire de m\xE9moire.",
  "Save a durable memory to the memory system.": "Enregistrer une m\xE9moire durable dans le syst\xE8me de m\xE9moire.",
  'Show context window usage breakdown. Use "/context detail" for per-item breakdown.': 'Afficher le d\xE9tail de l\u2019utilisation de la fen\xEAtre de contexte. Utilisez "/context detail" pour le d\xE9tail par \xE9l\xE9ment.',
  "Show per-item context usage breakdown.": "Afficher le d\xE9tail de l\u2019utilisation du contexte par \xE9l\xE9ment.",
  // === Missing key backfill ===
  "to view transcript": "pour voir la transcription",
  "The name of the extension to update.": "Le nom de l'extension \xE0 mettre \xE0 jour.",
  "Session (temporary)": "Session (temporaire)",
  "Open auto-memory folder": "Ouvrir le dossier de m\xE9moire automatique",
  "Auto-memory: {{status}}": "M\xE9moire automatique : {{status}}",
  "Auto-dream: {{status}} \xB7 {{lastDream}} \xB7 /dream to run": "R\xEAve automatique : {{status}} \xB7 {{lastDream}} \xB7 /dream pour lancer",
  "Auto-skill: {{status}}": "Comp\xE9tence automatique : {{status}}",
  never: "jamais",
  on: "activ\xE9",
  off: "d\xE9sactiv\xE9",
  "Remove matching entries from managed auto-memory.": "Supprimer les entr\xE9es correspondantes de la m\xE9moire automatique g\xE9r\xE9e.",
  "Usage: /forget <memory text to remove>": "Utilisation : /forget <texte de m\xE9moire \xE0 supprimer>",
  "No managed auto-memory entries matched: {{query}}": "Aucune entr\xE9e de m\xE9moire automatique g\xE9r\xE9e ne correspond \xE0 : {{query}}",
  "Consolidate managed auto-memory topic files.": "Consolider les fichiers de sujets de m\xE9moire automatique g\xE9r\xE9e.",
  "Press c to copy the authorization URL to your clipboard.": "Appuyez sur c pour copier l'URL d'autorisation dans le presse-papiers.",
  "Copy request sent to your terminal. If paste is empty, copy the URL above manually.": "Demande de copie envoy\xE9e au terminal. Si le collage est vide, copiez manuellement l'URL ci-dessus.",
  "Cannot write to terminal \u2014 copy the URL above manually.": "Impossible d'\xE9crire dans le terminal \u2014 copiez manuellement l'URL ci-dessus.",
  'Invalid API key. Coding Plan API keys start with "sk-sp-". Please check.': 'API Key invalide. Les Coding Plan API Keys commencent par "sk-sp-". Veuillez v\xE9rifier.',
  "Lock release warning": "Avertissement de lib\xE9ration du verrou",
  "Metadata write warning": "Avertissement d'\xE9criture des m\xE9tadonn\xE9es",
  "Subsequent dreams may be skipped as locked until the next session's staleness sweep cleans the file.": "Les dreams suivants peuvent \xEAtre ignor\xE9s comme verrouill\xE9s jusqu'\xE0 ce que le prochain nettoyage des sessions obsol\xE8tes supprime le fichier.",
  "The scheduler gate did not see this dream's timestamp; the next dream cycle may re-fire sooner than usual.": "La porte du planificateur n'a pas vu l'horodatage de ce dream ; le prochain cycle de dream peut se relancer plus t\xF4t que d'habitude.",
  "% used": "% utilis\xE9",
  "% context used": "% de contexte utilis\xE9",
  "Context exceeds limit! Use /compress or /clear to reduce.": "Le contexte d\xE9passe la limite ! Utilisez /compress ou /clear pour le r\xE9duire.",
  // === History collapse/expand commands ===
  "Set history to collapse by default when resuming a session": "Set history to collapse by default when resuming a session",
  "Set history to expand by default when resuming a session": "Set history to expand by default when resuming a session",
  "Expand the currently collapsed history transcript": "Expand the currently collapsed history transcript",
  "Control history display preferences and visibility": "Control history display preferences and visibility",
  "History will be collapsed by default for future resumed sessions.": "History will be collapsed by default for future resumed sessions.",
  "History will be expanded by default for future resumed sessions.": "History will be expanded by default for future resumed sessions.",
  "History is already expanded in this session.": "History is already expanded in this session.",
  "Usage: /history collapse-on-resume|expand-on-resume|expand-now": "Usage: /history collapse-on-resume|expand-on-resume|expand-now",
  "History collapsed: {{n}} messages hidden. Use /history expand-now to show.": "Historique r\xE9duit : {{n}} messages masqu\xE9s. Utilisez /history expand-now pour afficher.",
  // === Same-as-English optimization ===
  Auth: "Authentification",
  Auto: "Automatique",
  Tokens: "Jetons",
  tokens: "jetons",
  "\u4E2D\u56FD (China)": "Chine",
  // Stats Dashboard — Category 2
  "Activity Heatmap": "Carte d'activit\xE9",
  Less: "Moins",
  More: "Plus",
  Sessions: "Sessions",
  Duration: "Dur\xE9e",
  Projects: "Projets",
  "Loading stats...": "Chargement des stats...",
  "(no data)": "(aucune donn\xE9e)",
  d: "j",
  h: "h",
  m: "m",
  Input: "Entr\xE9e",
  Models: "Mod\xE8les",
  "All time": "Tout le temps",
  "Last 7 days": "7 derniers jours",
  "Last 30 days": "30 derniers jours",
  "Show usage statistics dashboard.": "Afficher le tableau de bord des statistiques d'utilisation.",
  // Stats Dashboard — keyboard hints (not translated)
  "tab \xB7 esc": "tab \xB7 esc",
  "tab \xB7 r dates \xB7 \u2190\u2192 month \xB7 esc": "tab \xB7 r dates \xB7 \u2190\u2192 month \xB7 esc",
  "tab \xB7 r dates \xB7 esc": "tab \xB7 r dates \xB7 esc",
  // Stats Dashboard — missing labels
  "API Requests": "Requ\xEAtes API",
  "Tool Calls": "Appels d'outils",
  "Success rate": "Taux de r\xE9ussite",
  "Code Changes": "Modifications du code",
  Tool: "Outil",
  reqs: "req.",
  in: "ent.",
  out: "sort.",
  "In/Out": "Ent/Sort",
  // Update command
  "Check for Qwen Code updates and install if available": "V\xE9rifier les mises \xE0 jour de Qwen Code et installer si disponible",
  "Qwen Code update available! {{current}} \u2192 {{latest}}": "Mise \xE0 jour de Qwen Code disponible ! {{current}} \u2192 {{latest}}",
  "A new version of Qwen Code is available! {{current}} \u2192 {{latest}}": "Une nouvelle version de Qwen Code est disponible ! {{current}} \u2192 {{latest}}",
  "Qwen Code {{version}} is up to date!": "Qwen Code {{version}} est \xE0 jour !",
  "Failed to check for updates. Please check your network or registry configuration.": "\xC9chec de la v\xE9rification des mises \xE0 jour. V\xE9rifiez votre r\xE9seau ou la configuration du registre.",
  "Unable to check for updates: {{reason}}": "Impossible de v\xE9rifier les mises \xE0 jour : {{reason}}",
  "Update successful! The new version will be used on your next run.": "Mise \xE0 jour r\xE9ussie ! La nouvelle version sera utilis\xE9e lors de la prochaine ex\xE9cution.",
  "Update downloaded. It will be applied after you exit this session.": "Mise \xE0 jour t\xE9l\xE9charg\xE9e. Elle sera appliqu\xE9e apr\xE8s avoir quitt\xE9 cette session.",
  "Update failed: {{error}}": "\xC9chec de la mise \xE0 jour : {{error}}",
  "Downloading update...": "T\xE9l\xE9chargement de la mise \xE0 jour...",
  "Update successful! Please restart Qwen Code to use the new version. Switching model providers before restarting may not work correctly.": "Mise \xE0 jour r\xE9ussie ! Red\xE9marrez Qwen Code pour utiliser la nouvelle version. Changer de fournisseur de mod\xE8le avant le red\xE9marrage peut ne pas fonctionner correctement.",
  "Automatic update failed. Please try updating manually.": "La mise \xE0 jour automatique a \xE9chou\xE9. Essayez de mettre \xE0 jour manuellement.",
  "Automatic update failed: {{error}}. Re-run the installer to update manually.": "\xC9chec de la mise \xE0 jour automatique : {{error}}. Relancez le programme d\u2019installation pour mettre \xE0 jour manuellement.",
  'Running from a local git clone. Please update with "git pull".': 'Ex\xE9cution depuis un clone Git local. Veuillez mettre \xE0 jour avec "git pull".',
  "Running via npx, update not applicable.": "Ex\xE9cution via npx, mise \xE0 jour non applicable.",
  "Running via pnpx, update not applicable.": "Ex\xE9cution via pnpx, mise \xE0 jour non applicable.",
  "Running via bunx, update not applicable.": "Ex\xE9cution via bunx, mise \xE0 jour non applicable.",
  'Installed via Homebrew. Please update with "brew upgrade".': 'Install\xE9 via Homebrew. Veuillez mettre \xE0 jour avec "brew upgrade".',
  "Locally installed. Please update via your project's package.json.": "Install\xE9 localement. Veuillez mettre \xE0 jour via le package.json de votre projet.",
  "Update requires sudo. Please run:": "La mise \xE0 jour n\xE9cessite sudo. Veuillez ex\xE9cuter :",
  "Standalone install detected. Attempting to automatically update now...": "Installation autonome d\xE9tect\xE9e. Tentative de mise \xE0 jour automatique...",
  "Standalone install detected. Please rerun the standalone installer to update:": "Installation autonome d\xE9tect\xE9e. Veuillez relancer l\u2019installateur autonome pour mettre \xE0 jour :",
  "Run the following to update:": "Ex\xE9cutez la commande suivante pour mettre \xE0 jour :",
  "Unable to auto-update this standalone installation. Please reinstall from:": "Impossible de mettre \xE0 jour automatiquement cette installation autonome. Veuillez r\xE9installer depuis :",
  "Manual update required. Please reinstall Qwen Code.": "Mise \xE0 jour manuelle requise. Veuillez r\xE9installer Qwen Code.",
  "This session uses the custom sandbox image {{image}}. Update that image and restart Qwen Code.": "Cette session utilise l\u2019image de bac \xE0 sable personnalis\xE9e {{image}}. Mettez \xE0 jour l\u2019image et red\xE9marrez Qwen Code.",
  "Update Qwen Code on the host, then restart the sandbox.": "Mettez \xE0 jour Qwen Code sur l\u2019h\xF4te, puis red\xE9marrez le bac \xE0 sable.",
  "The update will be installed after you exit this session.": "La mise \xE0 jour sera install\xE9e apr\xE8s la fermeture de cette session.",
  "Run /update to install the update on the host.": "Ex\xE9cutez /update pour installer la mise \xE0 jour sur l\u2019h\xF4te.",
  "Run /update to install the update.": "Ex\xE9cutez /update pour installer la mise \xE0 jour.",
  // ============================================================================
  // reload-plugins command
  // ============================================================================
  "{{count}} extension": "{{count}} extension",
  "{{count}} extensions": "{{count}} extensions",
  "{{count}} command": "{{count}} command",
  "{{count}} commands": "{{count}} commands",
  "{{count}} skill": "{{count}} skill",
  "{{count}} skills": "{{count}} skills",
  "{{count}} agent": "{{count}} agent",
  "{{count}} agents": "{{count}} agents",
  "{{count}} hook": "{{count}} hook",
  "{{count}} hooks": "{{count}} hooks",
  "{{count}} extension MCP server": "{{count}} extension MCP server",
  "{{count}} extension MCP servers": "{{count}} extension MCP servers",
  "{{count}} extension LSP server": "{{count}} extension LSP server",
  "{{count}} extension LSP servers": "{{count}} extension LSP servers",
  "Reload extension changes from disk": "Reload extension changes from disk",
  "Reloaded extensions: {{summary}}": "Reloaded extensions: {{summary}}",
  "Reload failed: {{message}}": "Reload failed: {{message}}",
  "Reload failed.": "Reload failed.",
  "Extensions changed on disk. Run /reload-plugins to apply updates.": "Extensions changed on disk. Run /reload-plugins to apply updates.",
  "Failed to refresh extension content: {{message}}. Run /reload-plugins to apply updates.": "Failed to refresh extension content: {{message}}. Run /reload-plugins to apply updates.",
  "Failed to refresh extension content. Run /reload-plugins to apply updates.": "Failed to refresh extension content. Run /reload-plugins to apply updates.",
  "Extension reload did not complete. Run /reload-plugins to try again.": "Extension reload did not complete. Run /reload-plugins to try again.",
  "Session recording stopped after a write failure. New messages for the affected session will not be saved. Check disk space and permissions, then start a new session to resume recording. See the debug log for details.": "L'enregistrement de la session s'est arr\xEAt\xE9 apr\xE8s un \xE9chec d'\xE9criture. Les nouveaux messages de la session concern\xE9e ne seront pas enregistr\xE9s. V\xE9rifiez l'espace disque et les autorisations, puis d\xE9marrez une nouvelle session pour reprendre l'enregistrement. Consultez le journal de d\xE9bogage pour plus de d\xE9tails.",
  "Session recording stopped after a write failure. New messages for the affected session will not be saved. Check disk space and permissions, then run `/clear` to start a new recorded session. See the debug log for details.": "L'enregistrement de la session s'est arr\xEAt\xE9 apr\xE8s un \xE9chec d'\xE9criture. Les nouveaux messages de la session concern\xE9e ne seront pas enregistr\xE9s. V\xE9rifiez l'espace disque et les autorisations, puis ex\xE9cutez `/clear` pour d\xE9marrer une nouvelle session enregistr\xE9e. Consultez le journal de d\xE9bogage pour plus de d\xE9tails."
};
export {
  fr_default as default
};
/**
 * @license
 * Copyright 2025 Qwen
 * SPDX-License-Identifier: Apache-2.0
 */
