export const settingsDict = { 'settings.providers.page.openCodeGo.title': 'Suivi de l’utilisation d’OpenCode Go', 'settings.providers.page.openCodeGo.description': 'Connectez le tableau de bord OpenCode Go pour afficher les quotas glissant, hebdomadaire et mensuel.', 'settings.providers.page.openCodeGo.workspaceId': 'ID de l’espace de travail', 'settings.providers.page.openCodeGo.authCookie': 'Cookie d’authentification', 'settings.providers.page.openCodeGo.help': 'Copiez l’ID depuis l’URL du tableau de bord et le cookie auth depuis les outils du navigateur. OpenChamber n’analyse jamais les cookies du navigateur.', 'settings.providers.page.openCodeGo.save': 'Enregistrer et valider', 'settings.providers.page.openCodeGo.replace': 'Remplacer', 'settings.providers.page.openCodeGo.validate': 'Valider', 'settings.providers.page.openCodeGo.delete': 'Supprimer', 'settings.providers.page.quotaCredentials.saved': 'Identifiants de {provider} enregistrés.', 'settings.providers.page.quotaCredentials.accessToken': 'Jeton d’accès', 'settings.providers.page.quotaCredentials.refreshToken': 'Jeton d’actualisation', 'settings.providers.page.quotaCredentials.tokenPlaceholder': 'Collez le jeton', 'settings.providers.page.openCodeGo.saveFailed': 'Impossible de valider les identifiants OpenCode Go.', 'settings.providers.page.openCodeGo.valid': 'Les identifiants OpenCode Go sont valides.', 'settings.providers.page.openCodeGo.invalid': 'Les identifiants OpenCode Go sont invalides ou expirés.', 'settings.providers.page.openCodeGo.deleted': 'Identifiants OpenCode Go supprimés.', 'settings.providers.page.openCodeGo.deleteFailed': 'Impossible de supprimer les identifiants OpenCode Go.', '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.appearance.description': 'Personnalisez l’apparence et le ressenti d’OpenChamber.', 'settings.page.chat.title': 'Chat', 'settings.page.chat.description': 'Configurez l’affichage des messages et des outils.', 'settings.page.shortcuts.title': 'Raccourcis', 'settings.page.shortcuts.description': 'Personnalisez les raccourcis clavier.', 'settings.page.general.title': 'Général', 'settings.page.general.description': 'Démarrage de l\'application, sécurité, connexion et confidentialité.', 'settings.page.sessions.title': 'Sessions', 'settings.page.sessions.description': 'Définissez les valeurs par défaut et la conservation des sessions.', 'settings.page.magicPrompts.title': 'Prompts magiques', 'settings.page.notifications.title': 'Notifications', 'settings.page.notifications.description': 'Choisissez quand et comment être notifié.', 'settings.page.voice.title': 'Voix', 'settings.page.voice.description': 'Configurez la synthèse vocale et la dictée.', 'settings.page.tunnel.title': 'Tunnel externe', 'settings.page.tunnel.description': 'Exposez cette instance via un tunnel distant.', '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 externe', '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.infoAria': 'Plus d’informations', '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.status.saved': 'Enregistré', 'settings.common.status.saveFailed': 'Échec de l’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.permissionsEditor.sectionInfo': 'Modifie les règles de permissions propres à cet agent, telles qu\'enregistrées dans sa config. « Hériter » laisse la clé non définie : la config globale et les valeurs par défaut s\'appliquent.', 'settings.agents.page.permissionsEditor.defaultLabel': 'Défaut pour tous les outils', 'settings.agents.page.permissionsEditor.defaultAria': 'Permission par défaut pour tous les outils', 'settings.agents.page.permissionsEditor.defaultInfo': 'Le repli au niveau de l\'agent (la clé *). S\'applique à tout outil sans règle propre.', 'settings.agents.page.permissionsEditor.effectiveHint': '→ {action}', 'settings.agents.page.permissionsEditor.ruleCount': '{count} règles', 'settings.agents.page.permissionsEditor.keyAria': 'Permission pour {key}', 'settings.agents.page.permissionsEditor.patternPlaceholder': 'Motif, p. ex. rm -rf * ou /path/**', 'settings.agents.page.permissionsEditor.patternActionAria': 'Action pour le motif de {key}', 'settings.agents.page.permissionsEditor.customKeyPlaceholder': 'Clé de permission personnalisée…', 'settings.agents.page.permissionsEditor.sessionRulesTitle': 'Accordées en session (non enregistrées)', 'settings.agents.page.permissionsEditor.sessionRulesInfo': 'Règles accordées pendant des sessions (réponses « toujours autoriser »). Elles s\'appliquent maintenant mais ne font pas partie de la config enregistrée et disparaissent au redémarrage.', 'settings.agents.page.permissionsEditor.action.default': 'Par défaut', 'settings.agents.page.permissionsEditor.action.inherit': 'Hériter', 'settings.agents.page.permissionsEditor.action.allow': 'Autoriser', 'settings.agents.page.permissionsEditor.action.ask': 'Demander', 'settings.agents.page.permissionsEditor.action.deny': 'Refuser', 'settings.agents.page.permissionsEditor.actions.save': 'Enregistrer les permissions', 'settings.agents.page.permissionsEditor.actions.discard': 'Annuler', 'settings.agents.page.permissionsEditor.actions.addRule': 'Ajouter une règle', 'settings.agents.page.permissionsEditor.actions.addKey': 'Ajouter une clé', 'settings.agents.page.permissionsEditor.actions.removeRuleAria': 'Supprimer la règle', 'settings.agents.page.permissionsEditor.actions.retry': 'Réessayer', 'settings.agents.page.permissionsEditor.state.loadFailed': 'Impossible de charger la config de permissions de l\'agent.', 'settings.agents.page.permissionsEditor.toast.saved': 'Permissions enregistrées', 'settings.agents.page.permissionsEditor.toast.savedRestartRequired': 'Permissions enregistrées — redémarrez le serveur OpenCode pour les appliquer', 'settings.agents.page.permissionsEditor.toast.saveFailed': 'Échec de l\'enregistrement des permissions', '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.page.behavior.description': 'Guidez la façon dont l\'agent répond.', '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.windowControlsPosition': 'Position des contrôles de fenêtre', 'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': 'Choisissez où apparaissent les boutons Réduire, Agrandir et Fermer. Auto suit le système d’exploitation.', 'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': 'Position des contrôles de fenêtre', 'settings.openchamber.desktopNetwork.option.windowControlsAuto': 'Auto', 'settings.openchamber.desktopNetwork.option.windowControlsLeft': 'Gauche', 'settings.openchamber.desktopNetwork.option.windowControlsRight': 'Droite', '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. Utilisez l\'icône d\'état du bureau pour l\'ouvrir.', 'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': 'Réduire et fermer OpenChamber dans la zone de notification', 'settings.openchamber.desktopNetwork.field.minimizeToTray': 'Réduire et fermer dans la zone de notification', 'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'Garde OpenChamber actif dans la zone de notification Windows lorsque la fenêtre principale est réduite ou fermée.', '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.actions.showPassword': 'Afficher le mot de passe', 'settings.openchamber.desktopPassword.actions.hidePassword': 'Masquer le mot de passe', '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.minimizeToTrayUnsupported': 'Le mode d\'arrière-plan dans la zone de notification n\'est pas pris en charge sur ce système', 'settings.openchamber.desktopNetwork.error.minimizeToTraySaveFailed': 'Échec de la mise à jour du paramètre de zone de notification', '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.openchamber.keyboardShortcuts.action.toggle_prompt_navigator.label': 'Afficher ou masquer le navigateur de prompts', '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.defaultModel': 'Modèle par défaut pour les nouveaux chats', 'settings.projects.page.field.defaultModelDescription': 'Utilisé lors du démarrage d\'un nouveau chat dans ce projet. Revient aux valeurs globales si non défini.', '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.projects.page.toast.saveFailed': 'Échec de l\'enregistrement des paramètres du projet', '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.setup.toast.saveFailed': 'Échec de l\'enregistrement des commandes de configuration Worktree', '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.smallModel.title': 'Petit modèle', 'settings.openchamber.defaults.smallModel.description': 'Un modèle économique pour les tâches utilitaires rapides, comme les récapitulatifs et résumés courts.', 'settings.openchamber.defaults.smallModel.useDefault': 'Utiliser le petit modèle par défaut', 'settings.openchamber.defaults.smallModel.useDefaultAria': 'Utiliser le petit modèle par défaut', 'settings.openchamber.defaults.smallModel.overrideModel': 'Modèle de remplacement', 'settings.openchamber.defaults.field.showDeletionDialog': 'Afficher la boîte de dialogue de suppression', 'settings.openchamber.defaults.field.openFilesPreviewAria': 'Ouvrir les fichiers prévisualisables en mode aperçu', 'settings.openchamber.defaults.field.openFilesPreview': 'Ouvrir les fichiers prévisualisables 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.openai': 'OpenAI', '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.colorModeAndTheme': 'Mode couleur et thème', 'settings.openchamber.visual.section.localization': 'Localisation', 'settings.openchamber.visual.section.spacingAndLayout': 'Espacement et disposition', 'settings.openchamber.visual.section.densityAndType': 'Densité et typographie', 'settings.openchamber.visual.section.appInstall': 'Installation de l’app', '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.chatDisplay': 'Affichage', 'settings.openchamber.visual.section.chatMessageOptions': 'Options des messages', 'settings.openchamber.visual.section.chatFeatures': 'Fonctionnalités', '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.sessionAssistance': 'Assistance de session', 'settings.openchamber.visual.section.reasoning': 'Raisonnement', 'settings.openchamber.visual.section.messageAppearance': 'Apparence des messages', 'settings.openchamber.visual.section.toolsAndFiles': 'Outils et fichiers', 'settings.openchamber.visual.section.composer': 'Zone de saisie', '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.terminalShell': 'Shell du terminal', 'settings.openchamber.visual.field.terminalShellAria': 'Sélectionner le shell du terminal', 'settings.openchamber.visual.field.terminalShellHint': 'Redémarrez le terminal pour appliquer cette modification à la session actuelle.', 'settings.openchamber.visual.field.terminalLoginShell': 'Démarrer comme shell de connexion', 'settings.openchamber.visual.option.terminalShell.auto': 'Automatique', 'settings.openchamber.visual.field.editorFontSize': 'Taille de la police de l\'éditeur', '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.actions.resetEditorFontSizeAria': 'Réinitialiser la taille de la police de l\'éditeur', '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.sessionRecap': 'Générer le récapitulatif de session', 'settings.openchamber.visual.field.sessionRecapAria': "Générer un récapitulatif quand l'agent termine", 'settings.openchamber.visual.field.sessionSuggestion': 'Générer une suggestion de prochain message utilisateur', 'settings.openchamber.visual.field.sessionSuggestionAria': "Générer un prochain message utilisateur suggéré quand l'agent termine", 'settings.openchamber.visual.field.sessionGoal': 'Activer les objectifs de session', 'settings.openchamber.visual.field.sessionGoalAria': "Faire travailler la session automatiquement vers un objectif", 'settings.openchamber.visual.goal.sectionTitle': 'Objectif', 'settings.openchamber.visual.goal.budgetLabel': 'Budget de tokens par défaut', 'settings.openchamber.visual.goal.budgetAria': 'Appliquer un budget de tokens par défaut aux nouveaux objectifs', 'settings.openchamber.visual.goal.description': 'Armez le bouton cible du composeur et le prochain message devient un objectif : l\'agent continue d\'y travailler automatiquement, audité par le petit modèle, même en votre absence.', '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.promptNavigatorEnabledAria': 'Navigateur de prompts', 'settings.openchamber.visual.field.promptNavigatorEnabled': 'Navigateur de prompts', '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.allowPromptingSubagentSessionsAria': 'Autoriser les requêtes dans les sessions de sous-agents', 'settings.openchamber.visual.field.allowPromptingSubagentSessions': 'Autoriser les requêtes dans les sessions de sous-agents', 'settings.openchamber.visual.field.showToolFileIconsAria': 'Afficher les icônes des fichiers d\'outils', 'settings.openchamber.visual.field.codeBlockLineWrapAria': 'Renvoyer à la ligne les blocs de code', 'settings.openchamber.visual.field.codeBlockLineWrap': 'Renvoyer à la ligne les blocs de code', '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.system.description': 'Suivre le réglage système', 'settings.openchamber.visual.option.themeMode.light': 'Clair', 'settings.openchamber.visual.option.themeMode.light.description': 'Toujours utiliser l’apparence claire', 'settings.openchamber.visual.option.themeMode.dark': 'Sombre', 'settings.openchamber.visual.option.themeMode.dark.description': 'Toujours utiliser l’apparence 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.view.nav.group.general': 'OpenChamber', 'settings.view.nav.group.projects': 'Espace de travail', 'settings.view.nav.group.opencode': 'OpenCode', 'settings.view.nav.group.content': 'Bibliothèque', '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.sessionCraftGoal': 'Création de Goal', 'settings.magicPrompts.page.group.sessionCraftGoal.title': 'Création de Goal', 'settings.magicPrompts.page.group.sessionCraftGoal.description': 'Prompts utilisés par la commande slash /craft-goal : message utilisateur visible + instructions masquées. Transforme une idée ou une tâche en Goal clair et vérifiable grâce à une exploration guidée.', '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': 'Serveurs vers lesquels cette application peut basculer. Importez un lien de connexion depuis un autre serveur ou ajoutez-le par adresse.', 'settings.remoteInstances.direct.addDialog.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 du nouvel appareil — ex. Mon iPhone', '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.qrEnlarge': 'Agrandir le QR code', 'settings.remoteInstances.clientAuth.qrScanHint': "Scannez-le avec l'application OpenChamber sur votre autre appareil. À usage unique et expire.", 'settings.remoteInstances.clientAuth.qrDialogTitle': 'Scanner pour se connecter', 'settings.remoteInstances.clientAuth.actions.addDevice': 'Ajouter un appareil', 'settings.remoteInstances.clientAuth.actions.copied': 'Copié', 'settings.remoteInstances.clientAuth.addDevice.transportLabel': 'Où utiliserez-vous cet appareil ?', 'settings.remoteInstances.clientAuth.addDevice.subtitle': 'Créez un code QR à usage unique qui connecte un autre appareil à ce serveur.', 'settings.remoteInstances.clientAuth.addDevice.transport.local': 'Cet ordinateur uniquement', 'settings.remoteInstances.clientAuth.addDevice.transport.localHint': 'Pour les applications sur cette même machine.', 'settings.remoteInstances.clientAuth.addDevice.transport.lan': 'Réseau domestique uniquement', 'settings.remoteInstances.clientAuth.addDevice.transport.lanHint': 'Connexion directe via votre Wi-Fi. Ne fonctionne pas hors de ce réseau.', 'settings.remoteInstances.clientAuth.addDevice.transport.relay': 'Partout', 'settings.remoteInstances.clientAuth.addDevice.transport.relayHint': 'Fonctionne à la maison et en déplacement. En déplacement, le trafic passe par OpenChamber Private Relay — un tunnel chiffré de bout en bout. Aucune configuration.', 'settings.remoteInstances.clientAuth.addDevice.fallback.relay': 'Autoriser aussi le relais chiffré en déplacement', 'settings.remoteInstances.clientAuth.addDevice.fallback.preferLocal': 'Préférer la connexion domestique directe quand elle est disponible', 'settings.remoteInstances.clientAuth.addDevice.create': 'Créer le code QR', 'settings.remoteInstances.clientAuth.addDevice.done': 'Terminé', 'settings.remoteInstances.clientAuth.addDevice.connectedToast': 'Appareil connecté.', '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.state.pending': 'En attente de connexion…', 'settings.remoteInstances.clientAuth.state.viaRelay': 'Relay', 'settings.remoteInstances.clientAuth.state.connectedDirect': 'Connecté · Réseau local', 'settings.remoteInstances.clientAuth.state.connectedRelay': 'Connecté · Relais', 'settings.remoteInstances.clientAuth.lastUsed': 'Dernière utilisation le {date}', 'settings.remoteInstances.clientAuth.neverUsed': 'Jamais utilisé', 'settings.remoteInstances.relay.title': 'OpenChamber Relay', 'settings.remoteInstances.relay.autoHint': 'Activé automatiquement lorsque vous associez un appareil via le relais.', 'settings.remoteInstances.relay.description': 'Permettez à vos autres appareils de se connecter depuis n’importe où sans ouvrir de ports. Le trafic est chiffré de bout en bout — le relais ne peut pas le lire.', 'settings.remoteInstances.relay.enableHint': 'Rien n’est partagé tant que vous n’activez pas le relais sur ce serveur.', 'settings.remoteInstances.relay.actions.enable': 'Activer le relais', 'settings.remoteInstances.relay.actions.disable': 'Désactiver', 'settings.remoteInstances.relay.confirm.disable': 'Désactiver le relais ? Les appareils connectés via celui-ci seront déconnectés immédiatement.', 'settings.remoteInstances.relay.state.loading': 'Vérification de l’état du relais...', 'settings.remoteInstances.relay.state.disabled': 'Désactivé', 'settings.remoteInstances.relay.state.connecting': 'Connexion', 'settings.remoteInstances.relay.state.connected': 'Connecté', 'settings.remoteInstances.relay.state.reconnecting': 'Reconnexion', 'settings.remoteInstances.relay.state.error': 'Erreur', 'settings.remoteInstances.relay.status.clientsOne': '{count} appareil connecté', 'settings.remoteInstances.relay.status.clientsMany': '{count} appareils connectés', 'settings.remoteInstances.relay.pair.title': 'Associer un appareil', 'settings.remoteInstances.relay.pair.labelPlaceholder': 'Nom de l’appareil (facultatif)', 'settings.remoteInstances.relay.pair.includeToken': 'Inclure le jeton d’accès (association en un seul scan)', 'settings.remoteInstances.relay.pair.noTokenHint': 'Sans jeton, l’appareil se connecte avec le mot de passe de l’interface de ce serveur.', 'settings.remoteInstances.relay.pair.generate': 'Créer un lien d’association', 'settings.remoteInstances.relay.pair.requiresConnected': 'L’association devient disponible une fois le relais connecté.', 'settings.remoteInstances.relay.pair.linkLabel': 'Lien d’association', 'settings.remoteInstances.relay.pair.warning': 'Ce lien donne accès à ce serveur. Ne le partagez pas.', 'settings.remoteInstances.relay.pair.qrAlt': 'Code QR d’association du relais', 'settings.remoteInstances.relay.pair.showQr': 'Afficher le code QR', 'settings.remoteInstances.relay.pair.qrDialogTitle': 'Scanner pour associer', 'settings.remoteInstances.relay.pair.qrDialogDescription': 'Scannez ce code QR avec l’application OpenChamber sur votre autre appareil.', 'settings.remoteInstances.relay.pair.manageHint': 'Gérez ou révoquez les appareils associés dans la liste « Connexion à ce serveur » ci-dessus.', 'settings.remoteInstances.relay.toast.enableFailed': 'Échec de l’activation du relais', 'settings.remoteInstances.relay.toast.disableFailed': 'Échec de la désactivation du relais', 'settings.remoteInstances.relay.toast.offerFailed': 'Échec de la création du lien d’association', 'settings.remoteInstances.relay.toast.linkCopied': 'Lien d’association copié', '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.voice.page.field.ttsInputModeSummarized': 'résumé', '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;