@openchambery/web 1.18.1 → 1.18.2-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/assets/{AssistantView-f5eK9QED.js → AssistantView-DvoyOGkx.js} +1 -1
  2. package/dist/assets/{ChatContainer-BvJoxcjJ.js → ChatContainer-D6yfuigV.js} +35 -35
  3. package/dist/assets/{DiagramView-Vu2JnmC-.js → DiagramView-MGGo9iME.js} +1 -1
  4. package/dist/assets/{MarkdownRendererImpl-CSxVZ_eA.js → MarkdownRendererImpl-jVOkZkyX.js} +1 -1
  5. package/dist/assets/{MobileDetailNavigation-3NIRdxpt.js → MobileDetailNavigation-Q2IzHqGA.js} +1 -1
  6. package/dist/assets/{MobileShareBridge-B7jqfJ-S.js → MobileShareBridge-apXM34Lb.js} +1 -1
  7. package/dist/assets/MobileSurface-htGkf7Ua.js +2 -0
  8. package/dist/assets/{MultiRunWindow-DkYTqcPq.js → MultiRunWindow-B-l_O-bd.js} +1 -1
  9. package/dist/assets/{OnboardingScreen-CCfdEtW6.js → OnboardingScreen-CUsgwt4y.js} +1 -1
  10. package/dist/assets/{OverlayScrollbar-DeL1aO59.js → OverlayScrollbar-D6NySAxi.js} +1 -1
  11. package/dist/assets/{SettingsView-CyrIDyDl.js → SettingsView-DxMpVLlt.js} +1 -1
  12. package/dist/assets/{SettingsWindow--nLXOo-L.js → SettingsWindow-DfVgTQ4I.js} +1 -1
  13. package/dist/assets/{TerminalView-B80SmYHn.js → TerminalView-DNyjfkvT.js} +1 -1
  14. package/dist/assets/{ToolOutputDialog-CtbnU35x.js → ToolOutputDialog-DLG1iThm.js} +1 -1
  15. package/dist/assets/appThemeRegistry-CgfOR_0L.js +2 -0
  16. package/dist/assets/{clipboard-Jdqe05db.js → clipboard-BW7nk_Cx.js} +1 -1
  17. package/dist/assets/{context-menu-D16ocNrk.js → context-menu-BaxmodD8.js} +1 -1
  18. package/dist/assets/{dialog-BzZ3cKxG.js → dialog-DjYfj1Sn.js} +1 -1
  19. package/dist/assets/{es-C25PRSjo.js → es-5Lhudh0n.js} +1 -1
  20. package/dist/assets/{fr-Cv8ZWQdW.js → fr-Q_UhFmKT.js} +1 -1
  21. package/dist/assets/{gitApi-B1CIqazO.js → gitApi-BYxg_qGJ.js} +1 -1
  22. package/dist/assets/{insertionBoundaries-B9cwRNac.js → insertionBoundaries-DzXMTleb.js} +1 -1
  23. package/dist/assets/{ja-Ue9m9eSe.js → ja-CzMPz7bT.js} +1 -1
  24. package/dist/assets/{ko-DWBUCCV6.js → ko-B-EslUsR.js} +1 -1
  25. package/dist/assets/{main-BSVnX01h.js → main-CO6z5yRB.js} +2 -2
  26. package/dist/assets/{main-DzZumJ48.js → main-LDphyc-v.js} +23 -23
  27. package/dist/assets/{miniChat-CrEtOV4u.js → miniChat-BZQwTZpx.js} +2 -2
  28. package/dist/assets/{mobile-DMjO-f5u.js → mobile-BktO3_4R.js} +2 -2
  29. package/dist/assets/{multirun-G-ZwKVUq.js → multirun-ZlwlkIy5.js} +1 -1
  30. package/dist/assets/{pl-DaBaPCyE.js → pl-Dnea6Ppc.js} +1 -1
  31. package/dist/assets/{projectMeta-owiDYjF9.js → projectMeta-v-LP2mzz.js} +1 -1
  32. package/dist/assets/{pt-BR-C2cJZ43o.js → pt-BR-Ca6QTem7.js} +1 -1
  33. package/dist/assets/{radio-BtilB34p.js → radio-CJuhbQ5a.js} +1 -1
  34. package/dist/assets/{renderElectronMiniChatApp-D1HWiWMn.js → renderElectronMiniChatApp-Db8uO-6q.js} +2 -2
  35. package/dist/assets/renderMobileApp-BCV81Ryl.js +23 -0
  36. package/dist/assets/{runtimeEndpointReset-C0oDuy2R.js → runtimeEndpointReset-Dg3DMy9v.js} +2 -2
  37. package/dist/assets/{sortable-tabs-strip-BpvOof2G.js → sortable-tabs-strip-D8JHUI0z.js} +1 -1
  38. package/dist/assets/{store-SqV3zfE8.js → store-wa1ersRf.js} +2 -2
  39. package/dist/assets/{uk-DJz_P8OZ.js → uk-xGc9Pzge.js} +1 -1
  40. package/dist/assets/{useAppFontEffects-BBxqFIta.js → useAppFontEffects-CM0VKsdo.js} +2 -2
  41. package/dist/assets/{useDesktopWindowControlsLayout-D8fjPyqI.js → useDesktopWindowControlsLayout-Cq-r4Hcb.js} +1 -1
  42. package/dist/assets/{useEffectiveDirectory-C5OxWqUH.js → useEffectiveDirectory-aUC3zzl_.js} +1 -1
  43. package/dist/assets/{useMobileNavigationStore-U3b_hG4m.js → useMobileNavigationStore-DnzT4jO2.js} +4 -4
  44. package/dist/assets/{useSessionAutoCleanup-CDYDm76L.js → useSessionAutoCleanup-DxZeceKO.js} +1 -1
  45. package/dist/assets/{useWorkerHighlightedLines-CJozblYF.js → useWorkerHighlightedLines-CiYQjBe6.js} +1 -1
  46. package/dist/assets/{zh-CN-DLAKDOM9.js → zh-CN-sL4ktGB3.js} +1 -1
  47. package/dist/assets/{zh-TW-s3Jjx1_n.js → zh-TW-Cfxps4gq.js} +1 -1
  48. package/dist/index.html +1 -1
  49. package/dist/mini-chat.html +1 -1
  50. package/dist/mobile.html +1 -1
  51. package/package.json +1 -1
  52. package/server/lib/git/DOCUMENTATION.md +2 -1
  53. package/server/lib/git/service.js +24 -5
  54. package/server/lib/git/service.test.js +51 -0
  55. package/dist/assets/MobileSurface-BL3hired.js +0 -2
  56. package/dist/assets/appThemeRegistry-D2ZUcQmr.js +0 -2
  57. package/dist/assets/renderMobileApp-Cqxwb3Ub.js +0 -23
@@ -4,7 +4,7 @@ Utilisez cet espace pour définir des règles absolues sur la façon dont l'IA d
4
4
 
5
5
  Utilisez $ARGUMENTS pour référencer les entrées de l'utilisateur.
6
6
  Utilisez !\`shell command\` pour injecter la sortie du shell.
7
- Utilisez @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 «\xA0{name}\xA0» ?`,"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 «\xA0{name}\xA0» ?`,"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 «\xA0Ajouter un fichier\xA0» 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 «\xA0{path}\xA0» ?`,"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)\xA0: {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\xA0: {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.archivedSessions.title":`Sessions archivées`,"settings.openchamber.archivedSessions.description":`Parcourez les sessions archivées par projet, restaurez-les ou ouvrez un aperçu.`,"settings.openchamber.archivedSessions.summarySingle":`{count} session archivée`,"settings.openchamber.archivedSessions.summaryPlural":`{count} sessions archivées`,"settings.openchamber.archivedSessions.actions.manage":`Gérer les sessions archivées`,"settings.openchamber.archivedSessions.actions.view":`Voir les archives`,"settings.openchamber.archivedSessions.actions.preview":`Aperçu`,"settings.openchamber.archivedSessions.actions.restore":`Restaurer`,"settings.openchamber.archivedSessions.otherProjects":`Autres`,"settings.openchamber.archivedSessions.dialog.title":`Sessions archivées`,"settings.openchamber.archivedSessions.dialog.description":`Sélectionnez un projet pour voir ses sessions archivées.`,"settings.openchamber.archivedSessions.dialog.loading":`Chargement des sessions archivées…`,"settings.openchamber.archivedSessions.dialog.empty":`Aucune session archivée pour le moment.`,"settings.openchamber.archivedSessions.dialog.emptyProject":`Aucune session archivée dans ce projet.`,"settings.openchamber.archivedSessions.dialog.backToProjects":`Retour aux projets`,"settings.openchamber.archivedSessions.dialog.sessionCountSingle":`{count} session`,"settings.openchamber.archivedSessions.dialog.sessionCountPlural":`{count} sessions`,"settings.openchamber.archivedSessions.toast.loadFailed":`Impossible de charger les sessions archivées.`,"settings.openchamber.archivedSessions.toast.restored":`Session restaurée`,"settings.openchamber.archivedSessions.toast.restoreFailed":`Échec de la restauration de la session`,"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.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 «\xA0{name}\xA0» ? 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 «\xA0{name}\xA0» ?`,"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 le terminal`,"settings.openchamber.keyboardShortcuts.action.toggle_bottom_panel.label":`Basculer le panneau inférieur`,"settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label":`Terminal à bascule étendu`,"settings.openchamber.keyboardShortcuts.action.new_terminal_tab.label":`Nouvel onglet de terminal`,"settings.openchamber.keyboardShortcuts.action.open_new_terminal.label":`Ouvrir un nouveau terminal`,"settings.openchamber.keyboardShortcuts.action.previous_terminal_tab.label":`Onglet de terminal précédent`,"settings.openchamber.keyboardShortcuts.action.next_terminal_tab.label":`Onglet de terminal suivant`,"settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label":`Basculer la barre latérale`,"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label":`Basculer le panneau de révision`,"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.close_context_panel_tab.label":`Fermer l'onglet du panneau de contexte`,"settings.openchamber.keyboardShortcuts.action.previous_session.label":`Session précédente`,"settings.openchamber.keyboardShortcuts.action.next_session.label":`Session suivante`,"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.open_usage.label":`Afficher l'utilisation`,"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.zoom_in.label":`Zoom avant`,"settings.openchamber.keyboardShortcuts.action.zoom_out.label":`Zoom arrière`,"settings.openchamber.keyboardShortcuts.action.zoom_reset.label":`Réinitialiser le zoom`,"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.clear_all_messages.label":`Effacer tous les messages`,"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.field.autoRefresh":`Actualisation automatique`,"settings.usage.sidebar.field.refreshInterval":`Intervalle d'actualisation`,"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 user@host ou ssh user@host:22`,"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.sync.title":`Synchroniser la configuration agent vers ce distant`,"settings.remoteInstances.page.sync.description":`Répliquez votre configuration OpenCode locale (~/.config/opencode), vos compétences d'agent (~/.agents) et vos identifiants fournisseur (auth.json) vers ce distant pour que les deux côtés correspondent et que les connexions fonctionnent. Les dossiers liés symboliquement sont copiés comme de vrais fichiers.`,"settings.remoteInstances.page.sync.step.scanLocal":`Analyse de la configuration locale`,"settings.remoteInstances.page.sync.step.compareRemote":`Comparaison avec le distant`,"settings.remoteInstances.page.sync.step.confirm":`Examiner les changements`,"settings.remoteInstances.page.sync.section.files":`Fichiers`,"settings.remoteInstances.page.sync.section.directories":`Répertoires`,"settings.remoteInstances.page.sync.section.authFile":`Identifiants fournisseur (auth.json)`,"settings.remoteInstances.page.sync.section.agentsRoot":`Compétences agent (~/.agents)`,"settings.remoteInstances.page.sync.section.agentsRootCount":`{count} fichiers`,"settings.remoteInstances.page.sync.status.overwrite":`Sera écrasé`,"settings.remoteInstances.page.sync.status.add":`Sera ajouté`,"settings.remoteInstances.page.sync.note.deletes":`{count} contrepartie(s) distante(s) seront supprimée(s) pour que les deux côtés correspondent.`,"settings.remoteInstances.page.sync.note.backup":`Les fichiers distants remplacés sont sauvegardés dans ~/.config/opencode/.openchamber.sync-backup ; la racine agents dans ~/.openchamber.sync-backup-agents ; auth.json dans ~/.openchamber.sync-backup-auth sur le distant.`,"settings.remoteInstances.page.sync.note.excluded":`Non synchronisé : données de session, caches, node_modules, fichiers de verrouillage.`,"settings.remoteInstances.page.sync.state.empty":`Rien à synchroniser — aucune configuration prise en charge trouvée sur cet ordinateur.`,"settings.remoteInstances.page.sync.state.error":`Échec de l'inspection du distant : {message}`,"settings.remoteInstances.page.sync.state.unavailable":`La synchronisation de configuration est indisponible dans cette fenêtre. Rouvrez cette page depuis l’application de bureau OpenChamber (redémarrez l’app de développement si elle tourne) et réessayez.`,"settings.remoteInstances.page.sync.applying":`Synchronisation...`,"settings.remoteInstances.page.sync.actions.syncNow":`Synchroniser maintenant`,"settings.remoteInstances.page.sync.actions.cancel":`Pas maintenant`,"settings.remoteInstances.page.sync.toast.success":`Configuration agent synchronisée vers le distant`,"settings.remoteInstances.page.sync.toast.failed":`Échec de la synchronisation de la configuration OpenCode`,"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 «\xA0{name}\xA0» ?`,"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.summary.title":`Résumés IA`,"settings.openchamber.defaults.summary.description":`Configure la génération des messages de commit et les titres de session automatiques.`,"settings.openchamber.defaults.summary.modelSourceAria":`Source du modèle de résumé`,"settings.openchamber.defaults.summary.modelSourceTitle":`Source du modèle`,"settings.openchamber.defaults.summary.provider":`Fournisseur OpenCode`,"settings.openchamber.defaults.summary.providerDescription":`Utilise un fournisseur OpenCode authentifié et affiche les modèles appelables par le service de résumé.`,"settings.openchamber.defaults.summary.custom":`API personnalisée compatible OpenAI`,"settings.openchamber.defaults.summary.customDescription":`Appelle directement votre Base URL avec l’ID de modèle et le jeton API ci-dessous.`,"settings.openchamber.defaults.summary.providerUnavailable":`Connectez un fournisseur pris en charge pour sélectionner un modèle.`,"settings.openchamber.defaults.summary.providerModel":`Modèle du fournisseur`,"settings.openchamber.defaults.summary.baseUrl":`Base URL`,"settings.openchamber.defaults.summary.baseUrlPlaceholder":`https://api.example.com/v1`,"settings.openchamber.defaults.summary.modelId":`ID du modèle`,"settings.openchamber.defaults.summary.modelIdPlaceholder":`gpt-4.1-mini`,"settings.openchamber.defaults.summary.apiToken":`Jeton API`,"settings.openchamber.defaults.summary.apiTokenStored":`Jeton enregistré. Saisissez une valeur pour le remplacer.`,"settings.openchamber.defaults.summary.apiTokenPlaceholder":`Saisir le jeton API`,"settings.openchamber.defaults.summary.clearToken":`Effacer le jeton`,"settings.openchamber.defaults.summary.promptTitle":`Prompts de fonctionnalité`,"settings.openchamber.defaults.summary.promptDescription":`Ces instructions influencent les messages de commit générés et les titres de session automatiques.`,"settings.openchamber.defaults.summary.commitPrompt":`Prompt de commit`,"settings.openchamber.defaults.summary.commitPromptDescription":`Contrôle la génération du message de commit à partir des fichiers indexés sélectionnés.`,"settings.openchamber.defaults.summary.commitPromptPlaceholder":`Laissez vide pour utiliser le prompt de commit intégré.`,"settings.openchamber.defaults.summary.sessionTitlePrompt":`Prompt de titre de session`,"settings.openchamber.defaults.summary.sessionTitlePromptDescription":`Contrôle les titres générés lorsqu’une nouvelle session devient inactive, puis après environ 15 secondes d’inactivité.`,"settings.openchamber.defaults.summary.sessionTitlePromptPlaceholder":`Laissez vide pour utiliser le prompt de titre intégré.`,"settings.openchamber.defaults.summary.save":`Enregistrer les réglages de résumé`,"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.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":`Thème`,"settings.openchamber.visual.field.themeMode":`Changer de thème`,"settings.openchamber.visual.field.display":`Affichage`,"settings.openchamber.visual.section.localization":`Localisation`,"settings.openchamber.visual.section.spacingAndLayout":`Espacement et disposition`,"settings.openchamber.visual.section.navigation":`Navigation`,"settings.openchamber.visual.section.chatRenderMode":`Mode de rendu du chat`,"settings.openchamber.visual.section.chatRenderModeAria":`Mode de rendu du chat`,"settings.openchamber.visual.section.messageStreamTransport":`Transport de flux de messages`,"settings.openchamber.visual.section.activityDefault":`Activité par défaut`,"settings.openchamber.visual.section.activityDefaultAria":`Mode d'activité par défaut`,"settings.openchamber.visual.section.showToolsOpenedByDefault":`Afficher les outils ouverts par défaut :`,"settings.openchamber.visual.section.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.sidebarBrand":`Marque de la barre latérale`,"settings.openchamber.visual.field.sidebarBrandHint":`Saisissez le texte complet du logo de la barre latérale. Le dernier mot séparé par des espaces utilise la couleur d'accent. Laissez vide pour masquer le logo.`,"settings.openchamber.visual.field.sidebarBrandAria":`Marque de la barre latérale`,"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.editorFontSize":`Taille de la police de l'éditeur`,"settings.openchamber.visual.field.codeFont":`Police de code`,"settings.openchamber.visual.field.codeFontSize":`Taille de la police de code`,"settings.openchamber.visual.field.codeFontSizePercentageAria":`Pourcentage de taille de 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.resetCodeFontSizeAria":`Réinitialiser la taille de la police de 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.bash":`Bash`,"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.sessionTitleRefresh":`Actualiser le titre de session selon la conversation récente`,"settings.openchamber.visual.field.sessionTitleRefreshAria":`Toutes les 5 minutes après une période d'inactivité, actualiser le titre selon le sujet le plus récent`,"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.showAssistantTpsAria":`Afficher le débit de génération TPS`,"settings.openchamber.visual.field.showAssistantTps":`Afficher le débit de génération TPS`,"settings.openchamber.visual.field.showAssistantTpsTooltip":`Affiche la vitesse de génération (tokens par seconde) sur les messages d’assistant terminés et dans le panneau de contexte. Le temps des appels d’outils est exclu.`,"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.showSubagentTaskDetailsAria":`Afficher les détails du travail du sous-agent`,"settings.openchamber.visual.field.showSubagentTaskDetails":`Afficher les détails du travail du sous-agent`,"settings.openchamber.visual.field.showSubagentTaskDetailsHint":`Désactivé, les tâches de sous-agent restent compactes. Cliquez sur la ligne pour ouvrir la session du sous-agent.`,"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.transcriptCache.label":`Effacer le cache local des sessions`,"settings.openchamber.visual.transcriptCache.description":`Supprime de cet environnement le contenu des conversations en cache. L’historique du serveur reste disponible.`,"settings.openchamber.visual.transcriptCache.action":`Effacer le cache`,"settings.openchamber.visual.transcriptCache.dialog.title":`Effacer le cache local des sessions\xA0?`,"settings.openchamber.visual.transcriptCache.dialog.description":`Le contenu des conversations en cache sur cet appareil sera supprimé. L’historique du serveur reste disponible.`,"settings.openchamber.visual.transcriptCache.dialog.clearing":`Effacement…`,"settings.openchamber.visual.transcriptCache.toast.cleared":`Cache local des sessions effacé`,"settings.openchamber.visual.transcriptCache.toast.failed":`Impossible d’effacer le cache local des sessions`,"settings.openchamber.visual.option.themeMode.system":`Système`,"settings.openchamber.visual.option.themeMode.light":`Clair`,"settings.openchamber.visual.option.themeMode.dark":`Sombre`,"settings.openchamber.visual.option.diffLayout.dynamic.label":`Dynamique`,"settings.openchamber.visual.option.diffLayout.dynamic.description":`Choisit automatiquement entre la vue côte à côte et la vue intégrée selon le contenu modifié.`,"settings.openchamber.visual.option.diffLayout.inline.label":`Toujours intégré`,"settings.openchamber.visual.option.diffLayout.inline.description":`Afficher sous forme de vue unifiée unique.`,"settings.openchamber.visual.option.diffLayout.sideBySide.label":`Toujours côte à côte`,"settings.openchamber.visual.option.diffLayout.sideBySide.description":`Comparez les fichiers originaux et modifiés.`,"settings.openchamber.visual.option.mermaidRendering.svg.label":`SVG`,"settings.openchamber.visual.option.mermaidRendering.svg.description":`Rendre les diagrammes sous forme de graphiques évolutifs.`,"settings.openchamber.visual.option.mermaidRendering.ascii.label":`ASCII`,"settings.openchamber.visual.option.mermaidRendering.ascii.description":`Rendre les diagrammes sous forme de blocs de texte.`,"settings.openchamber.visual.option.pwaOrientation.system.label":`Suivre le système`,"settings.openchamber.visual.option.pwaOrientation.system.description":`Respectez le réglage de rotation de l'appareil.`,"settings.openchamber.visual.option.pwaOrientation.portrait.label":`Verrouillage portrait`,"settings.openchamber.visual.option.pwaOrientation.portrait.description":`Installez l'application verrouillée en mode portrait.`,"settings.openchamber.visual.option.pwaOrientation.landscape.label":`Verrouillage paysage`,"settings.openchamber.visual.option.pwaOrientation.landscape.description":`Installez l'application verrouillée en mode paysage.`,"settings.openchamber.visual.option.mobileKeyboardMode.native.label":`Suivre le navigateur`,"settings.openchamber.visual.option.mobileKeyboardMode.native.description":`Utilisez les paramètres par défaut du navigateur pour les modifications de panoramique et de fenêtre d'affichage lorsque le clavier s'ouvre.`,"settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.label":`Redimensionner le contenu`,"settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.description":`Demandez aux navigateurs pris en charge de réduire la présentation de l'application au lieu de vous fier uniquement au panoramique.`,"settings.openchamber.visual.option.userMessageRendering.markdown.label":`Markdown`,"settings.openchamber.visual.option.userMessageRendering.markdown.description":`Rendre le texte utilisateur avec un formatage markdown.`,"settings.openchamber.visual.option.userMessageRendering.plain.label":`Texte brut`,"settings.openchamber.visual.option.userMessageRendering.plain.description":`Rendre le texte utilisateur avec des espaces et des liens préservés.`,"chat.message.userText.collapseAria":`Réduire le message utilisateur`,"settings.openchamber.visual.option.chatRenderMode.sorted.label":`Trié`,"settings.openchamber.visual.option.chatRenderMode.sorted.description":`Classez le travail intermédiaire dans Activity ; ne streamez que la conclusion finale.`,"settings.openchamber.visual.option.chatRenderMode.live.label":`En direct`,"settings.openchamber.visual.option.chatRenderMode.live.description":`Diffusez le texte et les outils de l’assistant dès leur arrivée.`,"settings.openchamber.visual.option.messageTransport.auto.label":`Auto`,"settings.openchamber.visual.option.messageTransport.auto.description":`Préférez WebSocket et revenez à SSE si besoin.`,"settings.openchamber.visual.option.messageTransport.ws.label":`WebSocket`,"settings.openchamber.visual.option.messageTransport.ws.description":`Utilisez WebSocket pour la diffusion de messages.`,"settings.openchamber.visual.option.messageTransport.sse.label":`SSE`,"settings.openchamber.visual.option.messageTransport.sse.description":`Utilisez les événements envoyés par le serveur pour la diffusion de messages.`,"settings.openchamber.visual.option.activityRenderMode.collapsed.label":`Effondré`,"settings.openchamber.visual.option.activityRenderMode.collapsed.description":`Gardez l'activité réduite par défaut.`,"settings.openchamber.visual.option.activityRenderMode.summary.label":`Étendu`,"settings.openchamber.visual.option.activityRenderMode.summary.description":`Développez Activité par défaut.`,"settings.openchamber.visual.option.timeFormat.auto.label":`Auto`,"settings.openchamber.visual.option.timeFormat.auto.description":`Utilisez les préférences local du système.`,"settings.openchamber.visual.option.timeFormat.24h.label":`24 heures`,"settings.openchamber.visual.option.timeFormat.24h.description":`Afficher l'heure à 14h15.`,"settings.openchamber.visual.option.timeFormat.12h.label":`12 heures`,"settings.openchamber.visual.option.timeFormat.12h.description":`Afficher l'heure à 14h15.`,"settings.openchamber.visual.option.weekStart.auto.label":`Auto`,"settings.openchamber.visual.option.weekStart.auto.description":`Utilisez le début de semaine local.`,"settings.openchamber.visual.option.weekStart.monday.label":`Lundi`,"settings.openchamber.visual.option.weekStart.sunday.label":`Dimanche`,"settings.magicPrompts.page.loading.aria":`Chargement`,"settings.magicPrompts.page.loading.text":`Chargement des prompts magiques...`,"settings.magicPrompts.page.block.visiblePrompt":`Prompt visible`,"settings.magicPrompts.page.block.instructions":`Instructions`,"settings.magicPrompts.page.group.gitCommitGenerate.title":`Génération de commit`,"settings.magicPrompts.page.group.gitCommitGenerate.description":`Prompts utilisés pour la génération du message de commit : message utilisateur visible + instructions masquées.`,"settings.magicPrompts.page.group.gitPrGenerate.title":`Génération de PR`,"settings.magicPrompts.page.group.gitPrGenerate.description":`Prompts utilisés pour la génération du titre/corps de la PR : message utilisateur visible + instructions masquées.`,"settings.magicPrompts.page.group.githubPrReview.title":`Revue de PR`,"settings.magicPrompts.page.group.githubPrReview.description":`Prompts utilisés pour le flux de revue des PR : message utilisateur visible + charge utile d'instruction cachée.`,"settings.magicPrompts.page.group.githubIssueReview.title":`Examen du problème`,"settings.magicPrompts.page.group.githubIssueReview.description":`Prompts utilisés pour le flux d’examen des issues : message utilisateur visible + charge utile d’instruction masquée.`,"settings.magicPrompts.page.group.githubPrFailedChecksReview.title":`Examen des checks PR en échec`,"settings.magicPrompts.page.group.githubPrFailedChecksReview.description":`Prompts utilisés pour l’analyse des checks PR en échec.`,"settings.magicPrompts.page.group.githubPrCommentsReview.title":`Examen des commentaires PR`,"settings.magicPrompts.page.group.githubPrCommentsReview.description":`Prompts utilisés pour l’analyse des commentaires PR.`,"settings.magicPrompts.page.group.githubSinglePrCommentReview.title":`Examen des commentaires PR uniques`,"settings.magicPrompts.page.group.githubSinglePrCommentReview.description":`Prompts utilisés pour l’analyse d’un seul commentaire PR.`,"settings.magicPrompts.page.group.gitConflictResolve.title":`Résolution des conflits de fusion/rebase`,"settings.magicPrompts.page.group.gitConflictResolve.description":`Prompts utilisés lors de la résolution des conflits de fusion/rebase avec l'IA.`,"settings.magicPrompts.page.group.gitCherrypickConflictResolve.title":`Résolution des conflits par sélection`,"settings.magicPrompts.page.group.gitCherrypickConflictResolve.description":`Prompts utilisés lors de la résolution des conflits de Cherry-pick dans le flux d'intégration.`,"settings.magicPrompts.page.group.planImprove.title":`Améliorer le plan`,"settings.magicPrompts.page.group.planImprove.description":`Prompt masqué utilisé lors de l’envoi d’un plan enregistré dans un flux d’amélioration.`,"settings.magicPrompts.page.group.planTodo.title":`Planification des tâches`,"settings.magicPrompts.page.group.planTodo.description":`Prompt masqué utilisé lors de l’envoi d’une tâche dans une nouvelle session de planification.`,"settings.magicPrompts.page.group.planImplement.title":`Plan de mise en œuvre`,"settings.magicPrompts.page.group.planImplement.description":`Prompt masqué utilisé lors de l’envoi d’un plan enregistré dans un flux d’implémentation.`,"settings.magicPrompts.page.group.sessionSummary.title":`Résumé de la session`,"settings.magicPrompts.page.group.sessionSummary.description":`Prompts utilisés par la commande slash /summary : message utilisateur visible + instructions masquées. Non destructif : ne compacte pas l'historique des sessions.`,"settings.magicPrompts.page.group.sessionWorkspaceReview.title":`Examen de l'espace de travail`,"settings.magicPrompts.page.group.sessionWorkspaceReview.description":`Prompts utilisés par la commande slash /workspace-review : message utilisateur visible + instructions masquées. Examine les modifications actuelles de l’espace de travail pour les problèmes de signal élevé uniquement.`,"settings.view.search.placeholder":`Rechercher dans les paramètres`,"settings.view.search.aria":`Rechercher dans les paramètres`,"settings.view.search.clear":`Effacer la recherche des paramètres`,"settings.view.search.noResults":`Aucun paramètre correspondant`,"settings.page.about.title":`À propos`,"settings.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 de connexion`,"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.`,"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 importé pour le moment.`,"settings.remoteInstances.clientAuth.title":`Se connecter à ce serveur`,"settings.remoteInstances.clientAuth.description":`Créez un lien ou un token sécurisé pour permettre à OpenChamber Desktop de se connecter à ce serveur.`,"settings.remoteInstances.clientAuth.field.labelPlaceholder":`Nom de l’instance — ex. Mac de la maison`,"settings.remoteInstances.clientAuth.field.labelHint":`L’autre appareil affichera ce nom pour ce serveur.`,"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.relayUrlLabel":`Serveur Relay`,"settings.remoteInstances.clientAuth.addDevice.relayUrlHint":`Utilisez le Relay officiel d’OpenChamber ou saisissez votre propre endpoint ws:// ou wss://. L’appareil enregistrera l’endpoint contenu dans le code QR.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlDeployLink":`Déployez votre propre Relay.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLockedHint":`Ce serveur impose l’endpoint Relay avec OPENCHAMBER_RELAY_URL.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlInvalid":`Saisissez un endpoint Relay valide commençant par ws:// ou wss://.`,"settings.remoteInstances.clientAuth.addDevice.create":`Créer le code QR`,"settings.remoteInstances.clientAuth.addDevice.targetLabel":`Instance cible`,"settings.remoteInstances.clientAuth.addDevice.target.local":`Ce bureau`,"settings.remoteInstances.clientAuth.addDevice.target.sshEmpty":`Aucune instance SSH connectée`,"settings.remoteInstances.clientAuth.addDevice.target.sshNotReady":`Connectez d’abord l’instance SSH`,"settings.remoteInstances.sidebar.actions.mobileConnect":`Connexion téléphone`,"settings.remoteInstances.sidebar.actions.mobileConnectAria":`Créer un QR d’appairage téléphone pour {instance}`,"settings.remoteInstances.sidebar.actions.mobileConnectDisabled":`Connectez cette instance SSH avant d’appairer un téléphone`,"settings.remoteInstances.sidebar.actions.syncConfigDisabled":`Connectez cette instance pour synchroniser sa configuration`,"settings.remoteInstances.sidebar.actions.syncConfig":`Synchroniser la config`,"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.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`,"settings.page.assistants.title":`Assistants`,"assistants.title":`Assistants`,"assistants.subtitle":`Vos assistants permanents`,"assistants.listAria":`Liste des assistants`,"assistants.menu.edit":`Modifier`,"assistants.selectorAria":`Changer d’assistant. Assistant actuel\xA0: {name}`,"assistants.state.unsupportedTitle":`Les assistants ne sont pas pris en charge`,"assistants.state.unsupportedDescription":`Cette instance OpenChamber ne propose pas la fonctionnalité Assistant.`,"assistants.state.instanceDisabledDescription":`Activez les assistants dans les réglages pour utiliser cette fonctionnalité.`,"assistants.onboarding.title":`Créez votre premier assistant`,"assistants.onboarding.description":`Configurez un assistant permanent, puis poursuivez ici une conversation continue.`,"assistants.onboarding.action":`Créer un assistant`,"assistants.actions.retry":`Réessayer`,"assistants.actions.backToChat":`Retour au chat`,"assistants.mode.continuous":`Continu`,"assistants.mode.stateless":`Sans état`,"assistants.state.unavailable":`Les assistants sont indisponibles sur cette instance.`,"assistants.state.staleSnapshot":`Le dernier instantané disponible est affiché. L’actualisation a échoué.`,"assistants.state.sending":`Envoi`,"assistants.state.reconciling":`Confirmation de l’envoi…`,"assistants.state.sendFailed":`L’envoi a échoué. Vous pouvez réessayer sans risque.`,"assistants.state.instanceDisabled":`Les assistants sont désactivés sur cette instance.`,"assistants.state.assistantDisabled":`Cet assistant est désactivé.`,"assistants.state.invalidConfiguration":`Le modèle configuré pour cet assistant est indisponible.`,"assistants.state.messagesFailed":`Impossible de charger la conversation.`,"assistants.conversation.continuousHint":`Une conversation continue`,"assistants.conversation.statelessHint":`Chaque tour s’exécute dans une nouvelle session sans contexte antérieur`,"assistants.conversation.newSessionDivider":`Nouvelle conversation`,"assistants.conversation.emptyTitle":`Commencer une conversation avec {name}`,"assistants.conversation.emptyDescription":`Envoyez un message pour commencer cette conversation continue.`,"assistants.composer.attachment":`Image jointe`,"assistants.composer.removeAttachment":`Retirer la pièce jointe`,"assistants.composer.addImage":`Ajouter une image`,"assistants.composer.send":`Envoyer le message`,"assistants.composer.placeholder":`Écrivez à votre assistant…`,"assistants.composer.disabledPlaceholder":`Assistant indisponible`,"assistants.composer.selectionConflict":`La sélection a été modifiée ailleurs. Les réglages récents ont été rechargés.`,"assistants.composer.selectionSaveFailed":`Impossible d’enregistrer la sélection du modèle et de l’agent.`,"assistants.composer.commandUnavailable":`Les commandes disponibles sont /new et /compact.`,"assistants.settings.description":`Configurez des assistants pour vous aider dans votre travail. `,"assistants.settings.descriptionLearnMore":`En savoir plus`,"assistants.settings.instanceEnabled":`Activer`,"assistants.settings.listTitle":`Assistants`,"assistants.settings.create":`Nouvel assistant`,"assistants.settings.delete":`Supprimer`,"assistants.settings.deleteConfirm":`Supprimer {name}\xA0? Son historique de conversation sera archivé.`,"assistants.settings.name":`Nom`,"assistants.settings.enabled":`Assistant activé`,"assistants.settings.defaultShare":`Assistant de partage par défaut pour ce client`,"assistants.settings.defaultPrompt":`Prompt par défaut`,"assistants.settings.defaultPromptPlaceholder":`Définissez le rôle et la méthode de travail de l’assistant…`,"assistants.settings.runtime":`Exécution`,"assistants.settings.model":`Fournisseur et modèle`,"assistants.settings.agent":`Agent OpenCode`,"assistants.settings.mode":`Mode de conversation`,"assistants.settings.workspace":`Espace de travail`,"assistants.settings.workspacePlaceholder":`Espace de travail géré`,"assistants.settings.workspaceCurrentPath":`Chemin actuel`,"assistants.settings.workspaceChangeHint":`Changer d’espace de travail démarre une nouvelle session d’assistant.`,"assistants.settings.save":`Enregistrer l’assistant`,"assistants.settings.empty":`Créez votre premier assistant.`,"assistants.settings.validation.required":`Le nom et le modèle sont requis.`,"assistants.settings.toast.saved":`Assistant enregistré.`,"assistants.settings.toast.saveFailed":`Impossible d’enregistrer l’assistant.`,"assistants.settings.toast.deleted":`Assistant supprimé.`,"assistants.settings.toast.deleteFailed":`Impossible de supprimer l’assistant.`,"assistants.settings.toast.toggleFailed":`Impossible de modifier la disponibilité des assistants.`,"assistants.shareWelcome.title":`Partagez du contenu avec votre assistant`,"assistants.shareWelcome.description":`Depuis n’importe quelle app, touchez Partager et choisissez un assistant OpenChamber. Les liens, textes et images arrivent dans son Inbox Topic.`,"assistants.shareWelcome.examplesAria":`Exemples de contenu partageable`,"assistants.shareWelcome.example.chat.title":`Feuille de partage iOS`,"assistants.shareWelcome.example.chat.description":`Ouvrez Partager et choisissez votre assistant.`,"assistants.shareWelcome.example.article.title":`Partage direct Android`,"assistants.shareWelcome.example.article.description":`Votre assistant apparaît parmi les contacts rapides.`,"assistants.shareWelcome.example.note.title":`Choisissez un assistant`,"assistants.shareWelcome.example.note.description":`Le contenu partagé arrive dans son Inbox Topic.`,"assistants.shareWelcome.action":`Compris`,"common.loading":`Chargement...`,"sessions.startupSync.title":`Synchronisation des sessions`,"sessions.startupSync.progress":`{completed} projets chargés sur {total}`,"common.unavailable":`Indisponible`,"common.language.english":`Anglais`,"common.language.french":`Français`,"common.language.simplifiedChinese":`Chinois (simplifié)`,"common.language.traditionalChinese":`Chinois (traditionnel)`,"common.language.ukrainian":`Ukrainien`,"common.language.spanish":`Espagnol`,"common.language.brazilianPortuguese":`Portugais brésilien`,"common.language.korean":`Coréen`,"common.language.polish":`Polonais`,"common.language.japanese":`Japonais`,"common.revealPath.finder":`Révéler dans le Finder`,"common.revealPath.fileExplorer":`Ouvrir dans l'explorateur de fichiers`,"common.revealPath.fileManager":`Ouvrir dans le gestionnaire de fichiers`,"pwa.installPrompt.description":`Installez OpenChamber pour un accès plus rapide`,"pwa.installPrompt.action":`Installer`,"pwa.installPrompt.dismiss":`Ignorer`,"pwa.installPrompt.started":`Installation démarrée`,"pwa.installPrompt.installed":`OpenChamber installé`,"shareOpinion.actions.shareOpinion":`Donner son avis`,"shareOpinion.actions.bookCall":`Réserver un appel`,"shareOpinion.actions.shortSurvey":`Court sondage`,"shareOpinion.dialog.title":`Donnez votre avis`,"shareOpinion.toast.title":`Aidez à façonner OpenChamber`,"shareOpinion.toast.description":`Dites ce qui est utile, confus ou manquant pour aider à définir la suite.`,"sessions.sidebar.footer.actions.shareOpinion":`Donner son avis`,"layout.mainTab.chat":`Chat`,"layout.mainTab.plan":`Plan`,"layout.mainTab.diff":`Diff`,"layout.mainTab.files":`Fichiers`,"layout.mainTab.terminal":`Terminal`,"layout.mainTab.context":`Contexte`,"layout.rightSidebar.git":`Git`,"layout.rightSidebar.files":`Fichiers`,"layout.rightSidebar.context":`Contexte`,"layout.services.instance":`Instance`,"layout.services.usage":`Usage`,"sessions.sidebar.header.actions.closeSessions":`Fermer les sessions`,"sessions.sidebar.header.actions.addProject":`Ajouter un projet`,"sessions.sidebar.header.actions.newSession":`Nouveau chat`,"sessions.sidebar.header.actions.newMultiRun":`Nouveau multi-run`,"sessions.sidebar.header.actions.scheduledTasks":`Tâches planifiées`,"sessions.scheduledTasks.dialog.title":`Tâches planifiées`,"sessions.scheduledTasks.dialog.actions.create":`Créer`,"sessions.scheduledTasks.dialog.actions.moreAria":`Plus d’actions pour {taskName}`,"sessions.scheduledTasks.dialog.actions.delete":`Supprimer`,"sessions.scheduledTasks.dialog.actions.pause":`Pause`,"sessions.scheduledTasks.dialog.actions.resume":`Reprendre`,"sessions.scheduledTasks.workspace.filters.all":`Toutes`,"sessions.scheduledTasks.workspace.filters.active":`Actives`,"sessions.scheduledTasks.workspace.filters.paused":`En pause`,"sessions.scheduledTasks.workspace.views.aria":`Vues des tâches planifiées`,"sessions.scheduledTasks.workspace.views.tasks":`Tâches`,"sessions.scheduledTasks.workspace.views.history":`Historique`,"sessions.scheduledTasks.history.loading":`Chargement de l’historique…`,"sessions.scheduledTasks.history.error.title":`Impossible de charger l’historique`,"sessions.scheduledTasks.history.error.description":`OpenChamber n’a pas pu charger les exécutions enregistrées.`,"sessions.scheduledTasks.history.error.more":`Impossible de charger davantage d’exécutions. L’historique déjà chargé reste disponible.`,"sessions.scheduledTasks.history.retry":`Réessayer`,"sessions.scheduledTasks.history.empty.title":`Aucune exécution`,"sessions.scheduledTasks.history.empty.description":`Les exécutions planifiées et manuelles apparaîtront ici.`,"sessions.scheduledTasks.history.trigger.scheduled":`Planifiée`,"sessions.scheduledTasks.history.trigger.manual":`Manuelle`,"sessions.scheduledTasks.history.meta.trigger":`Déclencheur`,"sessions.scheduledTasks.history.meta.started":`Début`,"sessions.scheduledTasks.history.meta.ended":`Fin`,"sessions.scheduledTasks.history.meta.duration":`Durée`,"sessions.scheduledTasks.history.ended.unavailable":`—`,"sessions.scheduledTasks.history.duration.pending":`En cours`,"sessions.scheduledTasks.history.duration.lessThanOneSecond":`<1 s`,"sessions.scheduledTasks.history.duration.milliseconds":`{count} ms`,"sessions.scheduledTasks.history.duration.seconds":`{count} s`,"sessions.scheduledTasks.history.duration.minutesSeconds":`{minutes} min {seconds} s`,"sessions.scheduledTasks.history.duration.minutes":`{count} min`,"sessions.scheduledTasks.history.duration.hoursMinutes":`{hours} h {minutes} min`,"sessions.scheduledTasks.history.duration.hours":`{count} h`,"sessions.scheduledTasks.history.openSession":`Ouvrir la session`,"sessions.toast.openFailed":`Impossible de charger la conversation {sessionId}`,"sessions.toast.openFailedMissingDirectory":`Impossible de charger la conversation {sessionId}. Le chemin de l’espace de travail est manquant.`,"sessions.toast.openFailedMissingSessionId":`Impossible d’ouvrir la conversation. L’identifiant de session est manquant.`,"sessions.scheduledTasks.history.loadingMore":`Chargement…`,"sessions.scheduledTasks.history.loadMore":`Charger plus`,"sessions.scheduledTasks.workspace.search.placeholder":`Rechercher des tâches…`,"sessions.scheduledTasks.workspace.search.noResults":`Aucune tâche ne correspond à la recherche.`,"sessions.scheduledTasks.workspace.partialLoadWarning":`Les tâches planifiées de certains projets n’ont pas pu être chargées. Les tâches chargées restent disponibles.`,"sessions.scheduledTasks.workspace.editor.emptyTitle":`Sélectionnez une tâche`,"sessions.scheduledTasks.workspace.editor.emptyDescription":`Choisissez une tâche dans la liste ou créez-en une.`,"sessions.scheduledTasks.workspace.confirm.discardChanges":`Les modifications non enregistrées seront abandonnées. Continuer\xA0?`,"sessions.scheduledTasks.editor.panel.details":`Détails`,"sessions.scheduledTasks.editor.panel.frequency":`Fréquence`,"sessions.scheduledTasks.dialog.description":`Tâches côté serveur qui créent une nouvelle session et envoient un prompt configuré.`,"sessions.scheduledTasks.dialog.project.label":`Projet`,"sessions.scheduledTasks.dialog.project.placeholder":`Sélectionnez un projet`,"sessions.scheduledTasks.dialog.project.empty":`Aucun projet`,"sessions.scheduledTasks.dialog.actions.newTask":`Nouvelle tâche`,"sessions.scheduledTasks.dialog.actions.runNow":`Exécuter maintenant`,"sessions.scheduledTasks.dialog.actions.edit":`Modifier`,"sessions.scheduledTasks.dialog.actions.editAria":`Modifier {taskName}`,"sessions.scheduledTasks.dialog.actions.deleteAria":`Supprimer {taskName}`,"sessions.scheduledTasks.dialog.loading":`Chargement des tâches...`,"sessions.scheduledTasks.dialog.empty.noTasks":`Aucune tâche planifiée pour l'instant.`,"sessions.scheduledTasks.dialog.empty.selectProject":`Sélectionnez un projet pour gérer les tâches planifiées.`,"sessions.scheduledTasks.dialog.error.chooseProjectFirst":`Choisissez d'abord un projet`,"sessions.scheduledTasks.dialog.toast.loadFailed":`Échec du chargement des tâches planifiées`,"sessions.scheduledTasks.dialog.toast.saved":`Tâche planifiée enregistrée`,"sessions.scheduledTasks.dialog.toast.updateFailed":`Échec de la mise à jour de la tâche`,"sessions.scheduledTasks.dialog.toast.deleted":`Tâche planifiée supprimée`,"sessions.scheduledTasks.dialog.toast.deleteFailed":`Échec de la suppression de la tâche`,"sessions.scheduledTasks.dialog.toast.started":`Tâche démarrée`,"sessions.scheduledTasks.dialog.toast.runFailed":`Échec de l'exécution de la tâche`,"sessions.scheduledTasks.dialog.confirm.deleteTask":`Supprimer la tâche planifiée «\xA0{taskName}\xA0» ?`,"sessions.scheduledTasks.dialog.schedule.daily":`Quotidien {time}`,"sessions.scheduledTasks.dialog.schedule.dailyWithTimezone":`Quotidien {time} ({timezone})`,"sessions.scheduledTasks.dialog.schedule.weekly":`Hebdomadaire {days} {time}`,"sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone":`{days} hebdomadaire {time} ({timezone})`,"sessions.scheduledTasks.dialog.schedule.once":`{date} unique {time}`,"sessions.scheduledTasks.dialog.schedule.onceWithTimezone":`{date} unique {time} ({timezone})`,"sessions.scheduledTasks.dialog.schedule.cron":`Cron : {cron}`,"sessions.scheduledTasks.dialog.schedule.cronWithTimezone":`Cron :\xA0{cron} ({timezone})`,"sessions.scheduledTasks.dialog.schedule.unknownDate":`Date inconnue`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.sun":`Dim`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.mon":`Lun`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.tue":`Mar`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.wed":`Mer`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.thu":`Jeu`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.fri":`Ven`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.sat":`Sam`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown":`?`,"sessions.scheduledTasks.dialog.relativeTime.inLessThanOneMinute":`dans <1\xA0m`,"sessions.scheduledTasks.dialog.relativeTime.justNow":`à l’instant`,"sessions.scheduledTasks.dialog.relativeTime.inMinutes":`en {count}m`,"sessions.scheduledTasks.dialog.relativeTime.minutesAgo":`il y a {count} min`,"sessions.scheduledTasks.dialog.relativeTime.inDuration":`dans {duration}`,"sessions.scheduledTasks.dialog.relativeTime.durationAgo":`il y a {duration}`,"sessions.scheduledTasks.dialog.status.success":`Succès`,"sessions.scheduledTasks.dialog.status.error":`Erreur`,"sessions.scheduledTasks.dialog.status.running":`En cours d'exécution`,"sessions.scheduledTasks.dialog.status.idle":`Inactif`,"sessions.scheduledTasks.dialog.nextRun.label":`Suivant`,"sessions.scheduledTasks.dialog.lastRun.label":`Dernière exécution`,"sessions.scheduledTasks.dialog.lastRun.runningNow":`en cours d’exécution`,"sessions.scheduledTasks.dialog.lastRun.never":`jamais`,"sessions.scheduledTasks.dialog.taskToggle.enableAria":`Activer {taskName}`,"sessions.scheduledTasks.dialog.taskToggle.pauseAria":`Pause {taskName}`,"sessions.scheduledTasks.dialog.taskToggle.enabled":`Activé`,"sessions.scheduledTasks.dialog.taskToggle.paused":`En pause`,"sessions.scheduledTasks.editor.title.edit":`Modifier une tâche planifiée`,"sessions.scheduledTasks.editor.title.new":`Nouvelle tâche planifiée`,"sessions.scheduledTasks.editor.description":`Configurez une tâche côté serveur qui crée une nouvelle session et envoie un prompt.`,"sessions.scheduledTasks.editor.taskName.label":`Nom de la tâche`,"sessions.scheduledTasks.editor.taskName.placeholder":`Synchronisation quotidienne`,"sessions.scheduledTasks.editor.scheduleType.label":`Type d'horaire`,"sessions.scheduledTasks.editor.scheduleType.daily":`Tous les jours`,"sessions.scheduledTasks.editor.scheduleType.weekly":`Hebdomadaire`,"sessions.scheduledTasks.editor.scheduleType.once":`Une fois`,"sessions.scheduledTasks.editor.scheduleType.cron":`Cron`,"sessions.scheduledTasks.editor.date.label":`Date`,"sessions.scheduledTasks.editor.date.placeholder":`Sélectionnez une date`,"sessions.scheduledTasks.editor.date.previousMonth":`Mois précédent`,"sessions.scheduledTasks.editor.date.nextMonth":`Mois prochain`,"sessions.scheduledTasks.editor.date.jumpToToday":`Aller à aujourd'hui`,"sessions.scheduledTasks.editor.date.today":`Aujourd'hui`,"sessions.scheduledTasks.editor.time.label":`Temps`,"sessions.scheduledTasks.editor.time.hourAria":`Heures`,"sessions.scheduledTasks.editor.time.minuteAria":`Minutes`,"sessions.scheduledTasks.editor.time.periodAria":`Période`,"sessions.scheduledTasks.editor.time.period.am":`AM`,"sessions.scheduledTasks.editor.time.period.pm":`PM`,"sessions.scheduledTasks.editor.times.label":`Fois`,"sessions.scheduledTasks.editor.times.add":`Ajouter du temps`,"sessions.scheduledTasks.editor.times.removeAria":`Supprimer l'heure`,"sessions.scheduledTasks.editor.timezone.label":`Fuseau horaire`,"sessions.scheduledTasks.editor.weekdays.label":`Jours de la semaine`,"sessions.scheduledTasks.editor.model.label":`Modèle`,"sessions.scheduledTasks.editor.thinkingLevel.label":`Niveau de réflexion`,"sessions.scheduledTasks.editor.thinkingLevel.default":`Défaut`,"sessions.scheduledTasks.editor.agent.label":`Agent`,"sessions.scheduledTasks.editor.prompt.label":`Prompt`,"sessions.scheduledTasks.editor.prompt.placeholder":`Résumer les tâches ouvertes et proposer les prochaines actions`,"sessions.scheduledTasks.editor.enabled.aria":`Activer la tâche`,"sessions.scheduledTasks.editor.enabled.label":`Activé`,"sessions.scheduledTasks.editor.goal.label":`Exécuter comme objectif`,"sessions.scheduledTasks.editor.goal.aria":`Exécuter cette tâche comme un objectif que l'agent poursuit jusqu'au bout`,"sessions.scheduledTasks.editor.goal.budgetLabel":`Budget de tokens`,"sessions.scheduledTasks.editor.goal.budgetAria":`Limiter l’objectif à un budget de tokens`,"sessions.scheduledTasks.editor.actions.closeAria":`Fermer`,"sessions.scheduledTasks.editor.actions.cancel":`Annuler`,"sessions.scheduledTasks.editor.actions.save":`Sauvegarder`,"sessions.scheduledTasks.editor.actions.saving":`Enregistrement...`,"sessions.scheduledTasks.editor.toast.saveFailed":`Échec de l'enregistrement de la tâche`,"sessions.scheduledTasks.editor.validation.taskNameRequired":`Le nom de la tâche est obligatoire`,"sessions.scheduledTasks.editor.validation.promptRequired":`Un prompt est requis`,"sessions.scheduledTasks.editor.validation.modelRequired":`Le modèle est requis`,"sessions.scheduledTasks.editor.validation.dateFormat":`La date doit utiliser AAAA-MM-JJ`,"sessions.scheduledTasks.editor.validation.timeFormat":`L'heure doit utiliser HH :\xA0mm`,"sessions.scheduledTasks.editor.validation.atLeastOneTime":`Ajoutez au moins une heure valide`,"sessions.scheduledTasks.editor.validation.atLeastOneWeekday":`Sélectionnez au moins un jour de la semaine`,"sessions.scheduledTasks.editor.validation.timezoneRequired":`Le fuseau horaire est requis`,"sessions.scheduledTasks.editor.validation.cronRequired":`Une expression cron est requise`,"sessions.scheduledTasks.editor.validation.cronInvalid":`Expression cron invalide`,"sessions.scheduledTasks.editor.cronExpression.label":`Expression cron`,"sessions.scheduledTasks.editor.cronExpression.placeholder":`*/5 * * * *`,"sessions.scheduledTasks.editor.cronExpression.nextRuns":`Prochaines exécutions`,"sessions.scheduledTasks.editor.cronExpression.examples":`Exemples`,"sessions.scheduledTasks.editor.cronExpression.examples.every5min":`Toutes les 5 minutes`,"sessions.scheduledTasks.editor.cronExpression.examples.everyHour":`Toutes les heures`,"sessions.scheduledTasks.editor.cronExpression.examples.monday9am":`Chaque lundi à 9 h`,"sessions.scheduledTasks.editor.cronExpression.examples.9am5pm":`9 h et 17 h chaque jour`,"sessions.scheduledTasks.editor.cronExpression.examples.firstOfMonth":`Premier jour de chaque mois`,"multirun.launcher.title":`Nouveau multi-run`,"multirun.launcher.actions.closeEsc":`Fermer (Échap)`,"multirun.launcher.actions.cancel":`Annuler`,"multirun.launcher.actions.creating":`Création...`,"multirun.launcher.actions.startWithModelCount":`Démarrer (modèles {count})`,"multirun.launcher.project.label":`Projet`,"multirun.launcher.project.placeholder":`Sélectionnez un projet`,"multirun.launcher.project.empty":`Ajoutez d'abord un projet.`,"multirun.launcher.project.gitRequired":`Pas d'isolation par worktree\xA0: les exécutions utilisent le même répertoire.`,"multirun.launcher.groupName.label":`Nom du groupe`,"multirun.launcher.groupName.info":`Utilisé pour le répertoire du worktree et les noms de branches`,"multirun.launcher.groupName.placeholder":`fonctionnalité-auth, correction de bugs-connexion`,"multirun.launcher.baseBranch.label":`Branche de base`,"multirun.launcher.baseBranch.info":`Nouvelle branche créée à partir de cette base par modèle`,"multirun.launcher.isolateRuns.label":`Isoler les parcours`,"multirun.launcher.agent.label":`Agent`,"multirun.launcher.agent.info":`Agent utilisé pour toutes les exécutions. La valeur par défaut est votre agent configuré.`,"multirun.launcher.setupCommands.label":`Commandes de configuration`,"multirun.launcher.setupCommands.loading":`Chargement...`,"multirun.launcher.setupCommands.commandPlaceholder":`bun install`,"multirun.launcher.setupCommands.removeCommandAria":`Supprimer la commande`,"multirun.launcher.setupCommands.addCommand":`Ajouter une commande`,"multirun.launcher.prompt.label":`Prompt`,"multirun.launcher.prompt.placeholder":`Entrez le prompt à envoyer à tous les modèles...`,"multirun.launcher.attachments.attach":`Attacher`,"multirun.launcher.attachments.tooltip":`Mêmes fichiers envoyés à toutes les exécutions`,"multirun.launcher.models.label":`Modèles`,"multirun.launcher.models.info":`Sélectionnez les modèles 2-{max}. Le même modèle peut être ajouté plusieurs fois.`,"multirun.launcher.toast.fileTooLarge":`Le fichier "{fileName}" est trop volumineux (max 10\xA0Mo)`,"multirun.launcher.toast.attachFailed":`Échec de la connexion de "{fileName}"`,"multirun.launcher.toast.attachedSingle":`Fichier {count} joint`,"multirun.launcher.toast.attachedPlural":`Fichiers {count} joints`,"multirun.modelMultiSelect.actions.addModel":`Ajouter un modèle`,"multirun.modelMultiSelect.search.placeholder":`Rechercher des modèles`,"multirun.modelMultiSelect.search.noResults":`Aucun modèle trouvé`,"multirun.modelMultiSelect.sections.favorites":`Favoris`,"multirun.modelMultiSelect.sections.recent":`Récents`,"multirun.modelMultiSelect.variant.placeholder":`Pensée`,"multirun.modelMultiSelect.variant.default":`Défaut`,"multirun.modelMultiSelect.keyboard.hint":`↑↓ naviguer • Entrer sélectionner • Esc fermer`,"multirun.modelMultiSelect.validation.minOnly":`Sélectionnez au moins les modèles {min}.`,"multirun.modelMultiSelect.validation.minToMax":`Choisissez parmi les modèles {min} à {max}.`,"multirun.agentSelector.placeholder":`Sélectionnez un agent`,"multirun.fusion.title":`Exécuter la fusion`,"multirun.fusion.description":`Combinez les résultats multi-exécutions sélectionnés en une seule réponse plus solide.`,"multirun.fusion.provider.placeholder":`Fournisseur`,"multirun.fusion.model.placeholder":`Modèle`,"multirun.fusion.sources.label":`Sources ({count})`,"multirun.fusion.actions.cancel":`Annuler`,"multirun.fusion.actions.start":`Démarrer la fusion`,"multirun.fusion.actions.starting":`Démarrage...`,"multirun.fusion.toast.noOutputs":`Aucune sortie assistante trouvée pour fusionner.`,"multirun.fusion.toast.failed":`Échec du démarrage de la fusion.`,"multirun.launcher.attachments.label":`Fichiers`,"multirun.launcher.actions.startWithRunCount":`Démarrer ({count} s'exécute)`,"multirun.launcher.groups.addGroup":`Ajouter un groupe d'exécution`,"multirun.launcher.groups.removeGroup":`Supprimer le groupe`,"multirun.launcher.groups.groupLabel":`Groupe d'exécution {index}`,"multirun.launcher.groups.template.label":`Modèle`,"multirun.launcher.groups.template.placeholder":`Sélectionnez un modèle...`,"multirun.launcher.groups.template.custom":`Prompt personnalisé`,"multirun.launcher.groups.prompt.label":`Prompt`,"multirun.launcher.groups.prompt.placeholder":`Entrez le prompt pour ce groupe...`,"sessions.sidebar.header.actions.searchSessions":`Sessions de recherche`,"sessions.sidebar.header.actions.exitSelection":`Quitter la sélection`,"sessions.sidebar.header.actions.selectSessions":`Sélectionnez des sessions`,"sessions.sidebar.header.actions.sortProjects":`Trier les projets`,"sessions.sidebar.header.actions.sessionDisplayMode":`Actions de développement/réduction des projets`,"sessions.sidebar.header.displayMode.label":`Développer/réduire les projets`,"sessions.sidebar.header.displayMode.default":`Défaut`,"sessions.sidebar.header.displayMode.minimal":`Minimal`,"sessions.sidebar.header.displayMode.showRecent":`Afficher la section récente`,"sessions.sidebar.header.displayMode.collapseAll":`Tout réduire`,"sessions.sidebar.header.displayMode.expandAll":`Tout développer`,"sessions.sidebar.header.projectSort.manual":`Manuel`,"sessions.sidebar.header.projectSort.aToZ":`A → Z`,"sessions.sidebar.header.projectSort.zToA":`Z → A`,"sessions.sidebar.header.projectSort.dateAdded":`Les plus récentes`,"sessions.sidebar.header.projectSort.recent":`Récentes`,"sessions.sidebar.header.search.matchCountSingle":`Correspondance {count}`,"sessions.sidebar.header.search.matchCountPlural":`Correspondances {count}`,"sessions.sidebar.header.search.escapeHint":`Echap pour effacer`,"sessions.sidebar.header.search.placeholder":`Sessions de recherche...`,"sessions.sidebar.header.search.clear":`Effacer la recherche`,"sessions.sidebar.footer.actions.settings":`Paramètres`,"sessions.sidebar.footer.actions.shortcuts":`Raccourcis`,"sessions.sidebar.footer.actions.aboutOpenChamber":`À propos de OpenChamber`,"sessions.sidebar.footer.actions.update":`Mise à jour`,"sessions.sidebar.empty.noSessions.title":`Aucune session pour l'instant`,"sessions.sidebar.empty.noSessions.description":`Créez votre première session pour commencer à coder.`,"sessions.sidebar.empty.noMatches.title":`Aucune session correspondante`,"sessions.sidebar.empty.noMatches.description":`Essayez un autre titre, branche, dossier ou chemin.`,"sessions.sidebar.activity.recentTitle":`Récent`,"sessions.sidebar.projectsTitle":`Projets`,"sessions.sidebar.projectsSyncing":`Synchronisation des sessions…`,"sessions.sidebar.project.loadingSessions":`Chargement des sessions…`,"sessions.switcher.openAria":`Sélecteur de session ouvert`,"sessions.switcher.empty":`Aucune session récente`,"sessions.switcher.draftTitle":`Nouvelle session`,"sessions.sidebar.updateCheck.errorTitle":`Échec de la vérification des mises à jour`,"sessions.sidebar.updateCheck.latestVersion":`Vous êtes sur la dernière version`,"sessions.sidebar.directory.errorAddProjectTitle":`Échec de l'ajout du projet`,"sessions.sidebar.directory.errorAddProjectDescription":`Veuillez sélectionner un répertoire valide.`,"sessions.sidebar.directory.errorSelectDirectoryTitle":`Échec de la sélection du répertoire`,"sessions.sidebar.folder.newFolderName":`Nouveau dossier`,"sessions.sidebar.bulkActions.delete":`Supprimer`,"sessions.sidebar.bulkActions.archive":`Archive`,"sessions.sidebar.bulkActions.selectedCount":`{count} sélectionné`,"sessions.sidebar.bulkActions.moveToFolder":`Déplacer vers le dossier`,"sessions.sidebar.bulkActions.deletedSingle":`Session {count} supprimée`,"sessions.sidebar.bulkActions.deletedPlural":`Sessions {count} supprimées`,"sessions.sidebar.bulkActions.failedDeleteSingle":`Échec de la suppression de la session {count}`,"sessions.sidebar.bulkActions.failedDeletePlural":`Échec de la suppression des sessions {count}`,"sessions.sidebar.bulkActions.archivedSingle":`Session {count} archivée`,"sessions.sidebar.bulkActions.archivedPlural":`Sessions {count} archivées`,"sessions.sidebar.bulkActions.failedArchiveSingle":`Échec de l'archivage de la session {count}`,"sessions.sidebar.bulkActions.failedArchivePlural":`Échec de l'archivage des sessions {count}`,"sessions.sidebar.bulkActions.archiveUndoFailed":`Échec de la restauration de {count} sessions`,"sessions.sidebar.undo":`Annuler`,"sessions.sidebar.openSettings":`Paramètres`,"sessions.sidebar.folders.none":`Aucun dossier pour l'instant`,"sessions.sidebar.folders.newFolderEllipsis":`Nouveau dossier...`,"sessions.sidebar.folders.removeFromFolder":`Supprimer du dossier`,"sessions.sidebar.folders.moveToFolder":`Déplacer vers le dossier`,"sessions.sidebar.project.actions.newWorktree":`Nouveau worktree`,"sessions.sidebar.project.actions.newWorktreeEllipsis":`Nouveau worktree...`,"sessions.sidebar.project.actions.projectMenu":`Menu Projet`,"sessions.sidebar.project.actions.syncSessions":`Synchroniser les sessions`,"sessions.sidebar.project.actions.newSession":`Nouvelle session`,"sessions.sidebar.project.actions.closeProject":`Fermer le projet`,"sessions.sidebar.project.actions.edit":`Modifier`,"sessions.sidebar.project.actions.newDraftSession":`Nouveau brouillon de session`,"sessions.sidebar.session.menu.rename":`Rebaptiser`,"sessions.sidebar.session.rename.save":`Enregistrer le nom de la session`,"sessions.sidebar.session.rename.cancel":`Annuler la session de changement de nom`,"sessions.sidebar.session.rename.smartTitle":`Générer les titres automatiquement`,"sessions.sidebar.session.menu.unpin":`Désépingler`,"sessions.sidebar.session.menu.pin":`Épingler`,"sessions.sidebar.session.menu.share":`Partager`,"sessions.sidebar.session.menu.copied":`Copié`,"sessions.sidebar.session.menu.copyLink":`Copier le lien`,"sessions.sidebar.session.menu.unshare":`Annuler le partage`,"sessions.sidebar.session.menu.exportMarkdown":`Exporter le Markdown`,"sessions.sidebar.session.menu.refreshTranscript":`Synchroniser les messages`,"sessions.sidebar.session.menu.refreshTranscriptSuccess":`Messages synchronisés`,"sessions.sidebar.session.menu.refreshTranscriptFailed":`Échec de la synchronisation des messages`,"sessions.sidebar.session.menu.runFusion":`Exécuter la fusion`,"sessions.sidebar.session.menu.openInSidePanel":`Ouvrir dans le panneau latéral`,"sessions.sidebar.session.actions.openInEditor":`Ouvrir dans l'éditeur`,"sessions.sidebar.session.menu.betaBadge":`bêta`,"sessions.sidebar.session.menu.label":`Menu des sessions`,"sessions.sidebar.session.untitled":`Session sans titre`,"sessions.sidebar.session.export.nothingToExport":`Rien à exporter`,"sessions.sidebar.session.export.success":`Session exportée`,"sessions.sidebar.session.export.failedRevealPath":`Impossible de révéler le chemin`,"sessions.sidebar.session.export.untitledSubagent":`Sous-agent sans titre`,"sessions.sidebar.session.export.skippedSubtaskSingle":`Session exportée, mais tâche de sous-agent {count} ignorée qui n'a pas pu être chargée.`,"sessions.sidebar.session.export.skippedSubtaskMany":`Session exportée, mais tâches du sous-agent {count} ignorées qui n'ont pas pu être chargées.`,"sessions.sidebar.session.export.dialog.title":`Exporter le Markdown`,"sessions.sidebar.session.export.dialog.descriptionSingle":`Cette session comporte une tâche de sous-agent {count}. L'inclure dans l'exportation ?`,"sessions.sidebar.session.export.dialog.descriptionMany":`Cette session comporte des tâches de sous-agent {count}. Les inclure dans l'exportation ?`,"sessions.sidebar.session.export.dialog.includeSubtasks":`Inclure les tâches des sous-agents`,"sessions.sidebar.session.export.dialog.confirm":`Exporter`,"sessions.sidebar.session.status.active":`Session active`,"sessions.sidebar.session.status.unread":`Mises à jour non lues`,"sessions.sidebar.session.status.pinned":`Session épinglée`,"sessions.sidebar.session.actions.pinned":`Épinglé`,"sessions.sidebar.session.status.permissionRequired":`Autorisation requise`,"sessions.sidebar.session.status.questionRequired":`Question en attente`,"sessions.sidebar.session.subsessions.collapse":`Réduire les sous-sessions`,"sessions.sidebar.session.subsessions.expand":`Développer les sous-sessions`,"sessions.sidebar.dialogs.deleteSession.title":`Supprimer la session ?`,"sessions.sidebar.dialogs.archiveSession.title":`Session d'archivage ?`,"sessions.sidebar.dialogs.deleteSession.withOneSubtask":`"{sessionTitle}" et sa sous-tâche {count} seront définitivement supprimées.`,"sessions.sidebar.dialogs.deleteSession.withManySubtasks":`"{sessionTitle}" et ses sous-tâches {count} seront définitivement supprimées.`,"sessions.sidebar.dialogs.archiveSession.withOneSubtask":`"{sessionTitle}" et sa sous-tâche {count} seront archivées.`,"sessions.sidebar.dialogs.archiveSession.withManySubtasks":`"{sessionTitle}" et ses sous-tâches {count} seront archivées.`,"sessions.sidebar.dialogs.deleteSession.single":`"{sessionTitle}" sera définitivement supprimé.`,"sessions.sidebar.dialogs.archiveSession.single":`"{sessionTitle}" sera archivé.`,"sessions.sidebar.dialogs.neverAsk":`Ne demandez jamais`,"sessions.sidebar.dialogs.cancel":`Annuler`,"sessions.sidebar.dialogs.deleteSession.titleAction":`Supprimer la session`,"sessions.sidebar.dialogs.deleteSessions.titleAction":`Supprimer des sessions`,"sessions.sidebar.dialogs.deleteSessions.title":`Supprimer des sessions ?`,"sessions.sidebar.dialogs.archiveSessions.title":`Archiver des sessions ?`,"sessions.sidebar.dialogs.deleteSessions.singleDescription":`La session {count} sera définitivement supprimée.`,"sessions.sidebar.dialogs.deleteSessions.pluralDescription":`Les sessions {count} seront définitivement supprimées.`,"sessions.sidebar.dialogs.archiveSessions.singleDescription":`La session {count} sera archivée.`,"sessions.sidebar.dialogs.archiveSessions.pluralDescription":`Les sessions {count} seront archivées.`,"sessions.sidebar.dialogs.deleteFolder.title":`Supprimer le dossier ?`,"sessions.sidebar.dialogs.deleteFolder.withOneSubfolder":`"{folderName}" sera supprimé avec le sous-dossier {count}. Les sessions à l’intérieur ne seront pas supprimées.`,"sessions.sidebar.dialogs.deleteFolder.withManySubfolders":`"{folderName}" sera supprimé avec les sous-dossiers {count}. Les sessions à l’intérieur ne seront pas supprimées.`,"sessions.sidebar.dialogs.deleteFolder.withContentsNoSubfolders":`"{folderName}" sera supprimé. Les sessions à l’intérieur ne seront pas supprimées.`,"sessions.sidebar.dialogs.deleteFolder.single":`"{folderName}" sera définitivement supprimé.`,"sessions.sidebar.dialogs.deleteResult.singleFailedToDelete":`La session {count} n'a pas pu être supprimée.`,"sessions.sidebar.dialogs.deleteResult.manyFailedToDelete":`Les sessions {count} n'ont pas pu être supprimées.`,"sessions.sidebar.dialogs.deleteResult.singleFailedToArchive":`La session {count} n'a pas pu être archivée.`,"sessions.sidebar.dialogs.deleteResult.manyFailedToArchive":`Les sessions {count} n'ont pas pu être archivées.`,"sessions.sidebar.dialogs.deleteResult.removedFromDate":`Suppression de toutes les sessions de {dateLabel}.`,"sessions.sidebar.dialogs.deleteResult.tryAgain":`Veuillez réessayer dans un instant.`,"sessions.sidebar.dialogs.worktreeDelete.descriptionNoLinked":`Cela supprime le worktree sélectionné.`,"sessions.sidebar.dialogs.worktreeDelete.descriptionOneLinked":`Cela supprime le worktree sélectionné et archive la session liée {count}.`,"sessions.sidebar.dialogs.worktreeDelete.descriptionManyLinked":`Cela supprime le worktree sélectionné et archive les {count} sessions liées.`,"sessions.sidebar.dialogs.sessionDelete.descriptionOne":`Cette action supprime définitivement 1 session.`,"sessions.sidebar.dialogs.sessionDelete.descriptionOneWithDate":`Cette action supprime définitivement 1 session de {dateLabel}.`,"sessions.sidebar.dialogs.sessionDelete.descriptionMany":`Cette action supprime définitivement les sessions {count}.`,"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate":`Cette action supprime définitivement les sessions {count} de {dateLabel}.`,"sessions.sidebar.dialogs.sessionList.more":`+{count} plus`,"sessions.sidebar.session.share.successTitle":`Session partagée`,"sessions.sidebar.session.share.successDescription":`Vous pouvez copier le lien depuis le menu.`,"sessions.sidebar.session.share.error":`Impossible de partager la session`,"sessions.sidebar.session.share.copyUrlError":`Échec de la copie de URL`,"sessions.sidebar.session.unshare.success":`Session non partagée`,"sessions.sidebar.session.unshare.error":`Impossible d'annuler le partage de session`,"sessions.sidebar.session.delete.success":`Session supprimée`,"sessions.sidebar.session.delete.error":`Échec de la suppression de la session`,"sessions.sidebar.session.archive.success":`Session archivée`,"sessions.sidebar.session.archive.error":`Échec de l'archivage de la session`,"sessions.sidebar.session.archive.undoFailed":`Échec de l'annulation de l'archivage`,"sessions.sidebar.group.pr.checksPassed":`Contrôles {success}/{total} réussis`,"sessions.sidebar.group.pr.failingCount":`Échec de {count}`,"sessions.sidebar.group.pr.pendingCount":`{count} en attente`,"sessions.sidebar.group.pr.conflictsOrBlocked":`Conflits ou blocage`,"sessions.sidebar.group.pr.mergeable":`Fusionnable`,"sessions.sidebar.group.pr.mergeState":`État de fusion : {state}`,"sessions.sidebar.group.pr.status.merged":`Fusionné`,"sessions.sidebar.group.pr.status.readyToMerge":`Prêt à fusionner`,"sessions.sidebar.group.pr.status.open":`PR ouverte`,"sessions.sidebar.group.pr.status.mergeConflicts":`Fusionner les conflits`,"sessions.sidebar.group.pr.status.mergeBlocked":`Fusion bloquée`,"sessions.sidebar.group.pr.status.draft":`PR en brouillon`,"sessions.sidebar.group.pr.status.closed":`Fermé`,"sessions.sidebar.group.empty.noArchivedSessions":`Aucune session archivée pour l'instant.`,"sessions.sidebar.group.empty.noSessionsInWorkspace":`Aucune session dans cet espace de travail pour le moment.`,"sessions.sidebar.group.showMoreSingle":`Afficher plus de session sur {count}`,"sessions.sidebar.group.showMorePlural":`Afficher {count} plus de sessions`,"sessions.sidebar.group.showFewer":`Moins`,"sessions.sidebar.group.expandAria":`Développer {label}`,"sessions.sidebar.group.collapseAria":`Réduire {label}`,"sessions.sidebar.group.actions.deleteArchivedInGroupAria":`Supprimer les sessions archivées dans {label}`,"sessions.sidebar.group.actions.deleteArchivedSessions":`Supprimer les sessions archivées`,"sessions.sidebar.group.actions.deleteGroupAria":`Supprimer {label}`,"sessions.sidebar.group.actions.deleteWorktree":`Supprimer ce worktree`,"sessions.sidebar.group.actions.newDraftInGroupAria":`Nouvelle session de brouillon dans {label}`,"sessions.sidebar.grouping.projectRoot":`racine du projet`,"sessions.sidebar.grouping.projectRootWithBranch":`racine du projet : {branch}`,"sessions.sidebar.grouping.archived":`archivé`,"sessions.sidebar.grouping.archivedDescription":`Sessions archivées et non attribuées`,"sessions.sidebar.folderItem.expandAria":`Développer le dossier {folderName}`,"sessions.sidebar.folderItem.collapseAria":`Réduire le dossier {folderName}`,"sessions.sidebar.folderItem.namePlaceholder":`Nom du dossier`,"sessions.sidebar.folderItem.newSessionAria":`Nouvelle session dans {folderName}`,"sessions.sidebar.folderItem.newSubfolderAria":`Nouveau sous-dossier dans {folderName}`,"sessions.sidebar.folderItem.newSubfolder":`Nouveau sous-dossier`,"sessions.sidebar.folderItem.renameAria":`Renommer le dossier {folderName}`,"sessions.sidebar.folderItem.deleteArchivedInFolderAria":`Supprimer les sessions archivées dans le dossier {folderName}`,"sessions.sidebar.folderItem.deleteFolderAria":`Supprimer le dossier {folderName}`,"sessions.sidebar.folderItem.emptyFolder":`Dossier vide`,"sessions.sidebar.sessionDialogs.ok":`D'ACCORD`,"sessions.sidebar.sessionDialogs.linkedSessionSingle":`Session liée`,"sessions.sidebar.sessionDialogs.linkedSessionPlural":`Sessions liées`,"sessions.sidebar.sessionDialogs.delete.note":`Les répertoires Worktree restent intacts. Les sous-sessions liées aux sessions sélectionnées seront également supprimées.`,"sessions.sidebar.sessionDialogs.directory.errorSelectTitle":`Échec de la sélection du répertoire`,"sessions.sidebar.sessionDialogs.directory.errorOpenTitle":`Échec de l'ouverture du répertoire`,"sessions.sidebar.sessionDialogs.directory.errorOpenDescription":`Desktop n'a pas pu accorder l'accès aux fichiers.`,"sessions.sidebar.sessionDialogs.directory.errorAddProjectTitle":`Échec de l'ajout du projet`,"sessions.sidebar.sessionDialogs.directory.errorAddProjectDescription":`Veuillez sélectionner un chemin de répertoire valide.`,"sessions.sidebar.sessionDialogs.worktree.errorRemoveTitle":`Échec de la suppression du worktree`,"sessions.sidebar.sessionDialogs.worktree.removedTitle":`Worktree supprimé`,"sessions.sidebar.sessionDialogs.worktree.removed":`Worktree supprimé.`,"sessions.sidebar.sessionDialogs.worktree.removedWithRemote":`Worktree et branche du dépôt distant supprimés.`,"sessions.sidebar.sessionDialogs.worktree.attachedArchived":`Worktree ci-joint archivé.`,"sessions.sidebar.sessionDialogs.worktree.attachedArchivedPlural":`Worktrees joints archivés.`,"sessions.sidebar.sessionDialogs.worktree.archivedAndRemoteRemoved":`Worktrees archivés et branches du dépôt distant supprimées.`,"sessions.sidebar.sessionDialogs.worktree.label":`Worktree`,"sessions.sidebar.sessionDialogs.worktree.pathUnavailable":`Chemin du worktree indisponible.`,"sessions.sidebar.sessionDialogs.worktree.uncommittedWarning":`Les modifications non validées seront ignorées.`,"sessions.sidebar.sessionDialogs.actions.deleteRemoteBranch":`Supprimer la branche du dépôt distant`,"sessions.sidebar.sessionDialogs.actions.remoteBranchInfoUnavailable":`Informations sur la branche du dépôt distant indisponibles`,"sessions.sidebar.sessionDialogs.actions.deleteLocalBranch":`Supprimer la branche locale`,"sessions.sidebar.sessionDialogs.actions.deleting":`Suppression…`,"sessions.sidebar.sessionDialogs.actions.deleteWorktree":`Supprimer le worktree`,"gitView.branch.branchToMergeInto":`Branche à fusionner avec {branch}`,"gitView.branch.branchToRebaseOnto":`Branche sur laquelle rebaser`,"gitView.branch.create":`Créer une nouvelle branche...`,"gitView.branch.currentBadge":`Actuel`,"gitView.branch.currentBranchFallback":`branche actuelle`,"gitView.branch.currentBranchTooltip":`Branche actuelle`,"gitView.branch.detachedHead":`HEAD détaché`,"gitView.branch.dialogDescriptionPrefix":`Choisissez comment intégrer une autre branche`,"gitView.branch.empty":`Aucune branche trouvée.`,"gitView.branch.localBranches":`Branches locales`,"gitView.branch.mergeDescription":`Créez un commit de fusion et conservez l’historique des branches.`,"gitView.branch.mergeRebase":`Fusionner/Rebase`,"gitView.branch.mergeRebaseTooltip":`Mettez à jour cette branche depuis une autre branche.`,"gitView.branch.mergingInProgress":`Fusion en cours`,"gitView.branch.namePlaceholder":`Nom de la branche`,"gitView.branch.newBranchPlaceholder":`Nouveau nom de branche`,"gitView.branch.noLocalBranches":`Aucune branche locale`,"gitView.branch.noRemoteBranches":`Aucune branche du dépôt distant`,"gitView.branch.operation":`Opération`,"gitView.branch.operationCompleted":`Opération terminée`,"gitView.branch.operationFailed":`Échec de l'opération`,"gitView.branch.pushToPrefix":`Appuyer pour préfixer`,"gitView.branch.pushToSuffix":`Appuyer pour suffixer`,"gitView.branch.rebaseDescription":`Rejouez vos commits au-dessus de la branche sélectionnée.`,"gitView.branch.rebasingInProgress":`Rebasage en cours`,"gitView.branch.remoteBranches":`Branches du dépôt distant`,"gitView.branch.renameTitle":`Renommer la branche`,"gitView.branch.renameSave":`Enregistrer le nom de la branche`,"gitView.branch.renameSaving":`Enregistrer le nom de la branche`,"gitView.branch.renameCancel":`Annuler le changement de nom de la branche`,"gitView.branch.searchPlaceholder":`Rechercher des branches...`,"gitView.branch.selectBranch":`Sélectionnez une branche`,"gitView.branch.summaryMergeInfix":`dans`,"gitView.branch.summaryMergePrefix":`Cela fusionnera`,"gitView.branch.summaryRebaseInfix":`sur`,"gitView.branch.summaryRebasePrefix":`Cela va rebaser`,"gitView.branch.updateDescriptionPrefix":`Apportez les dernières modifications dans`,"gitView.branch.updateTitle":`Mettre à jour la branche`,"gitView.changes.changedFilesAria":`Fichiers modifiés`,"gitView.changes.clearSelectionAria":`Effacer la sélection de fichiers`,"gitView.changes.collapseDirectoryAria":`Réduire le répertoire`,"gitView.changes.expandDirectoryAria":`Développer le répertoire`,"gitView.changes.revertAll":`Tout rétablir`,"gitView.changes.revertAllDescriptionPlural":`Rétablir toutes les modifications sélectionnées ?`,"gitView.changes.revertAllDescriptionSingle":`Rétablir la modification sélectionnée ?`,"gitView.changes.revertAllDialogTitle":`Annuler toutes les modifications ?`,"gitView.changes.revertFileAria":`Rétablir le fichier`,"gitView.changes.revertFileTooltip":`Annuler les modifications`,"gitView.changes.reverting":`Revenant...`,"gitView.changes.selectAllAria":`Sélectionnez tous les fichiers`,"gitView.changes.selectFileAria":`Sélectionner le fichier`,"gitView.changes.stagedTitle":`Mise en scène`,"gitView.changes.resizeSplitAria":`Redimensionner les modifications planifiées et non planifiées`,"gitView.changes.stageAllAria":`Organiser tous les changements`,"gitView.changes.stageDirectoryAria":`Ajoutez à l’index tous les changements dans {path}`,"gitView.changes.stageFileAria":`Ajouter à l’index {path}`,"gitView.changes.title":`Changements`,"gitView.changes.toggleDirectorySelectionAria":`Basculer la sélection du répertoire`,"gitView.changes.unstageAllAria":`Annuler toutes les modifications`,"gitView.changes.unstageDirectoryAria":`Annuler toutes les modifications dans {path}`,"gitView.changes.unstageFileAria":`Retirer de l’index {path}`,"gitView.commit.addGitmoji":`Ajouter un gitmoji`,"gitView.commit.aiHighlights.insertAria":`Insérer`,"gitView.commit.aiHighlights.insertTooltip":`Insérer une info-bulle`,"gitView.commit.aiHighlights.title":`Points forts`,"gitView.commit.commit":`Commettre`,"gitView.commit.commitAria":`Valider le commit`,"gitView.commit.committing":`S'engager...`,"gitView.commit.generate":`Générer`,"gitView.commit.generateAria":`Générer un message de commit`,"gitView.commit.messagePlaceholder":`Message de commit`,"gitView.commit.push":`Valider et synchroniser`,"gitView.commit.pushAria":`Valider et synchroniser`,"gitView.commit.pushing":`Synchronisation...`,"gitView.commit.selectFilesHint":`Sélectionnez les fichiers dans Modifications pour activer le commit.`,"gitView.commit.stageFilesHint":`Ajoutez des fichiers à l’index pour activer le commit.`,"gitView.commit.title":`Commettre`,"gitView.common.cancel":`Annuler`,"gitView.common.close":`Fermer`,"gitView.common.done":`Fait`,"gitView.common.processing":`Traitement...`,"gitView.common.reset":`Réinitialiser`,"gitView.conflict.abortOperation":`Abandonner l’opération`,"gitView.conflict.conflictedFiles":`Fichiers en conflit :`,"gitView.conflict.continueLater":`Continuer plus tard`,"gitView.conflict.detectedDescription":`Un conflit Git a été détecté.`,"gitView.conflict.detectedTitle":`Conflit détecté`,"gitView.conflict.errorLoadingDetails":`Erreur de chargement des détails`,"gitView.conflict.headInfo":`Informations HEAD :`,"gitView.conflict.loadFailed":`Échec du chargement`,"gitView.conflict.loading":`Chargement des détails du conflit...`,"gitView.conflict.noActiveSession":`Aucune session active`,"gitView.conflict.noActiveSessionDescription":`Ouvrez une session active pour continuer.`,"gitView.conflict.resolveCurrentSession":`Résoudre dans la session en cours`,"gitView.conflict.resolveNewSession":`Résoudre dans une nouvelle session`,"gitView.empty.cleanDescription":`Tous les changements ont été validés`,"gitView.empty.cleanTitle":`Worktree sans modifications`,"gitView.empty.pullBehindPlural":`Extraire les commits {count}`,"gitView.empty.pullBehindSingle":`Extraire le commit {count}`,"gitView.header.identityTooltip":`Identité Git`,"gitView.header.noIdentity":`Aucune identité`,"gitView.header.noProfiles":`Aucun profil disponible à appliquer.`,"gitView.header.repositoryViews":`Vues du dépôt`,"gitView.header.removeRemoteAria":`Supprimer le remote`,"gitView.header.removeRemoteTitle":`Supprimer le remote`,"gitView.header.upstreamSynced":`synchronisé`,"gitView.header.upstreamTooltip":`Par rapport au {target}.`,"gitView.header.upstreamTooltipTracking":`Par rapport au {target}. Les badges de synchronisation principaux reflètent toujours {tracking}.`,"gitView.history.actions.cancelButton":`Annuler`,"gitView.history.actions.checkout":`Basculer`,"gitView.history.actions.checkoutConfirm":`Basculer sur ce commit en HEAD détaché ?`,"gitView.history.actions.cherryPick":`Cherry-pick`,"gitView.history.actions.cherryPickConfirm":`Cherry-pick ce commit sur la branche actuelle ?`,"gitView.history.actions.conflictToastDescription":`Conflits dans : {files}. Résolvez manuellement et validez, ou abandonnez avec git Cherry-pick/revert --abort.`,"gitView.history.actions.conflictToastTitle":`Conflit`,"gitView.history.actions.confirmButton":`Confirmer`,"gitView.history.actions.createBranch":`Créer une branche ici`,"gitView.history.actions.createBranchConfirm":`Créer`,"gitView.history.actions.createBranchPlaceholder":`Nom de la branche`,"gitView.history.actions.detachedHead":`Checkout (HEAD détaché)`,"gitView.history.actions.merge":`Fusionner avec le courant`,"gitView.history.actions.mergeConfirm":`Fusionner ce commit dans la branche actuelle ?`,"gitView.history.actions.rebase":`Rebase sur ce commit`,"gitView.history.actions.rebaseConfirm":`Rebaser la branche actuelle sur ce commit ?`,"gitView.history.actions.reset":`Réinitialiser...`,"gitView.history.actions.resetHard":`Hard — annuler toutes les modifications`,"gitView.history.actions.resetHardConfirm":`Réinitialisation matérielle - HEAD se déplace, toutes les modifications non validées sont définitivement supprimées.`,"gitView.history.actions.resetHardConfirmButton":`Ignorer les modifications`,"gitView.history.actions.resetMixed":`Mixte\xA0–\xA0modifications hors index`,"gitView.history.actions.resetMixedConfirm":`Réinitialisation mixte - HEAD bouge, change hors index.`,"gitView.history.actions.resetSoft":`Soft — conserver l'index`,"gitView.history.actions.resetSoftConfirm":`Réinitialisation logicielle - HEAD se déplace, modifications dans l’index préservées.`,"gitView.history.actions.revert":`Revenir`,"gitView.history.actions.revertConfirm":`Organiser un retour à ce commit ?`,"gitView.history.binary":`Binaire`,"gitView.history.binaryNoDiff":`Fichier binaire — aucune différence disponible`,"gitView.history.commitsPlaceholder":`Rechercher des commits`,"gitView.history.copySha":`Copier SHA`,"gitView.history.diffError":`Échec du chargement du diff. Cliquez pour réessayer.`,"gitView.history.largeDiffDescription":`Le rendu peut être lent. Vous pouvez toujours voir la différence en cliquant ci-dessous.`,"gitView.history.largeDiffTitle":`Grand diff ({count} a modifié les lignes)`,"gitView.history.loadingDiff":`Chargement du différentiel...`,"gitView.history.loadingFiles":`Chargement des fichiers...`,"gitView.history.loadMore":`Charger plus`,"gitView.history.loadingMore":`Chargement...`,"gitView.history.logSize100":`Taille du journal\xA0100`,"gitView.history.logSize25":`Taille du journal25`,"gitView.history.logSize50":`Taille du journal50`,"gitView.history.noCommits":`Aucun commit trouvé`,"gitView.history.noFiles":`Aucun fichier`,"gitView.history.renamedNoDiff":`Fichier renommé\xA0–\xA0diff non pris en charge`,"gitView.history.renderDiffAnyway":`Rendre quand même`,"gitView.history.title":`Historique`,"gitView.graph.title":`Graphique`,"gitView.integrate.checking":`Vérification…`,"gitView.integrate.cherryPickAbortedToast":`Cherry-pick annulé`,"gitView.integrate.cherryPickConflictDescription":`Des conflits sont apparus pendant le Cherry-pick.`,"gitView.integrate.cherryPickConflictToast":`Conflits pendant le Cherry-pick`,"gitView.integrate.cherryPickContinueFailedToast":`Impossible de continuer le Cherry-pick`,"gitView.integrate.cherryPickFinishedToast":`Cherry-pick terminé`,"gitView.integrate.commitsMovedDescriptionPlural":`{count} commits déplacés`,"gitView.integrate.commitsMovedDescriptionSingle":`1 commit déplacé`,"gitView.integrate.commitsMovedToast":`Commits déplacés`,"gitView.integrate.commitsToMove":`Commits à déplacer`,"gitView.integrate.conflictsInFiles":`Conflits dans les fichiers`,"gitView.integrate.currentCommit":`Commit actuel`,"gitView.integrate.currentSession":`Session en cours`,"gitView.integrate.failedToMoveToast":`Échec du déplacement des commits`,"gitView.integrate.moreFiles":`Plus de fichiers`,"gitView.integrate.move":`Se déplacer`,"gitView.integrate.moveCommits":`Déplacer les commits`,"gitView.integrate.moving":`Déplacement…`,"gitView.integrate.newSession":`Nouvelle session`,"gitView.integrate.noActiveSession":`Aucune session active`,"gitView.integrate.noActiveSessionDescription":`Ouvrez une session active pour déplacer des commits.`,"gitView.integrate.noCommitsToMove":`Aucun commit à déplacer.`,"gitView.integrate.noCommitsToMoveToast":`Aucun commit à déplacer`,"gitView.integrate.previewUnavailable":`Aperçu indisponible`,"gitView.integrate.showAll":`Afficher tout`,"gitView.integrate.showLess":`Afficher moins`,"gitView.integrate.showingFirstCommits":`Affichage des premiers commits`,"gitView.integrate.target":`Cible`,"gitView.integrate.title":`Réintégrer les commits`,"gitView.integrate.toMoveCount":`Nombre de commits à déplacer`,"gitView.operation.abort":`Avorter`,"gitView.operation.continue":`Continuer`,"gitView.operation.inProgressTitle":`{operation} en cours`,"gitView.operation.merge":`Fusionner`,"gitView.operation.mergeInProgressWithHead":`Fusion de {head}`,"gitView.operation.mergingMessage":`Fusion : {message}`,"gitView.operation.rebase":`Rebase`,"gitView.operation.rebaseInProgress":`Rebase en cours`,"gitView.operation.rebasingOnto":`Rebaser {headName} sur {onto}`,"gitView.operation.resolveConflictsHint":`Résolvez les conflits, puis poursuivez l'opération.`,"gitView.operation.resolveWithAi":`Résoudre avec l'IA`,"gitView.stash.confirmButton":`Confirmer`,"gitView.stash.description":`Des modifications locales doivent être mises en stash pour continuer.`,"gitView.stash.mergeWith":`Fusionner avec`,"gitView.stash.rebaseOnto":`Rebase sur`,"gitView.stash.restoreAfterOperation":`Restaurer après l'opération`,"gitView.stash.restoreAria":`Restaurer le stash`,"gitView.stash.stepRestore":`Restaurez vos modifications cachées`,"gitView.stash.stepStash":`Cachez vos modifications non validées`,"gitView.stash.thisWill":`Cela va :`,"gitView.stash.title":`Modifications non validées`,"gitView.stashes.actions.apply":`Appliquer`,"gitView.stashes.actions.drop":`Drop`,"gitView.stashes.actions.pop":`Pop`,"gitView.stashes.actions.stashCurrent":`Mettre les modifications actuelles en stash`,"gitView.stashes.actions.stashCurrentWithCount":`Cacher les fichiers {count}`,"gitView.stashes.confirm.drop":`Supprimer {ref} ?`,"gitView.stashes.description":`Enregistrez, restaurez et nettoyez les stashes Git pour ce dépôt.`,"gitView.stashes.empty.list":`Aucun stash pour l'instant.`,"gitView.stashes.empty.search":`Aucun stash correspondant.`,"gitView.stashes.includeUntrackedHint":`Les fichiers non suivis sont inclus automatiquement.`,"gitView.stashes.fileCount":`Fichiers {count}`,"gitView.stashes.fileCountLoading":`compter les fichiers...`,"gitView.stashes.itemNumber":`#{number}`,"gitView.stashes.latestLabel":`Dernier`,"gitView.stashes.messagePlaceholder":`Nom du stash`,"gitView.stashes.searchPlaceholder":`Rechercher des stashes`,"gitView.stashes.title":`Stashes`,"gitView.stashes.toast.applyFailed":`Échec de l'application du cache`,"gitView.stashes.toast.applySuccess":`Stash appliqué`,"gitView.stashes.toast.createFailed":`Échec de la sauvegarde des modifications`,"gitView.stashes.toast.created":`Modifications cachées`,"gitView.stashes.toast.dropFailed":`Échec de la suppression du stash`,"gitView.stashes.toast.dropSuccess":`Stash supprimé`,"gitView.stashes.toast.loadFailed":`Échec du chargement des stashes`,"gitView.stashes.toast.noChanges":`Aucune modification locale à stocker`,"gitView.stashes.toast.popFailed":`Échec du pop du stash`,"gitView.stashes.toast.popSuccess":`Le stash a été pop`,"gitView.stashes.untitled":`Stash sans titre`,"gitView.sync.fetch":`Aller chercher`,"gitView.sync.fetchFromRemote":`Récupérer depuis {name}`,"gitView.sync.fetchTooltip":`Récupérer à distance`,"gitView.sync.commitOrStashTooltip":`Validez ou cachez vos modifications avant la synchronisation`,"gitView.sync.moreActionsAria":`Plus d'actions de synchronisation`,"gitView.sync.noRemoteTooltip":`Aucun dépôt distant n’est configuré`,"gitView.sync.pull":`Tirer`,"gitView.sync.pullTooltip":`Extraire les modifications`,"gitView.sync.pullTooltipBehind":`Tirer les modifications ({count} derrière)`,"gitView.sync.push":`Pousser`,"gitView.sync.pushTooltip":`Pousser les changements`,"gitView.sync.pushTooltipAhead":`Pousser les modifications ({count} en avance)`,"gitView.sync.sync":`synchroniser`,"gitView.sync.syncChanges":`Synchroniser les modifications`,"gitView.sync.syncChangesTooltip":`Modifications de synchronisation ({behind} vers le bas, {ahead} vers le haut)`,"gitView.sync.syncChangesWithCounts":`Modifications de synchronisation {behind}↓ {ahead}↑`,"gitView.sync.syncCounts":`{behind}↓ {ahead}↑`,"gitView.branch.actionsUnavailable":`Actions de branchement indisponibles dans cet état du dépôt`,"gitView.conflict.noDetailsAvailable":`Aucun détail de conflit disponible`,"gitView.empty.notGitRepository":`Ce répertoire n'est pas un dépôt Git`,"gitView.empty.notGitRepositoryDescription":`Initialisez Git dans ce répertoire ou ouvrez un dépôt.`,"gitView.empty.selectSessionOrDirectory":`Sélectionnez une session ou un répertoire pour afficher l'état de Git`,"gitView.empty.worktreeFeaturesUnavailable":`Les fonctionnalités Worktree ne sont pas disponibles dans ce mode d’espace de travail.`,"gitView.empty.worktreeSetupDescription":`Termine la configuration du worktree et prépare l'état du dépôt.`,"gitView.empty.worktreeSetupInProgress":`Configuration de worktree en cours`,"gitView.gitmoji.empty":`Aucun gitmoji trouvé`,"gitView.gitmoji.searchPlaceholder":`Rechercher des gitmoji...`,"gitView.gitmoji.title":`Insérer un gitmoji`,"gitView.history.dialogDescription":`Parcourez les commits récents et inspectez les fichiers modifiés.`,"gitView.loading.checkingRepository":`Vérification du dépôt...`,"gitView.loading.loading":`Chargement...`,"gitView.pr.actions.add":`Ajouter`,"gitView.pr.actions.cancelEditing":`Annuler la modification`,"gitView.pr.actions.cancelEditingAria":`Annuler la modification des PR`,"gitView.pr.actions.createPr":`Créer une PR`,"gitView.pr.actions.edit":`Modifier`,"gitView.pr.actions.editPr":`Modifier la PR`,"gitView.pr.actions.editPrAria":`Modifier la PR`,"gitView.pr.actions.hide":`Cacher`,"gitView.pr.actions.markReady":`Marquez prêt`,"gitView.pr.actions.markReadyAria":`Marquer la demande d'extraction comme prête à être examinée`,"gitView.pr.actions.mergePr":`Fusionner la PR`,"gitView.pr.actions.mergePrAria":`Fusionner la PR`,"gitView.pr.actions.openChecks":`Chèques ouverts`,"gitView.pr.actions.openChecksAria":`Ouvrir les chèques échoués`,"gitView.pr.actions.openComments":`Commentaires ouverts`,"gitView.pr.actions.openCommentsAria":`Ouvrir les commentaires de la PR`,"gitView.pr.actions.openOnGitHub":`Ouvert sur GitHub`,"gitView.pr.actions.openOnGitHubAria":`Ouvrir la PR sur GitHub`,"gitView.pr.actions.openSettings":`Ouvrir les paramètres`,"gitView.pr.actions.repo":`Dépôt`,"gitView.pr.actions.resolveFailedChecks":`Résoudre les contrôles échoués`,"gitView.pr.actions.resolveFailedChecksAria":`Envoyer les chèques échoués à l'agent`,"gitView.pr.actions.savePr":`Enregistrer la PR`,"gitView.pr.actions.savePrAria":`Enregistrer les modifications de la PR`,"gitView.pr.actions.sendCommentToAgent":`Envoyer le commentaire à l'agent`,"gitView.pr.actions.sendCommentToAgentAria":`Envoyer ce commentaire à l'agent`,"gitView.pr.actions.sendToAgent":`Envoyer à l'agent`,"gitView.pr.actions.shareComments":`Partager les commentaires`,"gitView.pr.actions.shareCommentsAria":`Envoyer les commentaires de la PR à l'agent`,"gitView.pr.actions.toggleDraftAria":`Basculer l'état de brouillon`,"gitView.pr.actions.refresh":`Actualiser le statut PR`,"gitView.pr.actions.refreshAria":`Actualiser l'état de la demande d'extraction`,"gitView.pr.additionalContext.added":`Ajouté`,"gitView.pr.additionalContext.hint":`Ajoutez un contexte supplémentaire pour une meilleure qualité d’évaluation.`,"gitView.pr.additionalContext.optional":`Facultatif`,"gitView.pr.additionalContext.title":`Contexte supplémentaire`,"gitView.pr.checkDetails.empty":`Aucun détail de chèque disponible`,"gitView.pr.checkDetails.title":`Détails de la vérification ayant échoué`,"gitView.pr.checkingStatus":`Vérification de l'état de la PR...`,"gitView.pr.checks.label":`chèques`,"gitView.pr.checks.completedLabel":`Complété`,"gitView.pr.checks.conclusionLabel":`Conclusion`,"gitView.pr.checks.startedLabel":`Commencé`,"gitView.pr.checks.statusLabel":`Statut`,"gitView.pr.checks.stepLabel":`Étape`,"gitView.pr.checks.steps":`Mesures`,"gitView.pr.comments.empty":`Aucun commentaire trouvé`,"gitView.pr.comments.generalContext":`Commentaire général`,"gitView.pr.comments.reviewContext":`Revoir le commentaire`,"gitView.pr.comments.title":`Commentaires`,"gitView.pr.comments.unknownAuthor":`Auteur inconnu`,"gitView.pr.createTitle":`Créer une PR`,"gitView.pr.draftMustBeReady":`Le brouillon de PR doit être marqué comme prêt avant la fusion.`,"gitView.pr.field.baseBranch":`Branche de base`,"gitView.pr.field.description":`Description`,"gitView.pr.field.draft":`Brouillon`,"gitView.pr.field.title":`Titre`,"gitView.pr.githubNotConnected":`GitHub n'est pas connecté`,"gitView.pr.loadingDescription":`Chargement de la description de la PR...`,"gitView.pr.mergeMethod.merge":`Créer un commit de fusion`,"gitView.pr.mergeMethod.rebase":`Rebase et fusionner`,"gitView.pr.mergeMethod.squash":`Écraser et fusionner`,"gitView.pr.noDescription":`Aucune description`,"gitView.pr.noMergePermission":`Vous n'êtes pas autorisé à fusionner cette demande d'extraction.`,"gitView.pr.notMergeable":`Non fusionnable`,"gitView.pr.numberLabel":`PR #{number}`,"gitView.pr.placeholder.additionalContext":`Toute contrainte, note de déploiement ou contexte du réviseur...`,"gitView.pr.placeholder.description":`Décrivez le changement...`,"gitView.pr.placeholder.main":`Résumez votre PR`,"gitView.pr.placeholder.selectBaseBranch":`Sélectionnez la branche de base`,"gitView.pr.placeholder.title":`Titre de la PR`,"gitView.pr.placeholder.whatChanged":`Qu'est-ce qui a changé et pourquoi ?`,"gitView.pr.statusUnavailable":`Statut PR indisponible`,"gitView.pr.toast.baseBranchRequired":`Sélectionnez une branche de base`,"gitView.pr.toast.baseMustDifferFromHead":`La branche de base doit différer de la branche actuelle`,"gitView.pr.toast.createPrFailed":`Échec de la création de la PR`,"gitView.pr.toast.generateDescriptionFailed":`Échec de la génération de la description de la PR`,"gitView.pr.toast.githubApiUnavailable":`GitHub API n'est pas disponible`,"gitView.pr.toast.loadCheckDetailsFailed":`Échec du chargement des détails du chèque`,"gitView.pr.toast.loadChecksFailed":`Échec du chargement des vérifications de la PR`,"gitView.pr.toast.loadCommentsFailed":`Échec du chargement des commentaires`,"gitView.pr.toast.loadPrCommentsFailed":`Échec du chargement des commentaires de la PR`,"gitView.pr.toast.markReadyFailed":`Impossible de marquer la PR comme prête`,"gitView.pr.toast.markedReady":`PR marquée comme prête pour relecture`,"gitView.pr.toast.mergeFailed":`Échec de la fusion de la PR`,"gitView.pr.toast.noActiveSession":`Aucune session de chat active`,"gitView.pr.toast.noActiveSessionDescription":`Ouvrez ou créez une session de discussion pour envoyer du contexte à un agent.`,"gitView.pr.toast.noFailedChecks":`Aucun chèque échoué trouvé`,"gitView.pr.toast.noModelSelected":`Sélectionnez d'abord un modèle`,"gitView.pr.toast.noPrComments":`Aucun commentaire de PR trouvé`,"gitView.pr.toast.prCreated":`PR créée`,"gitView.pr.toast.prMerged":`PR fusionnée`,"gitView.pr.toast.prNotMerged":`La PR n'a pas été fusionnée`,"gitView.pr.toast.prUpdated":`PR mise à jour`,"gitView.pr.toast.sendMessageFailed":`Échec de l'envoi du message à l'agent`,"gitView.pr.toast.titleRequired":`Le titre est requis`,"gitView.pr.toast.updatePrFailed":`Échec de la mise à jour de la PR`,"gitView.pullRequest.createHint":`Créez et gérez les PR depuis cette branche.`,"gitView.pullRequest.availableOnFeatureBranches":`Disponible lorsque la branche actuelle peut ouvrir une PR.`,"gitView.pullRequest.title":`PR`,"gitView.tabs.commit":`Commettre`,"gitView.tabs.pr":`PR`,"gitView.tabs.update":`Mise à jour`,"gitView.tabs.worktree":`Worktree`,"gitView.toast.abortOperationFailed":`Échec de l'annulation de l'opération`,"gitView.toast.appliedIdentity":`Identité appliquée : {name}`,"gitView.toast.applyIdentityFailed":`Échec de l'application de l'identité`,"gitView.toast.branchCreatedLocally":`Branche créée localement, mais n'a pas pu être configurée en amont.`,"gitView.toast.cannotCheckout":`Impossible de basculer sur la branche : {reason}`,"gitView.toast.cannotCreateBranch":`Impossible de créer une branche : {reason}`,"gitView.toast.cannotRemoveOriginRemote":`Impossible de supprimer le dépôt distant origin`,"gitView.toast.cannotRenameBranch":`Impossible de renommer la branche : {reason}`,"gitView.toast.checkedOut":`J'ai vérifié {name}`,"gitView.toast.checkoutFailed":`Échec du checkout de {name}`,"gitView.toast.commitCreated":`Commit créé`,"gitView.toast.commitHashCopied":`Hachage du commit copié`,"gitView.toast.continueOperationFailed":`Échec de la poursuite de l'opération`,"gitView.toast.copyFailed":`Échec de la copie`,"gitView.toast.createBranchFailed":`Échec de la création de la branche`,"gitView.toast.createCommitFailed":`Échec de la création du commit`,"gitView.toast.createdBranch":`Branche créée {name}`,"gitView.toast.enterCommitMessage":`Entrez un message de commit`,"gitView.toast.fetchedFromRemote":`Récupéré depuis {name}`,"gitView.toast.generateCommitMessageFailed":`Échec de la génération du message de commit`,"gitView.toast.mergeAborted":`Fusion interrompue`,"gitView.toast.mergeCompleted":`Fusion terminée`,"gitView.toast.mergeConflictsDetected":`Conflits de fusion détectés`,"gitView.toast.mergedIntoBranch":`Fusion de {branch} dans {currentBranch}`,"gitView.toast.pulledFilesPlural":`Récupération de {count} fichiers depuis {name}`,"gitView.toast.pulledFilesSingle":`Récupération de {count} fichier depuis {name}`,"gitView.toast.pushedToUpstream":`Poussé vers {name}`,"gitView.toast.commitOrStashBeforeSync":`Validez ou cachez vos modifications avant la synchronisation`,"gitView.toast.alreadyUpToDate":`Déjà à jour`,"gitView.toast.syncedPulledPluralAndPushed":`Extrait les fichiers {count} de {name} et poussé vers l'amont`,"gitView.toast.syncedPulledSingleAndPushed":`Récupération de {count} fichier depuis {name} puis push vers l’amont`,"gitView.toast.syncedChanges":`Modifications synchronisées`,"gitView.toast.rebaseAborted":`Rebase abandonné`,"gitView.toast.rebaseConflictsDetected":`Conflits de rebase détectés`,"gitView.toast.rebaseStepCompleted":`Ajouter à l’index de rebase terminée`,"gitView.toast.rebasedOntoBranch":`Rebasage de {currentBranch} sur {branch}`,"gitView.toast.refreshRepositoryFailed":`Échec de l'actualisation du dépôt`,"gitView.toast.remoteNameRequired":`Le nom du dépôt distant est requis`,"gitView.toast.removedRemote":`Remote supprimé\xA0: {name}`,"gitView.toast.renameBranchFailed":`Échec du renommage de {oldName} en {newName}`,"gitView.toast.renamedBranch":`Renommé {oldName} en {newName}`,"gitView.toast.restoreStashFailed":`Échec de la restauration du cache`,"gitView.toast.restoreStashManually":`Cache restauré manuellement requis`,"gitView.toast.revertFailed":`Échec de l'annulation des modifications`,"gitView.toast.revertedFile":`{path} inversé`,"gitView.toast.revertedFilesPlural":`Fichiers {count} rétablis`,"gitView.toast.revertedFilesSingle":`Fichier {count} rétabli`,"gitView.toast.revertedSomePlural":`Fichiers {success} annulés, échec de {failed}`,"gitView.toast.revertedSomeSingle":`Fichier {success} rétabli, échec de {failed}`,"gitView.toast.stageFileFailed":`Échec de l'ajout des modifications à l'index`,"gitView.toast.stageFileToCommit":`Préparez au moins un fichier à valider`,"gitView.toast.stageFileToDescribe":`Mettre en scène au moins un fichier à décrire`,"gitView.toast.selectFileToCommit":`Sélectionnez au moins un fichier à valider`,"gitView.toast.selectFileToDescribe":`Sélectionnez au moins un fichier à décrire`,"gitView.toast.stashedRestored":`Modifications cachées restaurées`,"gitView.toast.syncActionFailed":`Échec du {action}`,"gitView.toast.unstageFileFailed":`Échec de l'annulation du transfert des modifications`,"gitView.toast.upstreamSet":`Réglé en amont pour {branch} à {remote}`,"gitView.worktree.availableInWorktreeMode":`Disponible uniquement en mode worktree`,"contextPanel.mode.chat":`Chat`,"contextPanel.mode.files":`Fichiers`,"contextPanel.mode.diff":`Changements`,"contextPanel.mode.stagedDiff":`Différence par étapes`,"contextPanel.mode.workingDiff":`Différentiel de travail`,"contextPanel.mode.plan":`Plan`,"contextPanel.mode.context":`Contexte`,"contextPanel.mode.preview":`Aperçu`,"contextPanel.mode.browser":`Navigateur`,"contextPanel.browser.open":`Ouvrir le panneau du navigateur`,"contextPanel.browser.addressAria":`Adresse du navigateur`,"contextPanel.browser.empty":`Navigateur Internet`,"contextPanel.browser.emptyHint":`Entrez une adresse ci-dessus pour commencer à naviguer sur le Web`,"contextPanel.tab.closeTabAria":`Fermer l'onglet {label}`,"contextPanel.actions.collapsePanel":`Réduire le panneau`,"contextPanel.actions.expandPanel":`Agrandir le panneau`,"contextPanel.actions.closePanel":`Fermer le panneau`,"contextPanel.actions.resizePanelAria":`Redimensionner le panneau contextuel`,"contextPanel.iframe.sessionChatTitle":`Session de discussion {sessionID}`,"contextPanel.preview.actions.reload":`Recharger l'aperçu`,"contextPanel.preview.actions.openExternal":`Ouvrir dans le navigateur`,"contextPanel.preview.actions.retry":`Réessayer`,"contextPanel.preview.iframeTitle":`Aperçu`,"contextPanel.preview.invalidUrl":`L'aperçu nécessite un http(s) URL valide.`,"contextPanel.preview.empty":`Pas d'aperçu URL`,"contextPanel.preview.loading":`Connexion du proxy d'aperçu...`,"contextPanel.preview.proxyError":`Impossible de démarrer le proxy d'aperçu.`,"contextPanel.preview.upstreamUnreachable":`Le serveur de développement ne répond pas.`,"contextPanel.preview.upstreamUnreachableHint":`Assurez-vous que votre serveur de développement est toujours en cours d'exécution, puis réessayez.`,"contextPanel.preview.startingServer":`Démarrage du serveur de développement...`,"contextPanel.preview.startingServerHint":`En attente que le serveur accepte les connexions.`,"contextPanel.preview.title":`Aperçu`,"contextPanel.preview.description":`Utilisez les actions du projet ou un bouton Aperçu du terminal pour ouvrir un aperçu.`,"contextPanel.preview.startPreview":`Démarrer l'aperçu`,"contextPanel.preview.starting":`Démarrage...`,"contextPanel.preview.noDevServer":`Aucune commande de serveur de développement trouvée. Configurez une action de projet ou ajoutez un script "dev" à package.json.`,"contextPanel.preview.startFailed":`Échec du démarrage du serveur d'aperçu.`,"contextPanel.preview.serverExited":`Le serveur de développement s'est arrêté de manière inattendue.`,"contextPanel.preview.noUrlDetected":`Le serveur de développement a démarré, mais aucun URL n'a été détecté dans sa sortie. Ouvrez l'onglet Aperçu du terminal pour vérifier les journaux.`,"contextPanel.preview.serverExitedWithLog":`Le serveur de développement s'est arrêté de manière inattendue. Dernière sortie :
7
+ Utilisez @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 «\xA0{name}\xA0» ?`,"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 «\xA0{name}\xA0» ?`,"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 «\xA0Ajouter un fichier\xA0» 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 «\xA0{path}\xA0» ?`,"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)\xA0: {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\xA0: {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.archivedSessions.title":`Sessions archivées`,"settings.openchamber.archivedSessions.description":`Parcourez les sessions archivées par projet, restaurez-les ou ouvrez un aperçu.`,"settings.openchamber.archivedSessions.summarySingle":`{count} session archivée`,"settings.openchamber.archivedSessions.summaryPlural":`{count} sessions archivées`,"settings.openchamber.archivedSessions.actions.manage":`Gérer les sessions archivées`,"settings.openchamber.archivedSessions.actions.view":`Voir les archives`,"settings.openchamber.archivedSessions.actions.preview":`Aperçu`,"settings.openchamber.archivedSessions.actions.restore":`Restaurer`,"settings.openchamber.archivedSessions.otherProjects":`Autres`,"settings.openchamber.archivedSessions.dialog.title":`Sessions archivées`,"settings.openchamber.archivedSessions.dialog.description":`Sélectionnez un projet pour voir ses sessions archivées.`,"settings.openchamber.archivedSessions.dialog.loading":`Chargement des sessions archivées…`,"settings.openchamber.archivedSessions.dialog.empty":`Aucune session archivée pour le moment.`,"settings.openchamber.archivedSessions.dialog.emptyProject":`Aucune session archivée dans ce projet.`,"settings.openchamber.archivedSessions.dialog.backToProjects":`Retour aux projets`,"settings.openchamber.archivedSessions.dialog.sessionCountSingle":`{count} session`,"settings.openchamber.archivedSessions.dialog.sessionCountPlural":`{count} sessions`,"settings.openchamber.archivedSessions.toast.loadFailed":`Impossible de charger les sessions archivées.`,"settings.openchamber.archivedSessions.toast.restored":`Session restaurée`,"settings.openchamber.archivedSessions.toast.restoreFailed":`Échec de la restauration de la session`,"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.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 «\xA0{name}\xA0» ? 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 «\xA0{name}\xA0» ?`,"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 le terminal`,"settings.openchamber.keyboardShortcuts.action.toggle_bottom_panel.label":`Basculer le panneau inférieur`,"settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label":`Terminal à bascule étendu`,"settings.openchamber.keyboardShortcuts.action.new_terminal_tab.label":`Nouvel onglet de terminal`,"settings.openchamber.keyboardShortcuts.action.open_new_terminal.label":`Ouvrir un nouveau terminal`,"settings.openchamber.keyboardShortcuts.action.previous_terminal_tab.label":`Onglet de terminal précédent`,"settings.openchamber.keyboardShortcuts.action.next_terminal_tab.label":`Onglet de terminal suivant`,"settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label":`Basculer la barre latérale`,"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label":`Basculer le panneau de révision`,"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.close_context_panel_tab.label":`Fermer l'onglet du panneau de contexte`,"settings.openchamber.keyboardShortcuts.action.previous_session.label":`Session précédente`,"settings.openchamber.keyboardShortcuts.action.next_session.label":`Session suivante`,"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.open_usage.label":`Afficher l'utilisation`,"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.zoom_in.label":`Zoom avant`,"settings.openchamber.keyboardShortcuts.action.zoom_out.label":`Zoom arrière`,"settings.openchamber.keyboardShortcuts.action.zoom_reset.label":`Réinitialiser le zoom`,"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.clear_all_messages.label":`Effacer tous les messages`,"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.field.autoRefresh":`Actualisation automatique`,"settings.usage.sidebar.field.refreshInterval":`Intervalle d'actualisation`,"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 user@host ou ssh user@host:22`,"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.sync.title":`Synchroniser la configuration agent vers ce distant`,"settings.remoteInstances.page.sync.description":`Répliquez votre configuration OpenCode locale (~/.config/opencode), vos compétences d'agent (~/.agents) et vos identifiants fournisseur (auth.json) vers ce distant pour que les deux côtés correspondent et que les connexions fonctionnent. Les dossiers liés symboliquement sont copiés comme de vrais fichiers.`,"settings.remoteInstances.page.sync.step.scanLocal":`Analyse de la configuration locale`,"settings.remoteInstances.page.sync.step.compareRemote":`Comparaison avec le distant`,"settings.remoteInstances.page.sync.step.confirm":`Examiner les changements`,"settings.remoteInstances.page.sync.section.files":`Fichiers`,"settings.remoteInstances.page.sync.section.directories":`Répertoires`,"settings.remoteInstances.page.sync.section.authFile":`Identifiants fournisseur (auth.json)`,"settings.remoteInstances.page.sync.section.agentsRoot":`Compétences agent (~/.agents)`,"settings.remoteInstances.page.sync.section.agentsRootCount":`{count} fichiers`,"settings.remoteInstances.page.sync.status.overwrite":`Sera écrasé`,"settings.remoteInstances.page.sync.status.add":`Sera ajouté`,"settings.remoteInstances.page.sync.note.deletes":`{count} contrepartie(s) distante(s) seront supprimée(s) pour que les deux côtés correspondent.`,"settings.remoteInstances.page.sync.note.backup":`Les fichiers distants remplacés sont sauvegardés dans ~/.config/opencode/.openchamber.sync-backup ; la racine agents dans ~/.openchamber.sync-backup-agents ; auth.json dans ~/.openchamber.sync-backup-auth sur le distant.`,"settings.remoteInstances.page.sync.note.excluded":`Non synchronisé : données de session, caches, node_modules, fichiers de verrouillage.`,"settings.remoteInstances.page.sync.state.empty":`Rien à synchroniser — aucune configuration prise en charge trouvée sur cet ordinateur.`,"settings.remoteInstances.page.sync.state.error":`Échec de l'inspection du distant : {message}`,"settings.remoteInstances.page.sync.state.unavailable":`La synchronisation de configuration est indisponible dans cette fenêtre. Rouvrez cette page depuis l’application de bureau OpenChamber (redémarrez l’app de développement si elle tourne) et réessayez.`,"settings.remoteInstances.page.sync.applying":`Synchronisation...`,"settings.remoteInstances.page.sync.actions.syncNow":`Synchroniser maintenant`,"settings.remoteInstances.page.sync.actions.cancel":`Pas maintenant`,"settings.remoteInstances.page.sync.toast.success":`Configuration agent synchronisée vers le distant`,"settings.remoteInstances.page.sync.toast.failed":`Échec de la synchronisation de la configuration OpenCode`,"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 «\xA0{name}\xA0» ?`,"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.summary.title":`Résumés IA`,"settings.openchamber.defaults.summary.description":`Configure la génération des messages de commit et les titres de session automatiques.`,"settings.openchamber.defaults.summary.modelSourceAria":`Source du modèle de résumé`,"settings.openchamber.defaults.summary.modelSourceTitle":`Source du modèle`,"settings.openchamber.defaults.summary.provider":`Fournisseur OpenCode`,"settings.openchamber.defaults.summary.providerDescription":`Utilise un fournisseur OpenCode authentifié et affiche les modèles appelables par le service de résumé.`,"settings.openchamber.defaults.summary.custom":`API personnalisée compatible OpenAI`,"settings.openchamber.defaults.summary.customDescription":`Appelle directement votre Base URL avec l’ID de modèle et le jeton API ci-dessous.`,"settings.openchamber.defaults.summary.providerUnavailable":`Connectez un fournisseur pris en charge pour sélectionner un modèle.`,"settings.openchamber.defaults.summary.providerModel":`Modèle du fournisseur`,"settings.openchamber.defaults.summary.baseUrl":`Base URL`,"settings.openchamber.defaults.summary.baseUrlPlaceholder":`https://api.example.com/v1`,"settings.openchamber.defaults.summary.modelId":`ID du modèle`,"settings.openchamber.defaults.summary.modelIdPlaceholder":`gpt-4.1-mini`,"settings.openchamber.defaults.summary.apiToken":`Jeton API`,"settings.openchamber.defaults.summary.apiTokenStored":`Jeton enregistré. Saisissez une valeur pour le remplacer.`,"settings.openchamber.defaults.summary.apiTokenPlaceholder":`Saisir le jeton API`,"settings.openchamber.defaults.summary.clearToken":`Effacer le jeton`,"settings.openchamber.defaults.summary.promptTitle":`Prompts de fonctionnalité`,"settings.openchamber.defaults.summary.promptDescription":`Ces instructions influencent les messages de commit générés et les titres de session automatiques.`,"settings.openchamber.defaults.summary.commitPrompt":`Prompt de commit`,"settings.openchamber.defaults.summary.commitPromptDescription":`Contrôle la génération du message de commit à partir des fichiers indexés sélectionnés.`,"settings.openchamber.defaults.summary.commitPromptPlaceholder":`Laissez vide pour utiliser le prompt de commit intégré.`,"settings.openchamber.defaults.summary.sessionTitlePrompt":`Prompt de titre de session`,"settings.openchamber.defaults.summary.sessionTitlePromptDescription":`Contrôle les titres générés lorsqu’une nouvelle session devient inactive, puis après environ 15 secondes d’inactivité.`,"settings.openchamber.defaults.summary.sessionTitlePromptPlaceholder":`Laissez vide pour utiliser le prompt de titre intégré.`,"settings.openchamber.defaults.summary.save":`Enregistrer les réglages de résumé`,"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.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":`Thème`,"settings.openchamber.visual.field.themeMode":`Changer de thème`,"settings.openchamber.visual.field.display":`Affichage`,"settings.openchamber.visual.section.localization":`Localisation`,"settings.openchamber.visual.section.spacingAndLayout":`Espacement et disposition`,"settings.openchamber.visual.section.navigation":`Navigation`,"settings.openchamber.visual.section.chatRenderMode":`Mode de rendu du chat`,"settings.openchamber.visual.section.chatRenderModeAria":`Mode de rendu du chat`,"settings.openchamber.visual.section.messageStreamTransport":`Transport de flux de messages`,"settings.openchamber.visual.section.activityDefault":`Activité par défaut`,"settings.openchamber.visual.section.activityDefaultAria":`Mode d'activité par défaut`,"settings.openchamber.visual.section.showToolsOpenedByDefault":`Afficher les outils ouverts par défaut :`,"settings.openchamber.visual.section.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.sidebarBrand":`Marque de la barre latérale`,"settings.openchamber.visual.field.sidebarBrandHint":`Saisissez le texte complet du logo de la barre latérale. Le dernier mot séparé par des espaces utilise la couleur d'accent. Laissez vide pour masquer le logo.`,"settings.openchamber.visual.field.sidebarBrandAria":`Marque de la barre latérale`,"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.editorFontSize":`Taille de la police de l'éditeur`,"settings.openchamber.visual.field.codeFont":`Police de code`,"settings.openchamber.visual.field.codeFontSize":`Taille de la police de code`,"settings.openchamber.visual.field.codeFontSizePercentageAria":`Pourcentage de taille de 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.resetCodeFontSizeAria":`Réinitialiser la taille de la police de 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.bash":`Bash`,"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.sessionTitleRefresh":`Actualiser le titre de session selon la conversation récente`,"settings.openchamber.visual.field.sessionTitleRefreshAria":`Toutes les 5 minutes après une période d'inactivité, actualiser le titre selon le sujet le plus récent`,"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.showAssistantTpsAria":`Afficher le débit de génération TPS`,"settings.openchamber.visual.field.showAssistantTps":`Afficher le débit de génération TPS`,"settings.openchamber.visual.field.showAssistantTpsTooltip":`Affiche la vitesse de génération (tokens par seconde) sur les messages d’assistant terminés et dans le panneau de contexte. Le temps des appels d’outils est exclu.`,"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.showSubagentTaskDetailsAria":`Afficher les détails du travail du sous-agent`,"settings.openchamber.visual.field.showSubagentTaskDetails":`Afficher les détails du travail du sous-agent`,"settings.openchamber.visual.field.showSubagentTaskDetailsHint":`Désactivé, les tâches de sous-agent restent compactes. Cliquez sur la ligne pour ouvrir la session du sous-agent.`,"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.transcriptCache.label":`Effacer le cache local des sessions`,"settings.openchamber.visual.transcriptCache.description":`Supprime de cet environnement le contenu des conversations en cache. L’historique du serveur reste disponible.`,"settings.openchamber.visual.transcriptCache.action":`Effacer le cache`,"settings.openchamber.visual.transcriptCache.dialog.title":`Effacer le cache local des sessions\xA0?`,"settings.openchamber.visual.transcriptCache.dialog.description":`Le contenu des conversations en cache sur cet appareil sera supprimé. L’historique du serveur reste disponible.`,"settings.openchamber.visual.transcriptCache.dialog.clearing":`Effacement…`,"settings.openchamber.visual.transcriptCache.toast.cleared":`Cache local des sessions effacé`,"settings.openchamber.visual.transcriptCache.toast.failed":`Impossible d’effacer le cache local des sessions`,"settings.openchamber.visual.option.themeMode.system":`Système`,"settings.openchamber.visual.option.themeMode.light":`Clair`,"settings.openchamber.visual.option.themeMode.dark":`Sombre`,"settings.openchamber.visual.option.diffLayout.dynamic.label":`Dynamique`,"settings.openchamber.visual.option.diffLayout.dynamic.description":`Choisit automatiquement entre la vue côte à côte et la vue intégrée selon le contenu modifié.`,"settings.openchamber.visual.option.diffLayout.inline.label":`Toujours intégré`,"settings.openchamber.visual.option.diffLayout.inline.description":`Afficher sous forme de vue unifiée unique.`,"settings.openchamber.visual.option.diffLayout.sideBySide.label":`Toujours côte à côte`,"settings.openchamber.visual.option.diffLayout.sideBySide.description":`Comparez les fichiers originaux et modifiés.`,"settings.openchamber.visual.option.mermaidRendering.svg.label":`SVG`,"settings.openchamber.visual.option.mermaidRendering.svg.description":`Rendre les diagrammes sous forme de graphiques évolutifs.`,"settings.openchamber.visual.option.mermaidRendering.ascii.label":`ASCII`,"settings.openchamber.visual.option.mermaidRendering.ascii.description":`Rendre les diagrammes sous forme de blocs de texte.`,"settings.openchamber.visual.option.pwaOrientation.system.label":`Suivre le système`,"settings.openchamber.visual.option.pwaOrientation.system.description":`Respectez le réglage de rotation de l'appareil.`,"settings.openchamber.visual.option.pwaOrientation.portrait.label":`Verrouillage portrait`,"settings.openchamber.visual.option.pwaOrientation.portrait.description":`Installez l'application verrouillée en mode portrait.`,"settings.openchamber.visual.option.pwaOrientation.landscape.label":`Verrouillage paysage`,"settings.openchamber.visual.option.pwaOrientation.landscape.description":`Installez l'application verrouillée en mode paysage.`,"settings.openchamber.visual.option.mobileKeyboardMode.native.label":`Suivre le navigateur`,"settings.openchamber.visual.option.mobileKeyboardMode.native.description":`Utilisez les paramètres par défaut du navigateur pour les modifications de panoramique et de fenêtre d'affichage lorsque le clavier s'ouvre.`,"settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.label":`Redimensionner le contenu`,"settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.description":`Demandez aux navigateurs pris en charge de réduire la présentation de l'application au lieu de vous fier uniquement au panoramique.`,"settings.openchamber.visual.option.userMessageRendering.markdown.label":`Markdown`,"settings.openchamber.visual.option.userMessageRendering.markdown.description":`Rendre le texte utilisateur avec un formatage markdown.`,"settings.openchamber.visual.option.userMessageRendering.plain.label":`Texte brut`,"settings.openchamber.visual.option.userMessageRendering.plain.description":`Rendre le texte utilisateur avec des espaces et des liens préservés.`,"chat.message.userText.collapseAria":`Réduire le message utilisateur`,"settings.openchamber.visual.option.chatRenderMode.sorted.label":`Trié`,"settings.openchamber.visual.option.chatRenderMode.sorted.description":`Classez le travail intermédiaire dans Activity ; ne streamez que la conclusion finale.`,"settings.openchamber.visual.option.chatRenderMode.live.label":`En direct`,"settings.openchamber.visual.option.chatRenderMode.live.description":`Diffusez le texte et les outils de l’assistant dès leur arrivée.`,"settings.openchamber.visual.option.messageTransport.auto.label":`Auto`,"settings.openchamber.visual.option.messageTransport.auto.description":`Préférez WebSocket et revenez à SSE si besoin.`,"settings.openchamber.visual.option.messageTransport.ws.label":`WebSocket`,"settings.openchamber.visual.option.messageTransport.ws.description":`Utilisez WebSocket pour la diffusion de messages.`,"settings.openchamber.visual.option.messageTransport.sse.label":`SSE`,"settings.openchamber.visual.option.messageTransport.sse.description":`Utilisez les événements envoyés par le serveur pour la diffusion de messages.`,"settings.openchamber.visual.option.activityRenderMode.collapsed.label":`Effondré`,"settings.openchamber.visual.option.activityRenderMode.collapsed.description":`Gardez l'activité réduite par défaut.`,"settings.openchamber.visual.option.activityRenderMode.summary.label":`Étendu`,"settings.openchamber.visual.option.activityRenderMode.summary.description":`Développez Activité par défaut.`,"settings.openchamber.visual.option.timeFormat.auto.label":`Auto`,"settings.openchamber.visual.option.timeFormat.auto.description":`Utilisez les préférences local du système.`,"settings.openchamber.visual.option.timeFormat.24h.label":`24 heures`,"settings.openchamber.visual.option.timeFormat.24h.description":`Afficher l'heure à 14h15.`,"settings.openchamber.visual.option.timeFormat.12h.label":`12 heures`,"settings.openchamber.visual.option.timeFormat.12h.description":`Afficher l'heure à 14h15.`,"settings.openchamber.visual.option.weekStart.auto.label":`Auto`,"settings.openchamber.visual.option.weekStart.auto.description":`Utilisez le début de semaine local.`,"settings.openchamber.visual.option.weekStart.monday.label":`Lundi`,"settings.openchamber.visual.option.weekStart.sunday.label":`Dimanche`,"settings.magicPrompts.page.loading.aria":`Chargement`,"settings.magicPrompts.page.loading.text":`Chargement des prompts magiques...`,"settings.magicPrompts.page.block.visiblePrompt":`Prompt visible`,"settings.magicPrompts.page.block.instructions":`Instructions`,"settings.magicPrompts.page.group.gitCommitGenerate.title":`Génération de commit`,"settings.magicPrompts.page.group.gitCommitGenerate.description":`Prompts utilisés pour la génération du message de commit : message utilisateur visible + instructions masquées.`,"settings.magicPrompts.page.group.gitPrGenerate.title":`Génération de PR`,"settings.magicPrompts.page.group.gitPrGenerate.description":`Prompts utilisés pour la génération du titre/corps de la PR : message utilisateur visible + instructions masquées.`,"settings.magicPrompts.page.group.githubPrReview.title":`Revue de PR`,"settings.magicPrompts.page.group.githubPrReview.description":`Prompts utilisés pour le flux de revue des PR : message utilisateur visible + charge utile d'instruction cachée.`,"settings.magicPrompts.page.group.githubIssueReview.title":`Examen du problème`,"settings.magicPrompts.page.group.githubIssueReview.description":`Prompts utilisés pour le flux d’examen des issues : message utilisateur visible + charge utile d’instruction masquée.`,"settings.magicPrompts.page.group.githubPrFailedChecksReview.title":`Examen des checks PR en échec`,"settings.magicPrompts.page.group.githubPrFailedChecksReview.description":`Prompts utilisés pour l’analyse des checks PR en échec.`,"settings.magicPrompts.page.group.githubPrCommentsReview.title":`Examen des commentaires PR`,"settings.magicPrompts.page.group.githubPrCommentsReview.description":`Prompts utilisés pour l’analyse des commentaires PR.`,"settings.magicPrompts.page.group.githubSinglePrCommentReview.title":`Examen des commentaires PR uniques`,"settings.magicPrompts.page.group.githubSinglePrCommentReview.description":`Prompts utilisés pour l’analyse d’un seul commentaire PR.`,"settings.magicPrompts.page.group.gitConflictResolve.title":`Résolution des conflits de fusion/rebase`,"settings.magicPrompts.page.group.gitConflictResolve.description":`Prompts utilisés lors de la résolution des conflits de fusion/rebase avec l'IA.`,"settings.magicPrompts.page.group.gitCherrypickConflictResolve.title":`Résolution des conflits par sélection`,"settings.magicPrompts.page.group.gitCherrypickConflictResolve.description":`Prompts utilisés lors de la résolution des conflits de Cherry-pick dans le flux d'intégration.`,"settings.magicPrompts.page.group.planImprove.title":`Améliorer le plan`,"settings.magicPrompts.page.group.planImprove.description":`Prompt masqué utilisé lors de l’envoi d’un plan enregistré dans un flux d’amélioration.`,"settings.magicPrompts.page.group.planTodo.title":`Planification des tâches`,"settings.magicPrompts.page.group.planTodo.description":`Prompt masqué utilisé lors de l’envoi d’une tâche dans une nouvelle session de planification.`,"settings.magicPrompts.page.group.planImplement.title":`Plan de mise en œuvre`,"settings.magicPrompts.page.group.planImplement.description":`Prompt masqué utilisé lors de l’envoi d’un plan enregistré dans un flux d’implémentation.`,"settings.magicPrompts.page.group.sessionSummary.title":`Résumé de la session`,"settings.magicPrompts.page.group.sessionSummary.description":`Prompts utilisés par la commande slash /summary : message utilisateur visible + instructions masquées. Non destructif : ne compacte pas l'historique des sessions.`,"settings.magicPrompts.page.group.sessionWorkspaceReview.title":`Examen de l'espace de travail`,"settings.magicPrompts.page.group.sessionWorkspaceReview.description":`Prompts utilisés par la commande slash /workspace-review : message utilisateur visible + instructions masquées. Examine les modifications actuelles de l’espace de travail pour les problèmes de signal élevé uniquement.`,"settings.view.search.placeholder":`Rechercher dans les paramètres`,"settings.view.search.aria":`Rechercher dans les paramètres`,"settings.view.search.clear":`Effacer la recherche des paramètres`,"settings.view.search.noResults":`Aucun paramètre correspondant`,"settings.page.about.title":`À propos`,"settings.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 de connexion`,"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.`,"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 importé pour le moment.`,"settings.remoteInstances.clientAuth.title":`Se connecter à ce serveur`,"settings.remoteInstances.clientAuth.description":`Créez un lien ou un token sécurisé pour permettre à OpenChamber Desktop de se connecter à ce serveur.`,"settings.remoteInstances.clientAuth.field.labelPlaceholder":`Nom de l’instance — ex. Mac de la maison`,"settings.remoteInstances.clientAuth.field.labelHint":`L’autre appareil affichera ce nom pour ce serveur.`,"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.relayUrlLabel":`Serveur Relay`,"settings.remoteInstances.clientAuth.addDevice.relayUrlHint":`Utilisez le Relay officiel d’OpenChamber ou saisissez votre propre endpoint ws:// ou wss://. L’appareil enregistrera l’endpoint contenu dans le code QR.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlDeployLink":`Déployez votre propre Relay.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlLockedHint":`Ce serveur impose l’endpoint Relay avec OPENCHAMBER_RELAY_URL.`,"settings.remoteInstances.clientAuth.addDevice.relayUrlInvalid":`Saisissez un endpoint Relay valide commençant par ws:// ou wss://.`,"settings.remoteInstances.clientAuth.addDevice.create":`Créer le code QR`,"settings.remoteInstances.clientAuth.addDevice.targetLabel":`Instance cible`,"settings.remoteInstances.clientAuth.addDevice.target.local":`Ce bureau`,"settings.remoteInstances.clientAuth.addDevice.target.sshEmpty":`Aucune instance SSH connectée`,"settings.remoteInstances.clientAuth.addDevice.target.sshNotReady":`Connectez d’abord l’instance SSH`,"settings.remoteInstances.sidebar.actions.mobileConnect":`Connexion téléphone`,"settings.remoteInstances.sidebar.actions.mobileConnectAria":`Créer un QR d’appairage téléphone pour {instance}`,"settings.remoteInstances.sidebar.actions.mobileConnectDisabled":`Connectez cette instance SSH avant d’appairer un téléphone`,"settings.remoteInstances.sidebar.actions.syncConfigDisabled":`Connectez cette instance pour synchroniser sa configuration`,"settings.remoteInstances.sidebar.actions.syncConfig":`Synchroniser la config`,"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.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`,"settings.page.assistants.title":`Assistants`,"assistants.title":`Assistants`,"assistants.subtitle":`Vos assistants permanents`,"assistants.listAria":`Liste des assistants`,"assistants.menu.edit":`Modifier`,"assistants.selectorAria":`Changer d’assistant. Assistant actuel\xA0: {name}`,"assistants.state.unsupportedTitle":`Les assistants ne sont pas pris en charge`,"assistants.state.unsupportedDescription":`Cette instance OpenChamber ne propose pas la fonctionnalité Assistant.`,"assistants.state.instanceDisabledDescription":`Activez les assistants dans les réglages pour utiliser cette fonctionnalité.`,"assistants.onboarding.title":`Créez votre premier assistant`,"assistants.onboarding.description":`Configurez un assistant permanent, puis poursuivez ici une conversation continue.`,"assistants.onboarding.action":`Créer un assistant`,"assistants.actions.retry":`Réessayer`,"assistants.actions.backToChat":`Retour au chat`,"assistants.mode.continuous":`Continu`,"assistants.mode.stateless":`Sans état`,"assistants.state.unavailable":`Les assistants sont indisponibles sur cette instance.`,"assistants.state.staleSnapshot":`Le dernier instantané disponible est affiché. L’actualisation a échoué.`,"assistants.state.sending":`Envoi`,"assistants.state.reconciling":`Confirmation de l’envoi…`,"assistants.state.sendFailed":`L’envoi a échoué. Vous pouvez réessayer sans risque.`,"assistants.state.instanceDisabled":`Les assistants sont désactivés sur cette instance.`,"assistants.state.assistantDisabled":`Cet assistant est désactivé.`,"assistants.state.invalidConfiguration":`Le modèle configuré pour cet assistant est indisponible.`,"assistants.state.messagesFailed":`Impossible de charger la conversation.`,"assistants.conversation.continuousHint":`Une conversation continue`,"assistants.conversation.statelessHint":`Chaque tour s’exécute dans une nouvelle session sans contexte antérieur`,"assistants.conversation.newSessionDivider":`Nouvelle conversation`,"assistants.conversation.emptyTitle":`Commencer une conversation avec {name}`,"assistants.conversation.emptyDescription":`Envoyez un message pour commencer cette conversation continue.`,"assistants.composer.attachment":`Image jointe`,"assistants.composer.removeAttachment":`Retirer la pièce jointe`,"assistants.composer.addImage":`Ajouter une image`,"assistants.composer.send":`Envoyer le message`,"assistants.composer.placeholder":`Écrivez à votre assistant…`,"assistants.composer.disabledPlaceholder":`Assistant indisponible`,"assistants.composer.selectionConflict":`La sélection a été modifiée ailleurs. Les réglages récents ont été rechargés.`,"assistants.composer.selectionSaveFailed":`Impossible d’enregistrer la sélection du modèle et de l’agent.`,"assistants.composer.commandUnavailable":`Les commandes disponibles sont /new et /compact.`,"assistants.settings.description":`Configurez des assistants pour vous aider dans votre travail. `,"assistants.settings.descriptionLearnMore":`En savoir plus`,"assistants.settings.instanceEnabled":`Activer`,"assistants.settings.listTitle":`Assistants`,"assistants.settings.create":`Nouvel assistant`,"assistants.settings.delete":`Supprimer`,"assistants.settings.deleteConfirm":`Supprimer {name}\xA0? Son historique de conversation sera archivé.`,"assistants.settings.name":`Nom`,"assistants.settings.enabled":`Assistant activé`,"assistants.settings.defaultShare":`Assistant de partage par défaut pour ce client`,"assistants.settings.defaultPrompt":`Prompt par défaut`,"assistants.settings.defaultPromptPlaceholder":`Définissez le rôle et la méthode de travail de l’assistant…`,"assistants.settings.runtime":`Exécution`,"assistants.settings.model":`Fournisseur et modèle`,"assistants.settings.agent":`Agent OpenCode`,"assistants.settings.mode":`Mode de conversation`,"assistants.settings.workspace":`Espace de travail`,"assistants.settings.workspacePlaceholder":`Espace de travail géré`,"assistants.settings.workspaceCurrentPath":`Chemin actuel`,"assistants.settings.workspaceChangeHint":`Changer d’espace de travail démarre une nouvelle session d’assistant.`,"assistants.settings.save":`Enregistrer l’assistant`,"assistants.settings.empty":`Créez votre premier assistant.`,"assistants.settings.validation.required":`Le nom et le modèle sont requis.`,"assistants.settings.toast.saved":`Assistant enregistré.`,"assistants.settings.toast.saveFailed":`Impossible d’enregistrer l’assistant.`,"assistants.settings.toast.deleted":`Assistant supprimé.`,"assistants.settings.toast.deleteFailed":`Impossible de supprimer l’assistant.`,"assistants.settings.toast.toggleFailed":`Impossible de modifier la disponibilité des assistants.`,"assistants.shareWelcome.title":`Partagez du contenu avec votre assistant`,"assistants.shareWelcome.description":`Depuis n’importe quelle app, touchez Partager et choisissez un assistant OpenChamber. Les liens, textes et images arrivent dans son Inbox Topic.`,"assistants.shareWelcome.examplesAria":`Exemples de contenu partageable`,"assistants.shareWelcome.example.chat.title":`Feuille de partage iOS`,"assistants.shareWelcome.example.chat.description":`Ouvrez Partager et choisissez votre assistant.`,"assistants.shareWelcome.example.article.title":`Partage direct Android`,"assistants.shareWelcome.example.article.description":`Votre assistant apparaît parmi les contacts rapides.`,"assistants.shareWelcome.example.note.title":`Choisissez un assistant`,"assistants.shareWelcome.example.note.description":`Le contenu partagé arrive dans son Inbox Topic.`,"assistants.shareWelcome.action":`Compris`,"common.loading":`Chargement...`,"sessions.startupSync.title":`Synchronisation des sessions`,"sessions.startupSync.progress":`{completed} projets chargés sur {total}`,"common.unavailable":`Indisponible`,"common.language.english":`Anglais`,"common.language.french":`Français`,"common.language.simplifiedChinese":`Chinois (simplifié)`,"common.language.traditionalChinese":`Chinois (traditionnel)`,"common.language.ukrainian":`Ukrainien`,"common.language.spanish":`Espagnol`,"common.language.brazilianPortuguese":`Portugais brésilien`,"common.language.korean":`Coréen`,"common.language.polish":`Polonais`,"common.language.japanese":`Japonais`,"common.revealPath.finder":`Révéler dans le Finder`,"common.revealPath.fileExplorer":`Ouvrir dans l'explorateur de fichiers`,"common.revealPath.fileManager":`Ouvrir dans le gestionnaire de fichiers`,"pwa.installPrompt.description":`Installez OpenChamber pour un accès plus rapide`,"pwa.installPrompt.action":`Installer`,"pwa.installPrompt.dismiss":`Ignorer`,"pwa.installPrompt.started":`Installation démarrée`,"pwa.installPrompt.installed":`OpenChamber installé`,"shareOpinion.actions.shareOpinion":`Donner son avis`,"shareOpinion.actions.bookCall":`Réserver un appel`,"shareOpinion.actions.shortSurvey":`Court sondage`,"shareOpinion.dialog.title":`Donnez votre avis`,"shareOpinion.toast.title":`Aidez à façonner OpenChamber`,"shareOpinion.toast.description":`Dites ce qui est utile, confus ou manquant pour aider à définir la suite.`,"sessions.sidebar.footer.actions.shareOpinion":`Donner son avis`,"layout.mainTab.chat":`Chat`,"layout.mainTab.plan":`Plan`,"layout.mainTab.diff":`Diff`,"layout.mainTab.files":`Fichiers`,"layout.mainTab.terminal":`Terminal`,"layout.mainTab.context":`Contexte`,"layout.rightSidebar.git":`Git`,"layout.rightSidebar.files":`Fichiers`,"layout.rightSidebar.context":`Contexte`,"layout.services.instance":`Instance`,"layout.services.usage":`Usage`,"sessions.sidebar.header.actions.closeSessions":`Fermer les sessions`,"sessions.sidebar.header.actions.addProject":`Ajouter un projet`,"sessions.sidebar.header.actions.newSession":`Nouveau chat`,"sessions.sidebar.header.actions.newMultiRun":`Nouveau multi-run`,"sessions.sidebar.header.actions.scheduledTasks":`Tâches planifiées`,"sessions.scheduledTasks.dialog.title":`Tâches planifiées`,"sessions.scheduledTasks.dialog.actions.create":`Créer`,"sessions.scheduledTasks.dialog.actions.moreAria":`Plus d’actions pour {taskName}`,"sessions.scheduledTasks.dialog.actions.delete":`Supprimer`,"sessions.scheduledTasks.dialog.actions.pause":`Pause`,"sessions.scheduledTasks.dialog.actions.resume":`Reprendre`,"sessions.scheduledTasks.workspace.filters.all":`Toutes`,"sessions.scheduledTasks.workspace.filters.active":`Actives`,"sessions.scheduledTasks.workspace.filters.paused":`En pause`,"sessions.scheduledTasks.workspace.views.aria":`Vues des tâches planifiées`,"sessions.scheduledTasks.workspace.views.tasks":`Tâches`,"sessions.scheduledTasks.workspace.views.history":`Historique`,"sessions.scheduledTasks.history.loading":`Chargement de l’historique…`,"sessions.scheduledTasks.history.error.title":`Impossible de charger l’historique`,"sessions.scheduledTasks.history.error.description":`OpenChamber n’a pas pu charger les exécutions enregistrées.`,"sessions.scheduledTasks.history.error.more":`Impossible de charger davantage d’exécutions. L’historique déjà chargé reste disponible.`,"sessions.scheduledTasks.history.retry":`Réessayer`,"sessions.scheduledTasks.history.empty.title":`Aucune exécution`,"sessions.scheduledTasks.history.empty.description":`Les exécutions planifiées et manuelles apparaîtront ici.`,"sessions.scheduledTasks.history.trigger.scheduled":`Planifiée`,"sessions.scheduledTasks.history.trigger.manual":`Manuelle`,"sessions.scheduledTasks.history.meta.trigger":`Déclencheur`,"sessions.scheduledTasks.history.meta.started":`Début`,"sessions.scheduledTasks.history.meta.ended":`Fin`,"sessions.scheduledTasks.history.meta.duration":`Durée`,"sessions.scheduledTasks.history.ended.unavailable":`—`,"sessions.scheduledTasks.history.duration.pending":`En cours`,"sessions.scheduledTasks.history.duration.lessThanOneSecond":`<1 s`,"sessions.scheduledTasks.history.duration.milliseconds":`{count} ms`,"sessions.scheduledTasks.history.duration.seconds":`{count} s`,"sessions.scheduledTasks.history.duration.minutesSeconds":`{minutes} min {seconds} s`,"sessions.scheduledTasks.history.duration.minutes":`{count} min`,"sessions.scheduledTasks.history.duration.hoursMinutes":`{hours} h {minutes} min`,"sessions.scheduledTasks.history.duration.hours":`{count} h`,"sessions.scheduledTasks.history.openSession":`Ouvrir la session`,"sessions.toast.openFailed":`Impossible de charger la conversation {sessionId}`,"sessions.toast.openFailedMissingDirectory":`Impossible de charger la conversation {sessionId}. Le chemin de l’espace de travail est manquant.`,"sessions.toast.openFailedMissingSessionId":`Impossible d’ouvrir la conversation. L’identifiant de session est manquant.`,"sessions.scheduledTasks.history.loadingMore":`Chargement…`,"sessions.scheduledTasks.history.loadMore":`Charger plus`,"sessions.scheduledTasks.workspace.search.placeholder":`Rechercher des tâches…`,"sessions.scheduledTasks.workspace.search.noResults":`Aucune tâche ne correspond à la recherche.`,"sessions.scheduledTasks.workspace.partialLoadWarning":`Les tâches planifiées de certains projets n’ont pas pu être chargées. Les tâches chargées restent disponibles.`,"sessions.scheduledTasks.workspace.editor.emptyTitle":`Sélectionnez une tâche`,"sessions.scheduledTasks.workspace.editor.emptyDescription":`Choisissez une tâche dans la liste ou créez-en une.`,"sessions.scheduledTasks.workspace.confirm.discardChanges":`Les modifications non enregistrées seront abandonnées. Continuer\xA0?`,"sessions.scheduledTasks.editor.panel.details":`Détails`,"sessions.scheduledTasks.editor.panel.frequency":`Fréquence`,"sessions.scheduledTasks.dialog.description":`Tâches côté serveur qui créent une nouvelle session et envoient un prompt configuré.`,"sessions.scheduledTasks.dialog.project.label":`Projet`,"sessions.scheduledTasks.dialog.project.placeholder":`Sélectionnez un projet`,"sessions.scheduledTasks.dialog.project.empty":`Aucun projet`,"sessions.scheduledTasks.dialog.actions.newTask":`Nouvelle tâche`,"sessions.scheduledTasks.dialog.actions.runNow":`Exécuter maintenant`,"sessions.scheduledTasks.dialog.actions.edit":`Modifier`,"sessions.scheduledTasks.dialog.actions.editAria":`Modifier {taskName}`,"sessions.scheduledTasks.dialog.actions.deleteAria":`Supprimer {taskName}`,"sessions.scheduledTasks.dialog.loading":`Chargement des tâches...`,"sessions.scheduledTasks.dialog.empty.noTasks":`Aucune tâche planifiée pour l'instant.`,"sessions.scheduledTasks.dialog.empty.selectProject":`Sélectionnez un projet pour gérer les tâches planifiées.`,"sessions.scheduledTasks.dialog.error.chooseProjectFirst":`Choisissez d'abord un projet`,"sessions.scheduledTasks.dialog.toast.loadFailed":`Échec du chargement des tâches planifiées`,"sessions.scheduledTasks.dialog.toast.saved":`Tâche planifiée enregistrée`,"sessions.scheduledTasks.dialog.toast.updateFailed":`Échec de la mise à jour de la tâche`,"sessions.scheduledTasks.dialog.toast.deleted":`Tâche planifiée supprimée`,"sessions.scheduledTasks.dialog.toast.deleteFailed":`Échec de la suppression de la tâche`,"sessions.scheduledTasks.dialog.toast.started":`Tâche démarrée`,"sessions.scheduledTasks.dialog.toast.runFailed":`Échec de l'exécution de la tâche`,"sessions.scheduledTasks.dialog.confirm.deleteTask":`Supprimer la tâche planifiée «\xA0{taskName}\xA0» ?`,"sessions.scheduledTasks.dialog.schedule.daily":`Quotidien {time}`,"sessions.scheduledTasks.dialog.schedule.dailyWithTimezone":`Quotidien {time} ({timezone})`,"sessions.scheduledTasks.dialog.schedule.weekly":`Hebdomadaire {days} {time}`,"sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone":`{days} hebdomadaire {time} ({timezone})`,"sessions.scheduledTasks.dialog.schedule.once":`{date} unique {time}`,"sessions.scheduledTasks.dialog.schedule.onceWithTimezone":`{date} unique {time} ({timezone})`,"sessions.scheduledTasks.dialog.schedule.cron":`Cron : {cron}`,"sessions.scheduledTasks.dialog.schedule.cronWithTimezone":`Cron :\xA0{cron} ({timezone})`,"sessions.scheduledTasks.dialog.schedule.unknownDate":`Date inconnue`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.sun":`Dim`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.mon":`Lun`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.tue":`Mar`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.wed":`Mer`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.thu":`Jeu`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.fri":`Ven`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.sat":`Sam`,"sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown":`?`,"sessions.scheduledTasks.dialog.relativeTime.inLessThanOneMinute":`dans <1\xA0m`,"sessions.scheduledTasks.dialog.relativeTime.justNow":`à l’instant`,"sessions.scheduledTasks.dialog.relativeTime.inMinutes":`en {count}m`,"sessions.scheduledTasks.dialog.relativeTime.minutesAgo":`il y a {count} min`,"sessions.scheduledTasks.dialog.relativeTime.inDuration":`dans {duration}`,"sessions.scheduledTasks.dialog.relativeTime.durationAgo":`il y a {duration}`,"sessions.scheduledTasks.dialog.status.success":`Succès`,"sessions.scheduledTasks.dialog.status.error":`Erreur`,"sessions.scheduledTasks.dialog.status.running":`En cours d'exécution`,"sessions.scheduledTasks.dialog.status.idle":`Inactif`,"sessions.scheduledTasks.dialog.nextRun.label":`Suivant`,"sessions.scheduledTasks.dialog.lastRun.label":`Dernière exécution`,"sessions.scheduledTasks.dialog.lastRun.runningNow":`en cours d’exécution`,"sessions.scheduledTasks.dialog.lastRun.never":`jamais`,"sessions.scheduledTasks.dialog.taskToggle.enableAria":`Activer {taskName}`,"sessions.scheduledTasks.dialog.taskToggle.pauseAria":`Pause {taskName}`,"sessions.scheduledTasks.dialog.taskToggle.enabled":`Activé`,"sessions.scheduledTasks.dialog.taskToggle.paused":`En pause`,"sessions.scheduledTasks.editor.title.edit":`Modifier une tâche planifiée`,"sessions.scheduledTasks.editor.title.new":`Nouvelle tâche planifiée`,"sessions.scheduledTasks.editor.description":`Configurez une tâche côté serveur qui crée une nouvelle session et envoie un prompt.`,"sessions.scheduledTasks.editor.taskName.label":`Nom de la tâche`,"sessions.scheduledTasks.editor.taskName.placeholder":`Synchronisation quotidienne`,"sessions.scheduledTasks.editor.scheduleType.label":`Type d'horaire`,"sessions.scheduledTasks.editor.scheduleType.daily":`Tous les jours`,"sessions.scheduledTasks.editor.scheduleType.weekly":`Hebdomadaire`,"sessions.scheduledTasks.editor.scheduleType.once":`Une fois`,"sessions.scheduledTasks.editor.scheduleType.cron":`Cron`,"sessions.scheduledTasks.editor.date.label":`Date`,"sessions.scheduledTasks.editor.date.placeholder":`Sélectionnez une date`,"sessions.scheduledTasks.editor.date.previousMonth":`Mois précédent`,"sessions.scheduledTasks.editor.date.nextMonth":`Mois prochain`,"sessions.scheduledTasks.editor.date.jumpToToday":`Aller à aujourd'hui`,"sessions.scheduledTasks.editor.date.today":`Aujourd'hui`,"sessions.scheduledTasks.editor.time.label":`Temps`,"sessions.scheduledTasks.editor.time.hourAria":`Heures`,"sessions.scheduledTasks.editor.time.minuteAria":`Minutes`,"sessions.scheduledTasks.editor.time.periodAria":`Période`,"sessions.scheduledTasks.editor.time.period.am":`AM`,"sessions.scheduledTasks.editor.time.period.pm":`PM`,"sessions.scheduledTasks.editor.times.label":`Fois`,"sessions.scheduledTasks.editor.times.add":`Ajouter du temps`,"sessions.scheduledTasks.editor.times.removeAria":`Supprimer l'heure`,"sessions.scheduledTasks.editor.timezone.label":`Fuseau horaire`,"sessions.scheduledTasks.editor.weekdays.label":`Jours de la semaine`,"sessions.scheduledTasks.editor.model.label":`Modèle`,"sessions.scheduledTasks.editor.thinkingLevel.label":`Niveau de réflexion`,"sessions.scheduledTasks.editor.thinkingLevel.default":`Défaut`,"sessions.scheduledTasks.editor.agent.label":`Agent`,"sessions.scheduledTasks.editor.prompt.label":`Prompt`,"sessions.scheduledTasks.editor.prompt.placeholder":`Résumer les tâches ouvertes et proposer les prochaines actions`,"sessions.scheduledTasks.editor.enabled.aria":`Activer la tâche`,"sessions.scheduledTasks.editor.enabled.label":`Activé`,"sessions.scheduledTasks.editor.goal.label":`Exécuter comme objectif`,"sessions.scheduledTasks.editor.goal.aria":`Exécuter cette tâche comme un objectif que l'agent poursuit jusqu'au bout`,"sessions.scheduledTasks.editor.goal.budgetLabel":`Budget de tokens`,"sessions.scheduledTasks.editor.goal.budgetAria":`Limiter l’objectif à un budget de tokens`,"sessions.scheduledTasks.editor.actions.closeAria":`Fermer`,"sessions.scheduledTasks.editor.actions.cancel":`Annuler`,"sessions.scheduledTasks.editor.actions.save":`Sauvegarder`,"sessions.scheduledTasks.editor.actions.saving":`Enregistrement...`,"sessions.scheduledTasks.editor.toast.saveFailed":`Échec de l'enregistrement de la tâche`,"sessions.scheduledTasks.editor.validation.taskNameRequired":`Le nom de la tâche est obligatoire`,"sessions.scheduledTasks.editor.validation.promptRequired":`Un prompt est requis`,"sessions.scheduledTasks.editor.validation.modelRequired":`Le modèle est requis`,"sessions.scheduledTasks.editor.validation.dateFormat":`La date doit utiliser AAAA-MM-JJ`,"sessions.scheduledTasks.editor.validation.timeFormat":`L'heure doit utiliser HH :\xA0mm`,"sessions.scheduledTasks.editor.validation.atLeastOneTime":`Ajoutez au moins une heure valide`,"sessions.scheduledTasks.editor.validation.atLeastOneWeekday":`Sélectionnez au moins un jour de la semaine`,"sessions.scheduledTasks.editor.validation.timezoneRequired":`Le fuseau horaire est requis`,"sessions.scheduledTasks.editor.validation.cronRequired":`Une expression cron est requise`,"sessions.scheduledTasks.editor.validation.cronInvalid":`Expression cron invalide`,"sessions.scheduledTasks.editor.cronExpression.label":`Expression cron`,"sessions.scheduledTasks.editor.cronExpression.placeholder":`*/5 * * * *`,"sessions.scheduledTasks.editor.cronExpression.nextRuns":`Prochaines exécutions`,"sessions.scheduledTasks.editor.cronExpression.examples":`Exemples`,"sessions.scheduledTasks.editor.cronExpression.examples.every5min":`Toutes les 5 minutes`,"sessions.scheduledTasks.editor.cronExpression.examples.everyHour":`Toutes les heures`,"sessions.scheduledTasks.editor.cronExpression.examples.monday9am":`Chaque lundi à 9 h`,"sessions.scheduledTasks.editor.cronExpression.examples.9am5pm":`9 h et 17 h chaque jour`,"sessions.scheduledTasks.editor.cronExpression.examples.firstOfMonth":`Premier jour de chaque mois`,"multirun.launcher.title":`Nouveau multi-run`,"multirun.launcher.actions.closeEsc":`Fermer (Échap)`,"multirun.launcher.actions.cancel":`Annuler`,"multirun.launcher.actions.creating":`Création...`,"multirun.launcher.actions.startWithModelCount":`Démarrer (modèles {count})`,"multirun.launcher.project.label":`Projet`,"multirun.launcher.project.placeholder":`Sélectionnez un projet`,"multirun.launcher.project.empty":`Ajoutez d'abord un projet.`,"multirun.launcher.project.gitRequired":`Pas d'isolation par worktree\xA0: les exécutions utilisent le même répertoire.`,"multirun.launcher.groupName.label":`Nom du groupe`,"multirun.launcher.groupName.info":`Utilisé pour le répertoire du worktree et les noms de branches`,"multirun.launcher.groupName.placeholder":`fonctionnalité-auth, correction de bugs-connexion`,"multirun.launcher.baseBranch.label":`Branche de base`,"multirun.launcher.baseBranch.info":`Nouvelle branche créée à partir de cette base par modèle`,"multirun.launcher.isolateRuns.label":`Isoler les parcours`,"multirun.launcher.agent.label":`Agent`,"multirun.launcher.agent.info":`Agent utilisé pour toutes les exécutions. La valeur par défaut est votre agent configuré.`,"multirun.launcher.setupCommands.label":`Commandes de configuration`,"multirun.launcher.setupCommands.loading":`Chargement...`,"multirun.launcher.setupCommands.commandPlaceholder":`bun install`,"multirun.launcher.setupCommands.removeCommandAria":`Supprimer la commande`,"multirun.launcher.setupCommands.addCommand":`Ajouter une commande`,"multirun.launcher.prompt.label":`Prompt`,"multirun.launcher.prompt.placeholder":`Entrez le prompt à envoyer à tous les modèles...`,"multirun.launcher.attachments.attach":`Attacher`,"multirun.launcher.attachments.tooltip":`Mêmes fichiers envoyés à toutes les exécutions`,"multirun.launcher.models.label":`Modèles`,"multirun.launcher.models.info":`Sélectionnez les modèles 2-{max}. Le même modèle peut être ajouté plusieurs fois.`,"multirun.launcher.toast.fileTooLarge":`Le fichier "{fileName}" est trop volumineux (max 10\xA0Mo)`,"multirun.launcher.toast.attachFailed":`Échec de la connexion de "{fileName}"`,"multirun.launcher.toast.attachedSingle":`Fichier {count} joint`,"multirun.launcher.toast.attachedPlural":`Fichiers {count} joints`,"multirun.modelMultiSelect.actions.addModel":`Ajouter un modèle`,"multirun.modelMultiSelect.search.placeholder":`Rechercher des modèles`,"multirun.modelMultiSelect.search.noResults":`Aucun modèle trouvé`,"multirun.modelMultiSelect.sections.favorites":`Favoris`,"multirun.modelMultiSelect.sections.recent":`Récents`,"multirun.modelMultiSelect.variant.placeholder":`Pensée`,"multirun.modelMultiSelect.variant.default":`Défaut`,"multirun.modelMultiSelect.keyboard.hint":`↑↓ naviguer • Entrer sélectionner • Esc fermer`,"multirun.modelMultiSelect.validation.minOnly":`Sélectionnez au moins les modèles {min}.`,"multirun.modelMultiSelect.validation.minToMax":`Choisissez parmi les modèles {min} à {max}.`,"multirun.agentSelector.placeholder":`Sélectionnez un agent`,"multirun.fusion.title":`Exécuter la fusion`,"multirun.fusion.description":`Combinez les résultats multi-exécutions sélectionnés en une seule réponse plus solide.`,"multirun.fusion.provider.placeholder":`Fournisseur`,"multirun.fusion.model.placeholder":`Modèle`,"multirun.fusion.sources.label":`Sources ({count})`,"multirun.fusion.actions.cancel":`Annuler`,"multirun.fusion.actions.start":`Démarrer la fusion`,"multirun.fusion.actions.starting":`Démarrage...`,"multirun.fusion.toast.noOutputs":`Aucune sortie assistante trouvée pour fusionner.`,"multirun.fusion.toast.failed":`Échec du démarrage de la fusion.`,"multirun.launcher.attachments.label":`Fichiers`,"multirun.launcher.actions.startWithRunCount":`Démarrer ({count} s'exécute)`,"multirun.launcher.groups.addGroup":`Ajouter un groupe d'exécution`,"multirun.launcher.groups.removeGroup":`Supprimer le groupe`,"multirun.launcher.groups.groupLabel":`Groupe d'exécution {index}`,"multirun.launcher.groups.template.label":`Modèle`,"multirun.launcher.groups.template.placeholder":`Sélectionnez un modèle...`,"multirun.launcher.groups.template.custom":`Prompt personnalisé`,"multirun.launcher.groups.prompt.label":`Prompt`,"multirun.launcher.groups.prompt.placeholder":`Entrez le prompt pour ce groupe...`,"sessions.sidebar.header.actions.searchSessions":`Sessions de recherche`,"sessions.sidebar.header.actions.exitSelection":`Quitter la sélection`,"sessions.sidebar.header.actions.selectSessions":`Sélectionnez des sessions`,"sessions.sidebar.header.actions.sortProjects":`Trier les projets`,"sessions.sidebar.header.actions.sessionDisplayMode":`Actions de développement/réduction des projets`,"sessions.sidebar.header.displayMode.label":`Développer/réduire les projets`,"sessions.sidebar.header.displayMode.default":`Défaut`,"sessions.sidebar.header.displayMode.minimal":`Minimal`,"sessions.sidebar.header.displayMode.showRecent":`Afficher la section récente`,"sessions.sidebar.header.displayMode.collapseAll":`Tout réduire`,"sessions.sidebar.header.displayMode.expandAll":`Tout développer`,"sessions.sidebar.header.projectSort.manual":`Manuel`,"sessions.sidebar.header.projectSort.aToZ":`A → Z`,"sessions.sidebar.header.projectSort.zToA":`Z → A`,"sessions.sidebar.header.projectSort.dateAdded":`Les plus récentes`,"sessions.sidebar.header.projectSort.recent":`Récentes`,"sessions.sidebar.header.search.matchCountSingle":`Correspondance {count}`,"sessions.sidebar.header.search.matchCountPlural":`Correspondances {count}`,"sessions.sidebar.header.search.escapeHint":`Echap pour effacer`,"sessions.sidebar.header.search.placeholder":`Sessions de recherche...`,"sessions.sidebar.header.search.clear":`Effacer la recherche`,"sessions.sidebar.footer.actions.settings":`Paramètres`,"sessions.sidebar.footer.actions.shortcuts":`Raccourcis`,"sessions.sidebar.footer.actions.aboutOpenChamber":`À propos de OpenChamber`,"sessions.sidebar.footer.actions.update":`Mise à jour`,"sessions.sidebar.empty.noSessions.title":`Aucune session pour l'instant`,"sessions.sidebar.empty.noSessions.description":`Créez votre première session pour commencer à coder.`,"sessions.sidebar.empty.noMatches.title":`Aucune session correspondante`,"sessions.sidebar.empty.noMatches.description":`Essayez un autre titre, branche, dossier ou chemin.`,"sessions.sidebar.activity.recentTitle":`Récent`,"sessions.sidebar.projectsTitle":`Projets`,"sessions.sidebar.projectsSyncing":`Synchronisation des sessions…`,"sessions.sidebar.project.loadingSessions":`Chargement des sessions…`,"sessions.switcher.openAria":`Sélecteur de session ouvert`,"sessions.switcher.empty":`Aucune session récente`,"sessions.switcher.draftTitle":`Nouvelle session`,"sessions.sidebar.updateCheck.errorTitle":`Échec de la vérification des mises à jour`,"sessions.sidebar.updateCheck.latestVersion":`Vous êtes sur la dernière version`,"sessions.sidebar.directory.errorAddProjectTitle":`Échec de l'ajout du projet`,"sessions.sidebar.directory.errorAddProjectDescription":`Veuillez sélectionner un répertoire valide.`,"sessions.sidebar.directory.errorSelectDirectoryTitle":`Échec de la sélection du répertoire`,"sessions.sidebar.folder.newFolderName":`Nouveau dossier`,"sessions.sidebar.bulkActions.delete":`Supprimer`,"sessions.sidebar.bulkActions.archive":`Archive`,"sessions.sidebar.bulkActions.selectedCount":`{count} sélectionné`,"sessions.sidebar.bulkActions.moveToFolder":`Déplacer vers le dossier`,"sessions.sidebar.bulkActions.deletedSingle":`Session {count} supprimée`,"sessions.sidebar.bulkActions.deletedPlural":`Sessions {count} supprimées`,"sessions.sidebar.bulkActions.failedDeleteSingle":`Échec de la suppression de la session {count}`,"sessions.sidebar.bulkActions.failedDeletePlural":`Échec de la suppression des sessions {count}`,"sessions.sidebar.bulkActions.archivedSingle":`Session {count} archivée`,"sessions.sidebar.bulkActions.archivedPlural":`Sessions {count} archivées`,"sessions.sidebar.bulkActions.failedArchiveSingle":`Échec de l'archivage de la session {count}`,"sessions.sidebar.bulkActions.failedArchivePlural":`Échec de l'archivage des sessions {count}`,"sessions.sidebar.bulkActions.archiveUndoFailed":`Échec de la restauration de {count} sessions`,"sessions.sidebar.undo":`Annuler`,"sessions.sidebar.openSettings":`Paramètres`,"sessions.sidebar.folders.none":`Aucun dossier pour l'instant`,"sessions.sidebar.folders.newFolderEllipsis":`Nouveau dossier...`,"sessions.sidebar.folders.removeFromFolder":`Supprimer du dossier`,"sessions.sidebar.folders.moveToFolder":`Déplacer vers le dossier`,"sessions.sidebar.project.actions.newWorktree":`Nouveau worktree`,"sessions.sidebar.project.actions.newWorktreeEllipsis":`Nouveau worktree...`,"sessions.sidebar.project.actions.projectMenu":`Menu Projet`,"sessions.sidebar.project.actions.syncSessions":`Synchroniser les sessions`,"sessions.sidebar.project.actions.newSession":`Nouvelle session`,"sessions.sidebar.project.actions.closeProject":`Fermer le projet`,"sessions.sidebar.project.actions.edit":`Modifier`,"sessions.sidebar.project.actions.newDraftSession":`Nouveau brouillon de session`,"sessions.sidebar.session.menu.rename":`Rebaptiser`,"sessions.sidebar.session.rename.save":`Enregistrer le nom de la session`,"sessions.sidebar.session.rename.cancel":`Annuler la session de changement de nom`,"sessions.sidebar.session.rename.smartTitle":`Générer les titres automatiquement`,"sessions.sidebar.session.menu.unpin":`Désépingler`,"sessions.sidebar.session.menu.pin":`Épingler`,"sessions.sidebar.session.menu.share":`Partager`,"sessions.sidebar.session.menu.copied":`Copié`,"sessions.sidebar.session.menu.copyLink":`Copier le lien`,"sessions.sidebar.session.menu.unshare":`Annuler le partage`,"sessions.sidebar.session.menu.exportMarkdown":`Exporter le Markdown`,"sessions.sidebar.session.menu.refreshTranscript":`Synchroniser les messages`,"sessions.sidebar.session.menu.refreshTranscriptSuccess":`Messages synchronisés`,"sessions.sidebar.session.menu.refreshTranscriptFailed":`Échec de la synchronisation des messages`,"sessions.sidebar.session.menu.runFusion":`Exécuter la fusion`,"sessions.sidebar.session.menu.openInSidePanel":`Ouvrir dans le panneau latéral`,"sessions.sidebar.session.actions.openInEditor":`Ouvrir dans l'éditeur`,"sessions.sidebar.session.menu.betaBadge":`bêta`,"sessions.sidebar.session.menu.label":`Menu des sessions`,"sessions.sidebar.session.untitled":`Session sans titre`,"sessions.sidebar.session.export.nothingToExport":`Rien à exporter`,"sessions.sidebar.session.export.success":`Session exportée`,"sessions.sidebar.session.export.failedRevealPath":`Impossible de révéler le chemin`,"sessions.sidebar.session.export.untitledSubagent":`Sous-agent sans titre`,"sessions.sidebar.session.export.skippedSubtaskSingle":`Session exportée, mais tâche de sous-agent {count} ignorée qui n'a pas pu être chargée.`,"sessions.sidebar.session.export.skippedSubtaskMany":`Session exportée, mais tâches du sous-agent {count} ignorées qui n'ont pas pu être chargées.`,"sessions.sidebar.session.export.dialog.title":`Exporter le Markdown`,"sessions.sidebar.session.export.dialog.descriptionSingle":`Cette session comporte une tâche de sous-agent {count}. L'inclure dans l'exportation ?`,"sessions.sidebar.session.export.dialog.descriptionMany":`Cette session comporte des tâches de sous-agent {count}. Les inclure dans l'exportation ?`,"sessions.sidebar.session.export.dialog.includeSubtasks":`Inclure les tâches des sous-agents`,"sessions.sidebar.session.export.dialog.confirm":`Exporter`,"sessions.sidebar.session.status.active":`Session active`,"sessions.sidebar.session.status.unread":`Mises à jour non lues`,"sessions.sidebar.session.status.pinned":`Session épinglée`,"sessions.sidebar.session.actions.pinned":`Épinglé`,"sessions.sidebar.session.status.permissionRequired":`Autorisation requise`,"sessions.sidebar.session.status.questionRequired":`Question en attente`,"sessions.sidebar.session.subsessions.collapse":`Réduire les sous-sessions`,"sessions.sidebar.session.subsessions.expand":`Développer les sous-sessions`,"sessions.sidebar.dialogs.deleteSession.title":`Supprimer la session ?`,"sessions.sidebar.dialogs.archiveSession.title":`Session d'archivage ?`,"sessions.sidebar.dialogs.deleteSession.withOneSubtask":`"{sessionTitle}" et sa sous-tâche {count} seront définitivement supprimées.`,"sessions.sidebar.dialogs.deleteSession.withManySubtasks":`"{sessionTitle}" et ses sous-tâches {count} seront définitivement supprimées.`,"sessions.sidebar.dialogs.archiveSession.withOneSubtask":`"{sessionTitle}" et sa sous-tâche {count} seront archivées.`,"sessions.sidebar.dialogs.archiveSession.withManySubtasks":`"{sessionTitle}" et ses sous-tâches {count} seront archivées.`,"sessions.sidebar.dialogs.deleteSession.single":`"{sessionTitle}" sera définitivement supprimé.`,"sessions.sidebar.dialogs.archiveSession.single":`"{sessionTitle}" sera archivé.`,"sessions.sidebar.dialogs.neverAsk":`Ne demandez jamais`,"sessions.sidebar.dialogs.cancel":`Annuler`,"sessions.sidebar.dialogs.deleteSession.titleAction":`Supprimer la session`,"sessions.sidebar.dialogs.deleteSessions.titleAction":`Supprimer des sessions`,"sessions.sidebar.dialogs.deleteSessions.title":`Supprimer des sessions ?`,"sessions.sidebar.dialogs.archiveSessions.title":`Archiver des sessions ?`,"sessions.sidebar.dialogs.deleteSessions.singleDescription":`La session {count} sera définitivement supprimée.`,"sessions.sidebar.dialogs.deleteSessions.pluralDescription":`Les sessions {count} seront définitivement supprimées.`,"sessions.sidebar.dialogs.archiveSessions.singleDescription":`La session {count} sera archivée.`,"sessions.sidebar.dialogs.archiveSessions.pluralDescription":`Les sessions {count} seront archivées.`,"sessions.sidebar.dialogs.deleteFolder.title":`Supprimer le dossier ?`,"sessions.sidebar.dialogs.deleteFolder.withOneSubfolder":`"{folderName}" sera supprimé avec le sous-dossier {count}. Les sessions à l’intérieur ne seront pas supprimées.`,"sessions.sidebar.dialogs.deleteFolder.withManySubfolders":`"{folderName}" sera supprimé avec les sous-dossiers {count}. Les sessions à l’intérieur ne seront pas supprimées.`,"sessions.sidebar.dialogs.deleteFolder.withContentsNoSubfolders":`"{folderName}" sera supprimé. Les sessions à l’intérieur ne seront pas supprimées.`,"sessions.sidebar.dialogs.deleteFolder.single":`"{folderName}" sera définitivement supprimé.`,"sessions.sidebar.dialogs.deleteResult.singleFailedToDelete":`La session {count} n'a pas pu être supprimée.`,"sessions.sidebar.dialogs.deleteResult.manyFailedToDelete":`Les sessions {count} n'ont pas pu être supprimées.`,"sessions.sidebar.dialogs.deleteResult.singleFailedToArchive":`La session {count} n'a pas pu être archivée.`,"sessions.sidebar.dialogs.deleteResult.manyFailedToArchive":`Les sessions {count} n'ont pas pu être archivées.`,"sessions.sidebar.dialogs.deleteResult.removedFromDate":`Suppression de toutes les sessions de {dateLabel}.`,"sessions.sidebar.dialogs.deleteResult.tryAgain":`Veuillez réessayer dans un instant.`,"sessions.sidebar.dialogs.worktreeDelete.descriptionNoLinked":`Cela supprime le worktree sélectionné.`,"sessions.sidebar.dialogs.worktreeDelete.descriptionOneLinked":`Cela supprime le worktree sélectionné et archive la session liée {count}.`,"sessions.sidebar.dialogs.worktreeDelete.descriptionManyLinked":`Cela supprime le worktree sélectionné et archive les {count} sessions liées.`,"sessions.sidebar.dialogs.sessionDelete.descriptionOne":`Cette action supprime définitivement 1 session.`,"sessions.sidebar.dialogs.sessionDelete.descriptionOneWithDate":`Cette action supprime définitivement 1 session de {dateLabel}.`,"sessions.sidebar.dialogs.sessionDelete.descriptionMany":`Cette action supprime définitivement les sessions {count}.`,"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate":`Cette action supprime définitivement les sessions {count} de {dateLabel}.`,"sessions.sidebar.dialogs.sessionList.more":`+{count} plus`,"sessions.sidebar.session.share.successTitle":`Session partagée`,"sessions.sidebar.session.share.successDescription":`Vous pouvez copier le lien depuis le menu.`,"sessions.sidebar.session.share.error":`Impossible de partager la session`,"sessions.sidebar.session.share.copyUrlError":`Échec de la copie de URL`,"sessions.sidebar.session.unshare.success":`Session non partagée`,"sessions.sidebar.session.unshare.error":`Impossible d'annuler le partage de session`,"sessions.sidebar.session.delete.success":`Session supprimée`,"sessions.sidebar.session.delete.error":`Échec de la suppression de la session`,"sessions.sidebar.session.archive.success":`Session archivée`,"sessions.sidebar.session.archive.error":`Échec de l'archivage de la session`,"sessions.sidebar.session.archive.undoFailed":`Échec de l'annulation de l'archivage`,"sessions.sidebar.group.pr.checksPassed":`Contrôles {success}/{total} réussis`,"sessions.sidebar.group.pr.failingCount":`Échec de {count}`,"sessions.sidebar.group.pr.pendingCount":`{count} en attente`,"sessions.sidebar.group.pr.conflictsOrBlocked":`Conflits ou blocage`,"sessions.sidebar.group.pr.mergeable":`Fusionnable`,"sessions.sidebar.group.pr.mergeState":`État de fusion : {state}`,"sessions.sidebar.group.pr.status.merged":`Fusionné`,"sessions.sidebar.group.pr.status.readyToMerge":`Prêt à fusionner`,"sessions.sidebar.group.pr.status.open":`PR ouverte`,"sessions.sidebar.group.pr.status.mergeConflicts":`Fusionner les conflits`,"sessions.sidebar.group.pr.status.mergeBlocked":`Fusion bloquée`,"sessions.sidebar.group.pr.status.draft":`PR en brouillon`,"sessions.sidebar.group.pr.status.closed":`Fermé`,"sessions.sidebar.group.empty.noArchivedSessions":`Aucune session archivée pour l'instant.`,"sessions.sidebar.group.empty.noSessionsInWorkspace":`Aucune session dans cet espace de travail pour le moment.`,"sessions.sidebar.group.showMoreSingle":`Afficher plus de session sur {count}`,"sessions.sidebar.group.showMorePlural":`Afficher {count} plus de sessions`,"sessions.sidebar.group.showFewer":`Moins`,"sessions.sidebar.group.expandAria":`Développer {label}`,"sessions.sidebar.group.collapseAria":`Réduire {label}`,"sessions.sidebar.group.actions.deleteArchivedInGroupAria":`Supprimer les sessions archivées dans {label}`,"sessions.sidebar.group.actions.deleteArchivedSessions":`Supprimer les sessions archivées`,"sessions.sidebar.group.actions.deleteGroupAria":`Supprimer {label}`,"sessions.sidebar.group.actions.deleteWorktree":`Supprimer ce worktree`,"sessions.sidebar.group.actions.newDraftInGroupAria":`Nouvelle session de brouillon dans {label}`,"sessions.sidebar.grouping.projectRoot":`racine du projet`,"sessions.sidebar.grouping.projectRootWithBranch":`racine du projet : {branch}`,"sessions.sidebar.grouping.archived":`archivé`,"sessions.sidebar.grouping.archivedDescription":`Sessions archivées et non attribuées`,"sessions.sidebar.folderItem.expandAria":`Développer le dossier {folderName}`,"sessions.sidebar.folderItem.collapseAria":`Réduire le dossier {folderName}`,"sessions.sidebar.folderItem.namePlaceholder":`Nom du dossier`,"sessions.sidebar.folderItem.newSessionAria":`Nouvelle session dans {folderName}`,"sessions.sidebar.folderItem.newSubfolderAria":`Nouveau sous-dossier dans {folderName}`,"sessions.sidebar.folderItem.newSubfolder":`Nouveau sous-dossier`,"sessions.sidebar.folderItem.renameAria":`Renommer le dossier {folderName}`,"sessions.sidebar.folderItem.deleteArchivedInFolderAria":`Supprimer les sessions archivées dans le dossier {folderName}`,"sessions.sidebar.folderItem.deleteFolderAria":`Supprimer le dossier {folderName}`,"sessions.sidebar.folderItem.emptyFolder":`Dossier vide`,"sessions.sidebar.sessionDialogs.ok":`D'ACCORD`,"sessions.sidebar.sessionDialogs.linkedSessionSingle":`Session liée`,"sessions.sidebar.sessionDialogs.linkedSessionPlural":`Sessions liées`,"sessions.sidebar.sessionDialogs.delete.note":`Les répertoires Worktree restent intacts. Les sous-sessions liées aux sessions sélectionnées seront également supprimées.`,"sessions.sidebar.sessionDialogs.directory.errorSelectTitle":`Échec de la sélection du répertoire`,"sessions.sidebar.sessionDialogs.directory.errorOpenTitle":`Échec de l'ouverture du répertoire`,"sessions.sidebar.sessionDialogs.directory.errorOpenDescription":`Desktop n'a pas pu accorder l'accès aux fichiers.`,"sessions.sidebar.sessionDialogs.directory.errorAddProjectTitle":`Échec de l'ajout du projet`,"sessions.sidebar.sessionDialogs.directory.errorAddProjectDescription":`Veuillez sélectionner un chemin de répertoire valide.`,"sessions.sidebar.sessionDialogs.worktree.errorRemoveTitle":`Échec de la suppression du worktree`,"sessions.sidebar.sessionDialogs.worktree.removedTitle":`Worktree supprimé`,"sessions.sidebar.sessionDialogs.worktree.removed":`Worktree supprimé.`,"sessions.sidebar.sessionDialogs.worktree.removedWithRemote":`Worktree et branche du dépôt distant supprimés.`,"sessions.sidebar.sessionDialogs.worktree.attachedArchived":`Worktree ci-joint archivé.`,"sessions.sidebar.sessionDialogs.worktree.attachedArchivedPlural":`Worktrees joints archivés.`,"sessions.sidebar.sessionDialogs.worktree.archivedAndRemoteRemoved":`Worktrees archivés et branches du dépôt distant supprimées.`,"sessions.sidebar.sessionDialogs.worktree.label":`Worktree`,"sessions.sidebar.sessionDialogs.worktree.pathUnavailable":`Chemin du worktree indisponible.`,"sessions.sidebar.sessionDialogs.worktree.uncommittedWarning":`Les modifications non validées seront ignorées.`,"sessions.sidebar.sessionDialogs.actions.deleteRemoteBranch":`Supprimer la branche du dépôt distant`,"sessions.sidebar.sessionDialogs.actions.remoteBranchInfoUnavailable":`Informations sur la branche du dépôt distant indisponibles`,"sessions.sidebar.sessionDialogs.actions.deleteLocalBranch":`Supprimer la branche locale`,"sessions.sidebar.sessionDialogs.actions.deleting":`Suppression…`,"sessions.sidebar.sessionDialogs.actions.deleteWorktree":`Supprimer le worktree`,"gitView.branch.branchToMergeInto":`Branche à fusionner avec {branch}`,"gitView.branch.branchToRebaseOnto":`Branche sur laquelle rebaser`,"gitView.branch.create":`Créer une nouvelle branche...`,"gitView.branch.currentBadge":`Actuel`,"gitView.branch.currentBranchFallback":`branche actuelle`,"gitView.branch.currentBranchTooltip":`Branche actuelle`,"gitView.branch.detachedHead":`HEAD détaché`,"gitView.branch.dialogDescriptionPrefix":`Choisissez comment intégrer une autre branche`,"gitView.branch.empty":`Aucune branche trouvée.`,"gitView.branch.localBranches":`Branches locales`,"gitView.branch.mergeDescription":`Créez un commit de fusion et conservez l’historique des branches.`,"gitView.branch.mergeRebase":`Fusionner/Rebase`,"gitView.branch.mergeRebaseTooltip":`Mettez à jour cette branche depuis une autre branche.`,"gitView.branch.mergingInProgress":`Fusion en cours`,"gitView.branch.namePlaceholder":`Nom de la branche`,"gitView.branch.newBranchPlaceholder":`Nouveau nom de branche`,"gitView.branch.noLocalBranches":`Aucune branche locale`,"gitView.branch.noRemoteBranches":`Aucune branche du dépôt distant`,"gitView.branch.operation":`Opération`,"gitView.branch.operationCompleted":`Opération terminée`,"gitView.branch.operationFailed":`Échec de l'opération`,"gitView.branch.pushToPrefix":`Appuyer pour préfixer`,"gitView.branch.pushToSuffix":`Appuyer pour suffixer`,"gitView.branch.rebaseDescription":`Rejouez vos commits au-dessus de la branche sélectionnée.`,"gitView.branch.rebasingInProgress":`Rebasage en cours`,"gitView.branch.remoteBranches":`Branches du dépôt distant`,"gitView.branch.renameTitle":`Renommer la branche`,"gitView.branch.renameSave":`Enregistrer le nom de la branche`,"gitView.branch.renameSaving":`Enregistrer le nom de la branche`,"gitView.branch.renameCancel":`Annuler le changement de nom de la branche`,"gitView.branch.searchPlaceholder":`Rechercher des branches...`,"gitView.branch.selectBranch":`Sélectionnez une branche`,"gitView.branch.summaryMergeInfix":`dans`,"gitView.branch.summaryMergePrefix":`Cela fusionnera`,"gitView.branch.summaryRebaseInfix":`sur`,"gitView.branch.summaryRebasePrefix":`Cela va rebaser`,"gitView.branch.updateDescriptionPrefix":`Apportez les dernières modifications dans`,"gitView.branch.updateTitle":`Mettre à jour la branche`,"gitView.changes.changedFilesAria":`Fichiers modifiés`,"gitView.changes.clearSelectionAria":`Effacer la sélection de fichiers`,"gitView.changes.collapseDirectoryAria":`Réduire le répertoire`,"gitView.changes.expandDirectoryAria":`Développer le répertoire`,"gitView.changes.revertAll":`Tout rétablir`,"gitView.changes.revertAllDescriptionPlural":`Rétablir toutes les modifications sélectionnées ?`,"gitView.changes.revertAllDescriptionSingle":`Rétablir la modification sélectionnée ?`,"gitView.changes.revertAllDialogTitle":`Annuler toutes les modifications ?`,"gitView.changes.revertFileAria":`Rétablir le fichier`,"gitView.changes.revertFileTooltip":`Annuler les modifications`,"gitView.changes.reverting":`Revenant...`,"gitView.changes.selectAllAria":`Sélectionnez tous les fichiers`,"gitView.changes.selectFileAria":`Sélectionner le fichier`,"gitView.changes.deferredTitle":`{count} fichiers modifiés`,"gitView.changes.deferredStagedCount":`En index : {count}`,"gitView.changes.deferredUnstagedCount":`Hors index : {count}`,"gitView.changes.deferredHint":`Les très gros ensembles de modifications ne sont pas affichés automatiquement afin de garder l’application fluide.`,"gitView.changes.deferredLoadAction":`Charger les modifications`,"gitView.changes.stagedTitle":`Mise en scène`,"gitView.changes.resizeSplitAria":`Redimensionner les modifications planifiées et non planifiées`,"gitView.changes.stageAllAria":`Organiser tous les changements`,"gitView.changes.stageDirectoryAria":`Ajoutez à l’index tous les changements dans {path}`,"gitView.changes.stageFileAria":`Ajouter à l’index {path}`,"gitView.changes.title":`Changements`,"gitView.changes.toggleDirectorySelectionAria":`Basculer la sélection du répertoire`,"gitView.changes.unstageAllAria":`Annuler toutes les modifications`,"gitView.changes.unstageDirectoryAria":`Annuler toutes les modifications dans {path}`,"gitView.changes.unstageFileAria":`Retirer de l’index {path}`,"gitView.commit.addGitmoji":`Ajouter un gitmoji`,"gitView.commit.aiHighlights.insertAria":`Insérer`,"gitView.commit.aiHighlights.insertTooltip":`Insérer une info-bulle`,"gitView.commit.aiHighlights.title":`Points forts`,"gitView.commit.commit":`Commettre`,"gitView.commit.commitAria":`Valider le commit`,"gitView.commit.committing":`S'engager...`,"gitView.commit.generate":`Générer`,"gitView.commit.generateAria":`Générer un message de commit`,"gitView.commit.messagePlaceholder":`Message de commit`,"gitView.commit.push":`Valider et synchroniser`,"gitView.commit.pushAria":`Valider et synchroniser`,"gitView.commit.pushing":`Synchronisation...`,"gitView.commit.selectFilesHint":`Sélectionnez les fichiers dans Modifications pour activer le commit.`,"gitView.commit.stageFilesHint":`Ajoutez des fichiers à l’index pour activer le commit.`,"gitView.commit.title":`Commettre`,"gitView.common.cancel":`Annuler`,"gitView.common.close":`Fermer`,"gitView.common.done":`Fait`,"gitView.common.processing":`Traitement...`,"gitView.common.reset":`Réinitialiser`,"gitView.conflict.abortOperation":`Abandonner l’opération`,"gitView.conflict.conflictedFiles":`Fichiers en conflit :`,"gitView.conflict.continueLater":`Continuer plus tard`,"gitView.conflict.detectedDescription":`Un conflit Git a été détecté.`,"gitView.conflict.detectedTitle":`Conflit détecté`,"gitView.conflict.errorLoadingDetails":`Erreur de chargement des détails`,"gitView.conflict.headInfo":`Informations HEAD :`,"gitView.conflict.loadFailed":`Échec du chargement`,"gitView.conflict.loading":`Chargement des détails du conflit...`,"gitView.conflict.noActiveSession":`Aucune session active`,"gitView.conflict.noActiveSessionDescription":`Ouvrez une session active pour continuer.`,"gitView.conflict.resolveCurrentSession":`Résoudre dans la session en cours`,"gitView.conflict.resolveNewSession":`Résoudre dans une nouvelle session`,"gitView.empty.cleanDescription":`Tous les changements ont été validés`,"gitView.empty.cleanTitle":`Worktree sans modifications`,"gitView.empty.pullBehindPlural":`Extraire les commits {count}`,"gitView.empty.pullBehindSingle":`Extraire le commit {count}`,"gitView.header.identityTooltip":`Identité Git`,"gitView.header.noIdentity":`Aucune identité`,"gitView.header.noProfiles":`Aucun profil disponible à appliquer.`,"gitView.header.repositoryViews":`Vues du dépôt`,"gitView.header.removeRemoteAria":`Supprimer le remote`,"gitView.header.removeRemoteTitle":`Supprimer le remote`,"gitView.header.upstreamSynced":`synchronisé`,"gitView.header.upstreamTooltip":`Par rapport au {target}.`,"gitView.header.upstreamTooltipTracking":`Par rapport au {target}. Les badges de synchronisation principaux reflètent toujours {tracking}.`,"gitView.history.actions.cancelButton":`Annuler`,"gitView.history.actions.checkout":`Basculer`,"gitView.history.actions.checkoutConfirm":`Basculer sur ce commit en HEAD détaché ?`,"gitView.history.actions.cherryPick":`Cherry-pick`,"gitView.history.actions.cherryPickConfirm":`Cherry-pick ce commit sur la branche actuelle ?`,"gitView.history.actions.conflictToastDescription":`Conflits dans : {files}. Résolvez manuellement et validez, ou abandonnez avec git Cherry-pick/revert --abort.`,"gitView.history.actions.conflictToastTitle":`Conflit`,"gitView.history.actions.confirmButton":`Confirmer`,"gitView.history.actions.createBranch":`Créer une branche ici`,"gitView.history.actions.createBranchConfirm":`Créer`,"gitView.history.actions.createBranchPlaceholder":`Nom de la branche`,"gitView.history.actions.detachedHead":`Checkout (HEAD détaché)`,"gitView.history.actions.merge":`Fusionner avec le courant`,"gitView.history.actions.mergeConfirm":`Fusionner ce commit dans la branche actuelle ?`,"gitView.history.actions.rebase":`Rebase sur ce commit`,"gitView.history.actions.rebaseConfirm":`Rebaser la branche actuelle sur ce commit ?`,"gitView.history.actions.reset":`Réinitialiser...`,"gitView.history.actions.resetHard":`Hard — annuler toutes les modifications`,"gitView.history.actions.resetHardConfirm":`Réinitialisation matérielle - HEAD se déplace, toutes les modifications non validées sont définitivement supprimées.`,"gitView.history.actions.resetHardConfirmButton":`Ignorer les modifications`,"gitView.history.actions.resetMixed":`Mixte\xA0–\xA0modifications hors index`,"gitView.history.actions.resetMixedConfirm":`Réinitialisation mixte - HEAD bouge, change hors index.`,"gitView.history.actions.resetSoft":`Soft — conserver l'index`,"gitView.history.actions.resetSoftConfirm":`Réinitialisation logicielle - HEAD se déplace, modifications dans l’index préservées.`,"gitView.history.actions.revert":`Revenir`,"gitView.history.actions.revertConfirm":`Organiser un retour à ce commit ?`,"gitView.history.binary":`Binaire`,"gitView.history.binaryNoDiff":`Fichier binaire — aucune différence disponible`,"gitView.history.commitsPlaceholder":`Rechercher des commits`,"gitView.history.copySha":`Copier SHA`,"gitView.history.diffError":`Échec du chargement du diff. Cliquez pour réessayer.`,"gitView.history.largeDiffDescription":`Le rendu peut être lent. Vous pouvez toujours voir la différence en cliquant ci-dessous.`,"gitView.history.largeDiffTitle":`Grand diff ({count} a modifié les lignes)`,"gitView.history.loadingDiff":`Chargement du différentiel...`,"gitView.history.loadingFiles":`Chargement des fichiers...`,"gitView.history.loadMore":`Charger plus`,"gitView.history.loadingMore":`Chargement...`,"gitView.history.logSize100":`Taille du journal\xA0100`,"gitView.history.logSize25":`Taille du journal25`,"gitView.history.logSize50":`Taille du journal50`,"gitView.history.noCommits":`Aucun commit trouvé`,"gitView.history.noFiles":`Aucun fichier`,"gitView.history.renamedNoDiff":`Fichier renommé\xA0–\xA0diff non pris en charge`,"gitView.history.renderDiffAnyway":`Rendre quand même`,"gitView.history.title":`Historique`,"gitView.graph.title":`Graphique`,"gitView.integrate.checking":`Vérification…`,"gitView.integrate.cherryPickAbortedToast":`Cherry-pick annulé`,"gitView.integrate.cherryPickConflictDescription":`Des conflits sont apparus pendant le Cherry-pick.`,"gitView.integrate.cherryPickConflictToast":`Conflits pendant le Cherry-pick`,"gitView.integrate.cherryPickContinueFailedToast":`Impossible de continuer le Cherry-pick`,"gitView.integrate.cherryPickFinishedToast":`Cherry-pick terminé`,"gitView.integrate.commitsMovedDescriptionPlural":`{count} commits déplacés`,"gitView.integrate.commitsMovedDescriptionSingle":`1 commit déplacé`,"gitView.integrate.commitsMovedToast":`Commits déplacés`,"gitView.integrate.commitsToMove":`Commits à déplacer`,"gitView.integrate.conflictsInFiles":`Conflits dans les fichiers`,"gitView.integrate.currentCommit":`Commit actuel`,"gitView.integrate.currentSession":`Session en cours`,"gitView.integrate.failedToMoveToast":`Échec du déplacement des commits`,"gitView.integrate.moreFiles":`Plus de fichiers`,"gitView.integrate.move":`Se déplacer`,"gitView.integrate.moveCommits":`Déplacer les commits`,"gitView.integrate.moving":`Déplacement…`,"gitView.integrate.newSession":`Nouvelle session`,"gitView.integrate.noActiveSession":`Aucune session active`,"gitView.integrate.noActiveSessionDescription":`Ouvrez une session active pour déplacer des commits.`,"gitView.integrate.noCommitsToMove":`Aucun commit à déplacer.`,"gitView.integrate.noCommitsToMoveToast":`Aucun commit à déplacer`,"gitView.integrate.previewUnavailable":`Aperçu indisponible`,"gitView.integrate.showAll":`Afficher tout`,"gitView.integrate.showLess":`Afficher moins`,"gitView.integrate.showingFirstCommits":`Affichage des premiers commits`,"gitView.integrate.target":`Cible`,"gitView.integrate.title":`Réintégrer les commits`,"gitView.integrate.toMoveCount":`Nombre de commits à déplacer`,"gitView.operation.abort":`Avorter`,"gitView.operation.continue":`Continuer`,"gitView.operation.inProgressTitle":`{operation} en cours`,"gitView.operation.merge":`Fusionner`,"gitView.operation.mergeInProgressWithHead":`Fusion de {head}`,"gitView.operation.mergingMessage":`Fusion : {message}`,"gitView.operation.rebase":`Rebase`,"gitView.operation.rebaseInProgress":`Rebase en cours`,"gitView.operation.rebasingOnto":`Rebaser {headName} sur {onto}`,"gitView.operation.resolveConflictsHint":`Résolvez les conflits, puis poursuivez l'opération.`,"gitView.operation.resolveWithAi":`Résoudre avec l'IA`,"gitView.stash.confirmButton":`Confirmer`,"gitView.stash.description":`Des modifications locales doivent être mises en stash pour continuer.`,"gitView.stash.mergeWith":`Fusionner avec`,"gitView.stash.rebaseOnto":`Rebase sur`,"gitView.stash.restoreAfterOperation":`Restaurer après l'opération`,"gitView.stash.restoreAria":`Restaurer le stash`,"gitView.stash.stepRestore":`Restaurez vos modifications cachées`,"gitView.stash.stepStash":`Cachez vos modifications non validées`,"gitView.stash.thisWill":`Cela va :`,"gitView.stash.title":`Modifications non validées`,"gitView.stashes.actions.apply":`Appliquer`,"gitView.stashes.actions.drop":`Drop`,"gitView.stashes.actions.pop":`Pop`,"gitView.stashes.actions.stashCurrent":`Mettre les modifications actuelles en stash`,"gitView.stashes.actions.stashCurrentWithCount":`Cacher les fichiers {count}`,"gitView.stashes.confirm.drop":`Supprimer {ref} ?`,"gitView.stashes.description":`Enregistrez, restaurez et nettoyez les stashes Git pour ce dépôt.`,"gitView.stashes.empty.list":`Aucun stash pour l'instant.`,"gitView.stashes.empty.search":`Aucun stash correspondant.`,"gitView.stashes.includeUntrackedHint":`Les fichiers non suivis sont inclus automatiquement.`,"gitView.stashes.fileCount":`Fichiers {count}`,"gitView.stashes.fileCountLoading":`compter les fichiers...`,"gitView.stashes.itemNumber":`#{number}`,"gitView.stashes.latestLabel":`Dernier`,"gitView.stashes.messagePlaceholder":`Nom du stash`,"gitView.stashes.searchPlaceholder":`Rechercher des stashes`,"gitView.stashes.title":`Stashes`,"gitView.stashes.toast.applyFailed":`Échec de l'application du cache`,"gitView.stashes.toast.applySuccess":`Stash appliqué`,"gitView.stashes.toast.createFailed":`Échec de la sauvegarde des modifications`,"gitView.stashes.toast.created":`Modifications cachées`,"gitView.stashes.toast.dropFailed":`Échec de la suppression du stash`,"gitView.stashes.toast.dropSuccess":`Stash supprimé`,"gitView.stashes.toast.loadFailed":`Échec du chargement des stashes`,"gitView.stashes.toast.noChanges":`Aucune modification locale à stocker`,"gitView.stashes.toast.popFailed":`Échec du pop du stash`,"gitView.stashes.toast.popSuccess":`Le stash a été pop`,"gitView.stashes.untitled":`Stash sans titre`,"gitView.sync.fetch":`Aller chercher`,"gitView.sync.fetchFromRemote":`Récupérer depuis {name}`,"gitView.sync.fetchTooltip":`Récupérer à distance`,"gitView.sync.commitOrStashTooltip":`Validez ou cachez vos modifications avant la synchronisation`,"gitView.sync.moreActionsAria":`Plus d'actions de synchronisation`,"gitView.sync.noRemoteTooltip":`Aucun dépôt distant n’est configuré`,"gitView.sync.pull":`Tirer`,"gitView.sync.pullTooltip":`Extraire les modifications`,"gitView.sync.pullTooltipBehind":`Tirer les modifications ({count} derrière)`,"gitView.sync.push":`Pousser`,"gitView.sync.pushTooltip":`Pousser les changements`,"gitView.sync.pushTooltipAhead":`Pousser les modifications ({count} en avance)`,"gitView.sync.sync":`synchroniser`,"gitView.sync.syncChanges":`Synchroniser les modifications`,"gitView.sync.syncChangesTooltip":`Modifications de synchronisation ({behind} vers le bas, {ahead} vers le haut)`,"gitView.sync.syncChangesWithCounts":`Modifications de synchronisation {behind}↓ {ahead}↑`,"gitView.sync.syncCounts":`{behind}↓ {ahead}↑`,"gitView.branch.actionsUnavailable":`Actions de branchement indisponibles dans cet état du dépôt`,"gitView.conflict.noDetailsAvailable":`Aucun détail de conflit disponible`,"gitView.empty.notGitRepository":`Ce répertoire n'est pas un dépôt Git`,"gitView.empty.notGitRepositoryDescription":`Initialisez Git dans ce répertoire ou ouvrez un dépôt.`,"gitView.empty.selectSessionOrDirectory":`Sélectionnez une session ou un répertoire pour afficher l'état de Git`,"gitView.empty.worktreeFeaturesUnavailable":`Les fonctionnalités Worktree ne sont pas disponibles dans ce mode d’espace de travail.`,"gitView.empty.worktreeSetupDescription":`Termine la configuration du worktree et prépare l'état du dépôt.`,"gitView.empty.worktreeSetupInProgress":`Configuration de worktree en cours`,"gitView.gitmoji.empty":`Aucun gitmoji trouvé`,"gitView.gitmoji.searchPlaceholder":`Rechercher des gitmoji...`,"gitView.gitmoji.title":`Insérer un gitmoji`,"gitView.history.dialogDescription":`Parcourez les commits récents et inspectez les fichiers modifiés.`,"gitView.loading.checkingRepository":`Vérification du dépôt...`,"gitView.loading.loading":`Chargement...`,"gitView.pr.actions.add":`Ajouter`,"gitView.pr.actions.cancelEditing":`Annuler la modification`,"gitView.pr.actions.cancelEditingAria":`Annuler la modification des PR`,"gitView.pr.actions.createPr":`Créer une PR`,"gitView.pr.actions.edit":`Modifier`,"gitView.pr.actions.editPr":`Modifier la PR`,"gitView.pr.actions.editPrAria":`Modifier la PR`,"gitView.pr.actions.hide":`Cacher`,"gitView.pr.actions.markReady":`Marquez prêt`,"gitView.pr.actions.markReadyAria":`Marquer la demande d'extraction comme prête à être examinée`,"gitView.pr.actions.mergePr":`Fusionner la PR`,"gitView.pr.actions.mergePrAria":`Fusionner la PR`,"gitView.pr.actions.openChecks":`Chèques ouverts`,"gitView.pr.actions.openChecksAria":`Ouvrir les chèques échoués`,"gitView.pr.actions.openComments":`Commentaires ouverts`,"gitView.pr.actions.openCommentsAria":`Ouvrir les commentaires de la PR`,"gitView.pr.actions.openOnGitHub":`Ouvert sur GitHub`,"gitView.pr.actions.openOnGitHubAria":`Ouvrir la PR sur GitHub`,"gitView.pr.actions.openSettings":`Ouvrir les paramètres`,"gitView.pr.actions.repo":`Dépôt`,"gitView.pr.actions.resolveFailedChecks":`Résoudre les contrôles échoués`,"gitView.pr.actions.resolveFailedChecksAria":`Envoyer les chèques échoués à l'agent`,"gitView.pr.actions.savePr":`Enregistrer la PR`,"gitView.pr.actions.savePrAria":`Enregistrer les modifications de la PR`,"gitView.pr.actions.sendCommentToAgent":`Envoyer le commentaire à l'agent`,"gitView.pr.actions.sendCommentToAgentAria":`Envoyer ce commentaire à l'agent`,"gitView.pr.actions.sendToAgent":`Envoyer à l'agent`,"gitView.pr.actions.shareComments":`Partager les commentaires`,"gitView.pr.actions.shareCommentsAria":`Envoyer les commentaires de la PR à l'agent`,"gitView.pr.actions.toggleDraftAria":`Basculer l'état de brouillon`,"gitView.pr.actions.refresh":`Actualiser le statut PR`,"gitView.pr.actions.refreshAria":`Actualiser l'état de la demande d'extraction`,"gitView.pr.additionalContext.added":`Ajouté`,"gitView.pr.additionalContext.hint":`Ajoutez un contexte supplémentaire pour une meilleure qualité d’évaluation.`,"gitView.pr.additionalContext.optional":`Facultatif`,"gitView.pr.additionalContext.title":`Contexte supplémentaire`,"gitView.pr.checkDetails.empty":`Aucun détail de chèque disponible`,"gitView.pr.checkDetails.title":`Détails de la vérification ayant échoué`,"gitView.pr.checkingStatus":`Vérification de l'état de la PR...`,"gitView.pr.checks.label":`chèques`,"gitView.pr.checks.completedLabel":`Complété`,"gitView.pr.checks.conclusionLabel":`Conclusion`,"gitView.pr.checks.startedLabel":`Commencé`,"gitView.pr.checks.statusLabel":`Statut`,"gitView.pr.checks.stepLabel":`Étape`,"gitView.pr.checks.steps":`Mesures`,"gitView.pr.comments.empty":`Aucun commentaire trouvé`,"gitView.pr.comments.generalContext":`Commentaire général`,"gitView.pr.comments.reviewContext":`Revoir le commentaire`,"gitView.pr.comments.title":`Commentaires`,"gitView.pr.comments.unknownAuthor":`Auteur inconnu`,"gitView.pr.createTitle":`Créer une PR`,"gitView.pr.draftMustBeReady":`Le brouillon de PR doit être marqué comme prêt avant la fusion.`,"gitView.pr.field.baseBranch":`Branche de base`,"gitView.pr.field.description":`Description`,"gitView.pr.field.draft":`Brouillon`,"gitView.pr.field.title":`Titre`,"gitView.pr.githubNotConnected":`GitHub n'est pas connecté`,"gitView.pr.loadingDescription":`Chargement de la description de la PR...`,"gitView.pr.mergeMethod.merge":`Créer un commit de fusion`,"gitView.pr.mergeMethod.rebase":`Rebase et fusionner`,"gitView.pr.mergeMethod.squash":`Écraser et fusionner`,"gitView.pr.noDescription":`Aucune description`,"gitView.pr.noMergePermission":`Vous n'êtes pas autorisé à fusionner cette demande d'extraction.`,"gitView.pr.notMergeable":`Non fusionnable`,"gitView.pr.numberLabel":`PR #{number}`,"gitView.pr.placeholder.additionalContext":`Toute contrainte, note de déploiement ou contexte du réviseur...`,"gitView.pr.placeholder.description":`Décrivez le changement...`,"gitView.pr.placeholder.main":`Résumez votre PR`,"gitView.pr.placeholder.selectBaseBranch":`Sélectionnez la branche de base`,"gitView.pr.placeholder.title":`Titre de la PR`,"gitView.pr.placeholder.whatChanged":`Qu'est-ce qui a changé et pourquoi ?`,"gitView.pr.statusUnavailable":`Statut PR indisponible`,"gitView.pr.toast.baseBranchRequired":`Sélectionnez une branche de base`,"gitView.pr.toast.baseMustDifferFromHead":`La branche de base doit différer de la branche actuelle`,"gitView.pr.toast.createPrFailed":`Échec de la création de la PR`,"gitView.pr.toast.generateDescriptionFailed":`Échec de la génération de la description de la PR`,"gitView.pr.toast.githubApiUnavailable":`GitHub API n'est pas disponible`,"gitView.pr.toast.loadCheckDetailsFailed":`Échec du chargement des détails du chèque`,"gitView.pr.toast.loadChecksFailed":`Échec du chargement des vérifications de la PR`,"gitView.pr.toast.loadCommentsFailed":`Échec du chargement des commentaires`,"gitView.pr.toast.loadPrCommentsFailed":`Échec du chargement des commentaires de la PR`,"gitView.pr.toast.markReadyFailed":`Impossible de marquer la PR comme prête`,"gitView.pr.toast.markedReady":`PR marquée comme prête pour relecture`,"gitView.pr.toast.mergeFailed":`Échec de la fusion de la PR`,"gitView.pr.toast.noActiveSession":`Aucune session de chat active`,"gitView.pr.toast.noActiveSessionDescription":`Ouvrez ou créez une session de discussion pour envoyer du contexte à un agent.`,"gitView.pr.toast.noFailedChecks":`Aucun chèque échoué trouvé`,"gitView.pr.toast.noModelSelected":`Sélectionnez d'abord un modèle`,"gitView.pr.toast.noPrComments":`Aucun commentaire de PR trouvé`,"gitView.pr.toast.prCreated":`PR créée`,"gitView.pr.toast.prMerged":`PR fusionnée`,"gitView.pr.toast.prNotMerged":`La PR n'a pas été fusionnée`,"gitView.pr.toast.prUpdated":`PR mise à jour`,"gitView.pr.toast.sendMessageFailed":`Échec de l'envoi du message à l'agent`,"gitView.pr.toast.titleRequired":`Le titre est requis`,"gitView.pr.toast.updatePrFailed":`Échec de la mise à jour de la PR`,"gitView.pullRequest.createHint":`Créez et gérez les PR depuis cette branche.`,"gitView.pullRequest.availableOnFeatureBranches":`Disponible lorsque la branche actuelle peut ouvrir une PR.`,"gitView.pullRequest.title":`PR`,"gitView.tabs.commit":`Commettre`,"gitView.tabs.pr":`PR`,"gitView.tabs.update":`Mise à jour`,"gitView.tabs.worktree":`Worktree`,"gitView.toast.abortOperationFailed":`Échec de l'annulation de l'opération`,"gitView.toast.appliedIdentity":`Identité appliquée : {name}`,"gitView.toast.applyIdentityFailed":`Échec de l'application de l'identité`,"gitView.toast.branchCreatedLocally":`Branche créée localement, mais n'a pas pu être configurée en amont.`,"gitView.toast.cannotCheckout":`Impossible de basculer sur la branche : {reason}`,"gitView.toast.cannotCreateBranch":`Impossible de créer une branche : {reason}`,"gitView.toast.cannotRemoveOriginRemote":`Impossible de supprimer le dépôt distant origin`,"gitView.toast.cannotRenameBranch":`Impossible de renommer la branche : {reason}`,"gitView.toast.checkedOut":`J'ai vérifié {name}`,"gitView.toast.checkoutFailed":`Échec du checkout de {name}`,"gitView.toast.commitCreated":`Commit créé`,"gitView.toast.commitHashCopied":`Hachage du commit copié`,"gitView.toast.continueOperationFailed":`Échec de la poursuite de l'opération`,"gitView.toast.copyFailed":`Échec de la copie`,"gitView.toast.createBranchFailed":`Échec de la création de la branche`,"gitView.toast.createCommitFailed":`Échec de la création du commit`,"gitView.toast.createdBranch":`Branche créée {name}`,"gitView.toast.enterCommitMessage":`Entrez un message de commit`,"gitView.toast.fetchedFromRemote":`Récupéré depuis {name}`,"gitView.toast.generateCommitMessageFailed":`Échec de la génération du message de commit`,"gitView.toast.mergeAborted":`Fusion interrompue`,"gitView.toast.mergeCompleted":`Fusion terminée`,"gitView.toast.mergeConflictsDetected":`Conflits de fusion détectés`,"gitView.toast.mergedIntoBranch":`Fusion de {branch} dans {currentBranch}`,"gitView.toast.pulledFilesPlural":`Récupération de {count} fichiers depuis {name}`,"gitView.toast.pulledFilesSingle":`Récupération de {count} fichier depuis {name}`,"gitView.toast.pushedToUpstream":`Poussé vers {name}`,"gitView.toast.commitOrStashBeforeSync":`Validez ou cachez vos modifications avant la synchronisation`,"gitView.toast.alreadyUpToDate":`Déjà à jour`,"gitView.toast.syncedPulledPluralAndPushed":`Extrait les fichiers {count} de {name} et poussé vers l'amont`,"gitView.toast.syncedPulledSingleAndPushed":`Récupération de {count} fichier depuis {name} puis push vers l’amont`,"gitView.toast.syncedChanges":`Modifications synchronisées`,"gitView.toast.rebaseAborted":`Rebase abandonné`,"gitView.toast.rebaseConflictsDetected":`Conflits de rebase détectés`,"gitView.toast.rebaseStepCompleted":`Ajouter à l’index de rebase terminée`,"gitView.toast.rebasedOntoBranch":`Rebasage de {currentBranch} sur {branch}`,"gitView.toast.refreshRepositoryFailed":`Échec de l'actualisation du dépôt`,"gitView.toast.remoteNameRequired":`Le nom du dépôt distant est requis`,"gitView.toast.removedRemote":`Remote supprimé\xA0: {name}`,"gitView.toast.renameBranchFailed":`Échec du renommage de {oldName} en {newName}`,"gitView.toast.renamedBranch":`Renommé {oldName} en {newName}`,"gitView.toast.restoreStashFailed":`Échec de la restauration du cache`,"gitView.toast.restoreStashManually":`Cache restauré manuellement requis`,"gitView.toast.revertFailed":`Échec de l'annulation des modifications`,"gitView.toast.revertedFile":`{path} inversé`,"gitView.toast.revertedFilesPlural":`Fichiers {count} rétablis`,"gitView.toast.revertedFilesSingle":`Fichier {count} rétabli`,"gitView.toast.revertedSomePlural":`Fichiers {success} annulés, échec de {failed}`,"gitView.toast.revertedSomeSingle":`Fichier {success} rétabli, échec de {failed}`,"gitView.toast.stageFileFailed":`Échec de l'ajout des modifications à l'index`,"gitView.toast.stageFileToCommit":`Préparez au moins un fichier à valider`,"gitView.toast.stageFileToDescribe":`Mettre en scène au moins un fichier à décrire`,"gitView.toast.selectFileToCommit":`Sélectionnez au moins un fichier à valider`,"gitView.toast.selectFileToDescribe":`Sélectionnez au moins un fichier à décrire`,"gitView.toast.stashedRestored":`Modifications cachées restaurées`,"gitView.toast.syncActionFailed":`Échec du {action}`,"gitView.toast.unstageFileFailed":`Échec de l'annulation du transfert des modifications`,"gitView.toast.upstreamSet":`Réglé en amont pour {branch} à {remote}`,"gitView.worktree.availableInWorktreeMode":`Disponible uniquement en mode worktree`,"contextPanel.mode.chat":`Chat`,"contextPanel.mode.files":`Fichiers`,"contextPanel.mode.diff":`Changements`,"contextPanel.mode.stagedDiff":`Différence par étapes`,"contextPanel.mode.workingDiff":`Différentiel de travail`,"contextPanel.mode.plan":`Plan`,"contextPanel.mode.context":`Contexte`,"contextPanel.mode.preview":`Aperçu`,"contextPanel.mode.browser":`Navigateur`,"contextPanel.browser.open":`Ouvrir le panneau du navigateur`,"contextPanel.browser.addressAria":`Adresse du navigateur`,"contextPanel.browser.empty":`Navigateur Internet`,"contextPanel.browser.emptyHint":`Entrez une adresse ci-dessus pour commencer à naviguer sur le Web`,"contextPanel.tab.closeTabAria":`Fermer l'onglet {label}`,"contextPanel.actions.collapsePanel":`Réduire le panneau`,"contextPanel.actions.expandPanel":`Agrandir le panneau`,"contextPanel.actions.closePanel":`Fermer le panneau`,"contextPanel.actions.resizePanelAria":`Redimensionner le panneau contextuel`,"contextPanel.iframe.sessionChatTitle":`Session de discussion {sessionID}`,"contextPanel.preview.actions.reload":`Recharger l'aperçu`,"contextPanel.preview.actions.openExternal":`Ouvrir dans le navigateur`,"contextPanel.preview.actions.retry":`Réessayer`,"contextPanel.preview.iframeTitle":`Aperçu`,"contextPanel.preview.invalidUrl":`L'aperçu nécessite un http(s) URL valide.`,"contextPanel.preview.empty":`Pas d'aperçu URL`,"contextPanel.preview.loading":`Connexion du proxy d'aperçu...`,"contextPanel.preview.proxyError":`Impossible de démarrer le proxy d'aperçu.`,"contextPanel.preview.upstreamUnreachable":`Le serveur de développement ne répond pas.`,"contextPanel.preview.upstreamUnreachableHint":`Assurez-vous que votre serveur de développement est toujours en cours d'exécution, puis réessayez.`,"contextPanel.preview.startingServer":`Démarrage du serveur de développement...`,"contextPanel.preview.startingServerHint":`En attente que le serveur accepte les connexions.`,"contextPanel.preview.title":`Aperçu`,"contextPanel.preview.description":`Utilisez les actions du projet ou un bouton Aperçu du terminal pour ouvrir un aperçu.`,"contextPanel.preview.startPreview":`Démarrer l'aperçu`,"contextPanel.preview.starting":`Démarrage...`,"contextPanel.preview.noDevServer":`Aucune commande de serveur de développement trouvée. Configurez une action de projet ou ajoutez un script "dev" à package.json.`,"contextPanel.preview.startFailed":`Échec du démarrage du serveur d'aperçu.`,"contextPanel.preview.serverExited":`Le serveur de développement s'est arrêté de manière inattendue.`,"contextPanel.preview.noUrlDetected":`Le serveur de développement a démarré, mais aucun URL n'a été détecté dans sa sortie. Ouvrez l'onglet Aperçu du terminal pour vérifier les journaux.`,"contextPanel.preview.serverExitedWithLog":`Le serveur de développement s'est arrêté de manière inattendue. Dernière sortie :
8
8
 
9
9
  {log}`,"contextPanel.preview.noUrlDetectedWithLog":`Le serveur de développement n'est pas devenu accessible. Dernière sortie :
10
10