export const settingsDict = {
  'settings.appearance.language.label': 'Langue',
  'settings.appearance.language.description': 'Choisissez la langue de l\'interface.',
  'settings.appearance.language.select': 'Sélectionnez la langue',
  'settings.window.description': 'Fenêtre des paramètres OpenChamber.',
  'settings.view.home.title': 'Paramètres',
  'settings.view.home.description': 'Accédez aux pages communes.',
  'settings.view.home.cards.providers.title': 'Fournisseurs',
  'settings.view.home.cards.providers.description': 'Connecter les modèles + les identifiants',
  'settings.view.home.cards.agents.title': 'Agents',
  'settings.view.home.cards.agents.description': 'Invites, outils, autorisations',
  'settings.view.home.cards.skillsCatalog.title': 'Catalogue de skills',
  'settings.view.home.cards.skillsCatalog.description': 'Installer des skills depuis des catalogues',
  'settings.view.home.cards.mcp.title': 'MCP',
  'settings.view.home.cards.mcp.description': 'Configurer les serveurs MCP + connexions',
  'settings.view.home.cards.plugins.title': 'Plugins',
  'settings.view.home.cards.plugins.description': 'Gérer les plugins OpenCode',
  'settings.view.home.cards.usage.title': 'Usage',
  'settings.view.home.cards.usage.description': 'Quota + visibilité des dépenses',
  'settings.view.unavailable.title': 'Pas disponible',
  'settings.view.unavailable.description': 'Cette page de paramètres n\'est pas disponible dans ce runtime.',
  'settings.view.badge.beta': 'bêta',
  'settings.view.actions.reloadOpenCode': 'Recharger OpenCode',
  'settings.view.actions.reloadOpenCodeTooltip': 'Redémarrez OpenCode et rechargez sa configuration.',
  'settings.view.actions.backToSettings': 'Retour aux paramètres',
  'settings.view.actions.closeSettings': 'Fermer les paramètres',
  'settings.view.actions.openSectionList': 'Ouvrir la liste des sections',
  'settings.view.actions.closeSettingsWithShortcut': 'Fermer les paramètres ({shortcut}+,)',
  'settings.view.actions.back': 'Retour',
  'settings.view.actions.resizeNavigation': 'Redimensionner la navigation dans les paramètres',
  'settings.page.projects.title': 'Projets',
  'settings.page.remoteInstances.title': 'Instances distantes',
  'settings.page.providers.title': 'Fournisseurs',
  'settings.page.usage.title': 'Usage',
  'settings.page.agents.title': 'Agents',
  'settings.page.commands.title': 'Commandes',
  'settings.page.mcp.title': 'MCP',
  'settings.page.plugins.title': 'Plugins',
  'settings.page.skills.title': 'Skills',
  'settings.page.skillsCatalog.title': 'Catalogue de skills',
  'settings.page.git.title': 'Git',
  'settings.page.appearance.title': 'Apparence',
  'settings.page.chat.title': 'Chat',
  'settings.page.shortcuts.title': 'Raccourcis',
  'settings.page.sessions.title': 'Sessions',
  'settings.page.magicPrompts.title': 'Prompts magiques',
  'settings.page.notifications.title': 'Notifications',
  'settings.page.voice.title': 'Voix',
  'settings.page.tunnel.title': 'Tunnel à distance',
  'settings.page.snippets.title': 'Extraits',
  'settings.snippets.sidebar.title': 'Extraits',
  'settings.snippets.sidebar.total': 'Total : {count}',
  'settings.snippets.sidebar.actions.create': 'Créer un extrait',
  'settings.snippets.sidebar.actions.more': 'Plus de propositions pour {name}',
  'settings.snippets.sidebar.toast.deleted': 'Extrait supprimé',
  'settings.snippets.sidebar.toast.deleteFailed': 'Échec de la suppression de l\'extrait',
  'settings.snippets.sidebar.dialog.deleteTitle': 'Supprimer l\'extrait ?',
  'settings.snippets.sidebar.dialog.deleteDescription': 'Cela supprimera définitivement #{name}.',
  'settings.snippets.page.empty.title': 'Sélectionnez un extrait',
  'settings.snippets.page.empty.description': 'Choisissez un extrait dans la barre latérale pour le modifier.',
  'settings.snippets.page.title.new': 'Nouvel extrait',
  'settings.snippets.page.field.namePlaceholder': 'nom de l\'extrait',
  'settings.snippets.page.field.descriptionPlaceholder': 'À quoi sert cet extrait',
  'settings.snippets.page.field.aliases': 'Alias',
  'settings.snippets.page.field.aliasesPlaceholder': 'en sécurité, prudent',
  'settings.snippets.page.field.content': 'Contenu',
  'settings.snippets.page.field.contentPlaceholder': 'Markdown de l\'extrait...',
  'settings.snippets.page.hint': 'Utilisez #name dans les prompts. Prend en charge les alias et les blocs de pré-ajout/ajout compatibles avec les extraits de code opencode.',
  'settings.snippets.page.toast.nameRequired': 'Le nom de l\'extrait est obligatoire',
  'settings.snippets.page.toast.contentRequired': 'Le contenu de l\'extrait est requis',
  'settings.snippets.page.toast.saveFailed': 'Échec de l\'enregistrement de l\'extrait',
  'settings.snippets.page.toast.saved': 'Extrait enregistré',
  'settings.page.promptTemplates.title': 'Modèles de prompt',
  'settings.promptTemplates.sidebar.title': 'Modèles de prompt',
  'settings.promptTemplates.sidebar.total': 'Total : {count}',
  'settings.promptTemplates.sidebar.empty.title': 'Aucun modèle de prompt',
  'settings.promptTemplates.sidebar.empty.description': 'Créez un modèle de prompt pour commencer.',
  'settings.promptTemplates.sidebar.toast.deleted': 'Modèle "{name}" supprimé',
  'settings.promptTemplates.sidebar.toast.deleteFailed': 'Échec de la suppression du modèle',
  'settings.promptTemplates.sidebar.toast.nameRequired': 'Le nom du modèle est obligatoire',
  'settings.promptTemplates.sidebar.toast.renamed': 'Modèle renommé',
  'settings.promptTemplates.sidebar.toast.renameFailed': 'Échec du changement de nom du modèle',
  'settings.promptTemplates.sidebar.dialog.deleteTitle': 'Supprimer le modèle ?',
  'settings.promptTemplates.sidebar.dialog.deleteDescription': 'Cela supprimera définitivement "{name}". Cette action ne peut pas être annulée.',
  'settings.promptTemplates.sidebar.renameDialog.title': 'Renommer le modèle',
  'settings.promptTemplates.sidebar.renameDialog.description': 'Entrez un nouveau nom pour "{name}".',
  'settings.promptTemplates.sidebar.renameDialog.placeholder': 'Nom du modèle',
  'settings.promptTemplates.sidebar.badge.default': 'défaut',
  'settings.promptTemplates.page.empty.title': 'Sélectionnez un modèle',
  'settings.promptTemplates.page.empty.description': 'Choisissez un modèle dans la barre latérale pour le modifier.',
  'settings.promptTemplates.page.title.new': 'Nouveau modèle',
  'settings.promptTemplates.page.subtitle.edit': 'Modifier le modèle',
  'settings.promptTemplates.page.subtitle.new': 'Créer un nouveau modèle de prompt',
  'settings.promptTemplates.page.section.identity': 'Identité',
  'settings.promptTemplates.page.field.name': 'Nom',
  'settings.promptTemplates.page.field.namePlaceholder': 'Nom du modèle',
  'settings.promptTemplates.page.section.template': 'Modèle',
  'settings.promptTemplates.page.field.templatePlaceholder': 'Saisissez le texte du modèle de prompt...',
  'settings.promptTemplates.page.templateHint': 'Ce texte sera ajouté au début du prompt de l\'utilisateur lorsqu\'il est sélectionné dans un groupe multi-run.',
  'settings.promptTemplates.page.toast.nameRequired': 'Le nom du modèle est obligatoire',
  'settings.promptTemplates.page.toast.updated': 'Modèle mis à jour',
  'settings.promptTemplates.page.toast.updateFailed': 'Échec de la mise à jour du modèle',
  'settings.promptTemplates.page.toast.created': 'Modèle créé',
  'settings.promptTemplates.page.toast.createFailed': 'Échec de la création du modèle',
  'settings.promptTemplates.page.toast.saveUnexpectedError': 'Une erreur inattendue s\'est produite lors de l\'enregistrement',
  'settings.openchamber.tunnel.title': 'Tunnel à distance',
  'settings.openchamber.tunnel.description': 'Configurez un accès à distance sécurisé avec des liens rapides ou votre propre tunnel Cloudflare distant géré.',
  'settings.openchamber.tunnel.note.serverSideEnforced': 'L\'accès au tunnel sécurisé est appliqué côté serveur.',
  'settings.openchamber.tunnel.note.connectLinksOneTime': 'Les liens de connexion sont uniques et sont révoqués lorsque le tunnel s\'arrête ou lorsque la durée de vie du lien de connexion expire.',
  'settings.openchamber.tunnel.note.cloudflareConnectorTarget': 'Cible du connecteur Cloudflare :',
  'settings.openchamber.tunnel.note.cloudflareConnectorTargetUse': 'Pour la cible du connecteur Cloudflare, utilisez',
  'settings.openchamber.tunnel.note.tokensSavedPerTunnel': 'Les jetons sont enregistrés par tunnel et réutilisés à partir du disque.',
  'settings.openchamber.tunnel.note.customConfigUsed': 'Le fichier de configuration personnalisé sera utilisé lors du démarrage du tunnel.',
  'settings.openchamber.tunnel.note.defaultConfigUsed': 'Lorsqu\'il est vide, cloudflared utilise sa configuration par défaut (~/.cloudflared/config.yml).',
  'settings.openchamber.tunnel.note.managedRemoteRequiresDomain': 'Les tunnels distants gérés nécessitent un domaine acheté dans votre compte Cloudflare.',
  'settings.openchamber.tunnel.note.managedLocalUsesConfig': 'Les tunnels locaux gérés utilisent votre fichier de configuration cloudflared local.',
  'settings.openchamber.tunnel.note.startModeAndGenerateLink': 'Démarrez un tunnel {mode} et générez un lien de connexion unique. Ne fermez pas l\'application pendant que ce tunnel est utilisé.',
  'settings.openchamber.tunnel.note.scanQrToConnect': 'Scannez avec votre téléphone pour vous connecter.',
  'settings.openchamber.tunnel.section.redeemedAccessLinks': 'Liens d\'accès utilisés',
  'settings.openchamber.tunnel.section.savedManagedRemoteTunnels': 'Tunnels distants gérés enregistrés',
  'settings.openchamber.tunnel.notAvailable.cloudflaredNotFound': 'cloudflared introuvable',
  'settings.openchamber.tunnel.notAvailable.installHint': 'Installez-le pour activer l\'accès au tunnel à distance :',
  'settings.openchamber.tunnel.field.provider': 'Fournisseur',
  'settings.openchamber.tunnel.field.providerPlaceholder': 'Sélectionnez le fournisseur',
  'settings.openchamber.tunnel.field.tunnelType': 'Type de tunnel',
  'settings.openchamber.tunnel.field.connectLinkTtl': 'Connecter le lien TTL',
  'settings.openchamber.tunnel.field.tunnelSessionTtl': 'Durée de vie de la session tunnel',
  'settings.openchamber.tunnel.field.hostnameLabel': 'Nom d\'hôte :',
  'settings.openchamber.tunnel.field.savedTokenAvailablePlaceholder': 'Jeton enregistré disponible (facultatif à remplacer)',
  'settings.openchamber.tunnel.field.pasteTokenPlaceholder': 'Coller le jeton pour ce tunnel',
  'settings.openchamber.tunnel.field.newPresetNamePlaceholder': 'Nom du tunnel (e.g. Production)',
  'settings.openchamber.tunnel.field.newPresetHostnamePlaceholder': 'Nom d\'hôte (e.g. oc.example.com)',
  'settings.openchamber.tunnel.field.newPresetTokenPlaceholder': 'Jeton',
  'settings.openchamber.tunnel.field.managedRemoteTokenInfoAria': 'Informations sur le jeton de tunnel distant géré',
  'settings.openchamber.tunnel.field.configurationFile': 'Fichier de configuration',
  'settings.openchamber.tunnel.field.configurationFilePlaceholder': 'Utilisation de la configuration cloudflared par défaut',
  'settings.openchamber.tunnel.field.managedRemoteTunnelToConnect': 'Tunnel distant géré pour se connecter',
  'settings.openchamber.tunnel.field.selectSavedTunnelPlaceholder': 'Sélectionnez le tunnel enregistré',
  'settings.openchamber.tunnel.field.publicUrlHint': 'URL publique (non accessible sans jeton)',
  'settings.openchamber.tunnel.field.connectLink': 'Lien de connexion',
  'settings.openchamber.tunnel.field.expires': 'Expire',
  'settings.openchamber.tunnel.field.connectQrAlt': 'Code de connexion du tunnel QR',
  'settings.openchamber.tunnel.actions.removePresetAria': 'Supprimer {name}',
  'settings.openchamber.tunnel.actions.saveToken': 'Enregistrer le jeton',
  'settings.openchamber.tunnel.actions.browseConfigFileAria': 'Parcourir le fichier de configuration',
  'settings.openchamber.tunnel.actions.clearConfigFileAria': 'Effacer le fichier de configuration',
  'settings.openchamber.tunnel.actions.openManagedRemoteDocs': 'Consultez la documentation sur la façon de configurer un tunnel distant géré',
  'settings.openchamber.tunnel.actions.openManagedLocalDocs': 'Consultez la documentation sur la configuration du tunnel local géré',
  'settings.openchamber.tunnel.actions.startTunnel': 'Démarrer le tunnel',
  'settings.openchamber.tunnel.actions.startingTunnel': 'Démarrage du tunnel...',
  'settings.openchamber.tunnel.actions.stopTunnel': 'Arrêter le tunnel',
  'settings.openchamber.tunnel.actions.stopping': 'Arrêt...',
  'settings.openchamber.tunnel.actions.newConnectLink': 'Nouveau lien de connexion',
  'settings.openchamber.tunnel.actions.copied': 'Copié',
  'settings.openchamber.tunnel.actions.retry': 'Réessayer',
  'settings.openchamber.tunnel.option.moreProvidersSoon': 'Plus de fournisseurs à venir',
  'settings.openchamber.tunnel.option.mode.quick.label': 'Quick',
  'settings.openchamber.tunnel.option.mode.quick.tooltip': 'Quick Tunnel est une solution best-effort dont la disponibilité n\'est pas garantie.',
  'settings.openchamber.tunnel.option.mode.managedRemote.label': 'Managed Remote',
  'settings.openchamber.tunnel.option.mode.managedRemote.tooltip': 'Managed Remote utilise votre compte Cloudflare et votre nom d\'hôte pour un accès longue durée.',
  'settings.openchamber.tunnel.option.mode.managedLocal.label': 'Managed Local',
  'settings.openchamber.tunnel.option.mode.managedLocal.tooltip': 'Managed Local utilise votre fichier de configuration cloudflared local.',
  'settings.openchamber.tunnel.warning.quickModeReliability': 'Pour un accès longue durée plus fiable, passez au mode Managed Remote ou Managed Local.',
  'settings.openchamber.tunnel.warning.replacesActiveTunnel': 'Le démarrage de ce tunnel remplace le tunnel actif et révoque les liens de connexion et les sessions distantes existantes.',
  'settings.openchamber.tunnel.badge.quick': 'RAPIDE',
  'settings.openchamber.tunnel.badge.remote': 'DISTANT',
  'settings.openchamber.tunnel.badge.local': 'LOCAL',
  'settings.openchamber.tunnel.state.loading': 'Chargement',
  'settings.openchamber.tunnel.state.expired': 'Expiré',
  'settings.openchamber.tunnel.state.revoked': 'Révoqué',
  'settings.openchamber.tunnel.state.inactive': 'Inactif',
  'settings.openchamber.tunnel.state.noExpiry': 'Pas d\'expiration',
  'settings.openchamber.tunnel.state.never': 'Jamais',
  'settings.openchamber.tunnel.state.tunnelReady': 'Tunnel prêt',
  'settings.openchamber.tunnel.session.redeemedAt': '{time} échangé',
  'settings.openchamber.tunnel.session.expiresIn': 'Expire dans {remaining}',
  'settings.openchamber.tunnel.session.inactiveWithReason': 'Inactif ({reason})',
  'settings.openchamber.tunnel.error.invalidConfigExtension': 'Le fichier de configuration doit utiliser l\'extension .yml, .yaml ou .json.',
  'settings.openchamber.tunnel.tooltip.tokensSavedPath': 'Les jetons sont enregistrés dans ~/.config/openchamber/cloudflare-managed-remote-tunnels.json.',
  'settings.openchamber.tunnel.empty.noManagedRemoteTunnels': 'Aucun tunnel distant géré n\'a encore été enregistré.',
  'settings.openchamber.tunnel.toast.checkAvailabilityFailed': 'Échec de la vérification de la disponibilité du tunnel',
  'settings.openchamber.tunnel.toast.saveSettingsFailed': 'Échec de l\'enregistrement des paramètres du tunnel',
  'settings.openchamber.tunnel.toast.saveTtlFailed': 'Échec de l\'enregistrement des paramètres TTL du tunnel',
  'settings.openchamber.tunnel.toast.saveTokenFailed': 'Échec de l\'enregistrement du jeton de tunnel distant géré',
  'settings.openchamber.tunnel.toast.selectOrAddManagedRemoteFirst': 'Sélectionnez ou ajoutez d\'abord un tunnel distant géré',
  'settings.openchamber.tunnel.toast.managedRemoteTokenRequiredBeforeStarting': 'Un jeton de tunnel distant géré est requis avant de démarrer',
  'settings.openchamber.tunnel.toast.addManagedRemoteTokenBeforeStarting': 'Ajoutez un jeton de tunnel distant géré avant de commencer',
  'settings.openchamber.tunnel.toast.startFailed': 'Échec du démarrage du tunnel',
  'settings.openchamber.tunnel.toast.startedButNoPublicUrl': 'Le tunnel a démarré mais aucune URL publique n\'a été renvoyée',
  'settings.openchamber.tunnel.toast.replacedTunnelSingleSingle': 'Tunnel précédent remplacé : 1 lien révoqué, 1 session invalidée.',
  'settings.openchamber.tunnel.toast.replacedTunnelSingleManySessions': 'Tunnel précédent remplacé : 1 lien révoqué, sessions {invalidatedSessionCount} invalidées.',
  'settings.openchamber.tunnel.toast.replacedTunnelManyLinksSingleSession': 'Tunnel précédent remplacé : liens {revokedBootstrapCount} révoqués, 1 session invalidée.',
  'settings.openchamber.tunnel.toast.replacedTunnelManyMany': 'Tunnel précédent remplacé : liens {revokedBootstrapCount} révoqués, sessions {invalidatedSessionCount} invalidées.',
  'settings.openchamber.tunnel.toast.linkReady': 'Lien de connexion prêt',
  'settings.openchamber.tunnel.toast.stopped': 'Tunnel arrêté',
  'settings.openchamber.tunnel.toast.stopFailed': 'Échec de l\'arrêt du tunnel',
  'settings.openchamber.tunnel.toast.connectLinkCopied': 'Lien de connexion copié',
  'settings.openchamber.tunnel.toast.copyUrlFailed': 'Échec de la copie de l\'URL',
  'settings.openchamber.tunnel.toast.saveSelectedManagedRemoteFailed': 'Échec de l\'enregistrement du tunnel distant géré sélectionné',
  'settings.openchamber.tunnel.toast.tunnelNameRequired': 'Le nom du tunnel est obligatoire',
  'settings.openchamber.tunnel.toast.managedRemoteHostnameRequired': 'Le nom d\'hôte du tunnel distant géré est requis',
  'settings.openchamber.tunnel.toast.managedRemoteTokenRequired': 'Un jeton de tunnel distant géré est requis',
  'settings.openchamber.tunnel.toast.hostnameAlreadyExists': 'Ce nom d\'hôte existe déjà',
  'settings.openchamber.tunnel.toast.managedRemoteSaved': 'Tunnel distant géré enregistré',
  'settings.openchamber.tunnel.toast.managedRemoteRemoved': 'Tunnel distant géré supprimé',
  'settings.magicPrompts.sidebar.title': 'Prompts magiques',
  'settings.magicPrompts.sidebar.description': 'Sélectionnez un modèle de prompt à modifier.',
  'settings.magicPrompts.sidebar.group.git': 'Git',
  'settings.magicPrompts.sidebar.group.github': 'GitHub',
  'settings.magicPrompts.sidebar.group.planning': 'Planification',
  'settings.magicPrompts.sidebar.group.session': 'Session',
  'settings.magicPrompts.sidebar.item.gitCommitGenerate': 'Génération de commit',
  'settings.magicPrompts.sidebar.item.gitPrGenerate': 'Génération de PR',
  'settings.magicPrompts.sidebar.item.gitConflictResolve': 'Résolution des conflits de fusion/rebase',
  'settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve': 'Résolution des conflits par sélection',
  'settings.magicPrompts.sidebar.item.githubPrReview': 'Revue de PR',
  'settings.magicPrompts.sidebar.item.githubIssueReview': 'Examen du problème',
  'settings.magicPrompts.sidebar.item.githubPrFailedChecksReview': 'Examen des checks PR en échec',
  'settings.magicPrompts.sidebar.item.githubPrCommentsReview': 'Examen des commentaires PR',
  'settings.magicPrompts.sidebar.item.githubSinglePrCommentReview': 'Examen des commentaires PR uniques',
  'settings.magicPrompts.sidebar.item.planTodo': 'Planification des tâches',
  'settings.magicPrompts.sidebar.item.planImprove': 'Améliorer le plan',
  'settings.magicPrompts.sidebar.item.planImplement': 'Plan de mise en œuvre',
  'settings.magicPrompts.sidebar.item.sessionSummary': 'Résumé de la session',
  'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': 'Examen de l\'espace de travail',
  'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion',
  'settings.remoteInstances.sidebar.title': 'Instances distantes',
  'settings.remoteInstances.sidebar.total': 'Total {count}',
  'settings.remoteInstances.sidebar.newSshInstanceName': 'Nouvelle instance SSH',
  'settings.remoteInstances.sidebar.actions.addSshInstance': 'Ajouter une instance SSH',
  'settings.remoteInstances.sidebar.actions.connect': 'Connecter',
  'settings.remoteInstances.sidebar.actions.disconnect': 'Déconnecter',
  'settings.remoteInstances.sidebar.actions.retry': 'Réessayer',
  'settings.remoteInstances.sidebar.actions.remove': 'Retirer',
  'settings.remoteInstances.sidebar.confirm.localPortInUseRetry': 'Le port local est déjà utilisé. Choisir un port local gratuit et réessayer ?',
  'settings.remoteInstances.sidebar.toast.createFailed': 'Échec de la création de l\'instance SSH',
  'settings.remoteInstances.sidebar.toast.retriedWithRandomPort': 'Réessayé avec un port local aléatoire',
  'settings.remoteInstances.sidebar.toast.connectFailed': 'Échec de la connexion de l\'instance',
  'settings.remoteInstances.sidebar.toast.disconnectFailed': 'Échec de la déconnexion de l\'instance',
  'settings.remoteInstances.sidebar.toast.retryFailed': 'Échec de la nouvelle tentative de connexion',
  'settings.remoteInstances.sidebar.toast.removeFailed': 'Échec de la suppression de l\'instance',
  'settings.remoteInstances.sidebar.phase.ready': 'Prêt',
  'settings.remoteInstances.sidebar.phase.error': 'Erreur',
  'settings.remoteInstances.sidebar.phase.reconnect': 'Reconnecter',
  'settings.remoteInstances.sidebar.phase.installing': 'Installation',
  'settings.remoteInstances.sidebar.phase.updating': 'Mise à jour',
  'settings.remoteInstances.sidebar.phase.forwarding': 'Transfert',
  'settings.remoteInstances.sidebar.phase.starting': 'Démarrage',
  'settings.remoteInstances.sidebar.phase.connecting': 'Connexion',
  'settings.remoteInstances.sidebar.phase.idle': 'Inactif',
  'settings.remoteInstances.page.section.instance': 'Instance',
  'settings.remoteInstances.page.section.instanceDescription': 'Paramètres de base du SSH.',
  'settings.remoteInstances.page.field.mode': 'Mode',
  'settings.remoteInstances.page.field.modeHint': 'Installations/mises à jour gérées et démarrage de OpenChamber à distance. Externe suppose qu\'il est déjà en cours d\'exécution.',
  'settings.remoteInstances.page.field.modePlaceholder': 'Sélectionnez le mode',
  'settings.remoteInstances.page.field.modeManaged': 'Géré (démarrage automatique)',
  'settings.remoteInstances.page.field.modeExternal': 'Externe (déjà en cours d\'exécution)',
  'settings.remoteInstances.page.field.preferredRemotePort': 'Port distant préféré',
  'settings.remoteInstances.page.field.preferredRemotePortHint': 'Le port OpenChamber doit être utilisé sur l\'hôte distant. Laissez vide pour laisser le runtime choisir.',
  'settings.remoteInstances.page.field.keepServerRunning': 'Maintenir le serveur en marche',
  'settings.remoteInstances.page.field.keepServerRunningHint': 'S\'il est activé, le démon OpenChamber continue de s\'exécuter à distance lorsque vous vous déconnectez.',
  'settings.remoteInstances.page.field.bindHost': 'Lier l\'hôte',
  'settings.remoteInstances.page.field.bindHostHint': 'Interface réseau pour l’URL locale principale. Utilisez 127.0.0.1/localhost pour un accès uniquement local.',
  'settings.remoteInstances.page.field.preferredLocalPort': 'Port local préféré',
  'settings.remoteInstances.page.field.preferredLocalPortHint': 'Port local préféré pour le tunnel principal OpenChamber. Laissez vide pour la sélection automatique.',
  'settings.remoteInstances.page.field.forwardType': 'Type de transfert',
  'settings.remoteInstances.page.field.localHostPlaceholder': '127.0.0.1',
  'settings.remoteInstances.page.field.remoteHostPlaceholder': '127.0.0.1',
  'settings.remoteInstances.page.field.auto': 'Auto',
  'settings.remoteInstances.page.confirm.bindAllInterfaces': 'La liaison à 0.0.0.0 expose les ports transférés à votre réseau local. Continuer?',
  'settings.remoteInstances.page.preview.localSocks5': '(SOCKS5 local)',
  'settings.remoteInstances.page.preview.local': '(local)',
  'settings.remoteInstances.page.preview.remote': '(hôte distant)',
  'settings.remoteInstances.page.toast.openLocalEndpointFailed': 'Échec de l\'ouverture du point de terminaison local',
  'settings.remoteInstances.page.toast.localUrlCopied': 'URL locale copiée',
  'settings.remoteInstances.page.actions.copyLocalUrl': 'Copier l’URL locale',
  'settings.remoteInstances.page.actions.open': 'Ouvrir',
  'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': 'Instance sélectionnée',
  'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host} nécessite une destination concrète.',
  'settings.remoteInstances.page.patternDialog.description': 'Entrez la destination.',
  'settings.common.actions.cancel': 'Annuler',
  'settings.common.actions.create': 'Créer',
  'settings.common.actions.delete': 'Supprimer',
  'settings.common.actions.reset': 'Réinitialiser',
  'settings.common.actions.rename': 'Rebaptiser',
  'settings.common.actions.duplicate': 'Dupliquer',
  'settings.common.actions.import': 'Importer',
  'settings.common.actions.copyAll': 'Copier tout',
  'settings.common.actions.clear': 'Effacer',
  'settings.common.actions.saving': 'Enregistrement...',
  'settings.common.actions.saveChanges': 'Enregistrer les modifications',
  'settings.common.scope.global': 'Mondial',
  'settings.common.scope.project': 'Projet',
  'settings.common.field.description': 'Description',
  'settings.common.badge.new': 'Nouveau',
  'settings.common.badge.modified': 'Modifié',
  'settings.common.permission.allow': 'Permettre',
  'settings.common.permission.ask': 'Demander',
  'settings.common.permission.deny': 'Refuser',
  'settings.common.state.comingSoon': 'À venir...',
  'settings.projects.actions.title': 'Actions',
  'settings.projects.actions.description': 'Commandes par projet affichées dans l\'en-tête à côté du nom du projet.',
  'settings.projects.actions.validation.fillNameAndCommand': 'Remplissez le nom de l\'action et la commande avant d\'enregistrer.',
  'settings.projects.actions.state.loading': 'Chargement...',
  'settings.projects.actions.state.empty': 'Aucune action configurée pour le moment.',
  'settings.projects.actions.state.untitled': 'Action sans titre',
  'settings.projects.actions.state.noDesktopSshForwards': 'Aucun transfert local SSH activé disponible.',
  'settings.projects.actions.field.selectIconAria': 'Sélectionner l\'icône',
  'settings.projects.actions.field.iconAria': 'Icône {icon}',
  'settings.projects.actions.field.actionNamePlaceholder': 'Nom de l\'action',
  'settings.projects.actions.field.command': 'Commande',
  'settings.projects.actions.field.commandPlaceholder': 'p. ex. bun install',
  'settings.projects.actions.field.autoOpenUrl': 'Ouverture automatique de l’URL',
  'settings.projects.actions.field.autoOpenUrlForAria': 'Ouverture automatique de l’URL pour {title}',
  'settings.projects.actions.field.autoOpenUrlDescription': 'Ouvrir l’URL détectée dans la sortie, ou l’URL personnalisée ci-dessous',
  'settings.projects.actions.field.overrideUrlPlaceholder': 'Remplacer URL (facultatif)',
  'settings.projects.actions.field.overrideUrlTooltip': 'Si ce champ est rempli, l’URL personnalisée est utilisée. Sinon, l\'application ouvre la meilleure URL détectée dans la sortie.',
  'settings.projects.actions.field.desktopSshForward': 'Transfert SSH local',
  'settings.projects.actions.field.useOutputManualUrl': 'Utiliser l’URL de sortie ou l’URL manuelle',
  'settings.projects.actions.actions.add': 'Ajouter une action',
  'settings.projects.actions.actions.save': 'Enregistrer les actions',
  'settings.projects.actions.toast.saveFailed': 'Échec de l\'enregistrement des actions',
  'settings.projects.actions.toast.saved': 'Actions du projet enregistrées',
  'settings.openchamber.about.title': 'À propos de OpenChamber',
  'settings.openchamber.about.field.version': 'Version',
  'settings.openchamber.about.state.checking': 'Vérification...',
  'settings.openchamber.about.state.upToDate': 'À jour',
  'settings.openchamber.about.actions.checkUpdates': 'Vérifier les mises à jour',
  'settings.openchamber.about.actions.update': 'Mise à jour',
  'settings.openchamber.about.actions.updateToVersion': 'Mise à jour vers {version}',
  'settings.openchamber.about.actions.checkForUpdates': 'Vérifier les mises à jour',
  'settings.openchamber.about.toast.latestVersion': 'Vous êtes sur la dernière version',
  'settings.agents.sidebar.title': 'Agents',
  'settings.agents.sidebar.total': 'Total {count}',
  'settings.agents.sidebar.empty.title': 'Aucun agent configuré',
  'settings.agents.sidebar.empty.description': 'Utilisez le bouton + ci-dessus pour en créer un',
  'settings.agents.sidebar.section.builtIn': 'Agents intégrés',
  'settings.agents.sidebar.section.custom': 'Agents personnalisés',
  'settings.agents.sidebar.badge.system': 'système',
  'settings.agents.sidebar.dialog.deleteTitle': 'Supprimer un agent',
  'settings.agents.sidebar.dialog.resetTitle': 'Agent de réinitialisation',
  'settings.agents.sidebar.dialog.deleteDescription': 'Etes-vous sûr de vouloir supprimer l\'agent "{name}" ?',
  'settings.agents.sidebar.dialog.resetDescription': 'Êtes-vous sûr de vouloir réinitialiser l\'agent « {name} » à sa configuration par défaut ?',
  'settings.agents.sidebar.renameDialog.title': 'Renommer l\'agent',
  'settings.agents.sidebar.renameDialog.description': 'Entrez un nouveau nom pour l\'agent "@{name}"',
  'settings.agents.sidebar.renameDialog.placeholder': 'Nouveau nom d\'agent...',
  'settings.agents.sidebar.toast.builtInCannotDelete': 'Les agents intégrés ne peuvent pas être supprimés',
  'settings.agents.sidebar.toast.agentDeleted': 'Agent "{name}" supprimé avec succès',
  'settings.agents.sidebar.toast.agentReset': 'Agent "{name}" réinitialisé aux valeurs par défaut',
  'settings.agents.sidebar.toast.deleteFailed': 'Échec de la suppression de l\'agent',
  'settings.agents.sidebar.toast.definitionNotFound': 'Définition de l’agent introuvable. Aucune modification effectuée.',
  'settings.agents.sidebar.toast.resetFailed': 'Échec de la réinitialisation de l\'agent',
  'settings.agents.sidebar.toast.agentNameRequired': 'Le nom de l\'agent est requis',
  'settings.agents.sidebar.toast.agentExists': 'Un agent portant ce nom existe déjà',
  'settings.agents.sidebar.toast.removeOldAfterRenameFailed': 'Échec de la suppression de l\'ancien agent après le changement de nom',
  'settings.agents.sidebar.toast.renameFailed': 'Échec du changement de nom de l\'agent',
  'settings.agents.sidebar.toast.agentRenamed': 'Agent renommé en "{name}"',
  'settings.agents.page.toast.permissionNameRequired': 'Le nom de l\'autorisation est requis',
  'settings.agents.page.toast.created': 'Agent créé avec succès',
  'settings.agents.page.toast.updated': 'Agent mis à jour avec succès',
  'settings.agents.page.toast.createFailed': 'Échec de la création de l\'agent',
  'settings.agents.page.toast.updateFailed': 'Échec de la mise à jour de l\'agent',
  'settings.agents.page.toast.saveUnexpectedError': 'Une erreur s\'est produite lors de l\'enregistrement',
  'settings.agents.page.toast.savedManualRestart': 'Enregistré sur le disque. Redémarrez votre serveur OpenCode connecté pour appliquer les modifications.',
  'settings.agents.page.empty.title': 'Sélectionnez un agent dans la barre latérale',
  'settings.agents.page.empty.description': 'ou créez-en un nouveau',
  'settings.agents.page.title.new': 'Nouvel agent',
  'settings.agents.page.subtitle.new': 'Configurer un nouveau personnage d\'assistant',
  'settings.agents.page.subtitle.edit': 'Modifier les paramètres de l\'agent',
  'settings.agents.page.section.identityRole': 'Identité et rôle',
  'settings.agents.page.section.modelParameters': 'Modèle et paramètres',
  'settings.agents.page.section.systemPrompt': 'Prompt système',
  'settings.agents.page.section.toolPermissions': 'Autorisations des outils',
  'settings.agents.page.field.agentName': 'Nom de l\'agent',
  'settings.agents.page.field.agentNamePlaceholder': 'nom-agent',
  'settings.agents.page.field.scopePlaceholder': 'Portée',
  'settings.agents.page.field.descriptionPlaceholder': 'Que fait cet agent ?',
  'settings.agents.page.field.mode': 'Mode',
  'settings.agents.page.field.modeTooltip': 'Visibilité principale et sous-agent',
  'settings.agents.page.field.overrideModel': 'Remplacer le modèle',
  'settings.agents.page.field.variant': 'Variante de réflexion',
  'settings.agents.page.field.variantTooltip': 'Optionnel. Si le modèle prend en charge le raisonnement, la variante contrôle la profondeur du raisonnement.',
  'settings.agents.page.field.variantHint': 'Spécifique au modèle (par ex. variante Anthropic)',
  'settings.agents.page.field.variantPlaceholder': 'par ex. high, max, low, none',
  'settings.agents.page.field.temperature': 'Température',
  'settings.agents.page.field.temperatureTooltip': 'Contrôle le caractère aléatoire. Plus élevé = créatif, Inférieur = concentré.',
  'settings.agents.page.field.temperatureRange': '0.0 à 2.0',
  'settings.agents.page.field.clearTemperatureAria': 'Effacer le remplacement de la température',
  'settings.agents.page.field.topP': 'Haut P',
  'settings.agents.page.field.topPTooltip': 'Diversité d\'échantillonnage du noyau. Inférieur = jetons probables uniquement.',
  'settings.agents.page.field.topPRange': '0.0 à 1.0',
  'settings.agents.page.field.clearTopPAria': 'Effacer le remplacement p supérieur',
  'settings.agents.page.field.systemPromptPlaceholder': 'Vous êtes un assistant expert en codage...',
  'settings.agents.page.mode.primary': 'Primaire',
  'settings.agents.page.mode.subagent': 'Sous-agent',
  'settings.agents.page.mode.all': 'Tous',
  'settings.agents.page.permissions.defaultLabel': 'Défaut',
  'settings.agents.page.permissions.hideEditor': 'Masquer l\'éditeur',
  'settings.agents.page.permissions.advancedEditor': 'Éditeur avancé',
  'settings.agents.page.permissions.globalSummary': 'Mondial : {summary}',
  'settings.agents.page.permissions.rulesSummary': 'Règles : {summary}',
  'settings.agents.page.permissions.globalDefault': 'Valeur par défaut globale',
  'settings.agents.page.permissions.pattern': 'Modèle',
  'settings.agents.page.permissions.addCustomRule': 'Ajouter une règle personnalisée',
  'settings.agents.page.permissions.permissionPlaceholder': 'Autorisation...',
  'settings.agents.page.permissions.patternPlaceholder': 'Modèle (e.g. *)',
  'settings.page.behavior.title': 'Comportement',
  'settings.behavior.page.title': 'Comportement',
  'settings.behavior.page.warning.title': 'Les règles globales sont combinées avec les règles du projet',
  'settings.behavior.page.warning.description': 'Les modifications apportées ici mettent à jour {path}. OpenCode inclut également toutes les règles AGENTS.md au niveau du projet lorsqu\'elles existent.',
  'settings.behavior.page.section.systemPrompt': 'Mondial AGENTS.md',
  'settings.behavior.page.field.systemPromptPlaceholder': 'Vous êtes un assistant IA utile...\n\nUtilisez cet espace pour définir des règles absolues sur la façon dont l\'IA doit se comporter dans toutes les sessions et tous les fournisseurs.',
  'settings.behavior.page.section.responseStyle': 'Style de réponse',
  'settings.behavior.page.responseStyle.tooltip': 'Lorsqu\'elles sont activées, ces instructions guident la manière dont l\'assistant répond à chaque nouvelle conversation. Ils sont envoyés avec votre premier message et ne modifient pas vos règles globales AGENTS.md.',
  'settings.behavior.page.responseStyle.enableAria': 'Activer les instructions de style de réponse',
  'settings.behavior.page.responseStyle.enable': 'Ajouter des instructions de style de réponse aux nouvelles conversations',
  'settings.behavior.page.responseStyle.preset': 'Préréglage',
  'settings.behavior.page.responseStyle.option.concise': 'Concis',
  'settings.behavior.page.responseStyle.option.detailed': 'Détaillé',
  'settings.behavior.page.responseStyle.option.mentor': 'Mentor',
  'settings.behavior.page.responseStyle.option.pushback': 'Repoussement',
  'settings.behavior.page.responseStyle.option.noFiller': 'Pas de remplissage',
  'settings.behavior.page.responseStyle.option.matchEnergy': 'Correspond à mon énergie',
  'settings.behavior.page.responseStyle.option.warmPeer': 'Pair chaleureux',
  'settings.behavior.page.responseStyle.option.custom': 'Personnalisé',
  'settings.behavior.page.responseStyle.customPlaceholder': 'Écrivez l\'instruction à ajouter au premier message...',
  'settings.behavior.page.toast.saved': 'Comportement enregistré avec succès',
  'settings.behavior.page.toast.saveFailed': 'Échec de l\'enregistrement du comportement',
  'settings.commands.sidebar.title': 'Commandes',
  'settings.commands.sidebar.total': 'Total {count}',
  'settings.commands.sidebar.empty.title': 'Aucune commande configurée',
  'settings.commands.sidebar.empty.description': 'Utilisez le bouton + ci-dessus pour en créer un',
  'settings.commands.sidebar.section.builtIn': 'Commandes intégrées',
  'settings.commands.sidebar.section.custom': 'Commandes personnalisées',
  'settings.commands.sidebar.dialog.deleteTitle': 'Supprimer la commande',
  'settings.commands.sidebar.dialog.resetTitle': 'Commande de réinitialisation',
  'settings.commands.sidebar.dialog.deleteDescription': 'Etes-vous sûr de vouloir supprimer la commande « {name} » ?',
  'settings.commands.sidebar.dialog.resetDescription': 'Êtes-vous sûr de vouloir réinitialiser la commande « {name} » à sa configuration par défaut ?',
  'settings.commands.sidebar.renameDialog.title': 'Commande Renommer',
  'settings.commands.sidebar.renameDialog.description': 'Entrez un nouveau nom pour la commande "/{name}"',
  'settings.commands.sidebar.renameDialog.placeholder': 'Nouveau nom de commande...',
  'settings.commands.sidebar.toast.builtInCannotDelete': 'Les commandes intégrées ne peuvent pas être supprimées',
  'settings.commands.sidebar.toast.commandDeleted': 'Commande "{name}" supprimée avec succès',
  'settings.commands.sidebar.toast.commandReset': 'Commande "{name}" réinitialisée aux valeurs par défaut',
  'settings.commands.sidebar.toast.deleteFailed': 'Échec de la suppression de la commande',
  'settings.commands.sidebar.toast.resetFailed': 'Échec de la réinitialisation de la commande',
  'settings.commands.sidebar.toast.commandNameRequired': 'Le nom de la commande est obligatoire',
  'settings.commands.sidebar.toast.commandExists': 'Une commande portant ce nom existe déjà',
  'settings.commands.sidebar.toast.removeOldAfterRenameFailed': 'Échec de la suppression de l\'ancienne commande après le changement de nom',
  'settings.commands.sidebar.toast.renameFailed': 'Échec du renommage de la commande',
  'settings.commands.page.toast.templateRequired': 'Le modèle de commande est requis',
  'settings.commands.page.toast.created': 'Commande créée avec succès',
  'settings.commands.page.toast.updated': 'Commande mise à jour avec succès',
  'settings.commands.page.toast.createFailed': 'Échec de la création de la commande',
  'settings.commands.page.toast.updateFailed': 'Échec de la mise à jour de la commande',
  'settings.commands.page.toast.saveUnexpectedError': 'Une erreur s\'est produite lors de l\'enregistrement',
  'settings.commands.page.empty.title': 'Sélectionnez une commande dans la barre latérale',
  'settings.commands.page.empty.description': 'ou créez-en un nouveau',
  'settings.commands.page.title.new': 'Nouvelle commande',
  'settings.commands.page.subtitle.new': 'Configurer une nouvelle commande slash',
  'settings.commands.page.subtitle.edit': 'Modifier les paramètres de la commande',
  'settings.commands.page.section.identity': 'Identité',
  'settings.commands.page.section.executionContext': 'Contexte d\'exécution',
  'settings.commands.page.section.template': 'Modèle de commande',
  'settings.commands.page.field.commandName': 'Nom de la commande',
  'settings.commands.page.field.commandNamePlaceholder': 'nom-commande',
  'settings.commands.page.field.descriptionPlaceholder': 'Que fait cette commande ?',
  'settings.commands.page.field.overrideAgent': 'Remplacer l\'agent',
  'settings.commands.page.field.templatePlaceholder': 'Votre modèle de commande ici...\n\nUtilisez $ARGUMENTS pour référencer les entrées de l\'utilisateur.\nUtilisez !`shell command` pour injecter la sortie du shell.\nUtilisez @filename pour inclure le contenu du fichier.',
  'settings.commands.page.templateHint.userInput': 'entrée de l\'utilisateur',
  'settings.commands.page.templateHint.shellOutput': 'sortie du shell',
  'settings.commands.page.templateHint.fileContents': 'contenu du fichier',
  'settings.commands.agentSelector.title': 'Sélectionnez un agent',
  'settings.commands.agentSelector.notSelected': 'Non sélectionné',
  'settings.commands.agentSelector.selectAgentPlaceholder': 'Sélectionnez un agent...',
  'settings.gitIdentities.page.section.title': 'Identités',
  'settings.gitIdentities.page.empty.title': 'Aucune identité configurée',
  'settings.gitIdentities.page.empty.description': 'Créez-en un pour gérer les paramètres d\'auteur Git par projet',
  'settings.gitIdentities.page.discoveredCredentials.title': 'Trouvé dans ~/.git-credentials',
  'settings.gitIdentities.page.badge.default': 'défaut',
  'settings.gitIdentities.page.actions.setAsDefault': 'Définir par défaut',
  'settings.gitIdentities.page.actions.unsetDefault': 'Désactiver la valeur par défaut',
  'settings.gitIdentities.page.actions.import': 'Importer',
  'settings.gitIdentities.page.toast.updateDefaultFailed': 'Échec de la mise à jour de l\'identité par défaut',
  'settings.gitIdentities.page.toast.defaultUpdated': 'Identité par défaut mise à jour',
  'settings.gitIdentities.page.toast.defaultUnset': 'Identité par défaut non définie',
  'settings.gitIdentities.page.toast.profileDeleted': 'Profil "{name}" supprimé',
  'settings.gitIdentities.page.toast.deleteProfileFailed': 'Échec de la suppression du profil',
  'settings.gitIdentities.page.deleteDialog.title': 'Supprimer le profil',
  'settings.gitIdentities.page.deleteDialog.description': 'Etes-vous sûr de vouloir supprimer « {name} » ?',
  'settings.gitIdentities.editor.title.importCredential': 'Importer les informations d\'identification',
  'settings.gitIdentities.editor.title.newIdentity': 'Nouvelle identité',
  'settings.gitIdentities.editor.title.globalIdentity': 'Identité globale',
  'settings.gitIdentities.editor.title.editIdentity': 'Modifier l\'identité',
  'settings.gitIdentities.editor.description.globalReadOnly': 'Identité Git à l\'échelle du système (lecture seule)',
  'settings.gitIdentities.editor.description.newProfile': 'Créer un nouveau profil d\'identité Git',
  'settings.gitIdentities.editor.description.editProfile': 'Modifier les paramètres du profil d\'identité',
  'settings.gitIdentities.editor.section.commitSigning': 'Signature des commits',
  'settings.gitIdentities.editor.field.profileName': 'Nom du profil',
  'settings.gitIdentities.editor.field.profileNamePlaceholder': 'Profil professionnel, personnel, etc.',
  'settings.gitIdentities.editor.field.color': 'Couleur',
  'settings.gitIdentities.editor.field.icon': 'Icône',
  'settings.gitIdentities.editor.field.userName': 'Nom d\'utilisateur',
  'settings.gitIdentities.editor.field.userNameTooltip': 'Le nom qui apparaîtra dans les messages de commit Git.',
  'settings.gitIdentities.editor.field.userNamePlaceholder': 'John Doe',
  'settings.gitIdentities.editor.field.emailAddress': 'Adresse e-mail',
  'settings.gitIdentities.editor.field.emailAddressTooltip': 'Doit correspondre à votre adresse e-mail dans GitHub/GitLab pour une attribution appropriée.',
  'settings.gitIdentities.editor.field.emailAddressPlaceholder': 'jean@example.com',
  'settings.gitIdentities.editor.field.authMethod': 'Méthode d\'authentification',
  'settings.gitIdentities.editor.field.authToken': 'Jeton',
  'settings.gitIdentities.editor.field.sshKeyPath': 'Chemin clé SSH',
  'settings.gitIdentities.editor.field.sshKeyPathTooltip': 'Chemin facultatif vers la clé privée. e.g. ~/.ssh/id_ed25519',
  'settings.gitIdentities.editor.field.sshKeyPathPlaceholder': '~/.ssh/id_ed25519',
  'settings.gitIdentities.editor.field.signCommits': 'Signer les commits avec cette identité',
  'settings.gitIdentities.editor.field.signingKey': 'Clé de signature',
  'settings.gitIdentities.editor.field.signingKeyPlaceholder': '~/.ssh/id_ed25519.pub',
  'settings.gitIdentities.editor.field.host': 'Hôte',
  'settings.gitIdentities.editor.field.hostTooltip': 'Le jeton sera lu à partir de ~/.git-credentials pour cet hôte.',
  'settings.gitIdentities.editor.field.hostPlaceholder': 'github.com',
  'settings.gitIdentities.editor.actions.close': 'Fermer',
  'settings.gitIdentities.editor.actions.create': 'Créer',
  'settings.gitIdentities.editor.actions.save': 'Sauvegarder',
  'settings.gitIdentities.editor.toast.userNameEmailRequired': 'Le nom d\'utilisateur et l\'e-mail sont requis',
  'settings.gitIdentities.editor.toast.hostRequiredForToken': 'L\'hôte est requis pour l\'authentification basée sur un jeton',
  'settings.gitIdentities.editor.toast.signingKeyRequired': 'Une clé de signature est requise lorsque la signature des commits est activée',
  'settings.gitIdentities.editor.toast.profileCreated': 'Profil créé',
  'settings.gitIdentities.editor.toast.profileUpdated': 'Profil mis à jour',
  'settings.gitIdentities.editor.toast.createProfileFailed': 'Échec de la création du profil',
  'settings.gitIdentities.editor.toast.updateProfileFailed': 'Échec de la mise à jour du profil',
  'settings.gitIdentities.editor.toast.saveUnexpectedError': 'Une erreur s\'est produite lors de l\'enregistrement',
  'settings.gitIdentities.editor.toast.profileDeleted': 'Profil supprimé',
  'settings.gitIdentities.editor.toast.deleteProfileFailed': 'Échec de la suppression du profil',
  'settings.gitIdentities.editor.toast.deleteUnexpectedError': 'Une erreur s\'est produite lors de la suppression',
  'settings.skills.sidebar.title': 'Skills',
  'settings.skills.sidebar.total': 'Total {count}',
  'settings.skills.sidebar.section.project': 'Skills du projet',
  'settings.skills.sidebar.section.user': 'Skills utilisateur',
  'settings.skills.sidebar.empty.title': 'Aucun skill configuré',
  'settings.skills.sidebar.empty.description': 'Utilisez le bouton + ci-dessus pour en créer un',
  'settings.skills.sidebar.badge.claude': 'Claude',
  'settings.skills.sidebar.badge.agents': 'agents',
  'settings.skills.sidebar.badge.opencode': 'OpenCode',
  'settings.skills.sidebar.toast.skillDeleted': 'Skill "{name}" supprimé avec succès',
  'settings.skills.sidebar.toast.deleteSkillFailed': 'Échec de la suppression du skill',
  'settings.skills.sidebar.toast.duplicateLoadFailed': 'Échec du chargement des détails du skill pour la duplication',
  'settings.skills.sidebar.toast.renameLoadFailed': 'Échec du chargement des détails du skill',
  'settings.skills.sidebar.toast.removeOldAfterRenameFailed': 'Échec de la suppression de l\'ancien skill après le renommage',
  'settings.skills.sidebar.toast.renameFailed': 'Échec du renommage du skill',
  'settings.skills.sidebar.deleteDialog.title': 'Supprimer le skill',
  'settings.skills.sidebar.deleteDialog.description': 'Êtes-vous sûr de vouloir supprimer le skill « {name} » ?',
  'settings.skills.sidebar.renameDialog.title': 'Renommer le skill',
  'settings.skills.sidebar.renameDialog.description': 'Entrez un nouveau nom pour le skill "{name}"',
  'settings.skills.sidebar.renameDialog.placeholder': 'Nouveau nom de skill...',
  'settings.skills.page.title.newSkill': 'Nouveau skill',
  'settings.skills.page.subtitle.newSkill': 'Configurer un nouveau skill',
  'settings.skills.page.subtitle.skillLocation': 'Skill {location}',
  'settings.skills.page.section.basicInformation': 'Informations de base',
  'settings.skills.page.section.instructions': 'Instructions',
  'settings.skills.page.section.supportingFiles': 'Fichiers de support',
  'settings.skills.page.field.skillNameLocation': 'Nom et emplacement du skill',
  'settings.skills.page.field.skillNameHint': 'Minuscules, chiffres, tirets',
  'settings.skills.page.field.skillNamePlaceholder': 'nom-du-skill',
  'settings.skills.page.field.descriptionHint': 'L\'agent s\'en sert pour décider quand charger le skill',
  'settings.skills.page.field.descriptionPlaceholder': 'Brève description de ce que fait ce skill...',
  'settings.skills.page.field.instructionsPlaceholder': 'Instructions étape par étape, directives ou contenu de référence...',
  'settings.skills.page.badge.claudeCompatible': 'Compatible Claude',
  'settings.skills.page.badge.pending': 'en attente',
  'settings.skills.page.actions.addFile': 'Ajouter un fichier',
  'settings.skills.page.actions.createSkill': 'Créer un skill',
  'settings.skills.page.actions.createFile': 'Créer un fichier',
  'settings.skills.page.supportingFiles.empty': 'Aucun fichier à l\'appui. Utilisez « Ajouter un fichier » pour inclure des documents de référence.',
  'settings.skills.page.loading.details': 'Chargement des détails du skill...',
  'settings.skills.page.loading.fileContent': 'Chargement du contenu du fichier...',
  'settings.skills.page.empty.title': 'Sélectionnez un skill dans la barre latérale',
  'settings.skills.page.empty.description': 'ou créez-en un nouveau',
  'settings.skills.page.deleteFileDialog.title': 'Supprimer le fichier de support',
  'settings.skills.page.deleteFileDialog.description': 'Etes-vous sûr de vouloir supprimer « {path} » ?',
  'settings.skills.page.fileDialog.titleEdit': 'Modifier le fichier de support',
  'settings.skills.page.fileDialog.titleAdd': 'Ajouter un fichier de support',
  'settings.skills.page.fileDialog.descriptionEdit': 'Modifier le contenu du fichier',
  'settings.skills.page.fileDialog.descriptionAdd': 'Créer un nouveau fichier dans le répertoire du skill',
  'settings.skills.page.fileDialog.field.filePath': 'Chemin du fichier',
  'settings.skills.page.fileDialog.field.filePathPlaceholder': 'example.md ou docs/reference.txt',
  'settings.skills.page.fileDialog.field.filePathHint': 'Chemin relatif dans le répertoire du skill. Les sous-répertoires seront créés automatiquement.',
  'settings.skills.page.fileDialog.field.content': 'Contenu',
  'settings.skills.page.fileDialog.field.contentPlaceholder': 'Contenu du fichier...',
  'settings.skills.page.toast.skillNameRequired': 'Le nom du skill est requis',
  'settings.skills.page.toast.invalidSkillName': 'Le nom du skill doit contenir de 1 à 64 caractères alphanumériques minuscules avec des traits d\'union et ne peut pas commencer ni se terminer par un trait d\'union.',
  'settings.skills.page.toast.descriptionRequired': 'Une description est requise',
  'settings.skills.page.toast.skillExists': 'Un skill portant ce nom existe déjà',
  'settings.skills.page.toast.skillCreated': 'Skill créé avec succès',
  'settings.skills.page.toast.skillUpdated': 'Skill mis à jour avec succès',
  'settings.skills.page.toast.createSkillFailed': 'Échec de la création du skill',
  'settings.skills.page.toast.updateSkillFailed': 'Échec de la mise à jour du skill',
  'settings.skills.page.toast.saveUnexpectedError': 'Une erreur s\'est produite lors de l\'enregistrement',
  'settings.skills.page.toast.loadFileContentFailed': 'Échec du chargement du contenu du fichier',
  'settings.skills.page.toast.fileNameRequired': 'Le nom du fichier est obligatoire',
  'settings.skills.page.toast.fileExists': 'Un fichier portant ce nom existe déjà',
  'settings.skills.page.toast.noSkillSelected': 'Aucun skill sélectionné',
  'settings.skills.page.toast.fileAdded': 'Fichier "{path}" ajouté',
  'settings.skills.page.toast.fileCreated': 'Fichier "{path}" créé',
  'settings.skills.page.toast.fileUpdated': 'Fichier "{path}" mis à jour',
  'settings.skills.page.toast.fileRemoved': 'Fichier "{path}" supprimé',
  'settings.skills.page.toast.fileDeleted': 'Fichier "{path}" supprimé',
  'settings.skills.page.toast.createFileFailed': 'Échec de la création du fichier',
  'settings.skills.page.toast.updateFileFailed': 'Échec de la mise à jour du fichier',
  'settings.skills.page.toast.deleteFileFailed': 'Échec de la suppression du fichier',
  'settings.skills.location.option.userOpencode.label': 'Utilisateur / OpenCode',
  'settings.skills.location.option.userOpencode.description': 'Emplacement de configuration global de OpenCode',
  'settings.skills.location.option.projectOpencode.label': 'Projet / OpenCode',
  'settings.skills.location.option.projectOpencode.description': 'Emplacement .opencode du projet actuel',
  'settings.skills.location.option.userClaude.label': 'Utilisateur / Claude',
  'settings.skills.location.option.userClaude.description': 'Emplacement global des skills Claude',
  'settings.skills.location.option.projectClaude.label': 'Projet / Claude',
  'settings.skills.location.option.projectClaude.description': 'Projet actuel .claude location',
  'settings.skills.location.option.userAgents.label': 'Utilisateur / Agent',
  'settings.skills.location.option.userAgents.description': 'Emplacement de compatibilité global .agents',
  'settings.skills.location.option.projectAgents.label': 'Projet / Agents',
  'settings.skills.location.option.projectAgents.description': 'Emplacement de compatibilité .agents du projet actuel',
  'settings.skills.catalog.shared.field.repository': 'Dépôt',
  'settings.skills.catalog.shared.field.repositoryPlaceholder': 'propriétaire/dépôt ou git@github.com:owner/repo.git',
  'settings.skills.catalog.shared.field.optionalSubpath': 'Sous-chemin facultatif',
  'settings.skills.catalog.shared.field.subpathPlaceholder': 'p. ex. skills',
  'settings.skills.catalog.shared.field.targetLocation': 'Emplacement cible',
  'settings.skills.catalog.shared.field.project': 'Projet',
  'settings.skills.catalog.shared.field.noProjects': 'Aucun projet disponible',
  'settings.skills.catalog.shared.field.chooseProjectPlaceholder': 'Choisir un projet',
  'settings.skills.catalog.shared.field.searchSkillsPlaceholder': 'Rechercher des skills…',
  'settings.skills.catalog.shared.toast.repositoryRequired': 'La source du dépôt est requise',
  'settings.skills.catalog.shared.toast.privateRepoNotSupportedVsCode': 'Les dépôts privés ne sont pas encore pris en charge dans VS Code',
  'settings.skills.catalog.shared.toast.foundSkills': 'Skill(s) trouvé(s) : {count}',
  'settings.skills.catalog.shared.noDescription': 'Aucune description fournie',
  'settings.skills.catalog.shared.actions.scan': 'Balayage',
  'settings.skills.catalog.shared.actions.scanning': 'Balayage...',
  'settings.skills.catalog.shared.actions.install': 'Installer',
  'settings.skills.catalog.shared.actions.installing': 'Installation...',
  'settings.skills.catalog.shared.auth.title': 'Authentification requise',
  'settings.skills.catalog.shared.auth.description': 'Sélectionnez une identité Git (clé SSH)',
  'settings.skills.catalog.shared.auth.chooseIdentity': 'Choisissez votre identité',
  'settings.skills.catalog.shared.auth.footerHint': 'Configurez les identités dans Paramètres - Identités Git.',
  'settings.skills.catalog.shared.auth.footerHintArrow': 'Configurez les identités dans Paramètres → Identités Git.',
  'settings.skills.catalog.conflicts.title': 'Des skills existent déjà',
  'settings.skills.catalog.conflicts.description': 'Certains skills sélectionnés sont déjà installés dans ce périmètre. Choisissez si vous voulez les ignorer ou les écraser.',
  'settings.skills.catalog.conflicts.count': 'Conflit(s) {count}',
  'settings.skills.catalog.conflicts.installedIn': 'Installé dans {scope} / {source}',
  'settings.skills.catalog.conflicts.scope.user': 'utilisateur',
  'settings.skills.catalog.conflicts.scope.project': 'projet',
  'settings.skills.catalog.conflicts.source.opencode': 'OpenCode',
  'settings.skills.catalog.conflicts.source.agents': 'agents',
  'settings.skills.catalog.conflicts.decision.skip': 'Sauter',
  'settings.skills.catalog.conflicts.decision.overwrite': 'Écraser',
  'settings.skills.catalog.conflicts.actions.skipAll': 'Tout ignorer',
  'settings.skills.catalog.conflicts.actions.overwriteAll': 'Tout écraser',
  'settings.skills.catalog.conflicts.actions.continue': 'Continuer',
  'settings.skills.catalog.installSkill.title': 'Installer le skill',
  'settings.skills.catalog.installSkill.descriptionPrefix': 'Installer',
  'settings.skills.catalog.installSkill.descriptionSuffix': 'dans l’un des quatre emplacements cibles.',
  'settings.skills.catalog.installSkill.field.destination': 'Destination',
  'settings.skills.catalog.installSkill.field.project': 'Projet',
  'settings.skills.catalog.installSkill.field.noProjects': 'Aucun projet disponible',
  'settings.skills.catalog.installSkill.field.chooseProjectPlaceholder': 'Choisir un projet',
  'settings.skills.catalog.installSkill.actions.install': 'Installer',
  'settings.skills.catalog.installSkill.actions.installing': 'Installation...',
  'settings.skills.catalog.installSkill.toast.installed': 'Skill installé avec succès',
  'settings.skills.catalog.installSkill.toast.authRequired': 'Authentification requise',
  'settings.skills.catalog.installSkill.toast.installFailed': 'Échec de l\'installation du skill',
  'settings.skills.catalog.add.title': 'Ajouter un catalogue de skills',
  'settings.skills.catalog.add.descriptionPrefix': 'Ajoutez un dépôt Git comme nouvelle source de catalogue. OpenChamber le scannera pour les dossiers contenant',
  'settings.skills.catalog.add.descriptionSuffix': '.',
  'settings.skills.catalog.add.field.catalogName': 'Nom du catalogue',
  'settings.skills.catalog.add.field.catalogNamePlaceholder': 'p. ex. Skills d\'équipe',
  'settings.skills.catalog.add.field.repository': 'Dépôt',
  'settings.skills.catalog.add.field.optionalSubpath': 'Sous-chemin facultatif',
  'settings.skills.catalog.add.field.repositoryHint': 'Les dépôts publics fonctionnent partout. Les dépôts privés nécessitent une identité SSH (desktop et web uniquement).',
  'settings.skills.catalog.add.scanResult': 'Résultat de l\'analyse : {count} skill(s) trouvé(s)',
  'settings.skills.catalog.add.duplicateMessage': 'Ce catalogue est déjà ajouté.',
  'settings.skills.catalog.add.actions.addCatalog': 'Ajouter un catalogue',
  'settings.skills.catalog.add.toast.repositoryRequired': 'La source du dépôt est requise',
  'settings.skills.catalog.add.toast.authenticationRequiredScan': 'Authentification requise. Sélectionnez une identité Git et effectuez une nouvelle analyse.',
  'settings.skills.catalog.add.toast.scanFailed': 'Échec de l\'analyse du dépôt',
  'settings.skills.catalog.add.toast.noSkillsFound': 'Aucun skill trouvé dans ce dépôt',
  'settings.skills.catalog.add.toast.catalogNameRequired': 'Le nom du catalogue est obligatoire',
  'settings.skills.catalog.add.toast.scanBeforeAdd': 'Scannez le dépôt avant d\'ajouter ce catalogue',
  'settings.skills.catalog.add.toast.catalogAlreadyExists': 'Ce catalogue existe déjà',
  'settings.skills.catalog.add.toast.catalogAdded': 'Catalogue ajouté',
  'settings.skills.catalog.add.toast.saveFailed': 'Échec de l\'enregistrement du catalogue',
  'settings.skills.catalog.installFromRepo.title': 'Installer à partir du dépôt Git',
  'settings.skills.catalog.installFromRepo.descriptionPrefix': 'Analyser un dépôt à la recherche de dossiers contenant',
  'settings.skills.catalog.installFromRepo.descriptionSuffix': ', puis installez les skills sélectionnés.',
  'settings.skills.catalog.installFromRepo.repositoryHintPrefix': 'Pour le raccourci GitHub, vous pouvez ajouter un sous-chemin comme',
  'settings.skills.catalog.installFromRepo.authDescription': 'Sélectionnez une identité Git (clé SSH) pouvant accéder à ce dépôt.',
  'settings.skills.catalog.installFromRepo.empty.noScanResultsTitle': 'Aucun résultat d\'analyse pour l\'instant',
  'settings.skills.catalog.installFromRepo.empty.noScanResultsDescription': 'Scannez un dépôt pour découvrir des skills',
  'settings.skills.catalog.installFromRepo.actions.selectAll': 'Tout sélectionner',
  'settings.skills.catalog.installFromRepo.actions.selectNone': 'N\'en sélectionner aucun',
  'settings.skills.catalog.installFromRepo.actions.installSelected': 'Installer sélectionné',
  'settings.skills.catalog.installFromRepo.badge.installed': 'installé ({scope}/{source})',
  'settings.skills.catalog.installFromRepo.selectedCount': 'Sélectionné: {selected} / {total}',
  'settings.skills.catalog.installFromRepo.toast.authenticationRequiredScan': 'Authentification requise. Sélectionnez une identité Git et réessayez l\'analyse.',
  'settings.skills.catalog.installFromRepo.toast.authenticationRequiredInstall': 'Authentification requise. Sélectionnez une identité Git et réessayez l\'installation.',
  'settings.skills.catalog.installFromRepo.toast.scanFailed': 'Échec de l\'analyse du dépôt',
  'settings.skills.catalog.installFromRepo.toast.selectAtLeastOne': 'Sélectionnez au moins un skill à installer',
  'settings.skills.catalog.installFromRepo.toast.installedCount': '{count} skill(s) installé(s)',
  'settings.skills.catalog.installFromRepo.toast.installCompleted': 'Installation terminée',
  'settings.skills.catalog.installFromRepo.toast.installFailed': 'Échec de l\'installation des skills',
  'settings.skills.catalog.page.mode.manual': 'Manuel',
  'settings.skills.catalog.page.mode.external': 'Externe',
  'settings.skills.catalog.page.title': 'Catalogue de skills',
  'settings.skills.catalog.page.section.sourceRepository': 'Dépôt source',
  'settings.skills.catalog.page.field.selectSourcePlaceholder': 'Sélectionnez la source',
  'settings.skills.catalog.page.actions.refreshTitle': 'Rafraîchir',
  'settings.skills.catalog.page.actions.removeCatalogTitle': 'Supprimer le catalogue',
  'settings.skills.catalog.page.actions.addCatalog': 'Ajouter un catalogue',
  'settings.skills.catalog.page.actions.removeCatalog': 'Supprimer le catalogue',
  'settings.skills.catalog.page.actions.loadMoreSkills': 'Charger plus de skills',
  'settings.skills.catalog.page.loading.catalog': 'Chargement...',
  'settings.skills.catalog.page.loading.skills': 'Chargement des skills...',
  'settings.skills.catalog.page.loading.more': 'Chargement...',
  'settings.skills.catalog.page.foundCount': '{count} skill(s) trouvé(s)',
  'settings.skills.catalog.page.error.catalogTitle': 'Erreur de catalogue',
  'settings.skills.catalog.page.empty.noSkillsTitle': 'Aucun skill trouvé',
  'settings.skills.catalog.page.empty.noSkillsDescription': 'Essayez une autre recherche ou actualisez le catalogue',
  'settings.skills.catalog.page.badge.installed': 'installé ({scope})',
  'settings.skills.catalog.page.badge.notInstallable': 'non installable',
  'settings.skills.catalog.page.badge.unknown': 'inconnu',
  'settings.skills.catalog.page.byOwnerPrefix': 'par',
  'settings.skills.catalog.page.removeDialog.title': 'Supprimer le catalogue',
  'settings.skills.catalog.page.removeDialog.description': 'Êtes-vous sûr de vouloir supprimer ce catalogue ?',
  'settings.openchamber.passkeys.title': 'Mots-clés',
  'settings.openchamber.passkeys.field.currentDevice': 'Appareil actuel',
  'settings.openchamber.passkeys.actions.add': 'Ajouter un mot de passe',
  'settings.openchamber.passkeys.actions.cancelSetup': 'Annuler la configuration du mot de passe',
  'settings.openchamber.passkeys.actions.signOutEverywhere': 'Déconnectez-vous partout',
  'settings.openchamber.passkeys.actions.signingOut': 'Déconnexion…',
  'settings.openchamber.passkeys.actions.removing': 'Suppression…',
  'settings.openchamber.passkeys.state.uiPasswordRequired': 'Les clés d\'accès sont disponibles uniquement lorsque le verrouillage par mot de passe de l\'interface utilisateur est activé.',
  'settings.openchamber.passkeys.state.loading': 'Chargement des clés d\'accès…',
  'settings.openchamber.passkeys.state.noneSaved': 'Aucune clé d\'accès enregistrée pour cet hôte pour l\'instant.',
  'settings.openchamber.passkeys.item.lastUsed': 'Dernière utilisation {time}',
  'settings.openchamber.passkeys.item.added': 'Ajout de {time}',
  'settings.openchamber.passkeys.time.neverUsed': 'Jamais utilisé',
  'settings.openchamber.passkeys.toast.loadFailed': 'Impossible de charger les clés d\'accès.',
  'settings.openchamber.passkeys.toast.enableUiPasswordFirst': 'Activez le verrouillage par mot de passe de l\'interface utilisateur avant d\'ajouter des clés d\'accès.',
  'settings.openchamber.passkeys.toast.added': 'Clé d\'accès ajoutée',
  'settings.openchamber.passkeys.toast.setupCanceled': 'Configuration du mot de passe annulée',
  'settings.openchamber.passkeys.toast.addFailed': 'Impossible d\'ajouter le mot de passe.',
  'settings.openchamber.passkeys.toast.removed': 'Clé d\'accès supprimée',
  'settings.openchamber.passkeys.toast.removeFailed': 'Impossible de supprimer le mot de passe.',
  'settings.openchamber.passkeys.toast.clearAuthFailed': 'Impossible d\'effacer l\'authentification enregistrée.',
  'settings.openchamber.sessionRetention.title': 'Rétention de session',
  'settings.openchamber.sessionRetention.tooltip': 'Archivez ou supprimez automatiquement les sessions inactives en fonction de la dernière activité. Conserve les 5 sessions les plus récentes.',
  'settings.openchamber.sessionRetention.field.enableAutoCleanupAria': 'Activer le nettoyage automatique',
  'settings.openchamber.sessionRetention.field.enableAutoCleanup': 'Activer le nettoyage automatique',
  'settings.openchamber.sessionRetention.field.retentionPeriod': 'Période de conservation',
  'settings.openchamber.sessionRetention.field.retentionPeriodAria': 'Durée de conservation en jours',
  'settings.openchamber.sessionRetention.field.days': 'jours',
  'settings.openchamber.sessionRetention.field.whenSessionsExpire': 'Quand les sessions expirent',
  'settings.openchamber.sessionRetention.actions.resetRetentionAria': 'Réinitialiser la période de conservation',
  'settings.openchamber.sessionRetention.actions.runCleanupNow': 'Exécutez le nettoyage maintenant',
  'settings.openchamber.sessionRetention.actions.cleaningUp': 'Faire le ménage...',
  'settings.openchamber.sessionRetention.action.archive': 'Archive',
  'settings.openchamber.sessionRetention.action.delete': 'Supprimer',
  'settings.openchamber.sessionRetention.manualCleanup.title': 'Nettoyage manuel',
  'settings.openchamber.sessionRetention.manualCleanup.eligibleArchiveNow': 'Éligible à l\'archivage dès maintenant : {count}',
  'settings.openchamber.sessionRetention.manualCleanup.eligibleDeleteNow': 'Éligible à la suppression dès maintenant : {count}',
  'settings.openchamber.sessionRetention.toast.noneEligibleArchive': 'Aucune session éligible à l\'archivage',
  'settings.openchamber.sessionRetention.toast.noneEligibleDelete': 'Aucune session éligible à la suppression',
  'settings.openchamber.sessionRetention.toast.archivedCount': 'Session(s) {count} archivée(s)',
  'settings.openchamber.sessionRetention.toast.deletedCount': 'Session(s) {count} supprimée(s)',
  'settings.openchamber.sessionRetention.toast.failedArchiveCount': 'Échec de l\'archivage des sessions {count}',
  'settings.openchamber.sessionRetention.toast.failedDeleteCount': 'Échec de la suppression des sessions {count}',
  'settings.openchamber.desktopNetwork.title': 'Accès au réseau de bureau',
  'settings.openchamber.desktopNetwork.field.launchAtLoginAria': 'Démarrez OpenChamber lors de la connexion',
  'settings.openchamber.desktopNetwork.field.launchAtLogin': 'Démarrez OpenChamber lorsque vous vous connectez',
  'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': 'Démarre l\'application en arrière-plan sans ouvrir de fenêtre. Cliquez sur l\'icône Dock pour l\'ouvrir.',
  'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'Garder l\'ordinateur éveillé pendant qu\'OpenChamber fonctionne',
  'settings.openchamber.desktopNetwork.field.keepAwake': 'Garder l\'ordinateur éveillé pendant qu\'OpenChamber fonctionne',
  'settings.openchamber.desktopNetwork.field.keepAwakeDescription': 'Pour que les téléphones puissent continuer à ouvrir cette application. L\'écran peut toujours s\'éteindre.',
  'settings.openchamber.desktopNetwork.field.allowLanAccessAria': 'Autoriser l\'accès LAN au side-car du bureau',
  'settings.openchamber.desktopNetwork.field.allowLanAccess': 'Autorisez les autres appareils de votre réseau local à ouvrir cette application',
  'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': 'Redémarre l\'application afin que les téléphones, tablettes et autres ordinateurs connectés à votre réseau Wi-Fi puissent l\'ouvrir.',
  'settings.openchamber.desktopNetwork.field.warning': 'Attention : lorsqu\'elle est activée, l\'application est accessible à toute personne se trouvant sur le même réseau local.',
  'settings.openchamber.desktopNetwork.field.passwordRequiredWarning': 'L\'accès LAN nécessite un mot de passe de l\'interface utilisateur du bureau. Tant qu\'il n\'est pas défini, l\'application de bureau démarre en accès local uniquement.',
  'settings.openchamber.desktopPassword.field.password': 'Mot de passe de l\'interface utilisateur du bureau',
  'settings.openchamber.desktopPassword.field.passwordPlaceholder': 'Aucun mot de passe requis',
  'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber demande après le redémarrage, puis quand la session de connexion expire : après 12 heures, ou 7 jours avec Trust this device. Laissez vide pour désactiver la connexion.',
  'settings.openchamber.desktopNetwork.hint.openAfterRestart': 'Après redémarrage, ouvrez depuis un autre appareil :',
  'settings.openchamber.desktopNetwork.hint.openNow': 'Ouvrir depuis un autre appareil :',
  'settings.openchamber.desktopNetwork.actions.saveAndRestart': 'Enregistrer + Redémarrer',
  'settings.openchamber.desktopNetwork.error.loadFailed': 'Échec du chargement des paramètres du bureau',
  'settings.openchamber.desktopNetwork.error.saveFailed': 'Échec de l\'enregistrement des paramètres du bureau',
  'settings.openchamber.desktopNetwork.error.savedRestartFailed': 'Enregistré, mais échec du redémarrage de l\'application',
  'settings.openchamber.desktopNetwork.error.launchAtLoginUnsupported': 'Le lancement à la connexion n\'est pas pris en charge sur ce système',
  'settings.openchamber.desktopNetwork.error.launchAtLoginSaveFailed': 'Échec de la mise à jour du paramètre de lancement lors de la connexion',
  'settings.openchamber.desktopNetwork.error.keepAwakeUnsupported': 'La prévention de la veille n\'est pas prise en charge sur ce système',
  'settings.openchamber.desktopNetwork.error.keepAwakeSaveFailed': 'Échec de la mise à jour du paramètre de maintien en éveil',
  'settings.openchamber.opencodeCli.title': 'OpenCode CLI',
  'settings.openchamber.opencodeCli.tooltipPrefix': 'Chemin absolu facultatif vers le',
  'settings.openchamber.opencodeCli.tooltipSuffix': 'binaire.',
  'settings.openchamber.opencodeCli.field.binaryPath': 'Chemin binaire OpenCode',
  'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
  'settings.openchamber.opencodeCli.field.showUpdateNotifications': 'Afficher les notifications de mise à jour de OpenCode',
  'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': 'Afficher les notifications de mise à jour de OpenCode',
  'settings.openchamber.opencodeCli.actions.browseAria': 'Rechercher le chemin binaire OpenCode',
  'settings.openchamber.opencodeCli.actions.browse': 'Parcourir',
  'settings.openchamber.opencodeCli.actions.saveAndReload': 'Enregistrer + Recharger',
  'settings.openchamber.opencodeCli.actions.restartingOpenCode': 'Redémarrage de OpenCode…',
  'settings.openchamber.opencodeCli.dialog.selectBinaryTitle': 'Sélectionnez le binaire OpenCode',
  'settings.openchamber.opencodeCli.tipPrefix': 'Astuce : vous pouvez également utiliser',
  'settings.openchamber.opencodeCli.tipMiddle': 'env var, mais ce paramètre persiste dans',
  'settings.mcp.sidebar.title': 'Serveurs MCP',
  'settings.mcp.sidebar.total': 'Total {count}',
  'settings.mcp.sidebar.actions.refreshStatusAria': 'Actualiser le statut du MCP',
  'settings.mcp.sidebar.actions.refreshStatusTitle': 'Actualiser le statut du MCP',
  'settings.mcp.sidebar.actions.addServerTitle': 'Ajouter le serveur MCP',
  'settings.mcp.sidebar.actions.deleting': 'Suppression…',
  'settings.mcp.sidebar.empty.title': 'Aucun serveur MCP configuré',
  'settings.mcp.sidebar.empty.description': 'Utilisez le bouton + ci-dessus pour en ajouter un',
  'settings.mcp.sidebar.group.projectServers': 'Serveurs de projet',
  'settings.mcp.sidebar.group.userServers': 'Serveurs d\'utilisateurs',
  'settings.mcp.sidebar.serverType.localTitle': 'Serveur local',
  'settings.mcp.sidebar.serverType.remoteTitle': 'Serveur distant',
  'settings.mcp.sidebar.deleteDialog.title': 'Supprimer le serveur MCP',
  'settings.mcp.sidebar.deleteDialog.descriptionPrefix': 'Etes-vous sûr de vouloir supprimer « {name} » ? Cela le supprimera de',
  'settings.mcp.sidebar.toast.deleteFailed': 'Échec de la suppression du serveur MCP',
  'settings.mcp.sidebar.toast.serverDeleted': 'Serveur MCP "{name}" supprimé',
  'settings.mcp.sidebar.toast.refreshListIfStale': 'Actualisez la liste MCP si l\'interface utilisateur semble obsolète.',
  'settings.plugins.sidebar.title': 'Plugins',
  'settings.plugins.sidebar.total': 'Total {count}',
  'settings.plugins.sidebar.actions.addTitle': 'Ajouter un plugin',
  'settings.plugins.sidebar.actions.deleting': 'Suppression…',
  'settings.plugins.sidebar.empty.title': 'Aucun plugin configuré',
  'settings.plugins.sidebar.empty.description': 'Utilisez le bouton + ci-dessus pour en ajouter un',
  'settings.plugins.sidebar.group.userEntries': 'Configuration utilisateur',
  'settings.plugins.sidebar.group.userFiles': 'Fichier de plug-in utilisateur',
  'settings.plugins.sidebar.group.projectEntries': 'Configuration du projet',
  'settings.plugins.sidebar.group.projectFiles': 'Fichier de plugin de projet',
  'settings.plugins.sidebar.kind.npm': 'paquet npm',
  'settings.plugins.sidebar.kind.path': 'Chemin local',
  'settings.plugins.sidebar.kind.file': 'Fichier de plug-in',
  'settings.plugins.sidebar.deleteDialog.title': 'Supprimer le plugin',
  'settings.plugins.sidebar.deleteDialog.description': 'Etes-vous sûr de vouloir supprimer « {name} » ?',
  'settings.plugins.sidebar.toast.deleted': 'Plugin "{name}" supprimé',
  'settings.plugins.sidebar.toast.deleteFailed': 'Échec de la suppression du plugin',
  'settings.plugins.page.empty.select': 'Sélectionnez un plugin à afficher ou à modifier',
  'settings.plugins.page.empty.add': 'Ou cliquez sur + pour ajouter un nouveau plugin',
  'settings.plugins.page.header.entry': 'Plugin installé',
  'settings.plugins.page.header.file': 'Fichier de plug-in',
  'settings.plugins.page.field.spec': 'Spécification',
  'settings.plugins.page.field.spec.placeholder': 'npm-package@version ou /absolute/path',
  'settings.plugins.page.field.options': 'Options (JSON)',
  'settings.plugins.page.field.options.invalidJson': 'JSON invalide',
  'settings.plugins.page.field.fileName': 'Nom de fichier',
  'settings.plugins.page.field.content': 'Contenu',
  'settings.plugins.page.field.scope': 'Portée',
  'settings.plugins.scope.user': 'Utilisateur',
  'settings.plugins.scope.project': 'Projet',
  'settings.plugins.page.action.save': 'Sauvegarder',
  'settings.plugins.page.action.discard': 'Jeter',
  'settings.plugins.dialog.add.title': 'Ajouter un plugin',
  'settings.plugins.dialog.add.tab.npm': 'De npm',
  'settings.plugins.dialog.add.tab.path': 'Du chemin local',
  'settings.plugins.dialog.add.tab.file': 'Nouveau fichier',
  'settings.plugins.dialog.add.action.submit': 'Ajouter',
  'settings.plugins.dialog.add.action.cancel': 'Annuler',
  'settings.plugins.toast.created': 'Plugin ajouté',
  'settings.plugins.toast.updated': 'Plugin mis à jour',
  'settings.plugins.toast.reloadFailed': 'Échec du rechargement d\'OpenCode — redémarrage requis',
  'settings.plugins.validation.fileName': 'Le nom du fichier doit être en minuscule et se terminer par .js / .ts / .mjs / .cjs',
  'settings.plugins.validation.specRequired': 'La spécification est requise',
  'settings.plugins.registry.badge.update.label': '↑ {version}',
  'settings.plugins.registry.badge.update.tooltip': 'Mise à jour disponible : {current} → {latest}',
  'settings.plugins.registry.badge.malformed.tooltip': 'La spécification est mal formée',
  'settings.plugins.registry.badge.missingPackage.tooltip': 'Package {name} introuvable sur npm',
  'settings.plugins.registry.badge.missingVersion.tooltip': 'Version {version} de {name} non publiée',
  'settings.plugins.registry.badge.pathMissing.tooltip': 'Fichier introuvable : {path}',
  'settings.plugins.registry.badge.pathUnreadable.tooltip': 'Fichier illisible : {path}',
  'settings.plugins.registry.badge.network.tooltip': 'Impossible d\'accéder au registre npm',
  'settings.plugins.registry.banner.updateAvailable.title': 'Mise à jour disponible',
  'settings.plugins.registry.banner.updateAvailable.description': '{current} → {latest}',
  'settings.plugins.registry.banner.updateAvailable.action': 'Mise à jour vers {latest}',
  'settings.plugins.registry.banner.invalid.title': 'Plugin invalide',
  'settings.plugins.registry.banner.invalid.malformed': 'La syntaxe des spécifications est mal formée',
  'settings.plugins.registry.banner.invalid.missingPackage': 'Package introuvable sur npm',
  'settings.plugins.registry.banner.invalid.missingVersion': 'Version non publiée',
  'settings.plugins.registry.banner.invalid.pathMissing': 'Le fichier n\'existe pas',
  'settings.plugins.registry.banner.invalid.pathUnreadable': 'Le fichier n\'est pas lisible',
  'settings.plugins.sidebar.actions.updateToLatest': 'Mise à jour vers la dernière version',
  'settings.plugins.sidebar.actions.refresh': 'Vérifier les mises à jour',
  'settings.plugins.sidebar.group.updatesAvailable_one': 'Mise à jour {count} disponible',
  'settings.plugins.sidebar.group.updatesAvailable_other': 'Mises à jour {count} disponibles',
  'settings.plugins.toast.updatedToLatest': 'Plugin mis à jour vers {version}',
  'settings.plugins.toast.refreshing': 'Vérification de npm pour les mises à jour…',
  'settings.plugins.toast.refreshFailed': 'Impossible de vérifier le registre npm',
  'settings.openchamber.keyboardShortcuts.title': 'Raccourcis clavier',
  'settings.openchamber.keyboardShortcuts.actions.resetAll': 'Tout réinitialiser',
  'settings.openchamber.keyboardShortcuts.actions.overwrite': 'Écraser',
  'settings.openchamber.keyboardShortcuts.tooltip': 'Capturez une nouvelle combinaison de touches, enregistrez-la et les liaisons seront mises à jour immédiatement.',
  'settings.openchamber.keyboardShortcuts.overwritePrompt': 'Ce combo est déjà utilisé par un autre raccourci. Écraser et effacer cet autre mappage ?',
  'settings.openchamber.keyboardShortcuts.field.pressKeys': 'Appuyez sur les touches...',
  'settings.openchamber.keyboardShortcuts.error.captureFirst': 'Capturez d\'abord un raccourci.',
  'settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut': 'Ce raccourci peut entrer en conflit avec les paramètres par défaut du navigateur. Il est toujours sauvegardé.',
  'settings.openchamber.keyboardShortcuts.action.open_go_to_line.label': 'Aller à la ligne (éditeur de fichiers)',
  'settings.openchamber.keyboardShortcuts.action.open_command_palette.label': 'Ouvrir la palette de commandes',
  'settings.openchamber.keyboardShortcuts.action.focus_input.label': 'Entrée de mise au point',
  'settings.openchamber.keyboardShortcuts.action.open_settings.label': 'Ouvrir les paramètres',
  'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': 'Basculer la station d\'accueil du terminal',
  'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': 'Terminal à bascule étendu',
  'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': 'Basculer la barre latérale',
  'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': 'Basculer la barre latérale droite',
  'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Ouvrir l\'onglet Git de la barre latérale droite',
  'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': 'Ouvrir l\'onglet Fichiers de la barre latérale droite',
  'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': 'Faire défiler l\'onglet de la barre latérale droite',
  'settings.openchamber.keyboardShortcuts.action.new_chat.label': 'Nouvelle session',
  'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': 'Nouvelle ébauche d\'worktree',
  'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': 'Nouvelle fenêtre de mini-chat',
  'settings.openchamber.keyboardShortcuts.action.open_help.label': 'Ouvrir les raccourcis clavier',
  'settings.openchamber.keyboardShortcuts.action.toggle_context_plan.label': 'Basculer le panneau contextuel du plan',
  'settings.openchamber.keyboardShortcuts.action.toggle_services_menu.label': 'Basculer le menu des services',
  'settings.openchamber.keyboardShortcuts.action.cycle_services_tab.label': 'Onglet Services vélo',
  'settings.openchamber.keyboardShortcuts.action.cycle_theme.label': 'Thème du cycle',
  'settings.openchamber.keyboardShortcuts.action.cycle_agent.label': 'Agent de cycle',
  'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_forward.label': 'Faire avancer le modèle favori',
  'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_backward.label': 'Faire défiler le modèle favori vers l\'arrière',
  'settings.openchamber.keyboardShortcuts.action.open_model_selector.label': 'Ouvrir le sélecteur de modèle',
  'settings.openchamber.keyboardShortcuts.action.expand_input.label': 'Développer l\'entrée',
  'settings.openchamber.keyboardShortcuts.action.open_timeline_dialog.label': 'Chronologie de la conversation ouverte',
  'settings.projects.sidebar.total': 'Total {count}',
  'settings.projects.sidebar.actions.addProject': 'Ajouter un projet',
  'settings.projects.page.empty.noProjects': 'Aucun projet disponible.',
  'settings.projects.page.title.default': 'Paramètres du projet',
  'settings.projects.page.section.worktree': 'Worktree',
  'settings.projects.page.field.projectName': 'Nom du projet',
  'settings.projects.page.field.projectNamePlaceholder': 'Nom du projet',
  'settings.projects.page.field.accentColor': 'Couleur d\'accentuation',
  'settings.projects.page.field.projectIcon': 'Icône du projet',
  'settings.projects.page.field.projectIconBackgroundAria': 'Couleur d’arrière-plan de l’icône du projet',
  'settings.projects.page.field.clearIconBackgroundAria': 'Effacer l’arrière-plan de l’icône',
  'settings.projects.page.field.clearBackground': 'Fond clair',
  'settings.projects.page.field.none': 'Aucun',
  'settings.projects.page.field.preview': 'Aperçu',
  'settings.projects.page.actions.uploadIcon': 'Icône de téléchargement',
  'settings.projects.page.actions.uploading': 'Téléchargement...',
  'settings.projects.page.actions.discoverFavicon': 'Découvrez Favicon',
  'settings.projects.page.actions.discovering': 'Découverte...',
  'settings.projects.page.actions.removeProjectIcon': 'Supprimer l\'icône du projet',
  'settings.projects.page.actions.removing': 'Suppression...',
  'settings.projects.page.actions.undoRemove': 'Annuler Supprimer',
  'settings.projects.page.toast.uploadIconFailed': 'Échec du téléchargement de l\'icône du projet',
  'settings.projects.page.toast.iconUpdated': 'Icône du projet mise à jour',
  'settings.projects.page.toast.removeIconFailed': 'Échec de la suppression de l\'icône du projet',
  'settings.projects.page.toast.iconRemoved': 'Icône du projet supprimée',
  'settings.projects.page.toast.discoverIconFailed': 'Échec de la découverte de l\'icône du projet',
  'settings.projects.page.toast.customIconAlreadySet': 'Icône personnalisée déjà définie pour ce projet',
  'settings.projects.page.toast.iconDiscovered': 'Icône de projet découverte',
  'settings.usage.sidebar.title': 'Usage',
  'settings.usage.sidebar.total': 'Total {count}',
  'settings.usage.sidebar.actions.toggleAutoRefreshAria': 'Activer l\'actualisation automatique',
  'settings.usage.sidebar.actions.refreshAria': 'Actualiser l\'utilisation',
  'settings.usage.sidebar.actions.refreshTitle': 'Actualiser l\'utilisation',
  'settings.usage.sidebar.tooltip.autoRefresh': 'Actualisation automatique des données d\'utilisation à un intervalle défini',
  'settings.usage.sidebar.field.intervalPlaceholder': 'Intervalle',
  'settings.usage.sidebar.field.display': 'Afficher',
  'settings.usage.sidebar.field.displayModePlaceholder': 'Mode d\'affichage',
  'settings.usage.sidebar.field.displayModeUsage': 'Usage',
  'settings.usage.sidebar.field.displayModeRemaining': 'Quota restant',
  'settings.usage.sidebar.field.showPredictions': 'Afficher les prédictions',
  'settings.usage.sidebar.status.notSet': 'Non défini',
  'settings.usage.page.empty.selectProvider': 'Sélectionnez un fournisseur pour afficher les détails d\'utilisation.',
  'settings.usage.page.header.providerUsage': 'Utilisation de {provider}',
  'settings.usage.page.header.refreshing': 'Utilisation rafraîchissante...',
  'settings.usage.page.header.lastUpdated': 'Dernière mise à jour : {time}',
  'settings.usage.page.options.showInHeaderAria': 'Afficher dans le menu d\'en-tête',
  'settings.usage.page.options.showInHeader': 'Afficher dans le menu d\'en-tête',
  'settings.usage.page.options.showInHeaderTooltip': 'Lorsqu\'elle est activée, l\'utilisation de ce fournisseur sera visible dans le menu déroulant d\'accès rapide dans l\'en-tête de l\'application.',
  'settings.usage.page.state.noData': 'Aucune donnée d\'utilisation disponible pour l\'instant.',
  'settings.usage.page.state.refreshFailedTitle': 'Échec de l\'actualisation des données d\'utilisation',
  'settings.usage.page.state.providerNotConfiguredTitle': 'Fournisseur non configuré',
  'settings.usage.page.state.providerNotConfiguredDescription': 'Ajoutez des informations d\'identification dans l\'onglet Fournisseurs pour activer le suivi de l\'utilisation.',
  'settings.usage.page.section.modelQuotas': 'Quotas de modèles',
  'settings.usage.page.section.otherModels': 'Autres modèles',
  'settings.usage.page.state.noQuotaWindowsTitle': 'Aucune fenêtre de quota signalée',
  'settings.usage.page.state.noQuotaWindowsDescription': 'Ce fournisseur ne signale actuellement aucune limite de débit ni aucun quota d\'utilisation.',
  'settings.usage.pace.status.onTrack': 'En bonne voie',
  'settings.usage.pace.status.slightlyFast': 'Un peu rapide',
  'settings.usage.pace.status.tooFast': 'Trop vite',
  'settings.usage.pace.status.usedUp': 'Épuisé',
  'settings.usage.pace.predictionTooltip': 'Utilisation prévue à la fin de la fenêtre en fonction du rythme actuel : {prediction}',
  'settings.usage.pace.wait': 'Attendez {duration}',
  'settings.usage.pace.prediction': 'Précédent : {prediction}',
  'settings.usage.pace.rate': 'Rythme : {rate}',
  'settings.usage.pace.waitSeparator': '· Attendez',
  'settings.usage.pace.predictionLabel': 'Préd :',
  'settings.remoteInstances.page.title': 'Instance distante',
  'settings.remoteInstances.page.description': 'Configurez la connexion SSH, le serveur distant et les paramètres de transfert.',
  'settings.remoteInstances.page.empty.selectInstance': 'Sélectionnez une instance pour afficher et modifier ses paramètres.',
  'settings.remoteInstances.page.empty.noExtraForwards': 'Aucun transfert de port supplémentaire configuré.',
  'settings.remoteInstances.page.section.actions': 'Actions',
  'settings.remoteInstances.page.section.actionsDescription': 'Connectez-vous, reconnectez-vous, inspectez les journaux ou supprimez cette instance.',
  'settings.remoteInstances.page.section.remoteServer': 'Serveur distant',
  'settings.remoteInstances.page.section.remoteServerDescription': 'Comment OpenChamber est géré et démarré sur l\'hôte distant.',
  'settings.remoteInstances.page.section.mainTunnel': 'Tunnel principal',
  'settings.remoteInstances.page.section.mainTunnelDescription': 'Point de terminaison local principal pour cette instance distante.',
  'settings.remoteInstances.page.section.authentication': 'Authentification',
  'settings.remoteInstances.page.section.authenticationDescription': 'Informations d\'identification facultatives pour SSH et l\'interface utilisateur distante OpenChamber.',
  'settings.remoteInstances.page.section.portForwards': 'Transferts de ports',
  'settings.remoteInstances.page.section.portForwardsDescription': 'Un SSH supplémentaire avance au-delà du tunnel principal.',
  'settings.remoteInstances.page.field.sshCommand': 'Commande SSH',
  'settings.remoteInstances.page.field.sshCommandPlaceholder': 'ssh utilisateur @ hôte',
  'settings.remoteInstances.page.field.nickname': 'Surnom',
  'settings.remoteInstances.page.field.nicknamePlaceholder': 'Mon hôte distant',
  'settings.remoteInstances.page.field.connectionTimeoutSeconds': 'Délai d\'expiration de la connexion (secondes)',
  'settings.remoteInstances.page.field.installMethod': 'Méthode d\'installation',
  'settings.remoteInstances.page.field.installMethodHint': 'Comment OpenChamber est installé lors de l’exécution en mode géré.',
  'settings.remoteInstances.page.field.selectInstallMethodPlaceholder': 'Sélectionnez la méthode d\'installation',
  'settings.remoteInstances.page.field.installMethodDownloadRelease': 'Télécharger la version',
  'settings.remoteInstances.page.field.installMethodUploadBundle': 'Télécharger le lot',
  'settings.remoteInstances.page.field.selectBindHostPlaceholder': 'Sélectionnez l\'hôte de liaison',
  'settings.remoteInstances.page.field.sshPasswordOptional': 'Mot de passe SSH (facultatif)',
  'settings.remoteInstances.page.field.sshPasswordPlaceholder': 'Entrez le mot de passe SSH',
  'settings.remoteInstances.page.field.uiPasswordOptional': 'Mot de passe de l\'interface utilisateur (facultatif)',
  'settings.remoteInstances.page.field.uiPasswordPlaceholder': 'Entrez le mot de passe de l\'interface utilisateur',
  'settings.remoteInstances.page.field.forwardTypeHint': 'Choisissez le transfert local (-L), distant (-R) ou dynamique (-D).',
  'settings.remoteInstances.page.field.typePlaceholder': 'Taper',
  'settings.remoteInstances.page.forwardType.local': 'Local (-L)',
  'settings.remoteInstances.page.forwardType.remote': 'À distance (-R)',
  'settings.remoteInstances.page.forwardType.dynamic': 'Dynamique (-D)',
  'settings.remoteInstances.page.forwardTypeDescription.local': 'Transférez le trafic local vers une destination distante.',
  'settings.remoteInstances.page.forwardTypeDescription.remote': 'Exposez un point de terminaison distant et renvoyez-le à votre ordinateur local.',
  'settings.remoteInstances.page.forwardTypeDescription.dynamic': 'Exposez un proxy SOCKS5 local sur SSH.',
  'settings.remoteInstances.page.actions.create': 'Créer',
  'settings.remoteInstances.page.actions.cancel': 'Annuler',
  'settings.remoteInstances.page.actions.connecting': 'Connexion...',
  'settings.remoteInstances.page.actions.reconnecting': 'Reconnexion...',
  'settings.remoteInstances.page.actions.reconnectNow': 'Reconnectez-vous maintenant',
  'settings.remoteInstances.page.actions.logs': 'Journaux SSH',
  'settings.remoteInstances.page.actions.pickRandomPort': 'Choisissez un port au hasard',
  'settings.remoteInstances.page.actions.enableForwardAria': 'Activer le transfert',
  'settings.remoteInstances.page.actions.openLocal': 'Ouvrir localement',
  'settings.remoteInstances.page.actions.addForward': 'Ajouter en avant',
  'settings.remoteInstances.page.import.sectionTitle': 'Importer depuis la configuration SSH',
  'settings.remoteInstances.page.import.loading': 'Chargement des hôtes SSH...',
  'settings.remoteInstances.page.import.noneFound': 'Aucun hôte SSH trouvé.',
  'settings.remoteInstances.page.import.noneAvailable': 'Aucun hôte SSH disponible pour l\'importation.',
  'settings.remoteInstances.page.import.patternSuffix': '(modèle)',
  'settings.remoteInstances.page.status.currentLocalUrl': 'URL local actuel :',
  'settings.remoteInstances.page.status.reconnectStale': 'La reconnexion semble bloquée. Vous pouvez réessayer maintenant.',
  'settings.remoteInstances.page.logsDialog.title': 'Journaux SSH',
  'settings.remoteInstances.page.logsDialog.loading': 'Chargement des journaux...',
  'settings.remoteInstances.page.logsDialog.empty': 'Aucun journal SSH pour l’instant.',
  'settings.remoteInstances.page.patternDialog.title': 'Créer à partir d\'un motif générique',
  'settings.remoteInstances.page.patternDialog.destinationPlaceholder': 'utilisateur @ hôte',
  'settings.remoteInstances.page.phase.resolvingConfiguration': 'Résolution de la configuration',
  'settings.remoteInstances.page.phase.checkingAuth': 'Vérification de l\'authentification',
  'settings.remoteInstances.page.phase.establishingSsh': 'Établissement de la connexion SSH',
  'settings.remoteInstances.page.phase.probingRemote': 'Sonder l\'hôte distant',
  'settings.remoteInstances.page.phase.installingOpenChamber': 'Installation de OpenChamber',
  'settings.remoteInstances.page.phase.updatingOpenChamber': 'Mise à jour de OpenChamber',
  'settings.remoteInstances.page.phase.detectingServer': 'Serveur de détection',
  'settings.remoteInstances.page.phase.startingServer': 'Démarrage du serveur',
  'settings.remoteInstances.page.phase.forwardingPorts': 'Ports de transfert',
  'settings.remoteInstances.page.phase.reconnecting': 'Reconnexion',
  'settings.remoteInstances.page.confirm.storeSshPasswordPlaintext': 'Stocker le mot de passe SSH en clair sur le disque ?',
  'settings.remoteInstances.page.confirm.storeUiPasswordPlaintext': 'Stocker le mot de passe de l\'interface utilisateur en clair sur le disque ?',
  'settings.remoteInstances.page.confirm.removeInstance': 'Supprimer cette instance distante ?',
  'settings.remoteInstances.page.toast.sshCommandRequired': 'La commande SSH est requise',
  'settings.remoteInstances.page.toast.saveFailed': 'Échec de l\'enregistrement de l\'instance',
  'settings.remoteInstances.page.toast.instanceSaved': 'Instance enregistrée',
  'settings.remoteInstances.page.toast.instanceCreated': 'Instance créée',
  'settings.remoteInstances.page.toast.destinationRequired': 'La destination est obligatoire',
  'settings.remoteInstances.page.toast.noLogsToCopy': 'Aucun journal à copier',
  'settings.remoteInstances.page.toast.logsCopied': 'Journaux copiés',
  'settings.remoteInstances.page.toast.logsCleared': 'Journaux effacés',
  'settings.remoteInstances.page.toast.clearLogsFailed': 'Échec de la suppression des journaux',
  'settings.remoteInstances.page.toast.instanceUrlUnavailable': 'L\'instance URL n\'est pas disponible',
  'settings.remoteInstances.page.toast.connectFailed': 'Échec de la connexion de l\'instance',
  'settings.remoteInstances.page.toast.cancelConnectionFailed': 'Échec de l\'annulation de la connexion',
  'settings.remoteInstances.page.toast.disconnectFailed': 'Échec de la déconnexion de l\'instance',
  'settings.remoteInstances.page.toast.retryFailed': 'Échec de la nouvelle tentative de connexion',
  'settings.remoteInstances.page.toast.instanceRemoved': 'Instance supprimée',
  'settings.remoteInstances.page.toast.removeInstanceFailed': 'Échec de la suppression de l\'instance',
  'settings.openchamber.worktrees.state.selectProject': 'Sélectionnez un projet pour gérer les worktrees.',
  'settings.openchamber.worktrees.state.gitOnly': 'Les paramètres Worktree ne sont disponibles que pour les dépôts Git.',
  'settings.openchamber.worktrees.setup.title': 'Commandes de configuration',
  'settings.openchamber.worktrees.setup.tooltipPrefix': 'S\'exécute automatiquement dans le nouveau répertoire worktree lorsqu\'un worktree est créé. Utiliser',
  'settings.openchamber.worktrees.setup.tooltipSuffix': 'pour la racine du projet.',
  'settings.openchamber.worktrees.setup.loading': 'Chargement...',
  'settings.openchamber.worktrees.setup.commandPlaceholder': 'p. ex. bun install',
  'settings.openchamber.worktrees.setup.removeCommandAria': 'Supprimer la commande',
  'settings.openchamber.worktrees.setup.addCommand': 'Ajouter une commande',
  'settings.openchamber.worktrees.setup.waitForCommands': 'Attendre la fin des commandes de configuration avant de créer ou d\'envoyer une session',
  'settings.openchamber.worktrees.setup.waitForCommandsAria': 'Attendre les commandes de configuration Worktree avant de créer ou d\'envoyer une session',
  'settings.openchamber.worktrees.list.title': 'Worktrees existants',
  'settings.openchamber.worktrees.list.tooltip': 'Les worktrees vivent en dehors du dépôt (gérés par OpenCode). La suppression d\'un worktree supprime également les sessions liées.',
  'settings.openchamber.worktrees.list.loading': 'Chargement des worktrees...',
  'settings.openchamber.worktrees.list.empty': 'Aucun worktree trouvé pour ce projet',
  'settings.openchamber.worktrees.list.detachedHead': 'HEAD détaché',
  'settings.openchamber.worktrees.list.deleteWorktreeAria': 'Supprimer le worktree {name}',
  'settings.agents.modelSelector.title': 'Sélectionnez le modèle',
  'settings.agents.modelSelector.searchPlaceholder': 'Rechercher des modèles',
  'settings.agents.modelSelector.selectPlaceholder': 'Sélectionnez le modèle...',
  'settings.agents.modelSelector.notSelected': 'Non sélectionné',
  'settings.agents.modelSelector.noModelOptional': 'Aucun modèle (facultatif)',
  'settings.agents.modelSelector.section.favorites': 'Favoris',
  'settings.agents.modelSelector.section.recents': 'Récents',
  'settings.agents.modelSelector.section.recent': 'Récent',
  'settings.agents.modelSelector.badge.current': 'Actuel',
  'settings.agents.modelSelector.actions.favorite': 'Préféré',
  'settings.agents.modelSelector.actions.unfavorite': 'Supprimer des favoris',
  'settings.agents.modelSelector.actions.addToFavorites': 'Ajouter aux favoris',
  'settings.agents.modelSelector.actions.removeFromFavorites': 'Supprimer des favoris',
  'settings.agents.modelSelector.state.noModelsFound': 'Aucun modèle trouvé',
  'settings.agents.modelSelector.keyboardHints': '↑↓ naviguer • Entrer sélectionner • Esc fermer',
  'settings.providers.sidebar.title': 'Fournisseurs',
  'settings.providers.sidebar.total': 'Total {count}',
  'settings.providers.sidebar.actions.connectProviderAria': 'Connecter le fournisseur',
  'settings.providers.sidebar.actions.connectProviderTitle': 'Connecter le fournisseur',
  'settings.providers.sidebar.empty.title': 'Aucun fournisseur trouvé',
  'settings.providers.sidebar.empty.description': 'Vérifiez votre configuration OpenCode',
  'settings.providers.sidebar.section.userProviders': 'Fournisseurs d\'utilisateurs',
  'settings.providers.sidebar.section.projectProviders': 'Fournisseurs de projets',
  'settings.providers.page.state.loading': 'Chargement...',
  'settings.providers.page.state.unableToLoadProviderList': 'Impossible de charger la liste des fournisseurs',
  'settings.providers.page.empty.noProvidersDetected': 'Aucun fournisseur détecté',
  'settings.providers.page.empty.checkOpenCodeConfiguration': 'Vérifiez votre configuration OpenCode',
  'settings.providers.page.empty.selectProviderFromSidebar': 'Sélectionnez un fournisseur dans la barre latérale',
  'settings.providers.page.empty.reviewDetailsAndConfigureAuth': 'Vérifier les détails et configurer l\'authentification',
  'settings.providers.page.connect.title': 'Connecter le fournisseur',
  'settings.providers.page.connect.selectProviderTitle': 'Sélectionnez le fournisseur',
  'settings.providers.page.connect.providerField': 'Fournisseur',
  'settings.providers.page.connect.selectProviderPlaceholder': 'Sélectionnez le fournisseur',
  'settings.providers.page.connect.searchProvidersPlaceholder': 'Recherche...',
  'settings.providers.page.connect.noProvidersFound': 'Aucun fournisseur trouvé',
  'settings.providers.page.connect.allProvidersConnected': 'Tous les fournisseurs connectés.',
  'settings.providers.page.auth.title': 'Authentification',
  'settings.providers.page.auth.loadingMethods': 'Chargement des méthodes d\'authentification...',
  'settings.providers.page.auth.apiKeyLabel': 'Clé API',
  'settings.providers.page.auth.apiKeyTooltip': 'Les clés sont envoyées directement à OpenCode et ne sont jamais stockées par OpenChamber.',
  'settings.providers.page.auth.apiKeyPlaceholder': 'sk-...',
  'settings.providers.page.auth.oauthMethodFallback': 'Méthode OAuth {index}',
  'settings.providers.page.auth.pasteAuthorizationCodePlaceholder': 'Coller le code d\'autorisation',
  'settings.providers.page.auth.connected': 'Connecté',
  'settings.providers.page.auth.useReconnectHint': '· Utilisez Reconnect pour mettre à jour les informations d\'identification',
  'settings.providers.page.connectionDetails.title': 'Détails de connexion',
  'settings.providers.page.connectionDetails.configuredIn': 'Configuré dans :',
  'settings.providers.page.connectionDetails.noActiveSource': 'Aucune source de configuration active',
  'settings.providers.page.connectionDetails.source.authCredentials': 'informations d\'authentification',
  'settings.providers.page.connectionDetails.source.userConfig': 'configuration utilisateur',
  'settings.providers.page.connectionDetails.source.projectConfig': 'configuration du projet',
  'settings.providers.page.connectionDetails.source.customConfig': 'configuration personnalisée',
  'settings.providers.page.models.title': 'Modèles disponibles',
  'settings.providers.page.models.filterPlaceholder': 'Filtrer les modèles...',
  'settings.providers.page.models.noModelsMatchFilter': 'Aucun modèle ne correspond à ce filtre.',
  'settings.providers.page.models.capability.toolCalling': 'Appel d\'outil',
  'settings.providers.page.models.capability.reasoning': 'Raisonnement',
  'settings.providers.page.models.capability.imageInput': 'Saisie d\'images',
  'settings.providers.page.models.tokenBadge.context': 'cx',
  'settings.providers.page.models.tokenBadge.output': 'sortie',
  'settings.providers.page.models.actions.hideModelFromSelectors': 'Masquer le modèle des sélecteurs',
  'settings.providers.page.models.actions.showModelInSelectors': 'Afficher le modèle dans les sélecteurs',
  'settings.providers.page.models.actions.hideModel': 'Masquer le modèle',
  'settings.providers.page.models.actions.showModel': 'Afficher le modèle',
  'settings.providers.page.actions.saving': 'Enregistrement...',
  'settings.providers.page.actions.saveKey': 'Enregistrer la clé',
  'settings.providers.page.actions.connect': 'Connecter',
  'settings.providers.page.actions.copyCode': 'Copier le code',
  'settings.providers.page.actions.open': 'Ouvrir',
  'settings.providers.page.actions.copy': 'Copie',
  'settings.providers.page.actions.complete': 'Complet',
  'settings.providers.page.actions.hide': 'Cacher',
  'settings.providers.page.actions.reconnect': 'Reconnecter',
  'settings.providers.page.actions.disconnecting': 'Déconnexion...',
  'settings.providers.page.actions.disconnect': 'Déconnecter',
  'settings.providers.page.actions.hideAll': 'Tout cacher',
  'settings.providers.page.actions.showAll': 'Afficher tout',
  'settings.providers.page.toast.authMethodsLoadFailed': 'Échec du chargement des méthodes d\'authentification du fournisseur',
  'settings.providers.page.toast.providerSourcesLoadFailed': 'Échec du chargement des sources du fournisseur',
  'settings.providers.page.toast.apiKeyRequired': 'La clé API est requise',
  'settings.providers.page.toast.apiKeySaveFailed': 'Échec de l\'enregistrement de la clé API',
  'settings.providers.page.toast.apiKeySaved': 'Clé API enregistrée',
  'settings.providers.page.toast.oauthStartFailed': 'Échec du démarrage du flux OAuth',
  'settings.providers.page.toast.oauthDetailsMissing': 'Aucun détail OAuth renvoyé',
  'settings.providers.page.toast.completeOAuthInBrowser': 'Complétez le flux OAuth dans votre navigateur',
  'settings.providers.page.toast.oauthCompleteFailed': 'Échec de la réalisation du flux OAuth',
  'settings.providers.page.toast.oauthCompleted': 'Connexion OAuth terminée',
  'settings.providers.page.toast.oauthLinkCopied': 'Lien OAuth copié',
  'settings.providers.page.toast.oauthLinkCopyFailed': 'Échec de la copie du lien OAuth',
  'settings.providers.page.toast.deviceCodeCopied': 'Code de l\'appareil copié',
  'settings.providers.page.toast.deviceCodeCopyFailed': 'Échec de la copie du code de l\'appareil',
  'settings.providers.page.toast.providerDisconnected': 'Fournisseur déconnecté',
  'settings.providers.page.toast.providerDisconnectFailed': 'Échec de la déconnexion du fournisseur',
  'settings.mcp.page.empty.selectServer': 'Sélectionnez un serveur MCP dans la barre latérale',
  'settings.mcp.page.empty.addNewOne': 'ou ajoutez-en un nouveau',
  'settings.mcp.page.header.newServer': 'Nouveau serveur MCP',
  'settings.mcp.page.header.configureNewServer': 'Configurer un nouveau serveur MCP',
  'settings.mcp.page.header.transport': 'Transport {type}',
  'settings.mcp.page.transport.local': 'Local · stdio',
  'settings.mcp.page.transport.remote': 'À distance · SSE',
  'settings.mcp.page.status.label.connected': 'Connecté',
  'settings.mcp.page.status.label.failed': 'Échoué',
  'settings.mcp.page.status.label.needsAuth': 'Nécessite une authentification',
  'settings.mcp.page.status.label.needsRegistration': 'Nécessite une inscription',
  'settings.mcp.page.status.description.connected': 'Connecté et prêt pour OpenCode pour découvrir des outils et des ressources.',
  'settings.mcp.page.status.description.failedDefault': 'OpenCode n\'a pas pu atteindre ce serveur MCP.',
  'settings.mcp.page.status.description.needsAuth': 'Ce serveur MCP distant nécessite une autorisation avant de pouvoir se connecter.',
  'settings.mcp.page.status.description.needsClientRegistrationDefault': 'Ce serveur MCP distant nécessite l\'enregistrement du client avant que l\'autorisation puisse être effectuée.',
  'settings.mcp.page.status.description.disabled': 'Ce serveur MCP est désactivé en configuration.',
  'settings.mcp.page.status.description.default': 'Actualisez ou testez la connexion pour charger l’état d’exécution en direct.',
  'settings.mcp.page.status.runtimeStatus': 'Statut d\'exécution',
  'settings.mcp.page.status.projectScopedTo': 'Projet limité à {directory}',
  'settings.mcp.page.status.userScoped': 'Configuration à l\'échelle de l\'utilisateur',
  'settings.mcp.page.status.activeProject': 'le projet actif',
  'settings.mcp.page.actions.connect': 'Connecter',
  'settings.mcp.page.actions.disconnect': 'Déconnecter',
  'settings.mcp.page.actions.authorize': 'Autoriser',
  'settings.mcp.page.actions.reauthorize': 'Réautoriser',
  'settings.mcp.page.actions.clearAuth': 'Effacer l\'authentification',
  'settings.mcp.page.actions.test': 'Test',
  'settings.mcp.page.actions.testConnection': 'Tester la connexion',
  'settings.mcp.page.actions.working': 'Fonctionnement...',
  'settings.mcp.page.actions.starting': 'Démarrage...',
  'settings.mcp.page.actions.clearing': 'Effacement...',
  'settings.mcp.page.actions.testing': 'Essai...',
  'settings.mcp.page.actions.completing': 'Terminer...',
  'settings.mcp.page.actions.completeAuthorization': 'Autorisation complète',
  'settings.mcp.page.actions.openInBrowser': 'Ouvrir dans le navigateur',
  'settings.mcp.page.actions.copyLink': 'Copier le lien',
  'settings.mcp.page.actions.deleting': 'Suppression…',
  'settings.mcp.page.auth.authorizationUrl': 'Autorisation URL',
  'settings.mcp.page.auth.manualFallbackTitle': 'Autorisation manuelle de secours',
  'settings.mcp.page.auth.manualFallbackDescription': 'Si le navigateur revient à une autre machine ou affiche un rappel URL avec un code, collez ce URL complet ou le code brut ici.',
  'settings.mcp.page.auth.callbackInputPlaceholder': 'Collez le rappel URL ou le code d\'autorisation',
  'settings.mcp.page.auth.waitingForOpenCode': 'En attendant que OpenCode observe le flux d\'autorisation du navigateur terminé...',
  'settings.mcp.page.server.title': 'Serveur',
  'settings.mcp.page.server.name': 'Nom du serveur',
  'settings.mcp.page.server.namePlaceholder': 'mon-serveur-mcp',
  'settings.mcp.page.server.importJson': 'Importer à partir de l\'extrait de code JSON',
  'settings.mcp.page.server.importJsonTitle': 'Importer une configuration complète du serveur MCP à partir d\'un extrait de code JSON',
  'settings.mcp.page.server.enable': 'Activer le serveur',
  'settings.mcp.page.server.enableAria': 'Activer le serveur',
  'settings.mcp.page.server.transportMode': 'Mode de transport',
  'settings.mcp.page.connection.command': 'Commande',
  'settings.mcp.page.connection.serverUrl': 'Serveur URL',
  'settings.mcp.page.connection.serverUrlPlaceholder': 'https://mcp.example.com/mcp',
  'settings.mcp.page.connection.pasteCommand': 'Commande Coller',
  'settings.mcp.page.connection.pasteCommandTitle': 'Collez une commande locale à partir du presse-papiers et divisez-la automatiquement',
  'settings.mcp.page.connection.previewArgs': 'Aperçu (arguments {count})',
  'settings.mcp.page.advanced.title': 'Options avancées à distance',
  'settings.mcp.page.advanced.configure': 'Configurer les options avancées',
  'settings.mcp.page.advanced.autoDetect': 'Détection automatique',
  'settings.mcp.page.advanced.custom': 'Personnalisé',
  'settings.mcp.page.advanced.headers': 'en-têtes',
  'settings.mcp.page.advanced.timeoutMs': 'Délai d\'expiration (ms)',
  'settings.mcp.page.advanced.timeoutHint': 'Laissez vide pour utiliser le délai d\'expiration par défaut de OpenCode, MCP.',
  'settings.mcp.page.advanced.requestHeaders': 'En-têtes de demande',
  'settings.mcp.page.advanced.headerNamePlaceholder': 'Nom de l\'en-tête',
  'settings.mcp.page.advanced.pasteHeaders': 'Coller les en-têtes',
  'settings.mcp.page.advanced.pasteHeadersTitle': 'Coller les lignes d\'en-tête KEY=VALUE du presse-papiers',
  'settings.mcp.page.advanced.oauthAutoDetection': 'Activer la détection automatique OAuth',
  'settings.mcp.page.advanced.oauthAutoDetectionAria': 'Activer la détection automatique OAuth',
  'settings.mcp.page.advanced.oauthClientIdPlaceholder': 'ID client OAuth',
  'settings.mcp.page.advanced.oauthClientSecretPlaceholder': 'Secret client OAuth',
  'settings.mcp.page.advanced.oauthScopesPlaceholder': 'Portées (délimitées par des espaces)',
  'settings.mcp.page.advanced.oauthRedirectUriPlaceholder': 'URI de redirection',
  'settings.mcp.page.advanced.oauthHint': 'Laissez ces champs vides pour permettre à OpenCode de déduire les paramètres OAuth du serveur MCP.',
  'settings.mcp.page.advanced.oauthCallbackHint': 'L\'autorisation MCP basée sur le navigateur utilise ce rappel URL lorsque l\'URI de redirection est vide :',
  'settings.mcp.page.env.title': 'Variables d\'environnement',
  'settings.mcp.page.env.key': 'Clé',
  'settings.mcp.page.env.value': 'Valeur',
  'settings.mcp.page.env.valuePlaceholder': 'valeur',
  'settings.mcp.page.env.hide': 'Cacher',
  'settings.mcp.page.env.show': 'Montrer',
  'settings.mcp.page.env.addVariable': 'Ajouter une variable',
  'settings.mcp.page.env.addEnvironmentVariable': 'Ajouter une variable d\'environnement',
  'settings.mcp.page.env.keyPlaceholder': 'API_KEY',
  'settings.mcp.page.env.pasteEnv': 'Coller .env',
  'settings.mcp.page.env.pasteEnvTitle': 'Coller les lignes KEY=VALUE du presse-papiers',
  'settings.mcp.page.env.plainTextWarning': '⚠ Les valeurs sont stockées sous forme de texte brut dans opencode.json',
  'settings.mcp.page.env.removeVariableAria': 'Supprimer une variable',
  'settings.mcp.page.importDialog.title': 'Importer l’extrait JSON',
  'settings.mcp.page.importDialog.description': 'Collez un extrait complet de MCP JSON à partir de la documentation ou d\'un autre fichier de configuration. Les valeurs analysées rempliront ce formulaire pour examen avant de les enregistrer.',
  'settings.mcp.page.importDialog.pasteFromClipboard': 'Coller JSON à partir du Presse-papiers',
  'settings.mcp.page.deleteDialog.title': 'Supprimer « {name} » ?',
  'settings.mcp.page.deleteDialog.descriptionPrefix': 'Cela supprime le serveur de',
  'settings.mcp.page.deleteDialog.descriptionSuffix': 'OpenCode devra recharger.',
  'settings.mcp.page.toast.clipboardReadFailed': 'Impossible de lire le presse-papier',
  'settings.mcp.page.toast.configImported': 'Configuration MCP importée',
  'settings.mcp.page.toast.nameRequired': 'Le nom est requis',
  'settings.mcp.page.toast.serverNameExists': 'Un serveur portant ce nom existe déjà',
  'settings.mcp.page.toast.localCommandRequired': 'La commande ne peut pas être vide pour un serveur local',
  'settings.mcp.page.toast.remoteUrlRequired': 'URL ne peut pas être vide pour un serveur distant',
  'settings.mcp.page.toast.serverCreatedReloadFailed': 'Le serveur MCP a été créé, mais le rechargement du OpenCode a échoué.',
  'settings.mcp.page.toast.savedReloadFailed': 'Enregistré, mais le rechargement du OpenCode a échoué.',
  'settings.mcp.page.toast.retryRefreshHint': 'Réessayez d\'actualiser ou de rouvrir les paramètres avant d\'autoriser ce serveur.',
  'settings.mcp.page.toast.serverCreatedReloading': 'Serveur MCP créé. Rechargement du OpenCode…',
  'settings.mcp.page.toast.savedReloading': 'Enregistré. Rechargement du OpenCode…',
  'settings.mcp.page.toast.saveFailed': 'Échec de l\'enregistrement',
  'settings.mcp.page.toast.unexpectedError': 'Une erreur s\'est produite',
  'settings.mcp.page.toast.serverDeletedReloadFailed': '"{name}" supprimé, mais le rechargement du OpenCode a échoué',
  'settings.mcp.page.toast.refreshListIfStale': 'Actualisez la liste MCP si l\'interface utilisateur semble obsolète.',
  'settings.mcp.page.toast.serverDeleted': '"{name}" supprimé',
  'settings.mcp.page.toast.deleteFailed': 'Échec de la suppression',
  'settings.mcp.page.toast.disconnected': 'Déconnecté',
  'settings.mcp.page.toast.connected': 'Connecté',
  'settings.mcp.page.toast.connectionNeedsAuthorization': 'La connexion nécessite une autorisation',
  'settings.mcp.page.toast.connectionNeedsClientRegistration': 'La connexion nécessite l\'enregistrement du client',
  'settings.mcp.page.toast.connectionFailed': 'La connexion a échoué',
  'settings.mcp.page.toast.connectionAttemptFinished': 'Tentative de connexion terminée. Actualisez le statut pour plus de détails.',
  'settings.mcp.page.toast.createServerBeforeLiveActions': 'Créez le serveur avant d\'exécuter des actions en direct',
  'settings.mcp.page.toast.saveBeforeLiveActions': 'Enregistrez les modifications avant d\'exécuter des actions en direct',
  'settings.mcp.page.toast.refreshStatusFailed': 'Échec de l\'actualisation du statut du MCP',
  'settings.mcp.page.toast.oauthRedirectUrlBuildFailed': 'Impossible de créer la redirection OAuth MCP URL',
  'settings.mcp.page.toast.oauthBrowserCallbackSaveFailed': 'Échec de l\'enregistrement du rappel du navigateur URL pour l\'autorisation MCP',
  'settings.mcp.page.toast.openCodeReloadFailedAfterCallbackSave': 'Le rechargement de OpenCode a échoué après l\'enregistrement du rappel du navigateur URL',
  'settings.mcp.page.toast.completeAuthorizationInBrowserWithPaste': 'Complétez le flux d\'autorisation MCP dans votre navigateur, puis collez le code renvoyé ou rappelez URL ici',
  'settings.mcp.page.toast.completeAuthorizationInBrowser': 'Complétez le flux d\'autorisation MCP dans votre navigateur',
  'settings.mcp.page.toast.openAuthorizationUrlFailed': 'Impossible d\'ouvrir automatiquement l\'autorisation URL',
  'settings.mcp.page.toast.authorizationStartFailed': 'Échec du démarrage de l\'autorisation',
  'settings.mcp.page.toast.authSessionExpired': 'La session d\'autorisation a expiré ou a été effacée lors du rechargement. Cliquez à nouveau sur Autoriser.',
  'settings.mcp.page.toast.savedAuthorizationRemoved': 'L\'autorisation MCP enregistrée a été supprimée',
  'settings.mcp.page.toast.clearAuthorizationFailed': 'Échec de l\'autorisation',
  'settings.mcp.page.toast.authorizationUrlCopied': 'Autorisation URL copiée',
  'settings.mcp.page.toast.authorizationUrlCopyFailed': 'Échec de la copie de l\'autorisation URL',
  'settings.mcp.page.toast.pasteCallbackOrCodeFirst': 'Collez d\'abord le rappel URL ou le code d\'autorisation',
  'settings.mcp.page.toast.missingServerDetails': 'Détails du serveur MCP manquants. Sélectionnez à nouveau le serveur ou collez le rappel complet URL.',
  'settings.mcp.page.toast.authorizationCompleted': 'Autorisation MCP terminée',
  'settings.mcp.page.toast.authorizationCompletedFor': 'Autorisation MCP complétée pour {name}',
  'settings.mcp.page.toast.authorizationCompleteFailed': 'Échec de l\'autorisation MCP',
  'settings.mcp.page.toast.enableServerBeforeTest': 'Activez ce serveur avant de tester la connexion',
  'settings.mcp.page.toast.connectionTestSucceeded': 'Test de connexion réussi',
  'settings.mcp.page.toast.connectionTestFailed': 'Le test de connexion a échoué',
  'settings.mcp.page.toast.connectionTestFinished': 'Test de connexion terminé. Actualisez le statut pour plus de détails.',
  'settings.mcp.page.toast.authorizationFailed': 'L\'autorisation a échoué',
  'settings.mcp.page.toast.authorizationStillInProgress': 'L\'autorisation est toujours en cours dans votre navigateur. Collez le rappel URL ou le code si nécessaire.',
  'settings.mcp.page.toast.noKeyValuePairsFound': 'Aucune paire KEY=VALUE trouvée dans le presse-papiers',
  'settings.mcp.page.toast.importedVariablesCount': 'Variables importées : {count}',
  'settings.mcp.page.toast.pastedArgumentsCount': 'Arguments collés : {count}',
  'settings.shared.projectSelector.fallbackProject': 'Projet',
  'settings.shared.projectSelector.switchProjectAria': 'Changer de projet',
  'settings.shared.projectSelector.switchProjectTitle': 'Changer de projet',
  'settings.openchamber.defaults.title': 'Paramètres par défaut de la session',
  'settings.openchamber.defaults.summaryPrefix': 'Les nouvelles sessions débuteront avec :',
  'settings.openchamber.defaults.summaryOpenCodeDefault': 'Agent OpenCode par défaut',
  'settings.openchamber.defaults.field.defaultModel': 'Modèle par défaut',
  'settings.openchamber.defaults.field.defaultThinking': 'Pensée par défaut',
  'settings.openchamber.defaults.field.thinkingPlaceholder': 'Pensée',
  'settings.openchamber.defaults.field.defaultAgent': 'Agent par défaut',
  'settings.openchamber.defaults.field.showDeletionDialogAria': 'Afficher la boîte de dialogue de suppression',
  'settings.openchamber.defaults.field.showDeletionDialog': 'Afficher la boîte de dialogue de suppression',
  'settings.openchamber.defaults.field.openFilesPreviewAria': 'Ouvrir les fichiers en mode aperçu',
  'settings.openchamber.defaults.field.openFilesPreview': 'Ouvrir les fichiers en mode aperçu',
  'settings.openchamber.defaults.option.default': 'Défaut',
  'settings.openchamber.defaults.option.defaultLowercase': 'défaut',
  'settings.openchamber.git.title': 'Préférences Git',
  'settings.openchamber.git.changesViewTitle': 'Vue des modifications',
  'settings.openchamber.git.changesViewAria': 'Git change le mode d\'affichage',
  'settings.openchamber.git.option.flatList': 'Liste plate',
  'settings.openchamber.git.option.treeView': 'Vue arborescente',
  'settings.openchamber.git.optionAria': 'Git change de mode d\'affichage : {option}',
  'settings.openchamber.git.enableGitmojiAria': 'Activer le sélecteur Gitmoji',
  'settings.openchamber.git.enableGitmoji': 'Activer le sélecteur Gitmoji',
  'settings.openchamber.git.showGitignoredAria': 'Afficher les fichiers gitignorés',
  'settings.openchamber.git.showGitignored': 'Afficher les fichiers ignorés par Git',
  'settings.github.page.tooltip.connectAccount': 'Connectez un compte GitHub pour les PR et les workflows de problèmes dans l\'application.',
  'settings.github.page.avatarAlt.withLogin': 'Avatar {login}',
  'settings.github.page.avatarAlt.fallback': 'Avatar GitHub',
  'settings.github.page.label.unknownUser': 'inconnu',
  'settings.github.page.label.scopes': 'Portées : {value}',
  'settings.github.page.label.otherAccounts': 'Autres comptes',
  'settings.github.page.accountSource.oauth': 'OAuth',
  'settings.github.page.accountSource.cli': 'CLI',
  'settings.github.page.actions.disconnect': 'Déconnecter',
  'settings.github.page.actions.connect': 'Connectez GitHub',
  'settings.github.page.actions.switchTo': 'Passer à',
  'settings.github.page.actions.addAccount': 'Ajouter un compte',
  'settings.github.page.actions.openGithub': 'Ouvrir GitHub',
  'settings.github.page.status.notConnected': 'Non connecté',
  'settings.github.page.status.active': 'Actif',
  'settings.github.page.flow.title': 'Autoriser OpenChamber',
  'settings.github.page.flow.description': 'Dans GitHub, saisissez le code suivant pour autoriser cet appareil :',
  'settings.github.page.flow.waiting': 'En attente d\'approbation… (actualisation automatique)',
  'settings.github.page.toast.startConnectFailed': 'Échec du démarrage de la connexion GitHub',
  'settings.github.page.toast.connected': 'GitHub connecté',
  'settings.github.page.toast.authorizationFailed': 'L\'autorisation GitHub a échoué',
  'settings.github.page.toast.disconnected': 'GitHub déconnecté',
  'settings.github.page.toast.disconnectFailed': 'Échec de la déconnexion du GitHub',
  'settings.github.page.toast.accountSwitched': 'Le compte GitHub a changé',
  'settings.github.page.toast.accountSwitchFailed': 'Échec du changement de compte GitHub',
  'settings.github.page.oauth.title': 'Token OAuth GitHub',
  'settings.github.page.ghCli.title': 'Token CLI GitHub',
  'settings.github.page.ghCli.activeDescription': 'Authentifié via gh CLI',
  'settings.github.page.ghCli.fallbackDescription': 'Disponible comme solution de secours si l’authentification OpenChamber est supprimée',
  'settings.github.page.ghCli.disabledDescription': 'Installé, mais non utilisé comme solution de secours',
  'settings.github.page.ghCli.actions.disable': 'Désactiver',
  'settings.github.page.ghCli.actions.enable': 'Activer',
  'settings.github.page.toast.ghCliEnabled': 'Solution de secours gh CLI activée',
  'settings.github.page.toast.ghCliDisabled': 'Solution de secours gh CLI désactivée',
  'settings.github.page.toast.ghCliUpdateFailed': 'Échec de la mise à jour du paramètre gh CLI',
  'settings.notifications.page.delivery.title': 'Envoi des notifications',
  'settings.notifications.page.delivery.enableAria': 'Activer les notifications',
  'settings.notifications.page.delivery.enableLabel': 'Activer les notifications',
  'settings.notifications.page.delivery.focusedAria': 'Notifier lorsque l\'application est ciblée',
  'settings.notifications.page.delivery.focusedLabel': 'Notifier lorsque l\'application est ciblée',
  'settings.notifications.page.delivery.testAction': 'Envoyer une notification de test',
  'settings.notifications.page.delivery.browserPermissionHint': 'Votre navigateur peut demander l\'autorisation la première fois.',
  'settings.notifications.page.delivery.permissionDenied': 'Autorisation de notification refusée. Activez-le dans les paramètres de votre navigateur.',
  'settings.notifications.page.delivery.permissionGrantedButDisabled': 'Autorisation accordée, mais les notifications sont désactivées.',
  'settings.notifications.page.delivery.vscodeHint': 'Lorsqu\'elles sont activées, les notifications sont envoyées via les notifications natives VS Code.',
  'settings.notifications.page.events.title': 'Événements de notification',
  'settings.notifications.page.events.completionAria': 'Achèvement de l\'agent',
  'settings.notifications.page.events.completionLabel': 'Achèvement de l\'agent',
  'settings.notifications.page.events.subtaskAria': 'Achèvement du sous-agent',
  'settings.notifications.page.events.subtaskLabel': 'Achèvement du sous-agent',
  'settings.notifications.page.events.errorAria': 'Erreurs d\'agent',
  'settings.notifications.page.events.errorLabel': 'Erreurs d\'agent',
  'settings.notifications.page.events.questionAria': 'Questions des agents',
  'settings.notifications.page.events.questionLabel': 'Questions aux agents',
  'settings.notifications.page.template.title': 'Modèles de notifications',
  'settings.notifications.page.template.variablesLabel': 'Variables :',
  'settings.notifications.page.template.event.completion': 'achèvement',
  'settings.notifications.page.template.event.subtask': 'Achèvement du sous-agent',
  'settings.notifications.page.template.event.error': 'erreur',
  'settings.notifications.page.template.event.question': 'question',
  'settings.notifications.page.template.field.title': 'Titre',
  'settings.notifications.page.template.field.message': 'Message',
  'settings.notifications.page.template.defaults.completion.title': '{agent_name} est prêt',
  'settings.notifications.page.template.defaults.completion.message': '{model_name} a terminé la tâche',
  'settings.notifications.page.template.defaults.error.title': 'Erreur d\'outil',
  'settings.notifications.page.template.defaults.error.message': '{last_message}',
  'settings.notifications.page.template.defaults.question.title': 'Entrée nécessaire',
  'settings.notifications.page.template.defaults.question.message': '{last_message}',
  'settings.notifications.page.template.defaults.subtask.title': '{agent_name} est prêt',
  'settings.notifications.page.template.defaults.subtask.message': '{model_name} a terminé la tâche',
  'settings.notifications.page.summary.title': 'Résumé de l\'IA',
  'settings.notifications.page.summary.toggleAria': 'Résumer le dernier message',
  'settings.notifications.page.summary.toggleLabel': 'Résumer le dernier message',
  'settings.notifications.page.summary.requiresTemplateVariable': 'Nécessite',
  'settings.notifications.page.summary.modelLabel': 'Modèle de synthèse',
  'settings.notifications.page.summary.modelTooltip': 'Utilisé pour les notifications et les résumés vocaux.',
  'settings.notifications.page.summary.notSelected': 'Non sélectionné',
  'settings.notifications.page.summary.thresholdLabel': 'Seuil',
  'settings.notifications.page.summary.thresholdHint': 'Les messages plus longs seront résumés',
  'settings.notifications.page.summary.resetThresholdAria': 'Réinitialiser le seuil',
  'settings.notifications.page.summary.lengthLabel': 'Longueur',
  'settings.notifications.page.summary.lengthHint': 'Longueur de caractères cible du résumé',
  'settings.notifications.page.summary.resetLengthAria': 'Réinitialiser la longueur du résumé',
  'settings.notifications.page.summary.maxLengthLabel': 'Longueur maximale',
  'settings.notifications.page.summary.maxLengthHint': 'Tronquer {last_message} à cette longueur',
  'settings.notifications.page.summary.resetMaxLengthAria': 'Réinitialiser la longueur maximale du message',
  'settings.notifications.page.push.title': 'Notifications push en arrière-plan',
  'settings.notifications.page.push.enableAria': 'Activer les notifications push',
  'settings.notifications.page.push.enableLabel': 'Activer les notifications push',
  'settings.notifications.page.push.unsupportedHint': 'Push non pris en charge. Desktop Chrome/Edge et Android prennent en charge le push. iOS nécessite une PWA installée.',
  'settings.notifications.page.push.supportedHint': 'Recevez des alertes via le service en arrière-plan de votre système d\'exploitation',
  'settings.notifications.page.push.loadingAria': 'Chargement',
  'settings.notifications.page.toast.permissionDenied.title': 'Autorisation de notification refusée',
  'settings.notifications.page.toast.permissionDenied.description': 'Veuillez activer les notifications dans les paramètres de votre navigateur.',
  'settings.notifications.page.toast.permissionDenied.enableInBrowser': 'Activez les notifications dans les paramètres de votre navigateur.',
  'settings.notifications.page.toast.requestPermissionFailed': 'Échec de la demande d\'autorisation de notification',
  'settings.notifications.page.toast.notificationsApiUnavailable': 'Notifications API non disponible',
  'settings.notifications.page.toast.testNotificationSent': 'Notification de test envoyée avec succès',
  'settings.notifications.page.toast.testNotificationFailed': 'Échec de l\'envoi de la notification de test',
  'settings.notifications.page.toast.pushUnsupported': 'Notifications push non prises en charge',
  'settings.notifications.page.toast.pushApiUnavailable': 'Poussez API non disponible',
  'settings.notifications.page.toast.pushKeyLoadFailed': 'Échec du chargement de la touche push',
  'settings.notifications.page.toast.enableBackgroundFailed': 'Échec de l\'activation des notifications en arrière-plan',
  'settings.notifications.page.toast.backgroundEnabled': 'Notifications en arrière-plan activées',
  'settings.notifications.page.toast.backgroundDisabled': 'Notifications en arrière-plan désactivées',
  'settings.notifications.page.testNotification.title': 'Avis de test',
  'settings.notifications.page.testNotification.body': 'Il s\'agit d\'une notification de test de OpenChamber.',
  'settings.voice.page.section.speechRecognition': 'Reconnaissance vocale',
  'settings.voice.page.field.enableVoiceInput': 'Activer la saisie vocale',
  'settings.voice.page.field.enableVoiceInputAria': 'Activer la saisie vocale (dictée)',
  'settings.voice.page.section.playbackAndSummary': 'Lecture',
  'settings.voice.page.field.provider': 'Fournisseur',
  'settings.voice.page.provider.browser': 'Navigateur',
  'settings.voice.page.provider.custom': 'Personnalisé',
  'settings.voice.page.provider.say': 'Dire',
  'settings.voice.page.provider.server': 'Serveur',
  'settings.voice.page.provider.local': 'Local',
  'settings.voice.page.tooltip.sttLocal': 'Transcription locale sur le serveur OpenChamber. Les modèles se téléchargent automatiquement ; aucune clé d\'API requise.',
  'settings.voice.page.tooltip.localTts': 'Synthèse locale sur le serveur OpenChamber (Kokoro, anglais). Le modèle se télécharge automatiquement ; aucune clé d’API requise.',
  'settings.voice.page.stt.model.parakeetV2': 'Parakeet v2 (anglais)',
  'settings.voice.page.stt.model.parakeetV3': 'Parakeet v3 (25 langues européennes)',
  'settings.voice.page.stt.model.whisperBase': 'Whisper base (multilingue)',
  'settings.voice.page.stt.model.whisperTiny': 'Whisper tiny (multilingue)',
  'settings.voice.page.stt.badge.bestForEnglish': 'Idéal pour l’anglais',
  'settings.voice.page.stt.badge.bestForMultilingual': 'Idéal multilingue',
  'settings.voice.page.stt.meta.accuracy': 'Précision',
  'settings.voice.page.stt.meta.speed': 'Vitesse',
  'settings.voice.page.stt.modelInstalled': 'Modèle installé',
  'settings.voice.page.stt.modelDownloading': 'Téléchargement du modèle...',
  'settings.voice.page.stt.modelDownloadingProgress': 'Téléchargement du modèle... {percent}%',
  'settings.voice.page.stt.modelNotInstalled': 'Modèle non téléchargé',
  'settings.voice.page.stt.modelDownload': 'Télécharger',
  'settings.voice.page.stt.modelDelete': 'Supprimer le modèle',
  'settings.voice.page.stt.modelRetry': 'Réessayer',
  'settings.voice.page.provider.wasm': 'Local',
  'settings.voice.page.stt.wasmModel': 'Modèle Whisper',
  'settings.voice.page.stt.wasmLoaded': 'Modèle chargé, prêt',
  'settings.voice.page.stt.wasmDownloading': 'Téléchargement du modèle...',
  'settings.voice.page.stt.wasmLoading': 'Chargement du modèle...',
  'settings.voice.page.stt.wasmNotLoaded': 'Le modèle se chargera lors de la première utilisation vocale',
  'settings.voice.page.stt.wasmDownload': 'Charger',
  'settings.voice.page.stt.wasmRetry': 'Réessayer',
  'settings.voice.page.tooltip.browser': 'Gratuit, hors ligne, prise en charge mobile limitée.',
  'settings.voice.page.tooltip.openai': 'Haute qualité, prêt pour le mobile, nécessite une clé API.',
  'settings.voice.page.tooltip.custom': 'Serveur compatible OpenAI (par exemple Kokoro).',
  'settings.voice.page.tooltip.say': 'Natif macOS. Rapide, gratuit, hors ligne.',
  'settings.voice.page.tooltip.sttBrowser': 'Discours Web API (Chrome/Edge). Gratuit, aucune configuration.',
  'settings.voice.page.tooltip.sttServer': 'Serveur Whisper compatible OpenAI. Une meilleure précision, dans n’importe quelle langue.',
  'settings.voice.page.field.apiKey': 'Clé API',
  'settings.voice.page.field.apiKeyHintUsingConfig': 'Utiliser la clé de la configuration',
  'settings.voice.page.field.apiKeyHintRequired': 'OpenAI TTS nécessite une clé API',
  'settings.voice.page.field.apiKeyHintProvide': 'Fournissez votre clé OpenAI',
  'settings.voice.page.field.serverUrl': 'Serveur URL',
  'settings.voice.page.field.serverUrlHint': 'Base URL du serveur TTS compatible OpenAI',
  'settings.voice.page.field.model': 'Modèle',
  'settings.voice.page.field.voice': 'Voix',
  'settings.voice.page.field.voiceIdentifierHint': 'Identifiant vocal pris en charge par le serveur',
  'settings.voice.page.field.configuredAbove': 'Configuré ci-dessus',
  'settings.voice.page.actions.preview': 'Aperçu',
  'settings.voice.page.field.selectVoicePlaceholder': 'Sélectionnez la voix',
  'settings.voice.page.field.auto': 'Auto',
  'settings.voice.page.field.speechRate': 'Taux de parole',
  'settings.voice.page.field.speechPitch': 'Hauteur de la voix',
  'settings.voice.page.field.speechVolume': 'Volume de la parole',
  'settings.voice.page.field.language': 'Langue',
  'settings.voice.page.field.selectLanguagePlaceholder': 'Sélectionnez la langue',
  'settings.voice.page.field.sttBrowserSupportError': 'MediaRecorder ou AudioContext ne sont pas disponibles dans ce navigateur. Le serveur STT peut ne pas fonctionner.',
  'settings.voice.page.field.sttServerUrlHint': 'Base URL du serveur compatible Whisper',
  'settings.voice.page.field.sttLanguageHint': 'Code BCP-47 (par exemple en, fr). Laissez vide pour la détection automatique.',
  'settings.voice.page.field.silenceThreshold': 'Seuil de silence',
  'settings.voice.page.field.silenceHold': 'Maintien du silence',
  'settings.voice.page.field.transcribeOnStopAria': 'Transcrire à l\'arrêt de l\'enregistrement',
  'settings.voice.page.field.transcribeOnStop': 'Transcrire à l\'arrêt',
  'settings.voice.page.field.millisecondsUnit': 'MS',
  'settings.voice.page.field.messageReadAloudButtonAria': 'Bouton de lecture du message à voix haute',
  'settings.voice.page.field.messageReadAloudButton': 'Bouton Message lu à haute voix',
  'settings.voice.page.field.summarizeBeforePlaybackAria': 'Résumer avant la lecture',
  'settings.voice.page.field.summarizeBeforePlayback': 'Résumer avant la lecture',
  'settings.voice.page.field.summarizeVoiceModeResponsesAria': 'Résumer les réponses en mode vocal',
  'settings.voice.page.field.summarizeVoiceModeResponses': 'Résumer les réponses en mode vocal',
  'settings.voice.page.field.summarizationThreshold': 'Seuil de synthèse',
  'settings.voice.page.field.summaryMaxLength': 'Longueur maximale du résumé',
  'settings.voice.page.hint.shiftClickPrefix': 'Presse',
  'settings.voice.page.hint.shiftClickSuffix': 'sur le bouton du micro pour basculer en mode continu',
  'settings.voice.page.preview.browserVoiceFallback': 'la voix de votre navigateur',
  'settings.voice.page.preview.voiceLine': 'Bonjour! Je m\'appelle {voiceName}. C\'est ainsi que je parle.',
  'settings.voice.page.preview.customServerLine': 'Bonjour! Ceci est un aperçu du serveur TTS personnalisé.',
  'settings.openchamber.visual.section.colorMode': 'Mode couleur',
  'settings.openchamber.visual.section.localization': 'Localisation',
  'settings.openchamber.visual.section.spacingAndLayout': 'Espacement et disposition',
  'settings.openchamber.visual.section.navigation': 'Navigation',
  'settings.openchamber.visual.section.chatRenderMode': 'Mode de rendu du chat',
  'settings.openchamber.visual.section.chatRenderModeAria': 'Mode de rendu du chat',
  'settings.openchamber.visual.section.messageStreamTransport': 'Transport de flux de messages',
  'settings.openchamber.visual.section.activityDefault': 'Activité par défaut',
  'settings.openchamber.visual.section.activityDefaultAria': 'Mode d\'activité par défaut',
  'settings.openchamber.visual.section.showToolsOpenedByDefault': 'Afficher les outils ouverts par défaut :',
  'settings.openchamber.visual.section.userMessageRendering': 'Rendu des messages utilisateur',
  'settings.openchamber.visual.section.userMessageRenderingAria': 'Mode de rendu des messages utilisateur',
  'settings.openchamber.visual.section.mermaidRendering': 'Rendu Mermaid',
  'settings.openchamber.visual.section.mermaidRenderingAria': 'Mode de rendu Mermaid',
  'settings.openchamber.visual.section.diffLayout': 'Disposition différentielle',
  'settings.openchamber.visual.section.diffLayoutAria': 'Disposition différentielle',
  'settings.openchamber.visual.section.privacy': 'Confidentialité',
  'settings.openchamber.visual.field.lightTheme': 'Thème clair',
  'settings.openchamber.visual.field.darkTheme': 'Thème sombre',
  'settings.openchamber.visual.field.selectLightThemeAria': 'Sélectionnez le thème de la lumière',
  'settings.openchamber.visual.field.selectDarkThemeAria': 'Sélectionnez un thème sombre',
  'settings.openchamber.visual.field.selectThemePlaceholder': 'Sélectionner un thème',
  'settings.openchamber.visual.field.timeFormat': 'Format de l\'heure',
  'settings.openchamber.visual.field.weekStartsOn': 'La semaine commence le',
  'settings.openchamber.visual.field.selectTimeFormatAria': 'Sélectionnez le format de l\'heure',
  'settings.openchamber.visual.field.selectWeekStartAria': 'Sélectionnez le début de la semaine',
  'settings.openchamber.visual.actions.reloadThemes': 'Recharger les thèmes',
  'settings.openchamber.visual.actions.reloadingThemes': 'Rechargement des thèmes...',
  'settings.openchamber.visual.field.themeImportInfoAria': 'Informations sur l\'importation du thème',
  'settings.openchamber.visual.field.themeImportInfoTooltip': 'Importez des thèmes personnalisés depuis ~/.config/openchamber/themes/',
  'settings.openchamber.visual.field.installAppName': 'Installer le nom de l\'application',
  'settings.openchamber.visual.field.installAppNameHint': 'Utilisé par le processus d\'installation de PWA.',
  'settings.openchamber.visual.field.pwaInstallAppNameAria': 'Nom de l\'application d\'installation PWA',
  'settings.openchamber.visual.actions.resetInstallAppNameAria': 'Réinitialiser le nom de l\'application d\'installation',
  'settings.openchamber.visual.field.installOrientation': 'Orientation de l\'installation',
  'settings.openchamber.visual.field.installOrientationHint': 'Utilisé par l\'application Web installée. Réinstallez la PWA après avoir modifié cela.',
  'settings.openchamber.visual.field.pwaInstallOrientationAria': 'Orientation d\'installation de la PWA',
  'settings.openchamber.visual.field.selectOrientationPlaceholder': 'Sélectionner l\'orientation',
  'settings.openchamber.visual.actions.resetInstallOrientationAria': 'Réinitialiser l\'orientation d\'installation',
  'settings.openchamber.visual.field.mobileKeyboardMode': 'Comportement du clavier mobile',
  'settings.openchamber.visual.field.mobileKeyboardModeHint': 'Le comportement par défaut du navigateur est le plus sûr. Redimensionner le contenu demande aux navigateurs pris en charge de réduire l\'application lorsque le clavier à l\'écran s\'ouvre.',
  'settings.openchamber.visual.field.mobileKeyboardModeAria': 'Comportement du clavier mobile',
  'settings.openchamber.visual.field.selectMobileKeyboardModePlaceholder': 'Sélectionner le comportement du clavier',
  'settings.openchamber.visual.actions.resetMobileKeyboardModeAria': 'Réinitialiser le comportement du clavier mobile',
  'settings.openchamber.visual.field.interfaceFontSize': 'Taille de la police de l\'interface',
  'settings.openchamber.visual.field.interfaceFont': 'Police d\'interface',
  'settings.openchamber.visual.field.selectInterfaceFontAria': 'Sélectionnez la police de l\'interface',
  'settings.openchamber.visual.actions.resetInterfaceFontAria': 'Réinitialiser la police de l\'interface',
  'settings.openchamber.visual.field.fontSizePercentageAria': 'Pourcentage de taille de police',
  'settings.openchamber.visual.actions.resetFontSizeAria': 'Réinitialiser la taille de la police',
  'settings.openchamber.visual.field.terminalFontSize': 'Taille de la police du terminal',
  'settings.openchamber.visual.field.codeFont': 'Police de code',
  'settings.openchamber.visual.field.selectCodeFontAria': 'Sélectionnez la police du code',
  'settings.openchamber.visual.actions.resetCodeFontAria': 'Réinitialiser la police du code',
  'settings.openchamber.visual.actions.resetTerminalFontSizeAria': 'Réinitialiser la taille de la police du terminal',
  'settings.openchamber.visual.field.spacingDensity': 'Densité d\'espacement',
  'settings.openchamber.visual.actions.resetSpacingAria': 'Réinitialiser l\'espacement',
  'settings.openchamber.visual.field.inputBarOffset': 'Décalage de la barre d\'entrée',
  'settings.openchamber.visual.field.inputBarOffsetTooltip': 'Augmentez la barre de saisie pour éviter les obstructions de l\'écran au niveau du système d\'exploitation, comme les barres d\'accueil.',
  'settings.openchamber.visual.actions.resetInputBarOffsetAria': 'Réinitialiser le décalage de la barre d\'entrée',
  'settings.openchamber.visual.field.terminalQuickKeysAria': 'Touches rapides du terminal',
  'settings.openchamber.visual.field.terminalQuickKeys': 'Touches rapides du terminal',
  'settings.openchamber.visual.field.terminalQuickKeysTooltip': 'Afficher Esc, Ctrl, Flèches dans la vue du terminal',
  'settings.openchamber.visual.field.activityDefaultModeAria': 'Mode d\'activité par défaut : {option}',
  'settings.openchamber.visual.field.showExpandedBashToolsAria': 'Afficher les outils bash étendus',
  'settings.openchamber.visual.field.showExpandedEditToolsAria': 'Afficher les outils d\'édition étendus',
  'settings.openchamber.visual.field.bash': 'Bash',
  'settings.openchamber.visual.field.editTools': 'Outils d\'édition',
  'settings.openchamber.visual.field.userMessageRenderingAria': 'Rendu du message utilisateur : {option}',
  'settings.openchamber.visual.field.mermaidRenderingAria': 'Rendu Mermaid : {option}',
  'settings.openchamber.visual.field.diffLayoutAria': 'Disposition des différences : {option}',
  'settings.openchamber.visual.field.showReasoningTracesAria': 'Afficher les traces de raisonnement',
  'settings.openchamber.visual.field.showReasoningTraces': 'Afficher les traces de raisonnement',
  'settings.openchamber.visual.field.collapsibleThinkingBlocksAria': 'Activer les blocs de raisonnement pliables',
  'settings.openchamber.visual.field.collapsibleThinkingBlocks': 'Activer les blocs de raisonnement pliables',
  'settings.openchamber.visual.field.collapsibleUserMessagesAria': 'Réduire les longs messages utilisateur',
  'settings.openchamber.visual.field.collapsibleUserMessages': 'Réduire les longs messages utilisateur',
  'settings.openchamber.visual.field.stickyUserHeaderAria': 'En-tête utilisateur collant',
  'settings.openchamber.visual.field.stickyUserHeader': 'En-tête utilisateur collant',
  'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Toujours afficher la barre d’outils de l’éditeur',
  'settings.openchamber.visual.field.expandedEditorToolbar': 'Toujours afficher la barre d’outils de l’éditeur (ancrée sous les onglets de fichiers)',
  'settings.openchamber.visual.field.wideChatLayoutAria': 'Large disposition de discussion',
  'settings.openchamber.visual.field.wideChatLayout': 'Disposition de discussion large',
  'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': 'Actions intégrées de l\'assistant',
  'settings.openchamber.visual.field.showSplitAssistantMessageActions': 'Actions intégrées de l\'assistant',
  'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': 'Afficher Copier la réponse, Enregistrer en image et Lire à haute voix sur les blocs de texte de l\'assistant qui apparaissent avant les appels d\'outil suivants dans la même réponse.',
  'settings.openchamber.visual.field.showToolFileIconsAria': 'Afficher les icônes des fichiers d\'outils',
  'settings.openchamber.visual.field.showToolFileIcons': 'Afficher les icônes des fichiers d\'outils',
  'settings.openchamber.visual.field.showDotfilesAria': 'Afficher les fichiers de points',
  'settings.openchamber.visual.field.showDotfiles': 'Afficher les fichiers cachés',
  'settings.openchamber.visual.field.queueMessagesByDefaultAria': 'Mettre les messages en file d\'attente par défaut',
  'settings.openchamber.visual.field.queueMessagesByDefault': 'Messages en file d\'attente par défaut',
  'settings.openchamber.visual.field.queueMessagesByDefaultTooltip': 'Lorsqu\'il est activé, Enter met les messages en file d\'attente. Utilisez {modifier}+Entrée pour envoyer.',
  'settings.openchamber.visual.field.persistDraftMessagesAria': 'Conserver les brouillons de messages',
  'settings.openchamber.visual.field.persistDraftMessages': 'Conserver les brouillons de messages',
  'settings.openchamber.visual.field.enableSpellcheckInTextInputsAria': 'Activer la vérification orthographique dans les saisies de texte',
  'settings.openchamber.visual.field.enableSpellcheckInTextInputs': 'Activer la vérification orthographique dans les entrées de texte',
  'settings.openchamber.visual.field.sendAnonymousUsageReportsAria': 'Envoyer des rapports d\'utilisation anonymes',
  'settings.openchamber.visual.field.sendAnonymousUsageReports': 'Envoyer des rapports d\'utilisation anonymes',
  'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': 'Nous aide à comprendre quelles versions de l\'application sont activement utilisées afin que nous puissions prioriser les améliorations. Seules la version de l’application, la plate-forme et le runtime sont collectés – aucune donnée personnelle ni code.',
  'settings.openchamber.visual.option.themeMode.system': 'Système',
  'settings.openchamber.visual.option.themeMode.light': 'Clair',
  'settings.openchamber.visual.option.themeMode.dark': 'Sombre',
  'settings.openchamber.visual.option.diffLayout.dynamic.label': 'Dynamique',
  'settings.openchamber.visual.option.diffLayout.dynamic.description': 'Choisit automatiquement entre la vue côte à côte et la vue intégrée selon le contenu modifié.',
  'settings.openchamber.visual.option.diffLayout.inline.label': 'Toujours intégré',
  'settings.openchamber.visual.option.diffLayout.inline.description': 'Afficher sous forme de vue unifiée unique.',
  'settings.openchamber.visual.option.diffLayout.sideBySide.label': 'Toujours côte à côte',
  'settings.openchamber.visual.option.diffLayout.sideBySide.description': 'Comparez les fichiers originaux et modifiés.',
  'settings.openchamber.visual.option.mermaidRendering.svg.label': 'SVG',
  'settings.openchamber.visual.option.mermaidRendering.svg.description': 'Rendre les diagrammes sous forme de graphiques évolutifs.',
  'settings.openchamber.visual.option.mermaidRendering.ascii.label': 'ASCII',
  'settings.openchamber.visual.option.mermaidRendering.ascii.description': 'Rendre les diagrammes sous forme de blocs de texte.',
  'settings.openchamber.visual.option.pwaOrientation.system.label': 'Suivre le système',
  'settings.openchamber.visual.option.pwaOrientation.system.description': 'Respectez le réglage de rotation de l\'appareil.',
  'settings.openchamber.visual.option.pwaOrientation.portrait.label': 'Verrouillage portrait',
  'settings.openchamber.visual.option.pwaOrientation.portrait.description': 'Installez l\'application verrouillée en mode portrait.',
  'settings.openchamber.visual.option.pwaOrientation.landscape.label': 'Verrouillage paysage',
  'settings.openchamber.visual.option.pwaOrientation.landscape.description': 'Installez l\'application verrouillée en mode paysage.',
  'settings.openchamber.visual.option.mobileKeyboardMode.native.label': 'Suivre le navigateur',
  'settings.openchamber.visual.option.mobileKeyboardMode.native.description': 'Utilisez les paramètres par défaut du navigateur pour les modifications de panoramique et de fenêtre d\'affichage lorsque le clavier s\'ouvre.',
  'settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.label': 'Redimensionner le contenu',
  'settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.description': 'Demandez aux navigateurs pris en charge de réduire la présentation de l\'application au lieu de vous fier uniquement au panoramique.',
  'settings.openchamber.visual.option.userMessageRendering.markdown.label': 'Markdown',
  'settings.openchamber.visual.option.userMessageRendering.markdown.description': 'Rendre le texte utilisateur avec un formatage markdown.',
  'settings.openchamber.visual.option.userMessageRendering.plain.label': 'Texte brut',
  'settings.openchamber.visual.option.userMessageRendering.plain.description': 'Rendre le texte utilisateur avec des espaces et des liens préservés.',
  'chat.message.userText.collapseAria': 'Réduire le message utilisateur',
  'settings.openchamber.visual.option.chatRenderMode.sorted.label': 'Trié',
  'settings.openchamber.visual.option.chatRenderMode.sorted.description': 'Restituez les messages de l\'assistant terminés sans diffusion en direct.',
  'settings.openchamber.visual.option.chatRenderMode.live.label': 'En direct',
  'settings.openchamber.visual.option.chatRenderMode.live.description': 'Diffusez le texte et les outils de l’assistant dès leur arrivée.',
  'settings.openchamber.visual.option.messageTransport.auto.label': 'Auto',
  'settings.openchamber.visual.option.messageTransport.auto.description': 'Préférez WebSocket et revenez à SSE si besoin.',
  'settings.openchamber.visual.option.messageTransport.ws.label': 'WebSocket',
  'settings.openchamber.visual.option.messageTransport.ws.description': 'Utilisez WebSocket pour la diffusion de messages.',
  'settings.openchamber.visual.option.messageTransport.sse.label': 'SSE',
  'settings.openchamber.visual.option.messageTransport.sse.description': 'Utilisez les événements envoyés par le serveur pour la diffusion de messages.',
  'settings.openchamber.visual.option.activityRenderMode.collapsed.label': 'Effondré',
  'settings.openchamber.visual.option.activityRenderMode.collapsed.description': 'Gardez l\'activité réduite par défaut.',
  'settings.openchamber.visual.option.activityRenderMode.summary.label': 'Étendu',
  'settings.openchamber.visual.option.activityRenderMode.summary.description': 'Développez Activité par défaut.',
  'settings.openchamber.visual.option.timeFormat.auto.label': 'Auto',
  'settings.openchamber.visual.option.timeFormat.auto.description': 'Utilisez les préférences local du système.',
  'settings.openchamber.visual.option.timeFormat.24h.label': '24 heures',
  'settings.openchamber.visual.option.timeFormat.24h.description': 'Afficher l\'heure à 14h15.',
  'settings.openchamber.visual.option.timeFormat.12h.label': '12 heures',
  'settings.openchamber.visual.option.timeFormat.12h.description': 'Afficher l\'heure à 14h15.',
  'settings.openchamber.visual.option.weekStart.auto.label': 'Auto',
  'settings.openchamber.visual.option.weekStart.auto.description': 'Utilisez le début de semaine local.',
  'settings.openchamber.visual.option.weekStart.monday.label': 'Lundi',
  'settings.openchamber.visual.option.weekStart.sunday.label': 'Dimanche',
  'settings.magicPrompts.page.loading.aria': 'Chargement',
  'settings.magicPrompts.page.loading.text': 'Chargement des prompts magiques...',
  'settings.magicPrompts.page.block.visiblePrompt': 'Prompt visible',
  'settings.magicPrompts.page.block.instructions': 'Instructions',
  'settings.magicPrompts.page.group.gitCommitGenerate.title': 'Génération de commit',
  'settings.magicPrompts.page.group.gitCommitGenerate.description': 'Prompts utilisés pour la génération du message de commit : message utilisateur visible + instructions masquées.',
  'settings.magicPrompts.page.group.gitPrGenerate.title': 'Génération de PR',
  'settings.magicPrompts.page.group.gitPrGenerate.description': 'Prompts utilisés pour la génération du titre/corps de la PR : message utilisateur visible + instructions masquées.',
  'settings.magicPrompts.page.group.githubPrReview.title': 'Revue de PR',
  'settings.magicPrompts.page.group.githubPrReview.description': 'Prompts utilisés pour le flux de revue des PR : message utilisateur visible + charge utile d\'instruction cachée.',
  'settings.magicPrompts.page.group.githubIssueReview.title': 'Examen du problème',
  'settings.magicPrompts.page.group.githubIssueReview.description': 'Prompts utilisés pour le flux d’examen des issues : message utilisateur visible + charge utile d’instruction masquée.',
  'settings.magicPrompts.page.group.githubPrFailedChecksReview.title': 'Examen des checks PR en échec',
  'settings.magicPrompts.page.group.githubPrFailedChecksReview.description': 'Prompts utilisés pour l’analyse des checks PR en échec.',
  'settings.magicPrompts.page.group.githubPrCommentsReview.title': 'Examen des commentaires PR',
  'settings.magicPrompts.page.group.githubPrCommentsReview.description': 'Prompts utilisés pour l’analyse des commentaires PR.',
  'settings.magicPrompts.page.group.githubSinglePrCommentReview.title': 'Examen des commentaires PR uniques',
  'settings.magicPrompts.page.group.githubSinglePrCommentReview.description': 'Prompts utilisés pour l’analyse d’un seul commentaire PR.',
  'settings.magicPrompts.page.group.gitConflictResolve.title': 'Résolution des conflits de fusion/rebase',
  'settings.magicPrompts.page.group.gitConflictResolve.description': 'Prompts utilisés lors de la résolution des conflits de fusion/rebase avec l\'IA.',
  'settings.magicPrompts.page.group.gitCherrypickConflictResolve.title': 'Résolution des conflits par sélection',
  'settings.magicPrompts.page.group.gitCherrypickConflictResolve.description': 'Prompts utilisés lors de la résolution des conflits de Cherry-pick dans le flux d\'intégration.',
  'settings.magicPrompts.page.group.planImprove.title': 'Améliorer le plan',
  'settings.magicPrompts.page.group.planImprove.description': 'Prompt masqué utilisé lors de l’envoi d’un plan enregistré dans un flux d’amélioration.',
  'settings.magicPrompts.page.group.planTodo.title': 'Planification des tâches',
  'settings.magicPrompts.page.group.planTodo.description': 'Prompt masqué utilisé lors de l’envoi d’une tâche dans une nouvelle session de planification.',
  'settings.magicPrompts.page.group.planImplement.title': 'Plan de mise en œuvre',
  'settings.magicPrompts.page.group.planImplement.description': 'Prompt masqué utilisé lors de l’envoi d’un plan enregistré dans un flux d’implémentation.',
  'settings.magicPrompts.page.group.sessionSummary.title': 'Résumé de la session',
  'settings.magicPrompts.page.group.sessionSummary.description': 'Prompts utilisés par la commande slash /summary : message utilisateur visible + instructions masquées. Non destructif : ne compacte pas l\'historique des sessions.',
  'settings.magicPrompts.page.group.sessionWorkspaceReview.title': 'Examen de l\'espace de travail',
  'settings.magicPrompts.page.group.sessionWorkspaceReview.description': 'Prompts utilisés par la commande slash /workspace-review : message utilisateur visible + instructions masquées. Examine les modifications actuelles de l’espace de travail pour les problèmes de signal élevé uniquement.',
  'settings.view.search.placeholder': 'Rechercher dans les paramètres',
  'settings.view.search.aria': 'Rechercher dans les paramètres',
  'settings.view.search.clear': 'Effacer la recherche des paramètres',
  'settings.view.search.noResults': 'Aucun paramètre correspondant',
  'settings.page.about.title': 'À propos',
  'settings.openchamber.tunnel.notAvailable.dependencyNotFound': '{dependency} est introuvable.',
  'settings.magicPrompts.sidebar.item.sessionExplore': 'Tour du codebase',
  'settings.magicPrompts.sidebar.item.sessionFeaturePlan': 'Planification de fonctionnalité',
  'settings.magicPrompts.sidebar.item.sessionCatchUp': 'Rattrapage',
  'settings.magicPrompts.sidebar.item.sessionDebug': 'Débogage',
  'settings.magicPrompts.sidebar.item.sessionWeigh': 'Comparer les options',
  'settings.remoteInstances.direct.sidebarTitle': 'Liens de serveur',
  'settings.remoteInstances.direct.sidebarDescription': 'Se connecter avec un lien ou un token',
  'settings.remoteInstances.direct.title': 'Autres serveurs OpenChamber',
  'settings.remoteInstances.direct.description': 'Ajoutez un autre serveur OpenChamber par URL. Utilisez ceci lorsque le serveur est déjà lancé et que vous disposez d’un token de connexion.',
  'settings.remoteInstances.direct.field.labelPlaceholder': 'Libellé (facultatif)',
  'settings.remoteInstances.direct.field.urlPlaceholder': 'https://hôte:port',
  'settings.remoteInstances.direct.field.tokenPlaceholder': 'Token de connexion (facultatif pour les serveurs locaux de confiance)',
  'settings.remoteInstances.direct.note': 'Les tokens de connexion sont enregistrés sur cet appareil et utilisés uniquement lorsque cette application se connecte à ce serveur.',
  'settings.remoteInstances.direct.headers.title': 'Additional headers',
  'settings.remoteInstances.direct.headers.description': 'Optional HTTP headers for desktop API requests. Authorization is reserved for the connection token.',
  'settings.remoteInstances.direct.headers.field.namePlaceholder': 'Header name',
  'settings.remoteInstances.direct.headers.field.valuePlaceholder': 'Header value',
  'settings.remoteInstances.direct.headers.actions.add': 'Add header',
  'settings.remoteInstances.direct.headers.removeAria': 'Remove header',
  'settings.remoteInstances.direct.actions.add': 'Ajouter le serveur',
  'settings.remoteInstances.direct.import.description': 'Collez un lien de connexion provenant d’un autre serveur OpenChamber.',
  'settings.remoteInstances.direct.import.placeholder': 'openchamber://connect?...',
  'settings.remoteInstances.direct.import.action': 'Importer le lien',
  'settings.remoteInstances.direct.error.invalidConnectLink': 'Lien de connexion OpenChamber invalide.',
  'settings.remoteInstances.direct.state.loading': 'Chargement des instances...',
  'settings.remoteInstances.direct.state.empty': 'Aucun autre serveur ajouté pour le moment.',
  'settings.remoteInstances.clientAuth.title': 'Se connecter à ce serveur',
  'settings.remoteInstances.clientAuth.description': 'Créez un lien ou un token sécurisé pour permettre à OpenChamber Desktop de se connecter à ce serveur.',
  'settings.remoteInstances.clientAuth.field.labelPlaceholder': 'Nom de l’appareil (facultatif)',
  'settings.remoteInstances.clientAuth.actions.create': 'Créer un token',
  'settings.remoteInstances.clientAuth.actions.pair': 'Créer un lien',
  'settings.remoteInstances.clientAuth.actions.revoke': 'Révoquer',
  'settings.remoteInstances.clientAuth.actions.clearRevoked': 'Effacer les révocations',
  'settings.remoteInstances.clientAuth.qrAlt': 'QR code de connexion OpenChamber',
  'settings.remoteInstances.clientAuth.pairingUrl': 'Lien de connexion',
  'settings.remoteInstances.clientAuth.createdToken': 'Copiez ce token maintenant. Pour des raisons de sécurité, il ne sera plus affiché.',
  'settings.remoteInstances.clientAuth.state.loading': 'Chargement des tokens...',
  'settings.remoteInstances.clientAuth.state.empty': 'Aucun appareil connecté pour le moment.',
  'settings.remoteInstances.clientAuth.state.revoked': 'Révoqué',
  'settings.remoteInstances.clientAuth.state.thisDevice': 'Cet appareil',
  'settings.remoteInstances.clientAuth.lastUsed': 'Dernière utilisation le {date}',
  'settings.remoteInstances.clientAuth.neverUsed': 'Jamais utilisé',
  'settings.openchamber.about.field.openCodeVersion': 'Version d’OpenCode',
  'settings.openchamber.about.state.unknown': 'inconnue',
  'settings.voice.page.field.ttsInputMode': 'Mode d’entrée TTS',
  'settings.voice.page.field.ttsInputModeSanitized': 'Nettoyé',
  'settings.voice.page.field.ttsInputModeRaw': 'Markdown brut',
  'settings.openchamber.visual.section.mobileLayout': 'Mise en page mobile',
  'settings.openchamber.visual.option.mobileLayout.default': 'Ancienne',
  'settings.openchamber.visual.option.mobileLayout.new': 'Nouvelle',
  'settings.openchamber.visual.field.macVibrancy': 'Transparence de la fenêtre',
  'settings.openchamber.visual.field.macVibrancyHint': 'Utiliser le flou macOS natif (vibrancy) derrière la barre latérale. Désactivez cette option pour des surfaces entièrement opaques.',
  'settings.openchamber.visual.field.dockBadge': 'Badge du Dock',
  'settings.openchamber.visual.field.dockBadgeHint': 'Afficher sur l’icône du Dock de macOS le nombre de discussions avec une activité non vue.',
  'settings.openchamber.visual.actions.saveAndRestart': 'Enregistrer et redémarrer',
  'settings.openchamber.visual.actions.restarting': 'Redémarrage…',
  'settings.openchamber.visual.field.fileEditorKeymap': 'Keymap de l’éditeur de fichiers',
  'settings.openchamber.visual.option.fileEditorKeymap.default': 'Par défaut',
  'settings.openchamber.visual.option.fileEditorKeymap.vim': 'Vim',
  'settings.openchamber.visual.field.showTurnChangedFilesAria': 'Afficher les fichiers modifiés pour les tours terminés',
  'settings.openchamber.visual.field.showTurnChangedFiles': 'Afficher les fichiers modifiés pour les tours terminés',
  'settings.magicPrompts.page.group.sessionExplore.title': 'Tour du codebase',
  'settings.magicPrompts.page.group.sessionExplore.description': 'Prompts utilisés par la commande slash /explore : message utilisateur visible + instructions masquées. Analyse le dépôt et donne une orientation structurée — vue d’ensemble, principaux modules, liens entre eux et points de départ — plutôt qu’un inventaire fichier par fichier.',
  'settings.magicPrompts.page.group.sessionFeaturePlan.title': 'Planification de fonctionnalité',
  'settings.magicPrompts.page.group.sessionFeaturePlan.description': 'Prompts utilisés par la commande slash /plan-feature : message utilisateur visible + instructions masquées. Lance un dialogue guidé qui étudie le code et pose des questions de clarification par petits lots avant de produire un plan d’implémentation.',
  'settings.magicPrompts.page.group.sessionCatchUp.title': 'Rattrapage',
  'settings.magicPrompts.page.group.sessionCatchUp.description': 'Prompts utilisés par la commande slash /catch-up : message utilisateur visible + instructions masquées. Reconstruit le contexte de la branche — commits, PR et travail non commité — pour comprendre où vous en étiez, puis fournit un résumé digeste et une prochaine étape orientée produit.',
  'settings.magicPrompts.page.group.sessionDebug.title': 'Débogage',
  'settings.magicPrompts.page.group.sessionDebug.description': 'Prompts utilisés par la commande slash /debug : message utilisateur visible + instructions masquées. Mène une investigation guidée de la cause racine — capture le symptôme, formule des hypothèses, les vérifie dans le code et confirme la cause avant de proposer une correction.',
  'settings.magicPrompts.page.group.sessionWeigh.title': 'Comparer les options',
  'settings.magicPrompts.page.group.sessionWeigh.description': 'Prompts utilisés par la commande slash /weigh : message utilisateur visible + instructions masquées. Analyse le code, puis présente 2 à 3 approches distinctes avec compromis et recommandation — sans écrire de plan ni de code.',
  'settings.magicPrompts.page.group.sessionFusion.title': 'Fusion',
  'settings.magicPrompts.page.group.sessionFusion.description': 'Prompts utilisés lors de la combinaison de résultats multi-exécutions en une seule réponse finale : message utilisateur visible + instructions masquées avant les résultats source.',
  'settings.magicPrompts.page.actions.resetting': 'Réinitialisation...',
  'settings.magicPrompts.page.actions.resetAllOverrides': 'Réinitialiser tous les remplacements',
  'settings.magicPrompts.page.actions.resetToDefault': 'Réinitialiser aux valeurs par défaut',
  'settings.magicPrompts.page.actions.save': 'Sauvegarder',
  'settings.magicPrompts.page.placeholdersLabel': 'Espaces réservés :',
  'settings.magicPrompts.page.validation.visiblePromptRequired': 'Le prompt visible ne peut pas être vide.',
  'settings.magicPrompts.page.status.unsavedChanges': 'Modifications non enregistrées',
  'settings.magicPrompts.page.status.usingSavedOverride': 'Utilisation du remplacement enregistré',
  'settings.magicPrompts.page.status.usingBuiltinDefault': 'Utilisation des valeurs par défaut intégrées',
  'settings.magicPrompts.page.toast.loadFailed': 'Échec du chargement des prompts magiques',
  'settings.magicPrompts.page.toast.visiblePromptRequired': 'Le prompt visible ne peut pas être vide',
  'settings.magicPrompts.page.toast.saved': 'Magic Prompt enregistré',
  'settings.magicPrompts.page.toast.saveFailed': 'Échec de l\'enregistrement du Magic Prompt',
  'settings.magicPrompts.page.toast.resetSuccess': 'Prompt réinitialisé aux valeurs par défaut',
  'settings.magicPrompts.page.toast.resetFailed': 'Échec de la réinitialisation du prompt',
  'settings.magicPrompts.page.toast.resetAllSuccess': 'Tous les prompts ont été réinitialisés',
  'settings.magicPrompts.page.toast.resetAllFailed': 'Échec de la réinitialisation de tous les prompts',
  'settings.openchamber.visual.section.followUpBehavior': 'Follow-up behavior',
  'settings.openchamber.visual.section.followUpBehaviorAria': 'Follow-up behavior',
  'settings.openchamber.visual.field.followUpBehaviorAria': 'Follow-up behavior: {option}',
  'settings.openchamber.visual.field.followUpBehaviorDescription': 'Choose what happens when you press Enter on a follow-up message while the agent is still responding.',
  'settings.openchamber.visual.option.followUpBehavior.steer.label': 'Steer',
  'settings.openchamber.visual.option.followUpBehavior.queue.label': 'Queue',
} as const;
