@openchambery/web 1.18.2-beta.2 → 1.18.2-beta.21

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 (148) hide show
  1. package/dist/assets/{AgentAvatar-B2kZjgaf.js → AgentAvatar-B4fj9PIe.js} +1 -1
  2. package/dist/assets/{AssistantView-DvoyOGkx.js → AssistantView-C00aiEHK.js} +1 -1
  3. package/dist/assets/{ChatContainer-D6yfuigV.js → ChatContainer-BDFeDKu-.js} +39 -39
  4. package/dist/assets/{DiagramView-MGGo9iME.js → DiagramView-CUfSFI3e.js} +1 -1
  5. package/dist/assets/{FadeInOnReveal-aeWlaqVB.js → FadeInOnReveal-CKKU6fKI.js} +1 -1
  6. package/dist/assets/{Icon-AXqa-fYB.js → Icon-DiIuWOuC.js} +1 -1
  7. package/dist/assets/{MarkdownRendererImpl-jVOkZkyX.js → MarkdownRendererImpl-Cen6E9Lj.js} +2 -2
  8. package/dist/assets/{MobileDetailNavigation-Q2IzHqGA.js → MobileDetailNavigation-DILi0tN7.js} +1 -1
  9. package/dist/assets/{MobileShareBridge-apXM34Lb.js → MobileShareBridge-PZMRiieI.js} +1 -1
  10. package/dist/assets/MobileSurface-BLYcR0tO.js +2 -0
  11. package/dist/assets/{MultiRunWindow-B-l_O-bd.js → MultiRunWindow-D_2mWZyv.js} +1 -1
  12. package/dist/assets/{OnboardingScreen-CUsgwt4y.js → OnboardingScreen-CYeRZznl.js} +1 -1
  13. package/dist/assets/{OverlayScrollbar-D6NySAxi.js → OverlayScrollbar-BgMLtMIq.js} +1 -1
  14. package/dist/assets/SettingsView-CbDBfQp1.js +25 -0
  15. package/dist/assets/{SettingsWindow-DfVgTQ4I.js → SettingsWindow-Br7XLcSd.js} +1 -1
  16. package/dist/assets/{TerminalView-DNyjfkvT.js → TerminalView-CM5jRKlj.js} +1 -1
  17. package/dist/assets/{ToolOutputDialog-DLG1iThm.js → ToolOutputDialog-D3U6aTZ4.js} +1 -1
  18. package/dist/assets/appThemeRegistry-CDxBJNNB.js +2 -0
  19. package/dist/assets/assistant-guide-hero-BeUHQcxE.jpg +0 -0
  20. package/dist/assets/{button-CDvMVaiO.js → button-DaAoVF4X.js} +1 -1
  21. package/dist/assets/{clipboard-BW7nk_Cx.js → clipboard-BnElHSnO.js} +1 -1
  22. package/dist/assets/{collapsible-C2aamDvD.js → collapsible-BmuQu0dq.js} +1 -1
  23. package/dist/assets/{context-menu-BaxmodD8.js → context-menu-DBOMervd.js} +1 -1
  24. package/dist/assets/{desktopHosts-CBoBpJ1Z.js → desktopHosts-ZK_vkdzL.js} +1 -1
  25. package/dist/assets/{desktopRelayRestore-l2R9muux.js → desktopRelayRestore-CewM6-g5.js} +1 -1
  26. package/dist/assets/{diagram-CEon0BQs.js → diagram-DAE4CZy2.js} +1 -1
  27. package/dist/assets/{dialog-DjYfj1Sn.js → dialog-COrLBm9O.js} +1 -1
  28. package/dist/assets/{es-5Lhudh0n.js → es-DIVYdoxi.js} +1 -1
  29. package/dist/assets/{fileQueries-CE_DaZWQ.js → fileQueries-CmWYnRVz.js} +1 -1
  30. package/dist/assets/{fr-Q_UhFmKT.js → fr-CNTlVypq.js} +2 -2
  31. package/dist/assets/{gitApi-BYxg_qGJ.js → gitApi-BQT3QXD2.js} +1 -1
  32. package/dist/assets/gitApiHttp-BxGAFLTf.js +2 -0
  33. package/dist/assets/{input-k9DGGyZ6.js → input-XiL2-2gG.js} +1 -1
  34. package/dist/assets/insertionBoundaries-9a0RuIDc.js +1 -0
  35. package/dist/assets/{ja-CzMPz7bT.js → ja-C_eW5ZM8.js} +1 -1
  36. package/dist/assets/{ko-B-EslUsR.js → ko-CE3cOv7v.js} +1 -1
  37. package/dist/assets/{main-LDphyc-v.js → main-BGfX81Y9.js} +20 -20
  38. package/dist/assets/{main-CO6z5yRB.js → main-CEqSDnE2.js} +2 -2
  39. package/dist/assets/{markdown-worker-DkeWiER6.js → markdown-worker-BDyY0vt6.js} +1 -1
  40. package/dist/assets/{markdownTheme-DNT93i5L.js → markdownTheme-D-aLQZaM.js} +1 -1
  41. package/dist/assets/{miniChat-BZQwTZpx.js → miniChat-CKucSAhg.js} +2 -2
  42. package/dist/assets/mobile-C4bTWKry.js +2 -0
  43. package/dist/assets/{multirun-ZlwlkIy5.js → multirun-DeNtSkgb.js} +1 -1
  44. package/dist/assets/{persistence-DPNMIbF5.js → persistence-D1lIuyqO.js} +1 -1
  45. package/dist/assets/{pl-Dnea6Ppc.js → pl-BZKZOE99.js} +1 -1
  46. package/dist/assets/projectMeta-BunN9pH5.js +3 -0
  47. package/dist/assets/{pt-BR-Ca6QTem7.js → pt-BR-DHDgp8S3.js} +1 -1
  48. package/dist/assets/{radio-CJuhbQ5a.js → radio-Bziafaje.js} +1 -1
  49. package/dist/assets/renderElectronMiniChatApp-D8-FDgWE.js +2 -0
  50. package/dist/assets/renderMobileApp-CdU0aJ-e.js +23 -0
  51. package/dist/assets/{runtimeConfig-BtWi74Pm.js → runtimeConfig-BXCt7ZsQ.js} +1 -1
  52. package/dist/assets/runtimeEndpointReset-CK1GhIsm.js +145 -0
  53. package/dist/assets/{sortable-tabs-strip-D8JHUI0z.js → sortable-tabs-strip-pWlBorwQ.js} +1 -1
  54. package/dist/assets/src-8kQFmtjw.css +2 -0
  55. package/dist/assets/{store-wa1ersRf.js → store-CUWqzRt7.js} +2 -2
  56. package/dist/assets/{terminalApi-tB3qLcfa.js → terminalApi-DpiAJlil.js} +1 -1
  57. package/dist/assets/{tooltip-DMNR5rN0.js → tooltip-BLugzWq-.js} +1 -1
  58. package/dist/assets/{uk-xGc9Pzge.js → uk-CfQK6cz1.js} +1 -1
  59. package/dist/assets/{url-7MqoLs9X.js → url-DMs_PgIC.js} +1 -1
  60. package/dist/assets/useAppFontEffects-IEUQDvE8.js +7 -0
  61. package/dist/assets/useDesktopWindowControlsLayout-MlqJX89k.js +1 -0
  62. package/dist/assets/{useEffectiveDirectory-aUC3zzl_.js → useEffectiveDirectory-GbhkdO6m.js} +1 -1
  63. package/dist/assets/{useFontPreferences-CIurCeNv.js → useFontPreferences-92Qg-98H.js} +1 -1
  64. package/dist/assets/useMobileNavigationStore-DQHF_ETu.js +476 -0
  65. package/dist/assets/useSessionAutoCleanup-BuU_S_Sh.js +1 -0
  66. package/dist/assets/{useWorkerHighlightedLines-CiYQjBe6.js → useWorkerHighlightedLines-Ca6OgNHF.js} +1 -1
  67. package/dist/assets/{utils-Co19EJEL.js → utils-BxJEIWv5.js} +1 -1
  68. package/dist/assets/{zh-CN-sL4ktGB3.js → zh-CN-DvY2fKWp.js} +1 -1
  69. package/dist/assets/{zh-TW-Cfxps4gq.js → zh-TW-eWe0lm3-.js} +1 -1
  70. package/dist/index.html +8 -8
  71. package/dist/mini-chat.html +8 -8
  72. package/dist/mobile.html +8 -8
  73. package/package.json +1 -1
  74. package/server/index.d.ts +6 -0
  75. package/server/index.js +13 -0
  76. package/server/lib/config-sync/DOCUMENTATION.md +70 -0
  77. package/server/lib/config-sync/config-sync.test.js +197 -0
  78. package/server/lib/config-sync/constants.js +39 -0
  79. package/server/lib/config-sync/contract.js +130 -0
  80. package/server/lib/config-sync/credential-auth.js +39 -0
  81. package/server/lib/config-sync/engine.js +108 -0
  82. package/server/lib/config-sync/index.js +67 -0
  83. package/server/lib/config-sync/local-backup.js +171 -0
  84. package/server/lib/config-sync/plan.js +318 -0
  85. package/server/lib/config-sync/receiver.js +330 -0
  86. package/server/lib/config-sync/routes.js +141 -0
  87. package/server/lib/config-sync/routes.test.js +154 -0
  88. package/server/lib/config-sync/scripts.js +264 -0
  89. package/server/lib/config-sync/selections.js +112 -0
  90. package/server/lib/config-sync/tar.js +35 -0
  91. package/server/lib/config-sync/target-id.js +24 -0
  92. package/server/lib/event-stream/DOCUMENTATION.md +2 -2
  93. package/server/lib/event-stream/diff-summary.js +39 -11
  94. package/server/lib/event-stream/diff-summary.test.js +73 -6
  95. package/server/lib/event-stream/protocol.test.js +70 -7
  96. package/server/lib/notifications/DOCUMENTATION.md +2 -2
  97. package/server/lib/notifications/runtime.js +68 -27
  98. package/server/lib/notifications/runtime.test.js +176 -0
  99. package/server/lib/opencode/DOCUMENTATION.md +4 -1
  100. package/server/lib/opencode/bootstrap-runtime.js +2 -0
  101. package/server/lib/opencode/core-routes.js +1 -0
  102. package/server/lib/opencode/feature-routes-runtime.test.js +10 -1
  103. package/server/lib/opencode/openchamber-routes.js +7 -0
  104. package/server/lib/opencode/settings-runtime.js +82 -51
  105. package/server/lib/opencode/settings-runtime.test.js +42 -0
  106. package/server/lib/relay/DOCUMENTATION.md +1 -1
  107. package/server/lib/session-index/DOCUMENTATION.md +12 -6
  108. package/server/lib/session-index/routes.js +34 -0
  109. package/server/lib/session-index/routes.test.js +76 -0
  110. package/server/lib/session-index/service.js +53 -4
  111. package/server/lib/session-index/service.test.js +72 -2
  112. package/server/lib/session-title/DOCUMENTATION.md +19 -14
  113. package/server/lib/session-title/runtime.js +8 -8
  114. package/server/lib/session-title/runtime.test.js +231 -0
  115. package/server/lib/session-turn-pages/DOCUMENTATION.md +26 -6
  116. package/server/lib/session-turn-pages/changes.service.js +156 -0
  117. package/server/lib/session-turn-pages/changes.service.test.js +188 -0
  118. package/server/lib/session-turn-pages/reconcile.routes.test.js +52 -0
  119. package/server/lib/session-turn-pages/reconcile.service.js +3 -1
  120. package/server/lib/session-turn-pages/reconcile.service.test.js +44 -0
  121. package/server/lib/session-turn-pages/routes.js +273 -12
  122. package/server/lib/session-turn-pages/routes.test.js +387 -0
  123. package/server/lib/session-turn-pages/service.js +31 -7
  124. package/server/lib/session-turn-pages/service.test.js +40 -0
  125. package/server/lib/small-model/DOCUMENTATION.md +93 -38
  126. package/server/lib/small-model/catalog.js +10 -2
  127. package/server/lib/small-model/catalog.test.js +3 -1
  128. package/server/lib/small-model/index.js +52 -28
  129. package/server/lib/small-model/opencode-session.js +339 -0
  130. package/server/lib/small-model/opencode-session.test.js +177 -0
  131. package/server/lib/small-model/resolve.js +116 -5
  132. package/server/lib/small-model/resolve.test.js +76 -10
  133. package/server/lib/small-model/summary-settings.test.js +60 -3
  134. package/dist/assets/MobileSurface-htGkf7Ua.js +0 -2
  135. package/dist/assets/SettingsView-DxMpVLlt.js +0 -25
  136. package/dist/assets/appThemeRegistry-CgfOR_0L.js +0 -2
  137. package/dist/assets/gitApiHttp-D8j1qRH4.js +0 -2
  138. package/dist/assets/insertionBoundaries-DzXMTleb.js +0 -1
  139. package/dist/assets/mobile-BktO3_4R.js +0 -2
  140. package/dist/assets/projectMeta-v-LP2mzz.js +0 -3
  141. package/dist/assets/renderElectronMiniChatApp-Db8uO-6q.js +0 -2
  142. package/dist/assets/renderMobileApp-BCV81Ryl.js +0 -23
  143. package/dist/assets/runtimeEndpointReset-Dg3DMy9v.js +0 -145
  144. package/dist/assets/src-oHrYIqHF.css +0 -2
  145. package/dist/assets/useAppFontEffects-CM0VKsdo.js +0 -7
  146. package/dist/assets/useDesktopWindowControlsLayout-Cq-r4Hcb.js +0 -1
  147. package/dist/assets/useMobileNavigationStore-DnzT4jO2.js +0 -475
  148. package/dist/assets/useSessionAutoCleanup-DxZeceKO.js +0 -1
@@ -4,10 +4,10 @@ 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.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 :
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.direction.push":`Local → distant`,"settings.remoteInstances.page.sync.direction.pull":`Distant → local`,"settings.remoteInstances.page.sync.scope.title":`Contenu à synchroniser`,"settings.remoteInstances.page.sync.scope.authRequiresGrant":`Autorisez la sync des identifiants dans les paramètres de cette instance avant d’inclure auth.json.`,"settings.remoteInstances.page.sync.runs.title":`Exécutions de sync récentes`,"settings.remoteInstances.page.sync.runs.empty":`Aucune exécution de sync pour cette instance.`,"settings.remoteInstances.page.sync.runs.result.success":`Réussi`,"settings.remoteInstances.page.sync.runs.result.failure":`Échoué`,"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.section.credentialSync":`Sync des identifiants`,"settings.remoteInstances.page.credentialSync.description":`Se connecter à ce distant n’autorise pas la copie des jetons de connexion fournisseur. Activez uniquement si vous faites confiance à ce distant pour conserver votre auth.json OpenCode.`,"settings.remoteInstances.page.credentialSync.toggleLabel":`Autoriser la sync des identifiants fournisseur`,"settings.remoteInstances.page.credentialSync.toggleDescription":`Une fois activé, la sync de configuration peut transférer ~/.local/share/opencode/auth.json vers ce distant.`,"settings.remoteInstances.page.credentialSync.toggleAria":`Autoriser la synchronisation des identifiants fournisseur vers ce distant`,"settings.remoteInstances.page.credentialSync.confirmGrant":`Autoriser ce distant à recevoir les identifiants fournisseur (auth.json) ? Les jetons seront copiés via SSH lors de la synchronisation.`,"settings.remoteInstances.page.credentialSync.confirmRevoke":`Arrêter d’autoriser la sync des identifiants fournisseur vers ce distant ? Les syncs suivantes ignoreront auth.json.`,"settings.remoteInstances.page.credentialSync.toast.granted":`Sync des identifiants autorisée pour ce distant`,"settings.remoteInstances.page.credentialSync.toast.grantFailed":`Échec de l’autorisation de sync des identifiants`,"settings.remoteInstances.page.credentialSync.toast.revoked":`Autorisation de sync des identifiants retirée`,"settings.remoteInstances.page.credentialSync.toast.revokeFailed":`Échec du retrait de l’autorisation de sync des identifiants`,"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 pour la première fois (les forks se rafraîchissent aussi après leur première nouvelle réponse). Les tours suivants ne sont pas actualisés automatiquement ; renommez ou utilisez le titre intelligent manuellement.`,"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":`Générer automatiquement le titre lorsqu’une nouvelle session devient inactive pour la première fois, et lorsqu’un fork envoie son premier nouveau message. Les tours suivants ne sont pas actualisés automatiquement`,"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.pin.error":`Échec de l'épinglage de la session`,"sessions.sidebar.session.unpin.error":`Échec du désépinglage de la session`,"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
 
11
11
  {log}`,"contextPanel.preview.console.open":`Ouvrir la console d'aperçu`,"contextPanel.preview.console.waiting":`En attente de la console de prévisualisation`,"contextPanel.preview.console.title":`Console de prévisualisation`,"contextPanel.preview.console.attach":`Attacher`,"contextPanel.preview.console.copy":`Copie`,"contextPanel.preview.console.clear":`Effacer`,"contextPanel.preview.console.empty":`Aucun événement de console d’aperçu pour l’instant.`,"contextPanel.preview.console.noFilteredEvents":`Aucun événement ne correspond à ce filtre.`,"contextPanel.preview.console.runtimeError":`Erreur d'exécution`,"contextPanel.preview.console.copied":`Console d'aperçu copiée`,"contextPanel.preview.console.copyFailed":`Échec de la copie de la console d'aperçu`,"contextPanel.preview.console.attached":`Console de prévisualisation attachée au chat`,"contextPanel.preview.console.attachNoSession":`Ouvrir une session de discussion avant de joindre les journaux d'aperçu`,"contextPanel.preview.console.attachAnnotation":`Il s'agit des journaux de la console du navigateur du serveur de développement exécuté pour ce projet.`,"contextPanel.preview.inspect.toggle":`Inspecter l'élément d'aperçu`,"contextPanel.preview.inspect.attached":`Aperçu de l'annotation jointe au chat`,"contextPanel.preview.inspect.attachNoSession":`Ouvrir une session de discussion avant de joindre des annotations d'aperçu`,"contextPanel.preview.inspect.attachAnnotation":`Il s'agit d'un élément DOM sélectionné dans l'aperçu de l'application.`,"contextPanel.preview.inspect.attachAnnotationWithScreenshot":`Il s'agit d'un élément DOM sélectionné dans l'aperçu de l'application. Une capture d'écran de la zone d'aperçu visible avec l'élément sélectionné en surbrillance est jointe.`,"contextPanel.preview.console.filter.all":`Tous`,"contextPanel.preview.console.filter.errors":`Erreurs`,"contextPanel.preview.console.filter.warnings":`Avertissements`,"contextPanel.preview.console.filter.logs":`Journaux`,"terminalView.preview.open":`Aperçu`,"terminalView.preview.openTitle":`Ouvrir le volet d'aperçu`,"sidebarFilesTree.menu.rename":`Rebaptiser`,"sidebarFilesTree.menu.copyPath":`Copier le chemin`,"sidebarFilesTree.menu.save":`Sauvegarder`,"sidebarFilesTree.menu.newFile":`Nouveau fichier`,"sidebarFilesTree.menu.newFolder":`Nouveau dossier`,"sidebarFilesTree.menu.delete":`Supprimer`,"sidebarFilesTree.toast.pathCopied":`Chemin copié`,"sidebarFilesTree.toast.copyFailed":`Échec de la copie`,"sidebarFilesTree.toast.revealFailed":`Impossible de révéler le chemin`,"sidebarFilesTree.toast.filenameRequired":`Le nom du fichier est obligatoire`,"sidebarFilesTree.toast.writeNotSupported":`Écriture non prise en charge`,"sidebarFilesTree.toast.fileCreated":`Fichier créé`,"sidebarFilesTree.toast.operationFailed":`L'opération a échoué`,"sidebarFilesTree.toast.folderNameRequired":`Le nom du dossier est requis`,"sidebarFilesTree.toast.folderCreated":`Dossier créé`,"sidebarFilesTree.toast.nameRequired":`Le nom est requis`,"sidebarFilesTree.toast.renameNotSupported":`Renommer non pris en charge`,"sidebarFilesTree.toast.renamedSuccessfully":`Renommé avec succès`,"sidebarFilesTree.toast.deleteNotSupported":`Suppression non prise en charge`,"sidebarFilesTree.toast.deletedSuccessfully":`Supprimé avec succès`,"sidebarFilesTree.search.placeholder":`Rechercher des fichiers...`,"sidebarFilesTree.search.clearAria":`Effacer la recherche`,"sidebarFilesTree.actions.newFileTitle":`Nouveau fichier`,"sidebarFilesTree.actions.newFolderTitle":`Nouveau dossier`,"sidebarFilesTree.actions.refreshTitle":`Rafraîchir`,"sidebarFilesTree.actions.collapseAllTitle":`Tout réduire`,"sidebarFilesTree.actions.expandAllTitle":`Tout développer`,"sidebarFilesTree.actions.fileMenuTitle":`Menu Fichier`,"sidebarFilesTree.state.searching":`Recherche...`,"sidebarFilesTree.state.loading":`Chargement...`,"sidebarFilesTree.dialog.createFile.title":`Créer un fichier`,"sidebarFilesTree.dialog.createFolder.title":`Créer un dossier`,"sidebarFilesTree.dialog.rename.title":`Rebaptiser`,"sidebarFilesTree.dialog.delete.title":`Supprimer`,"sidebarFilesTree.dialog.createFile.description":`Créer un nouveau fichier dans {path}`,"sidebarFilesTree.dialog.createFolder.description":`Créez un nouveau dossier dans {path}`,"sidebarFilesTree.dialog.rename.description":`Renommer {name}`,"sidebarFilesTree.dialog.delete.description":`Etes-vous sûr de vouloir supprimer {name} ? Cette action ne peut pas être annulée.`,"sidebarFilesTree.dialog.rootFallback":`racine`,"sidebarFilesTree.dialog.rename.placeholder":`Nouveau nom`,"sidebarFilesTree.dialog.namePlaceholder":`Nom`,"sidebarFilesTree.dialog.cancel":`Annuler`,"sidebarFilesTree.dialog.confirm":`Confirmer`,"sidebarFilesTree.dialog.delete.confirm":`Supprimer`,"filesView.dialog.createFile.title":`Créer un fichier`,"filesView.dialog.createFolder.title":`Créer un dossier`,"filesView.dialog.rename.title":`Rebaptiser`,"filesView.dialog.delete.title":`Supprimer`,"filesView.dialog.createFile.description":`Créer un nouveau fichier dans {path}`,"filesView.dialog.createFolder.description":`Créez un nouveau dossier dans {path}`,"filesView.dialog.rename.description":`Renommer {name}`,"filesView.dialog.delete.description":`Etes-vous sûr de vouloir supprimer {name} ? Cette action ne peut pas être annulée.`,"filesView.dialog.rootFallback":`racine`,"filesView.dialog.rename.placeholder":`Nouveau nom`,"filesView.dialog.namePlaceholder":`Nom`,"filesView.dialog.cancel":`Annuler`,"filesView.dialog.confirm":`Confirmer`,"filesView.dialog.delete.confirm":`Supprimer`,"filesView.editor.saving":`Enregistrement...`,"filesView.editor.saved":`Enregistré`,"filesView.editor.autoSaveOn":`Sauvegarde automatique activée`,"filesView.editor.manualSave":`Sauvegarde manuelle`,"filesView.editor.saveNowTitle":`Enregistrer maintenant ({shortcut}) - sauvegarde automatique après 1.5s`,"filesView.editor.saveNowManualTitle":`Enregistrer maintenant ({shortcut})`,"filesView.editor.saveAria":`Enregistrer ({shortcut})`,"filesView.editor.openInDesktopApp":`Ouvrir dans l'application de bureau`,"filesView.editor.refreshApps":`Actualiser les applications`,"filesView.editor.disableLineWrap":`Désactiver le retour à la ligne`,"filesView.editor.enableLineWrap":`Activer le retour à la ligne`,"filesView.editor.findInFile":`Rechercher dans le fichier`,"filesView.editor.goToLine":`Aller à la ligne`,"filesView.editor.switchToEditMode":`Passer en mode édition`,"filesView.editor.switchToPreviewMode":`Passer en mode aperçu`,"filesView.editor.switchToTextView":`Passer à l'affichage texte`,"filesView.editor.switchToTreeView":`Passer à l'arborescence`,"filesView.toast.copyFailed":`Échec de la copie`,"filesView.toast.openInAppFailed":`Échec de l'ouverture dans {app}`,"filesView.toast.savingNotSupported":`Enregistrement non pris en charge`,"filesView.toast.writeFileFailed":`Échec de l'écriture du fichier`,"filesView.toast.saveFailed":`Échec de l'enregistrement`,"filesView.editor.copyFileContents":`Copier le contenu du fichier`,"filesView.editor.copyFilePathTitle":`Copier le chemin du fichier ({path})`,"filesView.editor.saveFile":`Enregistrer le fichier`,"filesView.editor.exitFullscreen":`Quitter le plein écran`,"filesView.editor.fullscreen":`Plein écran`,"filesView.unsaved.title":`Modifications non enregistrées`,"filesView.unsaved.description":`Enregistrer vos modifications avant de continuer ?`,"filesView.unsaved.saveChanges":`Enregistrer les modifications`,"filesView.unsaved.discard":`Jeter`,"filesView.editor.back":`Retour`,"filesView.editor.openFilesAria":`Ouvrir des fichiers`,"filesView.editor.closeFileAria":`Fermer {name}`,"filesView.editor.selectFile":`Sélectionnez un fichier`,"filesView.editor.showControlsAria":`Afficher les contrôles de l'éditeur`,"filesView.editor.controlsTitle":`Contrôles de l'éditeur`,"filesView.editor.pickFileFromTree":`Choisissez un fichier dans l'arborescence.`,"filesView.state.loading":`Chargement...`,"filesView.state.openingFileAtChange":`Ouverture du fichier lors du changement...`,"filesView.tree.search.placeholder":`Rechercher des fichiers...`,"filesView.tree.search.clearAria":`Effacer la recherche`,"filesView.tree.search.searching":`Recherche...`,"filesView.tree.actions.newFileTitle":`Nouveau fichier`,"filesView.tree.actions.newFolderTitle":`Nouveau dossier`,"filesView.tree.actions.refreshTitle":`Rafraîchir`,"filesView.editor.imageAltFallback":`Image`,"filesView.error.jsonViewerUnavailable":`Visionneuse JSON indisponible`,"filesView.error.switchToTextMode":`Passez en mode texte pour afficher le contenu brut.`,"filesView.warning.largeFilePreviewLimited":`Ce fichier est volumineux ({sizeKb}KB). L'aperçu peut être limité.`,"filesView.error.previewUnavailable":`Aperçu indisponible`,"filesView.error.switchToEditMode":`Passez en mode édition pour résoudre le problème.`,"filesView.error.readFileFailed":`Échec de la lecture du fichier`,"filesView.editor.htmlPreviewTitle":`Aperçu HTML`,"contextUsage.aria.label":`Utilisation du contexte`,"contextUsage.mobile.title":`Utilisation du contexte`,"contextUsage.mobile.usedTokens":`Jetons utilisés`,"contextUsage.mobile.contextLimit":`Limite de contexte`,"contextUsage.mobile.outputLimit":`Limite de sortie`,"contextUsage.mobile.usage":`Usage`,"contextUsage.tooltip.usage":`Utilisation : {percent}`,"contextUsage.tooltip.usedOfLimit":`{used} / {limit}`,"contextUsage.tooltip.usedTokens":`Jetons utilisés : {tokens}`,"contextUsage.tooltip.contextLimit":`Limite de contexte : {tokens}`,"contextUsage.tooltip.outputLimit":`Limite de sortie : {tokens}`,"contextSidebar.session.untitled":`Session sans titre`,"contextSidebar.empty.openSession":`Ouvrez une session pour inspecter le contexte.`,"contextSidebar.section.context":`Contexte`,"contextSidebar.section.lastAssistantMessage":`Dernier message de l'assistant`,"contextSidebar.section.rawMessages":`Messages bruts`,"contextSidebar.context.percentUsed":`{percent}% utilisé`,"contextSidebar.breakdown.user":`Utilisateur`,"contextSidebar.breakdown.assistant":`Assistant`,"contextSidebar.breakdown.toolCalls":`Appels d'outils`,"contextSidebar.breakdown.other":`Autre`,"contextSidebar.stats.messages":`Messages`,"contextSidebar.stats.user":`Utilisateur`,"contextSidebar.stats.assistant":`Assistant`,"contextSidebar.stats.cost":`Coût`,"contextSidebar.stats.sessionTps":`TPS de session`,"contextSidebar.tokens.input":`Entrée`,"contextSidebar.tokens.output":`Sortie`,"contextSidebar.tokens.reasoning":`Raisonnement`,"contextSidebar.tokens.cacheRead":`Lecture du cache`,"contextSidebar.tokens.cacheWrite":`Écriture du cache`,"contextSidebar.tokens.cacheHit":`Succès du cache`,"contextSidebar.tokens.tps":`TPS`,"contextSidebar.actions.copyJson":`Copier JSON`,"contextSidebar.actions.copy":`Copie`,"contextSidebar.actions.copied":`Copié`,"planView.file.defaultName":`plan`,"planView.title.default":`Plan`,"planView.error.saveFailed":`Échec de l'enregistrement`,"planView.error.previewUnavailable":`Aperçu indisponible`,"planView.error.switchToEditMode":`Passez en mode édition pour résoudre le problème.`,"planView.error.writeFailed":`Échec de l'écriture`,"planView.error.writePlanFileFailed":`Échec de l'écriture du fichier de plan ({status})`,"planView.actions.improvePlanAria":`Améliorer le plan`,"planView.actions.improve":`Améliorer`,"planView.actions.implementPlanAria":`Plan de mise en œuvre`,"planView.actions.implement":`Mettre en œuvre`,"planView.actions.sendToNewSession":`Envoyer à une nouvelle session`,"planView.actions.sendToNewWorktreeSession":`Envoyer à une nouvelle session Worktree`,"planView.actions.copyPlanContents":`Copier le contenu du plan`,"planView.state.loading":`Chargement...`,"diffView.binary.unavailable":`Le contenu de ce fichier ne peut pas être visualisé.`,"diffView.change.untracked":`Fichier non suivi`,"diffView.change.new":`Nouveau fichier`,"diffView.change.deleted":`Fichier supprimé`,"diffView.change.renamed":`Fichier renommé`,"diffView.change.copied":`Fichier copié`,"diffView.change.modified":`Fichier modifié`,"diffView.selector.selectFile":`Sélectionner un fichier`,"diffView.image.original":`Original`,"diffView.image.modified":`Modifié`,"diffView.image.new":`Nouveau`,"diffView.image.originalAlt":`Original: {path}`,"diffView.image.modifiedAlt":`Modifié : {path}`,"diffView.section.files":`Fichiers`,"diffView.state.selectSessionDirectory":`Sélectionnez un répertoire de session pour afficher les différences`,"diffView.state.loadingRepositoryStatus":`Chargement de l'état du dépôt...`,"diffView.state.notGitRepository":`Pas un dépôt git. Utilisez l'onglet Git pour initialiser ou modifier des répertoires.`,"diffView.state.cleanWorkingTree":`Worktree sans modifications, rien à afficher`,"diffView.state.noLastTurnChanges":`Aucun changement du dernier tour à afficher`,"diffView.state.failedToLoadDiff":`Échec du chargement du différentiel`,"diffView.state.loadingDiff":`Chargement du différentiel...`,"diffView.state.loadingChanges":`Chargement des modifications...`,"diffView.state.largeDiff":`Diff volumineux ({count} lignes modifiées)`,"diffView.state.largeDiffDescription":`Le rendu peut être lent. Vous pouvez tout de même afficher le diff avec le bouton ci-dessous.`,"diffView.summary.changedFilesSingle":`Le fichier {count} a été modifié`,"diffView.summary.changedFilesPlural":`Fichiers {count} modifiés`,"diffView.scope.changed":`Modifiés`,"diffView.scope.staged":`Staged`,"diffView.scope.lastTurn":`Dernier tour`,"diffView.scope.selectorAria":`Sélectionner le mode de changements`,"diffView.actions.retry":`Réessayer`,"diffView.actions.renderAnyway":`Afficher quand même`,"diffView.actions.expandAll":`Tout développer`,"diffView.actions.collapseAll":`Tout réduire`,"diffView.actions.loadFullFiles":`Charger les fichiers complets`,"diffView.actions.disableFullFiles":`Ne plus charger les fichiers complets`,"diffView.actions.disableLineWrap":`Désactiver le retour à la ligne`,"diffView.actions.enableLineWrap":`Activer le retour à la ligne`,"diffView.actions.openFileInEditorAtChange":`Ouvrez ce fichier dans l'éditeur lors du changement`,"diffView.actions.openFileAtFirstChangedLine":`Ouvrez ce fichier à la première ligne modifiée`,"diffView.actions.openFilePreview":`Ouvrir ce fichier`,"diffView.actions.review":`Revoir`,"diffView.actions.reviewAria":`Revoir les changements`,"diffView.reviewDialog.title":`Revoir les changements`,"diffView.reviewDialog.description":`Démarre une session de revue séparée pour les changements actuels.`,"diffView.reviewDialog.generateHandoff":`Générer un handoff`,"diffView.reviewDialog.autoReview":`Lancer la boucle de revue automatique`,"diffView.reviewDialog.info":`Ce flux fonctionne mieux lorsqu’il est lancé depuis la session où les changements ont été implémentés.`,"diffView.reviewDialog.actions.cancel":`Annuler`,"diffView.reviewDialog.actions.start":`Revoir`,"diffView.reviewDialog.actions.starting":`Démarrage...`,"diffView.reviewDialog.toast.noSessionDirectory":`Le dossier de session est indisponible`,"diffView.reviewDialog.toast.startFailed":`Impossible de démarrer le flux de revue`,"chat.history.loadOlder":`Charger les messages précédents`,"chat.history.loadingMore":`Chargement…`,"chat.history.loadOlderFailed":`Impossible de charger les messages précédents. Réessayez.`,"chat.history.loadOlderTimeout":`Le chargement des messages précédents a expiré. Réessayez.`,"chat.history.loadFailedTitle":`Impossible de charger cette conversation`,"chat.history.loadFailedDescription":`La conversation est toujours disponible. Essayez de la charger à nouveau.`,"chat.history.retry":`Réessayer`,"chat.autoReview.title":`La boucle de revue de code est en cours`,"chat.autoReview.status.waitingForReviewer":`En attente du reviewer`,"chat.autoReview.status.waitingForImplementer":`En attente de l’implémenteur`,"chat.autoReview.reviewSessionLabel":`Session de revue`,"chat.autoReview.actions.open":`Ouvrir`,"chat.autoReview.actions.stop":`Arrêter`,"diffView.hunk.label":`Sections`,"diffView.hunk.stage":`Préparer`,"diffView.hunk.unstage":`Retirer`,"diffView.hunk.discard":`Annuler`,"diffView.hunk.stageTitle":`Préparer la section {index}`,"diffView.hunk.unstageTitle":`Retirer la section {index} de la préparation`,"diffView.hunk.discardTitle":`Annuler la section {index}`,"diffView.hunk.unavailable":`Cette section n'est plus disponible. Actualisez le diff et réessayez.`,"diffView.hunk.unsupported":`La préparation de sections individuelles n'est pas prise en charge dans cet environnement.`,"rightSidebar.contextNotesTodo.plan.defaultTitle":`Plan`,"rightSidebar.contextNotesTodo.empty.selectProject":`Sélectionnez un projet pour ajouter des notes et des tâches.`,"rightSidebar.contextNotesTodo.notes.title":`Notes rapides - {project}`,"rightSidebar.contextNotesTodo.notes.placeholder":`Capturez le contexte, les rappels ou les liens`,"rightSidebar.contextNotesTodo.todo.title":`Faire`,"rightSidebar.contextNotesTodo.todo.itemsSingle":`Article {count}`,"rightSidebar.contextNotesTodo.todo.itemsPlural":`Articles {count}`,"rightSidebar.contextNotesTodo.todo.clearCompleted":`Effacer terminé`,"rightSidebar.contextNotesTodo.todo.inputPlaceholder":`Ajouter une tâche`,"rightSidebar.contextNotesTodo.todo.addAria":`Ajouter une tâche`,"rightSidebar.contextNotesTodo.todo.empty":`Aucune tâche pour l'instant. Ajoutez une petite liste de contrôle pour ce projet.`,"rightSidebar.contextNotesTodo.todo.actions.markComplete":`Marque "{text}" terminée`,"rightSidebar.contextNotesTodo.todo.actions.collapse":`Réduire la tâche "{text}"`,"rightSidebar.contextNotesTodo.todo.actions.expand":`Développer la tâche "{text}"`,"rightSidebar.contextNotesTodo.todo.actions.delete":`Supprimer "{text}"`,"rightSidebar.contextNotesTodo.todo.actions.send":`Envoyer "{text}"`,"rightSidebar.contextNotesTodo.todo.actions.reorder":`Récommander "{text}"`,"rightSidebar.contextNotesTodo.todo.resizeAria":`Redimensionner la liste de tâches`,"rightSidebar.contextNotesTodo.todo.sendMenu.currentSession":`Envoyer à la session en cours`,"rightSidebar.contextNotesTodo.todo.sendMenu.newSession":`Envoyer à une nouvelle session`,"rightSidebar.contextNotesTodo.todo.sendMenu.newWorktreeSession":`Envoyer à une nouvelle session Worktree`,"rightSidebar.contextNotesTodo.plans.title":`Forfaits`,"rightSidebar.contextNotesTodo.plans.filesSingle":`Fichier {count}`,"rightSidebar.contextNotesTodo.plans.filesPlural":`Fichiers {count}`,"rightSidebar.contextNotesTodo.plans.importFromFile":`Importer un plan à partir d'un fichier`,"rightSidebar.contextNotesTodo.plans.empty":`Aucun plan enregistré pour l'instant.`,"rightSidebar.contextNotesTodo.plans.deletePlan":`Supprimer le forfait`,"rightSidebar.contextNotesTodo.plans.deletePlanWithTitle":`Supprimer le plan "{title}"`,"rightSidebar.contextNotesTodo.sendDialog.title.newSession":`Envoyer à une nouvelle session`,"rightSidebar.contextNotesTodo.sendDialog.title.newWorktree":`Envoyer vers un nouvel worktree`,"rightSidebar.contextNotesTodo.sendDialog.variant.default":`Défaut`,"rightSidebar.contextNotesTodo.sendDialog.actions.cancel":`Annuler`,"rightSidebar.contextNotesTodo.sendDialog.actions.send":`Envoyer`,"rightSidebar.contextNotesTodo.sendDialog.actions.sending":`Envoi`,"rightSidebar.contextNotesTodo.toast.saveNotesFailed":`Échec de l'enregistrement des notes du projet`,"rightSidebar.contextNotesTodo.toast.loadNotesFailed":`Échec du chargement des notes de projet`,"rightSidebar.contextNotesTodo.toast.noActiveSession":`Aucune session active sélectionnée`,"rightSidebar.contextNotesTodo.toast.sentToCurrentSession":`Todo envoyé à la session en cours`,"rightSidebar.contextNotesTodo.toast.worktreeRequiresGitRepo":`Les actions Worktree ne sont disponibles que pour les dépôts Git`,"rightSidebar.contextNotesTodo.toast.createSessionFailed":`Échec de la création de la session`,"rightSidebar.contextNotesTodo.toast.sentToNewSession":`Todo envoyé à une nouvelle session`,"rightSidebar.contextNotesTodo.toast.sentToNewWorktreeSession":`Todo envoyé à une nouvelle session Worktree`,"rightSidebar.contextNotesTodo.toast.sendTodoFailed":`Échec de l'envoi de la tâche`,"rightSidebar.contextNotesTodo.toast.deletePlanFailed":`Échec de la suppression du plan`,"rightSidebar.contextNotesTodo.toast.planFileEmpty":`Le fichier de plan est vide`,"rightSidebar.contextNotesTodo.toast.importPlanFailed":`Échec de l'importation du plan`,"rightSidebar.contextNotesTodo.toast.planImported":`Forfait importé`,"rightSidebar.contextNotesTodo.toast.readPlanFileFailed":`Échec de la lecture du fichier de plan`,"inlineComment.range.lines":`Lignes {start}-{end}`,"inlineComment.input.placeholder":`Ajouter un commentaire... (Cmd+Entrée pour enregistrer)`,"inlineComment.actions.cancel":`Annuler`,"inlineComment.actions.save":`Sauvegarder`,"inlineComment.actions.comment":`Commentaire`,"inlineComment.actions.showLess":`Afficher moins`,"inlineComment.actions.showMore":`Afficher plus`,"inlineComment.actions.editComment":`Modifier le commentaire`,"inlineComment.actions.deleteComment":`Supprimer le commentaire`,"inlineComment.toast.selectSessionToSave":`Sélectionnez une session pour enregistrer le commentaire`,"header.github.connectedWithLogin":`GitHub : {login}`,"header.github.connected":`GitHub connecté`,"header.github.avatarWithLogin":`Avatar {login}`,"header.github.avatar":`Avatar GitHub`,"header.github.accountsTitle":`Comptes GitHub`,"header.github.accountSource.oauth":`OAuth`,"header.github.accountSource.cli":`CLI`,"header.services.openWithCurrent":`Changer d'instance (actuelle : {current})`,"header.services.open":`Changer d'instance`,"header.services.tooltip.currentInstanceWithShortcuts":`Changer d'instance : {current} ({toggle}\xA0; onglet suivant {nextTab})`,"header.services.tooltip.servicesWithShortcuts":`Changer d'instance ({toggle}\xA0; onglet suivant {nextTab})`,"header.services.title":`Changer d'instance`,"header.services.viewAria":`Changer d'instance`,"header.services.closeAria":`Fermer le sélecteur d'instance`,"header.services.rateLimits":`Limites de taux`,"header.services.refreshRateLimitsAria":`Limites du taux de rafraîchissement`,"header.services.noRateLimits":`Aucune limite de taux disponible.`,"header.services.noRateLimitsReported":`Aucune limite de taux signalée.`,"header.services.used":`Utilisé`,"header.services.remaining":`Restant`,"header.services.modelFamily.other":`Autre`,"header.services.shutdownDev":`Arrêter OpenChamber`,"header.actions.openPlanAria":`Plan ouvert`,"header.actions.toggleChangesPanel":`Panneau des changements`,"header.actions.toggleChangesPanelAria":`Basculer le panneau des changements`,"header.actions.sessionMenu":`Actions de session`,"header.actions.sessionMenuAria":`Ouvrir le menu des actions de session`,"header.actions.sessionMenu.servicesWithInstance":`Changer d'instance ({current})`,"header.actions.sessionMenu.viewUsage":`Voir l'utilisation`,"header.actions.planWithShortcut":`Forfait ({shortcut})`,"header.actions.terminalPanelWithShortcut":`Panneau à bornes ({shortcut})`,"chat.recap.aria":`Récapitulatif de la session`,"chat.recap.label":`Récap :`,"chat.goal.dialog.titleCreate":`Définir un objectif de session`,"chat.goal.dialog.titleManage":`Objectif de session`,"chat.goal.dialog.objectiveLabel":`Objectif`,"chat.goal.dialog.objectivePlaceholder":`Décrivez l'état final que l'agent doit atteindre et vérifier…`,"chat.goal.dialog.budgetLabel":`Budget de tokens`,"chat.goal.status.active":`Actif`,"chat.goal.status.evaluating":`Évaluation…`,"chat.goal.status.paused":`En pause`,"chat.goal.status.blocked":`Bloqué`,"chat.goal.status.budgetLimited":`Budget atteint`,"chat.goal.status.complete":`Terminé`,"chat.goal.usage.tokens":`{used}`,"chat.goal.usage.tokensWithBudget":`{used}/{budget}`,"chat.goal.usage.turns":`{turns} continuations`,"chat.goal.action.pause":`Mettre en pause`,"chat.goal.action.resume":`Reprendre`,"chat.goal.action.markComplete":`Marquer comme terminé`,"chat.goal.action.clear":`Supprimer l'objectif`,"chat.goal.chip.label":`Objectif`,"chat.goal.action.cancel":`Annuler`,"chat.goal.action.save":`Enregistrer l'objectif`,"chat.goal.action.start":`Lancer l'objectif`,"chat.goal.toast.actionFailed":`Échec de la mise à jour de l'objectif`,"chat.goal.toast.distillFallback":`L'objectif dépassait la limite et n'a pas pu être condensé — l'auditeur utilise une version tronquée`,"chat.goal.row.aria":`Objectif de session — ouvrir les détails`,"chat.goal.button.createAria":`Définir un objectif de session`,"chat.goal.button.manageAria":`Gérer l'objectif de session`,"chat.goal.button.armAria":`Démarrer un objectif avec le prochain message`,"chat.goal.counter.aria":`Limite de longueur de l'objectif`,"chat.goal.button.disarmAria":`Objectif armé — touchez pour désarmer`,"chat.goal.button.cancelAria":`Objectif en cours — touchez pour l’annuler`,"chat.goal.cancelDialog.title":`Annuler cet objectif ?`,"chat.goal.cancelDialog.description":`L'agent cessera de travailler automatiquement vers cet objectif.`,"chat.goal.cancelDialog.keep":`Garder l'objectif`,"chat.goal.cancelDialog.confirm":`Annuler l'objectif`,"header.actions.toggleTerminalPanel":`Panneau terminal`,"header.actions.toggleTerminalPanelAria":`Basculer le panneau à bornes`,"terminalView.stream.processExitedMessage":`[Processus terminé{exitCodeSegment}{signalSegment}]`,"terminalView.stream.processExitedWithCode":`avec le code {exitCode}`,"terminalView.stream.processExitedWithSignal":`(signal {signal})`,"terminalView.error.sessionEnded":`Session terminale terminée`,"terminalView.error.connectionFailed":`Échec de la connexion : {message}`,"terminalView.error.startSessionFailed":`Échec du démarrage de la session de terminal`,"terminalView.error.restartFailed":`Échec du redémarrage du terminal`,"terminalView.error.sendInputFailed":`Échec de l'envoi de l'entrée`,"terminalView.empty.noWorkingDirectory":`Aucun répertoire de travail disponible pour le terminal.`,"terminalView.empty.selectSession":`Sélectionnez une session pour ouvrir le terminal.`,"terminalView.empty.noWorkingDirectoryForSession":`Aucun répertoire de travail disponible pour cette session.`,"terminalView.actions.retry":`Réessayer`,"terminalView.actions.hardRestart":`Redémarrage dur`,"terminalView.actions.hardRestartTitle":`Forcer la mise à mort et créer une nouvelle session`,"terminalView.quickKeys.escape":`Échap`,"terminalView.quickKeys.tabAria":`Languette`,"terminalView.quickKeys.controlLabel":`Ctrl`,"terminalView.quickKeys.controlModifierAria":`Modificateur de contrôle`,"terminalView.quickKeys.commandModifierAria":`Modificateur de commande`,"terminalView.quickKeys.arrowUpAria":`Flèche vers le haut`,"terminalView.quickKeys.arrowLeftAria":`Flèche vers la gauche`,"terminalView.quickKeys.arrowDownAria":`Flèche vers le bas`,"terminalView.quickKeys.arrowRightAria":`Flèche vers la droite`,"terminalView.quickKeys.enterAria":`Entrer`,"terminalView.tabs.closeTabTitle":`Fermer l'onglet`,"terminalView.tabs.newTabTitle":`Nouvel onglet`,"terminalView.bottomDock.resizeAria":`Redimensionner le panneau à bornes`,"terminalView.bottomDock.restoreTitle":`Restaurer la hauteur du bornier`,"terminalView.bottomDock.restoreAria":`Restaurer la hauteur du bornier`,"terminalView.bottomDock.expandTitle":`Développer le panneau de connexion`,"terminalView.bottomDock.expandAria":`Développer le panneau de connexion`,"terminalView.bottomDock.closeTitle":`Fermer le panneau à bornes`,"terminalView.bottomDock.closeAria":`Fermer le panneau à bornes`,"terminalView.viewport.inputAria":`Entrée de borne`,"directoryExplorerDialog.title":`Ajouter un répertoire de projet`,"directoryExplorerDialog.description":`Choisissez un dossier à ajouter en tant que projet.`,"directoryExplorerDialog.toggle.showHidden":`Afficher masqué`,"directoryExplorerDialog.pathInput.placeholder":`Entrez le chemin ou sélectionnez dans l'arborescence...`,"directoryExplorerDialog.actions.openingFinder":`Ouverture...`,"directoryExplorerDialog.actions.openInFinder":`Ouvrir dans le Finder`,"directoryExplorerDialog.actions.adding":`Ajout...`,"directoryExplorerDialog.actions.addProject":`Ajouter un projet`,"directoryExplorerDialog.actions.addLocalProject":`Ajouter un projet local`,"directoryExplorerDialog.actions.cloneRepository":`Cloner le dépôt`,"directoryExplorerDialog.actions.cloneAndAdd":`Cloner et ajouter`,"directoryExplorerDialog.actions.cloning":`Clonage...`,"directoryExplorerDialog.actions.createAndAdd":`Créer et ajouter`,"directoryExplorerDialog.actions.alreadyAdded":`Déjà ajouté`,"directoryExplorerDialog.clone.remoteUrlPlaceholder":`URL du dépôt (HTTPS ou SSH)`,"directoryExplorerDialog.browse.directories":`Annuaires`,"directoryExplorerDialog.browse.loading":`Chargement des répertoires...`,"directoryExplorerDialog.browse.empty":`Aucun répertoire correspondant.`,"directoryExplorerDialog.browse.parentDirectory":`Annuaire parent`,"directoryExplorerDialog.browse.addedBadge":`Ajouté`,"directoryExplorerDialog.browse.quickAdd":`Ajouter`,"directoryExplorerDialog.footer.navigate":`Naviguer`,"directoryExplorerDialog.footer.select":`Sélectionner`,"directoryExplorerDialog.footer.add":`Ajouter`,"directoryExplorerDialog.shortcut.enter":`Entrer`,"directoryExplorerDialog.toast.unableToAccessDirectory":`Impossible d'accéder au répertoire`,"directoryExplorerDialog.toast.desktopDeniedAccess":`Le bureau a refusé l'accès au répertoire.`,"directoryExplorerDialog.toast.failedToOpenDirectory":`Échec de l'ouverture du répertoire`,"directoryExplorerDialog.toast.desktopCouldNotGrantAccess":`Desktop n'a pas pu accorder l'accès aux fichiers.`,"directoryExplorerDialog.toast.failedToAddProject":`Échec de l'ajout du projet`,"directoryExplorerDialog.toast.cloneUrlRequired":`Entrez dans un dépôt URL avant le clonage.`,"directoryExplorerDialog.toast.selectValidDirectoryPath":`Veuillez sélectionner un chemin de répertoire valide.`,"directoryExplorerDialog.toast.failedToSelectDirectory":`Échec de la sélection du répertoire`,"directoryExplorerDialog.toast.unknownError":`Une erreur inconnue s'est produite.`,"directoryTree.actions.createNewDirectory":`Créer un nouveau répertoire`,"directoryTree.actions.pinDirectory":`Répertoire des épingles`,"directoryTree.actions.unpinDirectory":`Détacher le répertoire`,"directoryTree.actions.createDirectory":`Créer un répertoire`,"directoryTree.actions.cancel":`Annuler`,"directoryTree.actions.selectWorkingDirectoryAria":`Sélectionnez le répertoire de travail`,"directoryTree.state.locatingHomeDirectory":`Localisation du répertoire personnel...`,"directoryTree.state.loading":`Chargement...`,"directoryTree.state.noDirectoriesFound":`Aucun répertoire trouvé`,"directoryTree.section.pinned":`Épinglé`,"directoryTree.section.browse":`Parcourir`,"aboutDialog.versionLabel":`Version {version}`,"aboutDialog.openChamberVersionLabel":`Version OpenChamber {version}`,"aboutDialog.openCodeVersionLabel":`Version OpenCode {version}`,"aboutDialog.actions.copyDiagnostics":`Copier les diagnostics`,"aboutDialog.actions.preparingDiagnostics":`Préparation du diagnostic...`,"aboutDialog.actions.diagnosticsCopied":`Diagnostic copié`,"aboutDialog.diagnosticsDescription":`Comprend l’état OpenChamber, l’état de santé OpenCode, les répertoires et les projets.`,"aboutDialog.footerNote":`Fabriqué avec amour pour la communauté`,"aboutDialog.toast.copyFailed":`Échec de la copie`,"aboutDialog.toast.diagnosticsNotReady":`Les diagnostics ne sont pas encore prêts. Attendez une seconde et réessayez.`,"aboutDialog.toast.diagnosticsCopied":`Diagnostic copié`,"helpDialog.title":`Raccourcis clavier`,"helpDialog.description":`Utilisez ces raccourcis clavier pour naviguer efficacement dans OpenChamber`,"helpDialog.section.navigationCommands":`Navigation et commandes`,"helpDialog.section.sessionManagement":`Gestion des sessions`,"helpDialog.section.panels":`Panneaux`,"helpDialog.section.interface":`Interface`,"helpDialog.item.openCommandPalette":`Ouvrir la palette de commandes`,"helpDialog.item.showKeyboardShortcuts":`Afficher les raccourcis clavier (cette boîte de dialogue)`,"helpDialog.item.toggleSessionSidebar":`Toggle la barre latérale de la session`,"helpDialog.item.cycleAgent":`Agent de cycle (entrée de chat)`,"helpDialog.item.openModelSelector":`Ouvrir le sélecteur de modèle`,"helpDialog.item.navigateModels":`Naviguer dans les modèles (dans le sélecteur)`,"helpDialog.item.adjustThinkingMode":`Ajuster le mode de réflexion (dans le sélecteur, lorsqu'il est pris en charge)`,"helpDialog.item.cycleThinkingVariant":`Variante de pensée cyclique (raccourci global)`,"helpDialog.item.newWindow":`Nouvelle fenêtre (ordinateur de bureau uniquement)`,"helpDialog.item.createNewSession":`Créer une nouvelle session`,"helpDialog.item.createNewWorktreeDraft":`Créer un nouveau brouillon d'worktree`,"helpDialog.item.previousSession":`Session précédente`,"helpDialog.item.nextSession":`Session suivante`,"helpDialog.item.focusChatInput":`Concentration sur la saisie du chat`,"helpDialog.item.togglePromptNavigator":`Afficher ou masquer le navigateur de prompts`,"helpDialog.item.abortActiveRun":`Abandonner l’exécution active (double pression)`,"helpDialog.item.toggleRightSidebar":`Basculer le panneau de révision`,"helpDialog.item.openRightSidebarGitTab":`Ouvrir l'onglet Git de la barre latérale droite`,"helpDialog.item.openRightSidebarFilesTab":`Ouvrir l'onglet Fichiers de la barre latérale droite`,"helpDialog.item.cycleRightSidebarTab":`Onglet de la barre latérale droite du cycle`,"helpDialog.item.closeContextPanelTab":`Fermer l'onglet du panneau de contexte`,"helpDialog.item.toggleTerminal":`Basculer le terminal`,"helpDialog.item.newTerminalTab":`Nouvel onglet de terminal (quand le terminal est focalisé)`,"helpDialog.item.openNewTerminal":`Ouvrir un nouveau terminal`,"helpDialog.item.previousTerminalTab":`Onglet de terminal précédent (quand le terminal est focalisé)`,"helpDialog.item.nextTerminalTab":`Onglet de terminal suivant (quand le terminal est focalisé)`,"helpDialog.item.toggleBottomPanel":`Basculer le panneau inférieur`,"helpDialog.item.toggleTerminalExpanded":`Terminal à bascule étendu`,"helpDialog.item.togglePlanContextPanel":`Toggle Panneau contextuel du plan`,"helpDialog.item.cycleTheme":`Basculer le thème (clair → sombre → système)`,"helpDialog.item.zoomIn":`Zoom avant`,"helpDialog.item.zoomOut":`Zoom arrière`,"helpDialog.item.zoomReset":`Réinitialiser le zoom`,"helpDialog.item.switchSession":`Changer de session`,"helpDialog.item.toggleServicesMenu":`Basculer le menu des services`,"helpDialog.item.openUsage":`Afficher l'utilisation`,"helpDialog.item.cycleServicesTab":`Onglet Services de vélo`,"helpDialog.item.openSettings":`Ouvrir les paramètres`,"helpDialog.section.leaderChords":`Touche leader (Ctrl+X)`,"helpDialog.item.leaderOpenModel":`Ouvrir le sélecteur de modèle`,"helpDialog.item.leaderOpenAgent":`Ouvrir le sélecteur d’agent`,"helpDialog.item.leaderNewSession":`Créer une nouvelle session`,"helpDialog.item.leaderCompact":`Compacter la session actuelle`,"chat.leaderKey.pendingAria":`Touche leader active. Appuyez sur une touche de suite.`,"chat.leaderKey.action.model":`Modèle`,"chat.leaderKey.action.agent":`Agent`,"chat.leaderKey.action.newSession":`Nouveau`,"chat.leaderKey.action.compact":`Compacter`,"helpDialog.keyCombiner.or":`ou`,"helpDialog.proTips.title":`Conseils de pro :`,"helpDialog.proTips.commandPalette":`Utilisez la palette de commandes ({shortcut}) pour accéder rapidement à toutes les actions`,"helpDialog.proTips.recentSessions":`Les 5 sessions les plus récentes apparaissent dans la palette de commandes`,"helpDialog.proTips.themeCycling":`Le cyclisme thématique mémorise vos préférences au fil des sessions`,"header.actions.rightSidebarWithShortcut":`Barre latérale droite ({shortcut})`,"header.actions.toggleRightSidebarAria":`Basculer la barre latérale droite`,"header.actions.openAppMenu":`Menu de OpenChamber`,"header.actions.openAppMenuAria":`Ouvrir le menu OpenChamber`,"header.actions.openSessionsWithShortcut":`Sessions ouvertes ({shortcut})`,"header.actions.openSessionsAria":`Sessions ouvertes`,"header.actions.closeSessionsAria":`Fermer les sessions`,"header.actions.newSessionAria":`Nouvelle session`,"header.actions.newSessionWithShortcut":`Nouvelle session ({shortcut})`,"header.actions.backAria":`Retour`,"header.navigation.mainAria":`Navigation principale`,"header.sessions.title":`Sessions`,"header.changes.availableAria":`Modifications disponibles`,"session.githubIssuePicker.error.noActiveProject":`Aucun projet actif`,"session.githubIssuePicker.error.runtimeUnavailable":`Exécution GitHub API indisponible`,"session.githubIssuePicker.error.notConnected":`GitHub non connecté`,"session.githubIssuePicker.error.repoNotResolvable":`Repo non résoluble`,"session.githubIssuePicker.error.repoMustBeGithub":`Le dépôt distant origin doit pointer vers une URL GitHub`,"session.githubIssuePicker.error.issueNotFound":`Problème introuvable`,"session.githubIssuePicker.error.noModelSelected":`Aucun modèle sélectionné`,"session.githubIssuePicker.toast.loadMoreFailed":`Échec du chargement d'autres problèmes`,"session.githubIssuePicker.toast.loadIssueDetailsFailed":`Échec du chargement des détails du problème`,"session.githubIssuePicker.toast.sendContextFailed":`Échec de l'envoi du contexte du problème`,"session.githubIssuePicker.toast.sessionCreated":`Session créée à partir du problème`,"session.githubIssuePicker.toast.startSessionFailed":`Échec du démarrage de la session`,"session.githubIssuePicker.title.select":`Lien vers le problème GitHub`,"session.githubIssuePicker.title.createSession":`Nouvelle session du numéro GitHub`,"session.githubIssuePicker.description.select":`Sélectionnez un problème à lier à cette session.`,"session.githubIssuePicker.description.createSession":`Lance une nouvelle session avec un contexte de problème masqué (titre/corps/étiquettes/commentaires).`,"session.githubIssuePicker.searchPlaceholder":`Recherchez par titre ou #123, ou collez le numéro URL`,"session.githubIssuePicker.empty.noActiveProject":`Aucun projet actif sélectionné.`,"session.githubIssuePicker.empty.runtimeUnavailable":`L'environnement d'exécution GitHub API n'est pas disponible.`,"session.githubIssuePicker.empty.notConnected":`GitHub non connecté. Connectez votre compte GitHub dans les paramètres.`,"session.githubIssuePicker.empty.noIssuesFound":`Aucun problème trouvé`,"session.githubIssuePicker.empty.noOpenIssuesFound":`Aucun problème ouvert trouvé`,"session.githubIssuePicker.loading.issues":`Problèmes de chargement...`,"session.githubIssuePicker.loading.more":`Chargement...`,"session.githubIssuePicker.actions.openSettings":`Ouvrir les paramètres`,"session.githubIssuePicker.actions.useIssue":`Utilisez le numéro\xA0{number}`,"session.githubIssuePicker.actions.openInGitHubAria":`Ouvrir dans GitHub`,"session.githubIssuePicker.actions.loadMore":`Charger plus`,"session.githubIssuePicker.actions.sectionTitle":`Actions`,"session.githubIssuePicker.actions.toggleWorktreeAria":`Basculer le worktree`,"session.githubIssuePicker.actions.createInWorktree":`Créer dans le worktree`,"session.githubIssuePicker.actions.openRepo":`Ouvrir le dépôt`,"session.githubIssuePicker.actions.refresh":`Rafraîchir`,"session.githubPrPicker.error.noActiveProject":`Aucun projet actif`,"session.githubPrPicker.error.runtimeUnavailable":`Exécution GitHub API indisponible`,"session.githubPrPicker.error.notConnected":`GitHub non connecté`,"session.githubPrPicker.error.prNotFound":`Demande d'extraction introuvable`,"session.githubPrPicker.error.repoNotResolvable":`Repo non résoluble`,"session.githubPrPicker.error.repoMustBeGithub":`Le dépôt distant origin doit pointer vers une URL GitHub`,"session.githubPrPicker.toast.loadMoreFailed":`Échec du chargement d'autres demandes d'extraction`,"session.githubPrPicker.toast.loadDetailsFailed":`Échec du chargement des détails de la demande d'extraction`,"session.githubPrPicker.title":`Lier la PR GitHub`,"session.githubPrPicker.description":`Sélectionnez une PR pour joindre un contexte de revue à ce message.`,"session.githubPrPicker.searchPlaceholder":`Recherchez par titre ou #123, ou collez la demande d'extraction URL`,"session.githubPrPicker.includeDiffAria":`Inclure la différence PR dans le contexte ci-joint`,"session.githubPrPicker.includeDiff":`Inclure la différence PR`,"session.githubPrPicker.empty.noActiveProject":`Aucun projet actif sélectionné.`,"session.githubPrPicker.empty.runtimeUnavailable":`L'environnement d'exécution GitHub API n'est pas disponible.`,"session.githubPrPicker.empty.notConnected":`GitHub non connecté. Connectez votre compte GitHub dans les paramètres.`,"session.githubPrPicker.empty.noPullRequestsFound":`Aucune demande d'extraction trouvée`,"session.githubPrPicker.empty.noOpenPullRequestsFound":`Aucune demande d'extraction ouverte trouvée`,"session.githubPrPicker.loading.pullRequests":`Chargement des demandes d'extraction...`,"session.githubPrPicker.loading.more":`Chargement...`,"session.githubPrPicker.actions.openSettings":`Ouvrir les paramètres`,"session.githubPrPicker.actions.usePullRequest":`Utiliser la demande d'extraction #{number}`,"session.githubPrPicker.actions.openInGitHubAria":`Ouvrir dans GitHub`,"session.githubPrPicker.actions.loadMore":`Charger plus`,"session.newWorktree.title":`Nouveau worktree`,"session.newWorktree.mode.newBranch":`Nouvelle branche`,"session.newWorktree.mode.existingBranch":`Branche existante`,"session.newWorktree.selectBranch":`Sélectionnez une branche`,"session.newWorktree.chooseBranch":`Choisissez une branche...`,"session.newWorktree.fetchBranches":`Récupérer des branches`,"session.newWorktree.searchBranches":`Rechercher des branches...`,"session.newWorktree.loadingBranches":`Chargement des branches...`,"session.newWorktree.noBranchesFound":`Aucune branche trouvée`,"session.newWorktree.matchingBranches":`Branches correspondantes`,"session.newWorktree.noMatchingBranches":`Aucune branche correspondante`,"session.newWorktree.localBranches":`Branches locales`,"session.newWorktree.remoteBranches":`Branches du dépôt distant`,"session.newWorktree.otherLocalBranches":`Autres branches locales`,"session.newWorktree.otherRemoteBranches":`Autres branches du remote`,"session.newWorktree.branchName":`Nom de la branche`,"session.newWorktree.branchNamePlaceholder":`fonctionnalité/ma-fonctionnalité-géniale`,"session.newWorktree.actions.change":`Changement`,"session.newWorktree.actions.startFromGitHubIssuePr":`À partir de GitHub Issue/PR`,"session.newWorktree.usingPrBranch":`Utilisation de la branche PR : {branch}`,"session.newWorktree.fromIssue":`Extrait du numéro {number} : {title}`,"session.newWorktree.worktreeDirectory":`Répertoire du worktree`,"session.newWorktree.worktreeDirectoryPlaceholder":`mon-répertoire-worktree`,"session.newWorktree.resetToMatchBranchName":`Réinitialiser pour correspondre au nom de la branche`,"session.newWorktree.sourceBranch":`Branche source`,"session.newWorktree.selectSourceBranch":`Sélectionnez la branche source`,"session.newWorktree.selectSourceBranchPlaceholder":`Sélectionnez la branche source...`,"session.newWorktree.newBranchFromSource":`Une nouvelle branche sera créée à partir de {source}`,"session.newWorktree.issueNumber":`Numéro\xA0{number}`,"session.newWorktree.prNumber":`PR #{number}`,"session.newWorktree.includeDiffBadge":`+diff`,"session.newWorktree.newSessionTitle":`Nouvelle session`,"session.newWorktree.fromSource":`de {source}`,"session.newWorktree.actions.cancel":`Annuler`,"session.newWorktree.actions.creating":`Création...`,"session.newWorktree.actions.createWorktree":`Créer un worktree`,"session.newWorktree.actions.reset":`Réinitialiser`,"session.newWorktree.error.noModelSelected":`Aucun modèle sélectionné`,"session.newWorktree.error.noActiveProject":`Aucun projet actif`,"session.newWorktree.error.branchNameRequired":`Le nom de la branche est requis`,"session.newWorktree.error.worktreeDirectoryRequired":`Le répertoire du worktree est requis`,"session.newWorktree.error.sendGitHubContextFailed":`Échec de l'envoi du contexte GitHub`,"session.newWorktree.error.createWorktreeFailed":`Échec de la création du worktree`,"session.newWorktree.toast.sessionFromIssue":`Session créée à partir du problème`,"session.newWorktree.toast.sessionFromPr":`Session créée à partir de PR`,"session.newWorktree.toast.worktreeCreated":`Worktree créé`,"session.newWorktree.toast.worktreeCreatedDescription":`{target} - démarrage en arrière-plan`,"session.githubIntegration.title":`Sélectionnez parmi GitHub`,"session.githubIntegration.tabs.issues":`Problèmes`,"session.githubIntegration.tabs.pullRequests":`PR`,"session.githubIntegration.connect.title":`Connectez-vous à GitHub`,"session.githubIntegration.connect.description":`Lier des issues ou des PR pour remplir automatiquement les détails du worktree`,"session.githubIntegration.connect.action":`Connectez GitHub`,"session.githubIntegration.search.issuesPlaceholder":`Recherchez des problèmes ou entrez #123...`,"session.githubIntegration.search.prsPlaceholder":`Recherchez les PR ou entrez #456...`,"session.githubIntegration.empty.noIssuesFound":`Aucun problème trouvé`,"session.githubIntegration.empty.noPullRequestsFound":`Aucune PR trouvée`,"session.githubIntegration.actions.loadMore":`Charger plus`,"session.githubIntegration.actions.cancel":`Annuler`,"session.githubIntegration.actions.select":`Sélectionner`,"session.githubIntegration.selected.issueNumber":`Numéro\xA0{number}`,"session.githubIntegration.selected.prNumber":`PR #{number}`,"session.githubIntegration.includeDiffAria":`Inclure la différence PR dans le contexte de la session`,"session.githubIntegration.includeDiff":`Inclure la différence PR`,"session.githubIntegration.error.notConnected":`GitHub non connecté`,"session.githubIntegration.error.loadDataFailed":`Échec du chargement des données`,"session.githubIntegration.validation.branchAlreadyCheckedOut":`La branche est déjà checkout dans un worktree`,"session.githubIntegration.validation.branchAlreadyExists":`Une branche existe déjà localement`,"session.githubIntegration.validation.failed":`Échec de la validation`,"chat.fileAttachment.toast.attachFailed":`Impossible de joindre le fichier`,"chat.fileAttachment.toast.someFilesSkipped":`Certains fichiers ont été ignorés :
12
12
  {summary}`,"chat.fileAttachment.toast.vscodePickFailed":`Échec de la sélection des fichiers dans VS Code`,"chat.fileAttachment.fileFallback":`déposer`,"chat.fileAttachment.skippedFallback":`ignoré`,"chat.fileAttachment.actions.attachAria":`Joindre des fichiers`,"chat.fileAttachment.actions.attach":`Joindre des fichiers`,"chat.fileAttachment.actions.removeNamed":`Supprimer {name}`,"chat.fileAttachment.actions.removeImage":`Supprimer l'image`,"chat.fileAttachment.actions.expandImages":`Afficher plus d'images`,"chat.fileAttachment.actions.collapseImages":`Réduire les images`,"chat.fileAttachment.activeEditor.addFile":`Ajouter le fichier :\xA0{name} au contexte`,"chat.fileAttachment.activeEditor.pinSelection":`Épingler la sélection au contexte`,"chat.fileAttachment.activeEditor.remove":`Retirer du contexte`,"chat.pendingChanges.fileCountSingle":`Fichier {count}`,"chat.pendingChanges.fileCountPlural":`Fichiers {count}`,"chat.pendingChanges.changedInWorkspace":`changé dans l'espace de travail`,"chat.changedFiles.title":`Fichiers modifiés`,"chat.changedFiles.actions.openFileTitle":`Ouvrir {path}`,"chat.activity.title":`Détails du traitement`,"chat.activity.active":`Traitement en cours`,"chat.activity.compacting":`Compression en cours`,"chat.activity.compactionCompleted":`Compression terminée`,"chat.activity.expandAria":`Développer les détails du traitement`,"chat.activity.collapseAria":`Réduire les détails du traitement`,"chat.activity.completed":`Traité en {duration}`,"chat.activity.completedStatus":`Traité`,"chat.activity.agentsWorking":`{count} agents au travail`,"chat.activity.agentsInvolved":`{count} agents impliqués`,"chat.activity.moreHidden":`+{count} de plus...`,"chat.emptyState.opencodeUnreachable":`OpenCode n'est pas accessible`,"chat.emptyState.startNewChat":`Démarrer une nouvelle discussion`,"chat.emptyState.draftTitle":`Sur quoi travaillons-nous ?`,"chat.emptyState.draftTitleWithProject":`Sur quoi travaillons-nous dans {project} ?`,"chat.emptyState.establishingConversation":`Établissement de la conversation`,"chat.scrollToBottom.aria":`Faire défiler vers le bas`,"chat.promptNavigator.aria":`Navigation des prompts`,"chat.promptNavigator.currentPrompt":`Prompt actuel`,"chat.promptNavigator.loadMore":`Charger plus de prompts`,"chat.timeline.relative.justNow":`à l’instant`,"chat.timeline.relative.minutesAgo":`il y a {count} min`,"chat.timeline.relative.hoursAgo":`il y a {count} h`,"chat.timeline.relative.daysAgo":`il y a {count} j`,"chat.timeline.title":`Chronologie des conversations`,"chat.timeline.description":`Accédez à n’importe quel point de la conversation ou créez une nouvelle session`,"chat.timeline.searchPlaceholder":`Rechercher des messages...`,"chat.timeline.empty.search":`Aucun message trouvé`,"chat.timeline.empty.session":`Aucun message dans cette session pour le moment`,"chat.timeline.noTextContent":`[Aucun contenu textuel]`,"chat.timeline.actions.title":`Actions`,"chat.timeline.actions.revertFromHere":`Revenir à partir d'ici`,"chat.timeline.actions.forkFromHere":`Fourche d'ici`,"chat.timeline.actions.previousTurn":`Tour précédent`,"chat.timeline.actions.latest":`Dernier`,"chat.timeline.help.clickMessage":`Cliquez sur un message pour y faire défiler la conversation`,"chat.timeline.help.undoToPoint":`Annuler jusqu'à présent (le texte du message remplira la saisie)`,"chat.timeline.help.createSessionFromHere":`Créez une nouvelle session à partir d'ici`,"chat.statusRow.todo.status.inProgress":`En cours`,"chat.statusRow.todo.status.pending":`En attente`,"chat.statusRow.todo.status.completed":`Complété`,"chat.statusRow.todo.status.cancelled":`Annulé`,"chat.statusRow.todo.priority.high":`Haute priorité`,"chat.statusRow.todo.priority.medium":`Priorité moyenne`,"chat.statusRow.todo.priority.low":`Faible priorité`,"chat.statusRow.actions.stopGeneratingAria":`Arrêter de générer`,"chat.statusRow.tasksTitle":`Tâches`,"chat.statusRow.summary.activeLeft":`{active} actif · {left} gauche`,"chat.statusRow.aborted":`Avorté`,"chat.statusRow.abortPrompt":`Appuyez encore sur Échap pour arrêter`,"chat.assistantStatus.readingFile":`Lecture du fichier`,"chat.assistantStatus.writingFile":`Écriture du fichier`,"chat.assistantStatus.editingFile":`Modification du fichier`,"chat.assistantStatus.editingFiles":`Modification des fichiers`,"chat.assistantStatus.compacting":`Compression en cours`,"chat.assistantStatus.applyingPatch":`Application du correctif`,"chat.assistantStatus.runningCommand":`Exécution de la commande`,"chat.assistantStatus.searchingContent":`Recherche de contenu`,"chat.assistantStatus.findingFiles":`Recherche de fichiers`,"chat.assistantStatus.listingDirectory":`Liste du répertoire`,"chat.assistantStatus.delegatingTask":`Délégation de tâche`,"chat.assistantStatus.taskWorking":`{name} en cours`,"chat.assistantStatus.fetchingUrl":`Récupération de l’URL`,"chat.assistantStatus.searchingWeb":`Recherche sur le web`,"chat.assistantStatus.webCodeSearch":`Recherche de code web`,"chat.assistantStatus.updatingTodos":`Mise à jour des tâches`,"chat.assistantStatus.readingTodos":`Lecture des tâches`,"chat.assistantStatus.learningSkill":`Apprentissage de la compétence`,"chat.assistantStatus.askingQuestion":`Question en cours`,"chat.assistantStatus.switchingToPlanning":`Passage à la planification`,"chat.assistantStatus.switchingToBuilding":`Passage à la construction`,"chat.assistantStatus.usingTool":`Utilisation de {tool}`,"chat.assistantStatus.working":`En cours`,"chat.assistantStatus.processing":`Traitement en cours`,"chat.assistantStatus.preparing":`Préparation en cours`,"chat.assistantStatus.warmingUp":`Initialisation en cours`,"chat.assistantStatus.gearsTurning":`Traitement en cours`,"chat.assistantStatus.computing":`Calcul en cours`,"chat.assistantStatus.calculating":`Calcul en cours`,"chat.assistantStatus.analyzing":`Analyse en cours`,"chat.assistantStatus.wheelsSpinning":`Traitement en cours`,"chat.assistantStatus.calibrating":`Calibrage en cours`,"chat.assistantStatus.synthesizing":`Synthèse en cours`,"chat.assistantStatus.connectingDots":`Mise en relation des éléments`,"chat.assistantStatus.inspectingLogic":`Vérification de la logique`,"chat.assistantStatus.weighingOptions":`Évaluation des options`,"chat.assistantStatus.thinking":`Réflexion en cours`,"chat.assistantStatus.composing":`Rédaction en cours`,"chat.assistantStatus.sendingMessage":`Envoi du message`,"chat.assistantStatus.waitingForPermission":`En attente d’autorisation`,"chat.assistantStatus.retrying":`Nouvelle tentative`,"chat.assistantStatus.retryingIn":`Nouvelle tentative {duration}`,"chat.assistantStatus.retryingAttempt":`Nouvelle tentative (essai {attempt})`,"chat.assistantStatus.retryingInAttempt":`Nouvelle tentative {duration} (essai {attempt})`,"chat.revertIndicator.redo":`Refaire`,"chat.revertIndicator.redoAria":`Rétablir : restaurer les messages annulés`,"chat.revertPopover.title":`Rétabli`,"chat.revertPopover.noTextContent":`Aucun contenu textuel`,"chat.revertPopover.forkFromHere":`Fourche d'ici`,"chat.revertPopover.forkFromMessage":`Fork de ce message`,"chat.revertPopover.restoreAll":`Tout restaurer`,"chat.revertPopover.restore":`Restaurer`,"chat.revertPopover.revert":`Revenir`,"chat.revertPopover.fork":`Fourchette`,"chat.revert.toast.undo":`Revenu à {preview}`,"chat.revert.toast.redo":`Refait`,"chat.revert.toast.restored":`Restauré tous les messages`,"chat.errorBoundary.title":`Erreur de discussion`,"chat.errorBoundary.description":`L'interface de discussion a rencontré une erreur. Cela peut être dû à un problème de réseau temporaire ou à des données de message corrompues.`,"chat.errorBoundary.sessionLabel":`Session`,"chat.errorBoundary.detailsSummary":`Détails de l'erreur`,"chat.errorBoundary.resetAction":`Réinitialiser le chat`,"chat.errorBoundary.persistentHint":`Si le problème persiste, essayez d'actualiser la page.`,"chat.autocomplete.tabs.commands":`Commandes`,"chat.autocomplete.tabs.agents":`Agents`,"chat.autocomplete.tabs.files":`Fichiers`,"chat.autocomplete.keyboardHint":`↑↓ naviguer • Entrer sélectionner • Esc fermer`,"chat.commandAutocomplete.command.initDescription":`Créer/mettre à jour le fichier AGENTS.md`,"chat.commandAutocomplete.command.undoDescription":`Annuler le dernier message`,"chat.commandAutocomplete.command.redoDescription":`Refaire les messages précédemment annulés`,"chat.commandAutocomplete.command.forkDescription":`Créer une session à partir de l’état actuel de la conversation`,"chat.commandAutocomplete.command.timelineDescription":`Ouvrir la chronologie de la conversation`,"chat.commandAutocomplete.command.modelDescription":`Ouvrir le sélecteur de modèle`,"chat.commandAutocomplete.command.compactDescription":`Compresser l'historique des sessions à l'aide de l'IA pour réduire la taille du contexte`,"chat.commandAutocomplete.command.summaryDescription":`Résumé de session non destructif. Indice de sujet facultatif après la commande.`,"chat.commandAutocomplete.command.workspaceReviewDescription":`Examinez les modifications actuelles de l’espace de travail pour les problèmes de signal élevé uniquement.`,"chat.commandAutocomplete.badge.skill":`skill`,"chat.commandAutocomplete.badge.command":`commande`,"chat.commandAutocomplete.badge.system":`système`,"chat.commandAutocomplete.empty":`Aucune commande trouvée`,"chat.agentMentionAutocomplete.badge.system":`système`,"chat.agentMentionAutocomplete.empty":`Aucun agent trouvé`,"chat.fileMentionAutocomplete.searchMoreAgents":`Tapez pour rechercher plus d'agents`,"chat.fileMentionAutocomplete.groups.agents":`Agents`,"chat.fileMentionAutocomplete.groups.sessions":`Sessions chargées`,"chat.fileMentionAutocomplete.groups.directories":`Répertoires`,"chat.fileMentionAutocomplete.groups.recentFiles":`Fichiers récents`,"chat.fileMentionAutocomplete.groups.files":`Fichiers`,"chat.fileMentionAutocomplete.sessionType":`Session OpenCode`,"chat.fileMentionAutocomplete.untitledSession":`Session sans titre`,"chat.fileMentionAutocomplete.empty":`Aucune correspondance trouvée`,"chat.queuedMessage.attachments":`+Fichier(s) {count}`,"chat.queuedMessage.empty":`(vide)`,"chat.queuedMessage.title":`File d'attente`,"chat.queuedMessage.edit":`modifier`,"chat.queuedMessage.send":`envoyer`,"chat.queuedMessage.queuing":`Mise en file…`,"chat.queuedMessage.queuingAria":`Mise du message en file d'attente`,"chat.queuedMessage.removeAria":`Supprimer de la file d'attente`,"chat.queuedMessage.reorderAria":`Glisser pour réorganiser`,"chat.container.returnToParent.aria":`Retour à la session parents`,"chat.container.returnToParent.titleNamed":`Retourner à : {title}`,"chat.container.returnToParent.title":`Retour à la session parents`,"chat.container.returnToParent.label":`Mère`,"chat.container.readOnlySubagentPromptBanner":`Les sessions de sous-agent ne peuvent pas être invitées.`,"chat.unifiedControls.title":`Contrôles`,"chat.unifiedControls.model.title":`Modèle`,"chat.unifiedControls.model.noRecent":`Aucun modèle récent`,"chat.unifiedControls.model.moreAria":`Plus de modèles`,"chat.unifiedControls.effort.title":`Effort`,"chat.unifiedControls.effort.moreAria":`Plus d'options d'effort`,"chat.questionCard.summaryTab":`Résumé`,"chat.questionCard.noAnswer":`(pas de réponse)`,"chat.questionCard.inputNeeded":`Entrée nécessaire`,"chat.questionCard.fromSubagent":`Du sous-agent`,"chat.questionCard.questionFallback":`Question {index}`,"chat.questionCard.selectMultiple":`Sélectionnez plusieurs`,"chat.questionCard.recommended":`recommandé`,"chat.questionCard.other":`Autre…`,"chat.questionCard.yourAnswer":`Votre Réponse`,"chat.questionCard.submit":`Soumettre`,"chat.questionCard.next":`Suivant`,"chat.questionCard.dismiss":`Ignorer`,"chat.questionCard.copyMarkdown":`Copier en Markdown`,"chat.questionCard.copyJson":`Copier sous JSON`,"chat.questionCard.copiedMarkdown":`Question copiée en tant que Markdown`,"chat.questionCard.copiedJson":`Question copiée sous le nom JSON`,"chat.questionCard.copyFailed":`Échec de la copie de la question`,"chat.textSelection.toast.noProject":`Aucun projet trouvé pour cette session`,"chat.textSelection.toast.addToNotesFailed":`Échec de l'ajout aux notes`,"chat.textSelection.toast.addToNotesSuccess":`Ajout du texte sélectionné aux notes`,"chat.textSelection.toast.addToNotesSummaryFailed":`Impossible de résumer la sélection, ajout du texte sélectionné aux notes`,"chat.textSelection.actions.addToChat":`Ajouter au chat`,"chat.textSelection.actions.newSession":`Nouvelle session`,"chat.textSelection.actions.copy":`Copie`,"chat.textSelection.actions.addToNotes":`Ajouter aux notes`,"chat.textSelection.title.addToCurrentChat":`Ajouter au chat actuel`,"chat.textSelection.title.newSessionWithSelection":`Créer une nouvelle session avec sélection`,"chat.textSelection.title.saveInsightToNotes":`Enregistrer le texte sélectionné dans les notes`,"chat.messageBody.actions.editing":`Modification…`,"chat.messageBody.actions.editStaged":`Modification en attente`,"chat.messageBody.actions.cancelEdit":`Annuler la modification`,"chat.messageBody.actions.editAria":`Modifier le message et conserver les modifications`,"chat.messageBody.actions.edit":`Modifier et conserver les modifications`,"chat.messageBody.actions.revertAria":`Revenir à ce message`,"chat.messageBody.actions.revert":`Revenir à partir d'ici`,"chat.messageBody.actions.forkAria":`Fork de ce message`,"chat.messageBody.actions.fork":`Fourche d'ici`,"chat.messageBody.actions.openSourceSessionAria":`Ouvrir la session d'origine`,"chat.messageBody.actions.openSourceSession":`Ouvrir la session d'origine`,"chat.messageBody.actions.copyMessageAria":`Copier le texte du message`,"chat.messageBody.actions.copyMessage":`Copier le message`,"chat.messageBody.actions.openPreviewAria":`Ouvrir l'aperçu`,"chat.messageBody.actions.openPreview":`Ouvrir l'aperçu`,"chat.messageBody.actions.copyAnswer":`Copier la réponse`,"chat.messageBody.actions.savingImage":`Enregistrement de l'image...`,"chat.messageBody.actions.saveAsImage":`Enregistrer sous image`,"chat.messageBody.meta.tpsAria":`Vitesse de génération\xA0: {rate}`,"chat.messageBody.meta.tpsTooltip":`Vitesse de génération (tokens/s), hors temps des appels d’outils`,"chat.generatedResult.actions.copy":`Copie`,"chat.generatedResult.actions.copied":`Copié`,"chat.generatedResult.commit.title":`Message de commit généré`,"chat.generatedResult.commit.highlights":`Points forts`,"chat.generatedResult.pullRequest.title":`Demande d'extraction générée`,"chat.generatedResult.pullRequest.titleLabel":`Titre`,"chat.generatedResult.pullRequest.bodyLabel":`Corps`,"chat.messageBody.tts.stopSpeaking":`Arrête de parler`,"chat.messageBody.tts.readAloud":`Lire à haute voix`,"chat.messageBody.tts.readAloudWithProvider":`Lire à haute voix (voix {provider})`,"chat.messageBody.toast.imageSaved":`Image enregistrée`,"chat.messageBody.toast.generateImageFailed":`Échec de la génération de l'image`,"chat.chatInput.actions.commands":`Commandes`,"chat.chatInput.actions.attachFiles":`Joindre des fichiers`,"chat.chatInput.actions.attachPhotos":`Joindre des photos`,"chat.chatInput.actions.addAttachment":`Ajouter une pièce jointe`,"chat.chatInput.actions.linkGithubIssue":`Lien vers le problème GitHub`,"chat.chatInput.actions.linkGithubPr":`Lien GitHub PR`,"chat.chatInput.actions.modelAgentSettings":`Paramètres du modèle et de l'agent`,"chat.chatInput.actions.sendMessageAria":`Envoyer un message`,"chat.chatInput.actions.queueMessageAria":`Message de file d'attente`,"chat.chatInput.actions.queuingMessageAria":`Mise en file…`,"chat.chatInput.actions.sendingMessageAria":`Envoi…`,"chat.chatInput.actions.stopGeneratingAria":`Arrêter de générer`,"chat.chatInput.focusMode.toggleAria":`Basculer le mode de mise au point`,"chat.chatInput.focusMode.label":`Mode de mise au point`,"chat.chatInput.permissionAutoAccept.disable":`Désactiver l'acceptation automatique des autorisations`,"chat.chatInput.permissionAutoAccept.enable":`Activer l'acceptation automatique des autorisations`,"chat.chatInput.permissionAutoAccept.on":`Acceptation automatique des autorisations : activée`,"chat.chatInput.permissionAutoAccept.off":`Acceptation automatique des autorisations : désactivée`,"chat.chatInput.linked.byAuthor":`par {author}`,"chat.chatInput.linked.issue.openInBrowserAria":`Problème ouvert dans le navigateur`,"chat.chatInput.linked.issue.removeAria":`Supprimer le problème lié`,"chat.chatInput.linked.pr.number":`PR #{number}`,"chat.chatInput.linked.pr.openInBrowserAria":`Ouvrir la demande d'extraction dans le navigateur`,"chat.chatInput.linked.pr.removeAria":`Supprimer la demande d'extraction liée`,"chat.chatInput.placeholder.shell":`Entrez la commande shell...`,"chat.chatInput.placeholder.chat":`@ pour les fichiers/agents\xA0; / pour les commandes et les skills\xA0; ! pour shell\xA0; # pour les extraits`,"chat.chatInput.placeholder.chatCompact":`Utiliser @ / ! # pour les aides`,"chat.chatInput.placeholder.selectSession":`Sélectionnez ou créez une session pour commencer à discuter`,"chat.chatInput.pastedTextReference":`Texte collé n°{index} · {count} caractères`,"chat.dictation.start":`Démarrer la dictée`,"chat.dictation.overlayAria":`Dictée`,"chat.dictation.downloadingModel":`Téléchargement du modèle vocal...`,"chat.dictation.downloadingModelProgress":`Téléchargement du modèle vocal... {percent}%`,"chat.dictation.listening":`Écoute...`,"chat.dictation.processing":`Transcription...`,"chat.dictation.failed":`Échec de la transcription`,"chat.dictation.cancel":`Abandonner la dictée`,"chat.dictation.insert":`Insérer la transcription`,"chat.dictation.insertAndSend":`Insérer et envoyer`,"chat.dictation.retry":`Réessayer la transcription`,"chat.dictation.discard":`Abandonner l'enregistrement`,"chat.snippetAutocomplete.action.addNew":`+ Ajouter un nouvel extrait`,"chat.snippetAutocomplete.empty":`Aucun extrait trouvé`,"chat.snippetAutocomplete.footer":`↑↓ naviguer • Entrer sélectionner • Esc fermer`,"snippets.source.global":`mondial`,"snippets.source.project":`projet`,"chat.chatInput.toast.compactFailed":`Échec du compactage de la session`,"chat.chatInput.toast.summaryFailed":`Échec de la génération du résumé`,"chat.chatInput.toast.reviewFailed":`Échec de l'examen des modifications`,"chat.chatInput.toast.attachmentsTooLarge":`Les pièces jointes sont trop volumineuses pour être envoyées. Veuillez essayer de réduire le nombre ou la taille des images.`,"chat.chatInput.toast.sendAttachmentsFailed":`Échec de l'envoi des pièces jointes. Essayez moins de fichiers ou des images plus petites.`,"chat.chatInput.toast.messageSendFailed":`Le message n'a pas pu être envoyé. Pièces jointes restaurées.`,"chat.chatInput.toast.sendStatusUnknown":`État du message inconnu. Veuillez vérifier et réessayer.`,"chat.chatInput.toast.queueOperationFailed":`L’opération sur la file d’attente a échoué.`,"chat.chatInput.toast.queueOperationStatusUnknown":`L’état de l’opération sur la file d’attente est inconnu. L’état du serveur sera actualisé automatiquement.`,"chat.chatInput.toast.clipboardAttachFailed":`Échec de la pièce jointe de l'image du presse-papiers`,"chat.chatInput.toast.attachFileFailed":`Impossible de joindre le fichier`,"chat.chatInput.toast.attachNamedFailed":`Échec de la connexion du {name}`,"chat.chatInput.toast.someFilesSkipped":`Certains fichiers ont été ignorés :
13
- {summary}`,"chat.chatInput.toast.vscodePickFailed":`Échec de la sélection des fichiers dans VS Code`,"chat.chatInput.toast.openSessionFirst":`Ouvrir d'abord une session`,"chat.chatInput.toast.togglePermissionAutoAcceptFailed":`Échec de l'activation de l'acceptation automatique des autorisations`,"chat.chatInput.toast.sessionReferenceLoadFailed":`Impossible de charger la référence de session.`,"chat.chatInput.reviewComments":`Commentaires de révision :`,"chat.chatInput.devServerLogs":`Journaux du serveur de développement :`,"chat.chatInput.devServerLogsRemove":`Supprimer les journaux du serveur de développement`,"chat.chatInput.previewAnnotations":`Aperçu des annotations :`,"chat.chatInput.previewContext":`Contexte d'aperçu :`,"chat.chatInput.previewContextRemove":`Supprimer le contexte d'aperçu`,"chat.chatInput.projectRoot":`Racine du projet`,"chat.chatInput.branch":`Bifurquer`,"chat.chatInput.draftPicker.projectTitle":`Projet`,"chat.chatInput.draftPicker.newProject":`Nouveau projet`,"chat.chatInput.draftPicker.searchProjects":`Rechercher des projets...`,"chat.chatInput.draftPicker.searchBranches":`Rechercher des branches...`,"chat.chatInput.worktrees":`Worktrees`,"chat.chatInput.worktreeNew":`+ Nouveau`,"chat.chatInput.branchSwitch.title":`Basculer vers {branch}\xA0?`,"chat.chatInput.branchSwitch.description":`Comment ouvrir cette branche pour la nouvelle conversation\xA0?`,"chat.chatInput.branchSwitch.createWorktree":`Créer un worktree`,"chat.chatInput.branchSwitch.createWorktreeDescription":`Conserver le répertoire actuel et travailler dans un worktree isolé.`,"chat.chatInput.branchSwitch.checkoutHere":`Checkout ici`,"chat.chatInput.branchSwitch.checkoutHereDescription":`Basculer le répertoire actuel vers cette branche.`,"chat.chatInput.branchSwitch.cancel":`Annuler`,"chat.chatInput.drop.insertMention":`Déposer pour insérer comme mention`,"chat.chatInput.drop.attachFiles":`Déposez les fichiers ici pour les joindre`,"chat.chatInput.fileFallback":`déposer`,"chat.mobileStatus.editProjects.title":`Modifier des projets`,"chat.mobileStatus.editProjects.footer":`Faites glisser les éléments pour les réorganiser ou utilisez les flèches pour les déplacer. Appuyez sur modifier pour modifier les détails.`,"chat.mobileStatus.editProjects.empty":`Aucun projet à modifier`,"chat.mobileStatus.projects.empty":`Aucun projet`,"chat.mobileStatus.projects.addAria":`Ajouter un projet`,"chat.mobileStatus.projects.removeTitle":`Supprimer le projet`,"chat.mobileStatus.projects.removeDescriptionPrefix":`Etes-vous sûr de vouloir supprimer`,"chat.mobileStatus.projects.cancel":`Annuler`,"chat.mobileStatus.projects.remove":`Retirer`,"chat.mobileStatus.new":`Nouveau`,"chat.mobileStatus.noSessionsInProject":`Aucune session dans ce projet`,"chat.mobileStatus.swipeHint":`← Glissez ici pour ouvrir les barres latérales →`,"chat.mobileStatus.toast.addProjectFailed":`Échec de l'ajout du projet`,"chat.mobileStatus.toast.selectValidDirectory":`Veuillez sélectionner un répertoire valide.`,"chat.mobileStatus.toast.selectDirectoryFailed":`Échec de la sélection du répertoire`,"chat.toolOutputDialog.image.previousAria":`Image précédente`,"chat.toolOutputDialog.image.nextAria":`Image suivante`,"chat.toolOutputDialog.image.zoomInAria":`Zoom avant`,"chat.toolOutputDialog.image.zoomOutAria":`Zoom arrière`,"chat.toolOutputDialog.image.resetZoomAria":`Réinitialiser le zoom`,"chat.image.actions.sheetTitle":`Image`,"chat.image.actions.saveImage":`Enregistrer l'image`,"chat.image.actions.saveToPhotos":`Enregistrer dans Photos`,"chat.image.actions.saving":`Enregistrement…`,"chat.image.actions.saveSuccess":`Image enregistrée`,"chat.image.actions.saveFailed":`Impossible d'enregistrer l'image`,"chat.toolOutputDialog.mermaid.missingSource":`URL de source Mermaid manquante.`,"chat.toolOutputDialog.mermaid.loadFailed":`Impossible de charger le diagramme Mermaid.`,"chat.toolOutputDialog.mermaid.dataUrlMalformed":`L'URL de données Mermaid est mal formée.`,"chat.toolOutputDialog.mermaid.invalidLocalPath":`Le chemin du fichier Mermaid local est invalide.`,"chat.toolOutputDialog.mermaid.readFileFailedWithStatus":`Impossible de lire le fichier Mermaid. Statut : {status}.`,"chat.toolOutputDialog.mermaid.unsupportedUrlProtocol":`Le protocole de l'URL Mermaid n'est pas pris en charge.`,"chat.toolOutputDialog.mermaid.loadFailedWithStatus":`Impossible de charger le diagramme Mermaid. Statut : {status}.`,"chat.toolOutputDialog.mermaid.closeAria":`Fermer l'aperçu du diagramme`,"chat.toolOutputDialog.mermaid.loading":`Diagramme de chargement...`,"chat.toolOutputDialog.mermaid.renderFailed":`Impossible d'afficher le diagramme Mermaid.`,"chat.toolOutputDialog.mermaid.retry":`Réessayer`,"chat.toolOutputDialog.commandCompleted":`Commande terminée avec succès`,"chat.toolOutputDialog.noOutputProduced":`Aucune sortie n'a été produite`,"chat.activity.outputLoading":`Chargement de la sortie complète…`,"chat.activity.outputLoadFailed":`Impossible de charger la sortie complète.`,"chat.activity.outputRetry":`Réessayer`,"chat.fileAttachment.image.loading":`Chargement de l’image…`,"chat.fileAttachment.image.loadFailed":`Impossible de charger l’image.`,"chat.fileAttachment.image.retry":`Réessayer de charger l’image`,"chat.fileAttachment.image.loadManually":`Charger l’image`,"chat.fileAttachment.image.loadManuallyCount":`Charger {count} images`,"chat.toolPart.lspErrors":`Erreurs LSP`,"chat.toolPart.moreErrors":`+{count} plus d'erreurs`,"chat.toolPart.error":`Erreur:`,"chat.toolPart.awaitingResponse":`En attente de réponse...`,"chat.toolPart.noOutputProduced":`Aucune sortie produite`,"chat.toolPart.output":`Sortie`,"chat.toolPart.openSubtask":`Ouvrir la sous-tâche {type}`,"chat.todo.total":`Total`,"chat.todo.inProgress":`En cours`,"chat.todo.pending":`En attente`,"chat.todo.completed":`Complété`,"chat.todo.cancelled":`Annulé`,"chat.permissionCard.workingDirectory":`Répertoire de travail :`,"chat.permissionCard.timeout":`Temps mort:`,"chat.permissionCard.request":`Demande:`,"chat.permissionCard.headers":`En-têtes :`,"chat.permissionCard.body":`Corps:`,"chat.permissionCard.action":`Action:`,"chat.permissionCard.details":`Détails:`,"chat.permissionCard.patterns":`Motifs:`,"chat.permissionCard.replaceAll":`Remplacer toutes les occurrences`,"chat.permissionCard.responseFormat":`Format de réponse :`,"chat.permissionCard.allowOnce":`Autoriser une fois`,"chat.permissionCard.alwaysAgree":`Toujours autoriser`,"chat.permissionToast.sessionFallback":`Session`,"chat.permissionToast.permissionFallback":`Détails de l'autorisation indisponibles`,"chat.permissionToast.labels.session":`Session:`,"chat.permissionToast.labels.permission":`Autorisation:`,"chat.permissionToast.actions.once":`Une fois`,"chat.permissionToast.actions.always":`Toujours`,"chat.permissionToast.actions.deny":`Refuser`,"chat.permissionToast.actions.approveOnceAria":`Approuver une fois`,"chat.permissionToast.actions.approveOnceAriaWithSession":`Approuver une fois pour {session}`,"chat.permissionToast.actions.approveAlwaysAria":`Approuver toujours`,"chat.permissionToast.actions.approveAlwaysAriaWithSession":`Approuver toujours pour {session}`,"chat.permissionToast.actions.denyAria":`Refuser l'autorisation`,"chat.permissionToast.actions.denyAriaWithSession":`Refuser l'autorisation pour {session}`,"chat.permissionRequest.required":`Autorisation requise :`,"chat.permissionRequest.actions.once":`Une fois`,"chat.permissionRequest.actions.always":`Toujours`,"chat.permissionRequest.actions.reject":`Refuser`,"chat.modelControls.provider":`Fournisseur`,"chat.modelControls.capability.toolCalling":`Appel d'outil`,"chat.modelControls.capability.reasoning":`Raisonnement`,"chat.modelControls.modality.text":`Texte`,"chat.modelControls.modality.image":`Image`,"chat.modelControls.modality.video":`Vidéo`,"chat.modelControls.modality.audio":`Audio`,"chat.modelControls.modality.pdf":`PDF`,"chat.modelControls.capabilities":`Capacités`,"chat.modelControls.modalities":`Modalités`,"chat.modelControls.input":`Entrée`,"chat.modelControls.output":`Sortie`,"chat.modelControls.limits":`Limites`,"chat.modelControls.context":`Contexte`,"chat.modelControls.metadata":`Métadonnées`,"chat.modelControls.knowledge":`Connaissance`,"chat.modelControls.release":`Libérer`,"chat.modelControls.mode":`Mode`,"chat.modelControls.model":`Modèle`,"chat.modelControls.temperature":`Température`,"chat.modelControls.topP":`Haut P`,"chat.modelControls.permissions":`Autorisations`,"chat.modelControls.edit":`Modifier`,"chat.modelControls.bash":`Bash`,"chat.modelControls.webFetch":`WebFetch`,"chat.modelControls.customPrompt":`Prompt personnalisé`,"chat.modelControls.selectModel":`Sélectionnez le modèle`,"chat.modelControls.searchProvidersOrModels":`Rechercher des fournisseurs ou des modèles`,"chat.modelControls.clearSearch":`Effacer la recherche`,"chat.modelControls.current":`Actuel`,"chat.modelControls.thinking":`Pensée`,"chat.modelControls.default":`Défaut`,"chat.modelControls.selectAgent":`Sélectionnez un agent`,"chat.modelControls.costPerMillion":`Coût`,"chat.modelControls.costInput":`Entrée`,"chat.modelControls.costOutput":`Sortie`,"chat.modelControls.metadataUnavailable":`Métadonnées du modèle indisponibles.`,"chat.modelControls.addNewProvider":`Ajouter un nouveau fournisseur`,"chat.modelControls.noAgentSelected":`Aucun agent sélectionné.`,"chat.modelControls.resetToDefault":`Réinitialiser aux valeurs par défaut`,"chat.modelControls.searchModels":`Rechercher des modèles`,"chat.modelControls.searchAgents":`Agents de recherche`,"chat.modelControls.noModelsFound":`Aucun modèle trouvé`,"chat.modelControls.favorites":`Favoris`,"chat.modelControls.recent":`Récents`,"chat.modelControls.addToFavorites":`Ajouter aux favoris`,"chat.modelControls.removeFromFavorites":`Supprimer des favoris`,"chat.modelControls.favoriteAria":`Préféré`,"chat.modelControls.unfavoriteAria":`Supprimer des favoris`,"chat.modelControls.collapseProvider":`Fournisseur de réduction`,"chat.modelControls.expandProvider":`Développer le fournisseur`,"chat.modelControls.keyboardHint":`↑↓ naviguer{thinking} • Entrer sélectionner • Esc fermer`,"chat.modelControls.keyboardHintNavigate":`↑↓ naviguer`,"chat.modelControls.keyboardHintSwitchAgent":`Agent de commutation {shortcut}`,"chat.modelControls.keyboardHintSwitchAgentLabel":`Changer d'agent`,"chat.modelControls.keyboardHintThinking":`←→ penser`,"chat.modelControls.showThinkingModes":`Afficher les modes de réflexion`,"chat.modelControls.hideThinkingModes":`Masquer les modes de réflexion`,"chat.modelControls.moreThinkingModes":`Plus de modes de réflexion`,"chat.modelControls.noProvidersOrModelsFound":`Aucun fournisseur ou modèle ne correspond à votre recherche.`,"chat.modelControls.reorderFavoriteAria":`Réorganiser les favoris`,"chat.modelControls.reorderFavoriteTitle":`Faites glisser pour réorganiser les favoris`,"chat.modelControls.reorderProviderTitle":`Faites glisser pour réorganiser le fournisseur`,"chat.modelControls.permissionLabel.custom":`Personnalisé`,"chat.modelControls.permissionLabel.allow":`Permettre`,"chat.modelControls.permissionLabel.deny":`Refuser`,"chat.modelControls.permissionLabel.ask":`Demander`,"chat.modelControls.modeValue.primary":`Primaire`,"chat.modelControls.modeValue.subagent":`Sous-agent`,"chat.modelControls.modeValue.all":`Tous`,"chat.modelControls.modeValue.none":`—`,"chat.reasoningTrace.thinking":`Pensée`,"chat.reasoningTrace.justification":`Justification`,"chat.reasoningTrace.expandAria":`Développer la trace du raisonnement`,"chat.reasoningTrace.collapseAria":`Réduire la trace du raisonnement`,"chat.reasoningTrace.thought":`Pensée`,"chat.contextGroup.exploring":`Exploration en cours`,"chat.contextGroup.explored":`Exploré`,"chat.contextGroup.expandAria":`Développer les outils explorés`,"chat.contextGroup.collapseAria":`Réduire les outils explorés`,"chat.contextGroup.readSingle":`{count} lecture`,"chat.contextGroup.readPlural":`{count} lectures`,"chat.contextGroup.searchSingle":`{count} recherche`,"chat.contextGroup.searchPlural":`{count} recherches`,"chat.contextGroup.listSingle":`{count} liste`,"chat.contextGroup.listPlural":`{count} listes`,"chat.skillGroup.expandAria":`Développer les compétences chargées`,"chat.skillGroup.collapseAria":`Réduire les compétences chargées`,"chat.skillGroup.summaryOverflow":`{names} et {count} de plus`,"chat.tools.display.read":`Lire le fichier`,"chat.tools.display.write":`Écrire le fichier`,"chat.tools.display.edit":`Modifier le fichier`,"chat.tools.display.multiedit":`Édition multiple`,"chat.tools.display.apply_patch":`Appliquer le correctif`,"chat.tools.display.bash":`Commande shell`,"chat.tools.display.grep":`Rechercher dans les fichiers`,"chat.tools.display.glob":`Trouver des fichiers`,"chat.tools.display.list":`Lister le répertoire`,"chat.tools.display.task":`Tâche d'agent`,"chat.tools.display.webfetch":`Récupérer l'URL`,"chat.tools.display.websearch":`Recherche web`,"chat.tools.display.codesearch":`Recherche de code`,"chat.tools.display.todowrite":`Mettre à jour les tâches`,"chat.tools.display.todoread":`Lire les tâches`,"chat.tools.display.skill":`Charger une compétence`,"chat.tools.display.question":`Question`,"chat.tools.display.lsp":`LSP`,"chat.tools.display.plan_enter":`Mode plan`,"chat.tools.display.plan_exit":`Mode construction`,"chat.tools.display.structuredoutput":`Sortie structurée`,"chat.messageBody.subtask.title":`Tâche déléguée`,"chat.messageBody.subtask.hidePrompt":`Masquer le prompt`,"chat.messageBody.subtask.showPrompt":`Afficher le prompt`,"chat.messageBody.subtask.openSession":`Ouvrir une session de sous-tâche`,"chat.messageBody.subagent.completed":`Terminé`,"chat.messageBody.subagent.error":`Échec`,"chat.messageBody.subagent.cancelled":`Annulé`,"chat.messageBody.subagent.completedDescription":`Le sous-agent en arrière-plan a terminé`,"chat.messageBody.subagent.errorDescription":`Le sous-agent en arrière-plan a échoué`,"chat.messageBody.subagent.cancelledDescription":`Le sous-agent en arrière-plan a été annulé`,"chat.messageBody.subagent.openSession":`Ouvrir la session du sous-agent : {label}`,"chat.messageBody.shellCommand.title":`Commande Shell`,"chat.messageBody.shellCommand.hideOutput":`Masquer la sortie`,"chat.messageBody.shellCommand.showOutput":`Afficher la sortie`,"chat.messageBody.shellCommand.copied":`Copié`,"chat.messageBody.shellCommand.copyOutput":`Copier la sortie`,"commandPalette.title":`Palette de commandes`,"commandPalette.description":`Recherchez des fichiers, des sessions et des commandes.`,"commandPalette.input.placeholder":`Rechercher des fichiers, des sessions, des commandes...`,"commandPalette.empty.noResults":`Aucun résultat trouvé.`,"commandPalette.empty.searchingFiles":`Recherche de fichiers...`,"commandPalette.item.newSession":`Nouvelle session`,"commandPalette.item.newMiniChat":`Nouvelle mini-fenêtre de discussion`,"commandPalette.item.newWorktreeDraft":`Nouveau brouillon d'worktree`,"commandPalette.item.addProject":`Ajouter un projet`,"commandPalette.item.showSessionSwitcher":`Afficher le sélecteur de session`,"commandPalette.item.toggleSidebar":`Basculer la barre latérale`,"commandPalette.item.toggleRightSidebar":`Basculer la barre latérale droite`,"commandPalette.item.showContextUsage":`Afficher l'utilisation du contexte`,"commandPalette.item.toggleTerminal":`Basculer le terminal`,"commandPalette.item.newTerminalTab":`Nouvel onglet de terminal`,"commandPalette.item.openSettings":`Ouvrez les paramètres...`,"commandPalette.session.untitled":`Session sans titre`,"openCodeStatusDialog.title":`Statut OpenCode`,"openCodeStatusDialog.description":`Inspectez l’état et les diagnostics actuels du OpenCode.`,"openCodeStatusDialog.actions.copy":`Copie`,"openCodeStatusDialog.empty.noData":`Aucune donnée.`,"openCodeStatusDialog.toast.copiedTitle":`Copié`,"openCodeStatusDialog.toast.copiedDescription":`Statut copié dans le presse-papiers`,"openCodeStatusDialog.toast.copyFailed":`Échec de la copie du statut`,"branchPickerDialog.title":`Sélecteur de branches`,"branchPickerDialog.description.localBranchesForProject":`Branches locales pour {project}`,"branchPickerDialog.description.selectProject":`Sélectionnez un projet pour afficher les branches`,"branchPickerDialog.search.placeholder":`Rechercher des branches...`,"branchPickerDialog.search.renameBranchPlaceholder":`Renommer la branche`,"branchPickerDialog.state.noProjectSelected":`Aucun projet sélectionné`,"branchPickerDialog.state.loadingBranches":`Chargement des branches...`,"branchPickerDialog.state.noMatchingBranches":`Aucune branche correspondante`,"branchPickerDialog.state.noBranchesFound":`Aucune branche trouvée`,"branchPickerDialog.badge.head":`HEAD`,"branchPickerDialog.badge.worktree":`worktree`,"branchPickerDialog.actions.createWorktreeAria":`Créer un worktree à partir d'une branche`,"branchPickerDialog.actions.renameAria":`Renommer la branche`,"branchPickerDialog.actions.deleteAria":`Supprimer la branche`,"branchPickerDialog.actions.deleteWorktreeAria":`Supprimer le worktree`,"branchPickerDialog.actions.confirmRenameAria":`Confirmer le changement de nom`,"branchPickerDialog.actions.cancelRenameAria":`Annuler le changement de nom`,"branchPickerDialog.actions.confirmDeleteAria":`Confirmer la suppression de la branche`,"branchPickerDialog.actions.cancelDeleteAria":`Annuler la suppression de la branche`,"branchPickerDialog.actions.deletePrompt":`Supprimer`,"branchPickerDialog.actions.forceDeletePrompt":`Forcer la suppression`,"branchPickerDialog.tooltip.createWorktree":`Créer un worktree`,"branchPickerDialog.tooltip.worktreeAlreadyExists":`Le worktree existe déjà`,"branchPickerDialog.tooltip.rename":`Renommer la branche`,"branchPickerDialog.tooltip.renameDisabledForRoot":`Impossible de renommer la branche racine`,"branchPickerDialog.tooltip.delete":`Supprimer la branche`,"branchPickerDialog.tooltip.deleteCurrentBranch":`Impossible de supprimer la branche actuelle`,"branchPickerDialog.tooltip.deleteDisabledForRoot":`Impossible de supprimer la branche racine`,"branchPickerDialog.tooltip.deleteWorktree":`Supprimer le worktree`,"branchPickerDialog.tooltip.deleteWorktreeRootProtected":`Impossible de supprimer le worktree racine`,"branchPickerDialog.toast.branchRenamed":`Branche renommée`,"branchPickerDialog.toast.failedToRenameBranch":`Échec du renommage de la branche`,"branchPickerDialog.toast.branchDeleted":`Branche supprimée`,"branchPickerDialog.toast.branchNotMerged":`La branche n'est pas entièrement fusionnée`,"branchPickerDialog.toast.confirmAgainToForceDelete":`Confirmez à nouveau pour forcer la suppression`,"branchPickerDialog.toast.failedToDeleteBranch":`Échec de la suppression de la branche`,"branchPickerDialog.toast.worktreeCreated":`Worktree créé`,"branchPickerDialog.toast.failedToCreateWorktree":`Échec de la création du worktree`,"branchPickerDialog.error.failedToLoad":`Échec du chargement des branches`,"branchPickerDialog.error.renameRejected":`Le changement de nom a été refusé`,"branchPickerDialog.error.renameFailed":`Échec du renommage de la branche`,"branchPickerDialog.error.deleteRejected":`La suppression a été refusée`,"branchPickerDialog.error.deleteFailed":`Échec de la suppression de la branche`,"branchPickerDialog.error.createWorktreeFailed":`Échec de la création du worktree`,"projectEditDialog.title":`Modifier le projet`,"projectEditDialog.field.name":`Nom`,"projectEditDialog.field.namePlaceholder":`Nom du projet`,"projectEditDialog.field.color":`Couleur`,"projectEditDialog.field.icon":`Icône`,"projectEditDialog.field.preview":`Aperçu`,"projectEditDialog.field.iconBackground":`Fond d'icône`,"projectEditDialog.field.iconBackgroundAria":`Couleur d’arrière-plan de l’icône du projet`,"projectEditDialog.option.none":`Aucun`,"projectEditDialog.actions.uploadIcon":`Icône de téléchargement`,"projectEditDialog.actions.uploading":`Téléchargement...`,"projectEditDialog.actions.discoverFavicon":`Découvrez Favicon`,"projectEditDialog.actions.discovering":`Découverte...`,"projectEditDialog.actions.removeProjectIcon":`Supprimer l'icône du projet`,"projectEditDialog.actions.removing":`Suppression...`,"projectEditDialog.actions.undoRemove":`Annuler Supprimer`,"projectEditDialog.actions.clear":`Effacer`,"projectEditDialog.actions.cancel":`Annuler`,"projectEditDialog.actions.save":`Sauvegarder`,"projectEditDialog.toast.failedToUploadIcon":`Échec du téléchargement de l'icône du projet`,"projectEditDialog.toast.iconUpdated":`Icône du projet mise à jour`,"projectEditDialog.toast.failedToRemoveIcon":`Échec de la suppression de l'icône du projet`,"projectEditDialog.toast.iconRemoved":`Icône du projet supprimée`,"projectEditDialog.toast.failedToDiscoverIcon":`Échec de la découverte de l'icône du projet`,"projectEditDialog.toast.customIconAlreadySet":`Icône personnalisée déjà définie pour ce projet`,"projectEditDialog.toast.iconDiscovered":`Icône de projet découverte`,"agentManager.sidebar.search.placeholder":`Rechercher des groupes d'agents...`,"agentManager.sidebar.actions.newAgentGroup":`Nouveau groupe d'agents`,"agentManager.sidebar.actions.more":`... Plus ({count})`,"agentManager.sidebar.actions.showLess":`Afficher moins`,"agentManager.sidebar.section.agentGroups":`Groupes d'agents`,"agentManager.sidebar.state.loading":`Chargement...`,"agentManager.sidebar.state.noGroupsFound":`Aucun groupe trouvé`,"agentManager.sidebar.state.noGroupsYet":`Aucun groupe d'agents pour l'instant`,"agentManager.sidebar.state.createToGetStarted":`Créez un nouveau groupe d'agents pour commencer`,"agentManager.sidebar.item.modelCountSingle":`Modèle {count}`,"agentManager.sidebar.item.modelCountPlural":`Modèles {count}`,"agentManager.sidebar.item.groupMenuAria":`Menu de groupe`,"agentManager.sidebar.item.delete":`Supprimer`,"agentManager.sidebar.relativeTime.now":`maintenant`,"agentManager.sidebar.relativeTime.minutes":`{count}m`,"agentManager.sidebar.relativeTime.hours":`{count}h`,"agentManager.sidebar.relativeTime.days":`{count}d`,"agentManager.sidebar.dialog.deleteGroupTitle":`Supprimer le groupe d'agents`,"agentManager.sidebar.dialog.deleteGroupDescription":`Supprimer «\xA0{group}\xA0» ? Cela supprime tous les worktrees et sessions de ce groupe.`,"agentManager.sidebar.dialog.cancel":`Annuler`,"agentManager.sidebar.dialog.delete":`Supprimer`,"agentManager.sidebar.dialog.deleting":`Suppression...`,"agentManager.sidebar.toast.deletingGroup":`Suppression de "{group}"...`,"agentManager.sidebar.toast.deletedGroup":`"{group}" supprimé`,"agentManager.sidebar.toast.failedToDeleteGroup":`Échec de la suppression complète de "{group}"`,"agentManager.detail.header.modelCountSingle":`Modèle {count}`,"agentManager.detail.header.modelCountPlural":`Modèles {count}`,"agentManager.detail.header.noBranch":`Pas de branche`,"agentManager.detail.actions.worktreeActionsAria":`Actions du worktree`,"agentManager.detail.actions.removeThisWorktree":`Supprimer ce worktree`,"agentManager.detail.actions.keepThisRemoveOthers":`Laissez celui-ci, supprimez les autres`,"agentManager.detail.actions.copyWorktreePath":`Copier le chemin du worktree`,"agentManager.detail.dialog.removeWorktreeTitle":`Supprimer le worktree`,"agentManager.detail.dialog.removeOtherWorktreesTitle":`Supprimer les autres worktrees`,"agentManager.detail.dialog.removeWorktreeDescription":`Supprimer «\xA0{label}\xA0» ? Cela supprime toutes les sessions de ce worktree ainsi que le worktree lui-même.`,"agentManager.detail.dialog.removeOtherWorktreesDescription":`Conservez "{label}" et supprimez les autres worktrees dans "{group}".`,"agentManager.detail.dialog.cancel":`Annuler`,"agentManager.detail.dialog.remove":`Retirer`,"agentManager.detail.dialog.removeOthers":`Supprimer les autres`,"agentManager.detail.dialog.working":`Fonctionnement...`,"agentManager.detail.state.loadingSessionFor":`Session de chargement pour {label}`,"agentManager.detail.state.sessionId":`ID de session : {id}`,"agentManager.detail.state.noSessionsInGroup":`Aucune session dans ce groupe`,"agentManager.detail.toast.noWorktreePath":`Aucun chemin de worktree disponible`,"agentManager.detail.toast.worktreePathCopied":`Chemin du worktree copié`,"agentManager.detail.toast.failedToCopyPath":`Échec de la copie du chemin`,"agentManager.detail.toast.removingWorktree":`Suppression du worktree...`,"agentManager.detail.toast.removingOtherWorktrees":`Suppression d'autres worktrees...`,"agentManager.detail.toast.failedToFullyRemoveWorktree":`Échec de la suppression complète du worktree`,"agentManager.detail.toast.worktreeRemoved":`Worktree supprimé`,"agentManager.detail.toast.otherWorktreesRemoved":`Suppression d'autres worktrees`,"agentManager.empty.groupName.label":`Nom du groupe`,"agentManager.empty.groupName.placeholder":`e.g. fonctionnalité-auth, correction de bugs-connexion`,"agentManager.empty.groupName.description":`Utilisé pour le répertoire du worktree et le nommage des branches`,"agentManager.empty.baseBranch.label":`Branche de base`,"agentManager.empty.baseBranch.description":`Crée de nouvelles branches à partir de {branch}`,"agentManager.empty.setupCommands.label":`Commandes de configuration`,"agentManager.empty.setupCommands.configured":`{count} configuré`,"agentManager.empty.setupCommands.description":`Les commandes s'exécutent dans chaque nouveau worktree. Utilisez $ROOT_PROJECT_PATH pour la racine du projet.`,"agentManager.empty.setupCommands.loading":`Chargement...`,"agentManager.empty.setupCommands.commandPlaceholder":`p. ex. bun install`,"agentManager.empty.setupCommands.removeCommandAria":`Supprimer la commande`,"agentManager.empty.setupCommands.addCommand":`Ajouter une commande`,"agentManager.empty.agent.label":`Agent`,"agentManager.empty.agent.description":`Par défaut, votre agent par défaut configuré`,"agentManager.empty.models.label":`Modèles`,"agentManager.empty.models.addModel":`Ajouter un modèle`,"agentManager.empty.models.selectedSingle":`Modèle {count} sélectionné`,"agentManager.empty.models.selectedPlural":`Modèles {count} sélectionnés`,"agentManager.empty.prompt.label":`Invite`,"agentManager.empty.prompt.placeholder":`Demandez n'importe quoi...`,"agentManager.empty.prompt.addAttachmentAria":`Ajouter une pièce jointe`,"agentManager.empty.actions.startAgentGroupAria":`Démarrer le groupe d'agents`,"agentManager.empty.toast.fileTooLarge":`Le fichier "{fileName}" est trop volumineux (max 10\xA0Mo)`,"agentManager.empty.toast.failedToAttach":`Échec de la connexion de "{fileName}"`,"agentManager.empty.toast.attachedSingle":`Fichier {count} joint`,"agentManager.empty.toast.attachedPlural":`Fichiers {count} joints`,"agentManager.empty.toast.failedToCreateGroup":`Échec de la création du groupe d'agents`,"openInApp.actions.open":`Ouvrir`,"openInApp.actions.openInAria":`Ouvert dans {app}`,"openInApp.actions.chooseAppAria":`Choisissez l'application à ouvrir`,"openInApp.actions.copyPath":`Copier le chemin`,"openInApp.actions.refreshApps":`Actualiser les applications`,"openInApp.toast.pathCopied":`Chemin copié dans le presse-papiers`,"projectActions.actions.addActionAria":`Ajouter une action`,"projectActions.actions.addAction":`Ajouter une action`,"projectActions.actions.addNewAction":`Ajouter une nouvelle action`,"projectActions.actions.autoDiscover":`Découverte automatique`,"projectActions.actions.chooseActionAria":`Choisir l'action du projet`,"projectActions.actions.openPreview":`Ouvrir l'aperçu`,"projectActions.actions.runNamedAria":`Exécutez {name}`,"projectActions.actions.stopNamedAria":`Arrêter {name}`,"projectActions.label.fallbackAction":`Action`,"projectActions.toast.openedUrlFromOutput":`URL ouvert à partir de la sortie d'action`,"projectActions.toast.openedForwardedUrl":`Ouvert transmis URL`,"projectActions.toast.openedActionUrl":`Action ouverte URL`,"projectActions.error.noActiveDirectory":`Pas de répertoire actif`,"projectActions.error.noActiveDirectoryForAction":`Pas de répertoire actif pour l'action`,"projectActions.error.failedToCreateTerminalSession":`Échec de la création d'une session de terminal`,"projectActions.error.invalidCustomUrlFormat":`Format URL personnalisé non valide`,"projectActions.error.selectedDesktopSshForwardUnavailable":`Le transfert du bureau SSH sélectionné n'est pas disponible`,"projectActions.error.failedToRunAction":`Échec de l'exécution de l'action`,"mcpDropdown.title":`Serveurs MCP`,"mcpDropdown.actions.refreshAria":`Rafraîchir`,"mcpDropdown.actions.openAria":`Serveurs MCP`,"mcpDropdown.statusAria":`Statut MCP`,"mcpDropdown.status.unknown":`Inconnu`,"mcpDropdown.status.connected":`Connecté`,"mcpDropdown.status.failed":`Échec : {error}`,"mcpDropdown.status.unknownError":`Erreur inconnue`,"mcpDropdown.status.needsAuth":`Nécessite une authentification`,"mcpDropdown.status.needsRegistration":`Nécessite un enregistrement : {error}`,"mcpDropdown.empty.configureInConfig":`Configurez les serveurs MCP dans la configuration OpenCode.`,"sessionAuth.error.rateLimitTitle":`Trop de tentatives`,"sessionAuth.error.networkTitle":`Impossible d'atteindre le serveur`,"sessionAuth.error.rateLimitDescriptionSingle":`Veuillez attendre {minutes} minute avant de réessayer.`,"sessionAuth.error.rateLimitDescriptionPlural":`Veuillez attendre {minutes} minutes avant de réessayer.`,"sessionAuth.error.networkDescription":`Nous n'avons pas pu vérifier la session d'interface utilisateur. Si vous ouvrez OpenChamber depuis un autre appareil sur votre réseau local, activez l'accès au réseau du bureau dans l'application de bureau et utilisez l'adresse LAN indiquée dans les paramètres.`,"sessionAuth.error.retry":`Réessayer`,"sessionAuth.error.passkeySetupFailed":`La configuration du mot de passe a échoué.`,"sessionAuth.error.incorrectPassword":`Mot de passe incorrect. Essayer à nouveau.`,"sessionAuth.error.unexpectedResponse":`Réponse inattendue du serveur.`,"sessionAuth.error.networkRetry":`Erreur réseau. Vérifiez la connexion et réessayez.`,"sessionAuth.error.passkeySignInCanceled":`La connexion par mot de passe a été annulée.`,"sessionAuth.error.enterPasswordForPasskey":`Entrez votre mot de passe pour ajouter un mot de passe.`,"sessionAuth.locked.tunnelTitle":`Accès au tunnel requis`,"sessionAuth.locked.unlockTitle":`Débloquez OpenChamber`,"sessionAuth.locked.tunnelDescription":`Ouvrez ce tunnel à l'aide du lien de connexion unique depuis l'application de bureau.`,"sessionAuth.locked.passwordDescription":`Cette session est protégée par mot de passe.`,"sessionAuth.locked.hostSwitcherHint":`Utilisez local si la remote est inaccessible.`,"sessionAuth.actions.cancelPasskey":`Annuler le mot de passe`,"sessionAuth.actions.usePasskey":`Utiliser le mot de passe`,"sessionAuth.actions.unlockingAria":`Déverrouillage`,"sessionAuth.actions.unlockAria":`Ouvrir`,"sessionAuth.actions.trustDevice":`Faites confiance à cet appareil`,"sessionAuth.actions.trustDeviceAria":`Faites confiance à cet appareil`,"sessionAuth.actions.cancelPasskeySetup":`Annuler la configuration du mot de passe`,"sessionAuth.actions.addPasskey":`Ajouter un mot de passe`,"sessionAuth.password.placeholder":`Entrez le mot de passe`,"sessionAuth.toast.passkeyAdded":`Clé d'accès ajoutée`,"sessionAuth.toast.passkeySetupCanceled":`Configuration du mot de passe annulée`,"desktopHostSwitcher.title":`Instance`,"desktopHostSwitcher.transition.title":`Changement d’instance…`,"desktopHostSwitcher.transition.description":`Chargement des données de l’instance sélectionnée.`,"desktopHostSwitcher.description":`Basculer entre les serveurs OpenChamber locaux et distants`,"desktopHostSwitcher.header.current":`Actuel`,"desktopHostSwitcher.header.default":`Défaut`,"desktopHostSwitcher.header.currentColon":`Actuel:`,"desktopHostSwitcher.header.currentDefaultColon":`Valeur par défaut actuelle :`,"desktopHostSwitcher.status.connected":`Connecté`,"desktopHostSwitcher.status.authRequired":`Authentification requise`,"desktopHostSwitcher.status.wrongService":`Mauvais service`,"desktopHostSwitcher.status.unreachable":`Injoignable`,"desktopHostSwitcher.status.unknown":`Inconnu`,"desktopHostSwitcher.status.ping":`· Ping {ms}ms`,"desktopHostSwitcher.statusAria":`Statut de l'instance`,"desktopHostSwitcher.sshPhase.ready":`Prêt`,"desktopHostSwitcher.sshPhase.error":`Erreur`,"desktopHostSwitcher.sshPhase.reconnecting":`Reconnexion`,"desktopHostSwitcher.sshPhase.resolvingConfig":`Résolution de la configuration`,"desktopHostSwitcher.sshPhase.checkingAuth":`Vérification de l'authentification`,"desktopHostSwitcher.sshPhase.connectingSsh":`Connexion du SSH`,"desktopHostSwitcher.sshPhase.probingRemote":`Sondage à distance`,"desktopHostSwitcher.sshPhase.installing":`Installation`,"desktopHostSwitcher.sshPhase.updating":`Mise à jour`,"desktopHostSwitcher.sshPhase.detectingServer":`Serveur de détection`,"desktopHostSwitcher.sshPhase.startingServer":`Démarrage du serveur`,"desktopHostSwitcher.sshPhase.forwardingPorts":`Ports de transfert`,"desktopHostSwitcher.sshPhase.idle":`Inactif`,"desktopHostSwitcher.ssh.needInstancesHint":`Besoin d'instances SSH ? Gérez-les dans Paramètres.`,"desktopHostSwitcher.ssh.instanceFallback":`Instance SSH`,"desktopHostSwitcher.ssh.connectingTo":`Connexion à {host}`,"desktopHostSwitcher.actions.refresh":`Rafraîchir`,"desktopHostSwitcher.actions.refreshInstancesAria":`Actualiser les instances`,"desktopHostSwitcher.actions.remoteSsh":`SSH remote`,"desktopHostSwitcher.actions.instanceActionsAria":`Actions d'instance`,"desktopHostSwitcher.actions.edit":`Modifier`,"desktopHostSwitcher.actions.delete":`Supprimer`,"desktopHostSwitcher.actions.connect":`Connecter`,"desktopHostSwitcher.actions.defaultInstanceAria":`Instance par défaut`,"desktopHostSwitcher.actions.setAsDefaultAria":`Définir par défaut`,"desktopHostSwitcher.actions.setAsDefault":`Définir par défaut`,"desktopHostSwitcher.actions.openInNewWindowAria":`Ouvrir dans une nouvelle fenêtre`,"desktopHostSwitcher.actions.openInNewWindow":`Ouvrir dans une nouvelle fenêtre`,"desktopHostSwitcher.actions.addInstance":`Ajouter une instance`,"desktopHostSwitcher.actions.cancel":`Annuler`,"desktopHostSwitcher.actions.save":`Sauvegarder`,"desktopHostSwitcher.actions.add":`Ajouter`,"desktopHostSwitcher.actions.switchToLocal":`Passer au local`,"desktopHostSwitcher.actions.retry":`Réessayer`,"desktopHostSwitcher.actions.switchInstanceAria":`Changer d'instance`,"desktopHostSwitcher.actions.switchInstance":`Changer d'instance`,"desktopHostSwitcher.actions.switchToAria":`Passer à {instance}`,"desktopHostSwitcher.field.labelPlaceholder":`Étiquette`,"desktopHostSwitcher.field.labelOptionalPlaceholder":`Étiquette (facultatif)`,"desktopHostSwitcher.field.urlPlaceholder":`https://hôte:port`,"desktopHostSwitcher.state.limitedOnPage":`Le sélecteur d'instance est limité sur cette page. Utilisez Local pour récupérer.`,"desktopHostSwitcher.state.loading":`Chargement...`,"desktopHostSwitcher.state.instanceUnreachable":`Instance inaccessible`,"desktopHostSwitcher.edit.title":`Modifier l'instance`,"desktopHostSwitcher.add.title":`Ajouter une instance`,"desktopHostSwitcher.error.failedToSave":`Échec de l'enregistrement`,"desktopHostSwitcher.error.failedToLoad":`Échec du chargement`,"desktopHostSwitcher.error.invalidUrl":`URL non valide (doit être http/https)`,"desktopHostSwitcher.error.failedToOpenNewWindow":`Échec de l'ouverture d'une nouvelle fenêtre`,"desktopHostSwitcher.instance.local":`Local`,"desktopHostSwitcher.instance.fallback":`Instance`,"desktopHostSwitcher.startup.title":`Instance SSH par défaut indisponible`,"desktopHostSwitcher.startup.connectingTo":`Connexion à {host}...`,"desktopHostSwitcher.startup.failed":`Échec de la connexion de l'instance SSH par défaut.`,"desktopHostSwitcher.toast.sshConnected":`Instance SSH "{host}" connectée`,"desktopHostSwitcher.toast.sshFailedToConnect":`L'instance SSH "{host}" n'a pas réussi à se connecter`,"desktopHostSwitcher.toast.instanceUnreachable":`L'instance "{host}" est inaccessible`,"miniChat.header.newSession":`Nouvelle session`,"miniChat.header.session":`Session`,"miniChat.header.defaultAgent":`Agent par défaut`,"miniChat.header.noModel":`Aucun modèle`,"miniChat.status.busy":`En cours d'exécution`,"miniChat.status.retry":`Réessayer`,"miniChat.status.idle":`Inactif`,"miniChat.actions.pin":`Épingler au-dessus des autres fenêtres`,"miniChat.actions.unpin":`Détacher la fenêtre`,"miniChat.actions.pinAria":`Épingler la fenêtre Mini Chat`,"miniChat.actions.unpinAria":`Désépingler la fenêtre Mini Chat`,"miniChat.actions.openMain":`Ouvrir dans la fenêtre principale`,"miniChat.actions.openMainAria":`Ouvrir la session dans la fenêtre principale`,"miniChat.unavailable.title":`Session indisponible`,"miniChat.unavailable.description":`Cette session n'a pas pu être chargée. Il peut avoir été supprimé, archivé ou ouvert à partir d'un contexte de projet différent.`,"sessions.sidebar.session.menu.openMiniChatWindow":`Ouvrir dans la mini-fenêtre de discussion`,"header.actions.newMiniChat":`Nouvelle mini-fenêtre de discussion`,"header.actions.newMiniChatAria":`Ouvrir une nouvelle fenêtre de mini-chat`,"header.actions.openSessionMiniChat":`Session ouverte dans le mini-chat`,"header.actions.openSessionMiniChatAria":`Ouvrir la session en cours dans Mini Chat`,"header.windowControls.groupAria":`Champs de fenêtre`,"header.windowControls.minimize":`Réduire la fenêtre`,"header.windowControls.maximize":`Agrandir la fenêtre`,"header.windowControls.restore":`Fenêtre de restauration`,"header.windowControls.close":`Fermer la fenêtre`,"errorBoundary.title":`Quelque chose s'est mal passé`,"errorBoundary.description":`L'application a rencontré une erreur inattendue. Cela a été enregistré pour le débogage.`,"errorBoundary.state.unknownError":`Erreur inconnue`,"errorBoundary.state.componentStackLabel":`Pile de composants :`,"errorBoundary.actions.errorDetails":`Détails de l'erreur`,"errorBoundary.actions.tryAgain":`Essayer à nouveau`,"errorBoundary.actions.copy":`Copie`,"errorBoundary.actions.copied":`Copié`,"jsonTreeView.error.emptyJson":`Contenu JSON vide`,"jsonTreeView.error.invalidJson":`JSON invalide`,"jsonTreeView.error.invalidJsonTitle":`JSON invalide`,"jsonTreeView.actions.expandAll":`Développer tout`,"jsonTreeView.actions.collapseAll":`Réduire tout`,"numberInput.actions.decreaseAria":`Diminuer la valeur`,"numberInput.actions.increaseAria":`Augmenter la valeur`,"goToLineDialog.field.linePlaceholderShort":`Ligne`,"goToLineDialog.field.linePlaceholder":`Numéro de ligne`,"goToLineDialog.actions.go":`Aller`,"goToLineDialog.helper.editorUnavailable":`Éditeur indisponible.`,"goToLineDialog.helper.currentLineRange":`Ligne actuelle : {current}. Tapez un numéro de ligne compris entre 1 et {max} vers lequel accéder.`,"goToLineDialog.helper.goToLine":`Aller à la ligne {line}`,"dialog.common.actions.close":`Fermer`,"filesView.toast.relativePathCopied":`Chemin relatif copié`,"filesView.tree.menu.copyRelativePath":`Copier le chemin relatif`,"multiRun.branchSelector.placeholder.selectSourceBranch":`Sélectionnez la branche source...`,"multiRun.branchSelector.status.loadingBranches":`Chargement des branches...`,"multiRun.branchSelector.status.noBranchesFound":`Aucune branche trouvée`,"multiRun.branchSelector.status.notInGitRepository":`Pas dans un dépôt git.`,"multiRun.branchSelector.groups.localBranches":`Branches locales`,"multiRun.branchSelector.groups.remoteBranches":`Branches du dépôt distant`,"multiRun.window.actions.closeAria":`Fermer le multi-exécution`,"multiRun.window.description":`Fenêtre multi-exécution OpenChamber.`,"voice.status.idle":`Prêt pour la voix`,"voice.status.listening":`Écoute...`,"voice.status.processing":`Traitement...`,"voice.status.speaking":`Parlant...`,"voice.status.error":`Erreur vocale`,"voice.status.conversationModeActiveAria":`Mode conversation actif`,"voice.action.finishAndTranscribe":`Terminer et transcrire la saisie vocale`,"onboarding.common.actions.back":`Retour`,"onboarding.common.copyToClipboard":`Copier dans le presse-papier`,"onboarding.common.status.copiedToClipboard":`Copié dans le presse-papiers`,"onboarding.chooser.title":`Bienvenue sur OpenChamber`,"onboarding.chooser.description":`Choisissez comment vous souhaitez vous connecter pour commencer.`,"onboarding.chooser.tabs.localInstall":`Installation locale`,"onboarding.chooser.tabs.connectRemote":`Se connecter en remote`,"onboarding.localSetup.title":`Configuration de OpenCode`,"onboarding.localSetup.description":`Installez OpenCode CLI pour continuer.`,"onboarding.localSetup.dialog.selectOpencodeBinary":`Sélectionnez le binaire OpenCode`,"onboarding.localSetup.errors.cliNotReady":`OpenCode CLI n’est pas encore prêt. Veuillez confirmer que l'installation est terminée et réessayer.`,"onboarding.localSetup.errors.detectionFailed":`Échec de la détection`,"onboarding.localSetup.windows.title":`Configuration de Windows (WSL recommandé)`,"onboarding.localSetup.windows.stepInstallWsl":`Installez WSL (si nécessaire) avec`,"onboarding.localSetup.windows.stepInstallWslSuffix":`dans PowerShell.`,"onboarding.localSetup.windows.stepRunInstallInWsl":`Exécutez la commande d'installation ci-dessous dans votre terminal WSL.`,"onboarding.localSetup.windows.stepSetBinaryPath":`Si OpenChamber ne détecte pas automatiquement OpenCode, définissez le chemin binaire ci-dessous.`,"onboarding.localSetup.intro":`OpenCode est le cœur de OpenChamber — installez-le pour commencer.`,"onboarding.localSetup.docs.windows":`Documents OpenCode Windows + WSL`,"onboarding.localSetup.docs.default":`Documents OpenCode`,"onboarding.localSetup.actions.checking":`Vérification…`,"onboarding.localSetup.actions.checkNow":`Vérifiez maintenant`,"onboarding.localSetup.actions.checkAndContinue":`J’ai terminé l’installation, vérifier et continuer`,"onboarding.localSetup.helper.checkAndContinue":`Cliquez pour vérifier si OpenCode CLI est disponible. En cas de succès, vous entrerez automatiquement dans l'écran principal.`,"onboarding.localSetup.status.watching":`En attendant OpenCode`,"onboarding.localSetup.status.autoContinue":`Nous continuerons automatiquement une fois qu’il sera détecté.`,"onboarding.localSetup.field.alreadyInstalled":`Déjà installé ? Définissez le chemin OpenCode CLI :`,"onboarding.localSetup.advanced.title":`Définir un chemin binaire personnalisé`,"onboarding.localSetup.troubleshoot.title":`Vous avez des problèmes ?`,"onboarding.localSetup.actions.browse":`Parcourir`,"onboarding.localSetup.actions.apply":`Appliquer`,"onboarding.localSetup.helper.saveAndReload":`Enregistre dans les paramètres OpenChamber et recharge la configuration OpenCode.`,"onboarding.localSetup.remotePreference":`Vous préférez utiliser un serveur distant ?`,"onboarding.localSetup.actions.connectRemoteServer":`Se connecter au serveur distant →`,"onboarding.localSetup.windows.hintInstallInWsl":`Sous Windows, installez et exécutez OpenCode dans WSL pour une meilleure compatibilité.`,"onboarding.localSetup.windows.hintDetectionFailed":`Si la détection échoue, définissez un chemin natif (opencode.cmd/opencode.exe), wsl.exe ou wsl:/usr/local/bin/opencode.`,"onboarding.localSetup.hint.ensurePath":`Déjà installé ? Assurez-vous qu'OpenCode est dans votre PATH.`,"onboarding.localSetup.hint.setEnv":`Ou définissez la variable d'environnement OPENCODE_BINARY.`,"onboarding.localSetup.hint.missingRuntime":`Si vous voyez « env: node : No such file or directory » ou « env: bun : No such file or directory », installez ce runtime ou assurez-vous qu'il se trouve sur PATH.`,"onboarding.remoteConnection.title":`Se connecter au serveur distant`,"onboarding.remoteConnection.titleRecovery":`Connectez-vous à un autre serveur`,"onboarding.remoteConnection.description":`Saisissez l'adresse d'un serveur OpenChamber auquel vous connecter.`,"onboarding.remoteConnection.field.serverAddress":`Adresse du serveur`,"onboarding.remoteConnection.field.serverAddressPlaceholder":`https://your-server.example.com:4096`,"onboarding.remoteConnection.field.nameOptional":`Nom (facultatif)`,"onboarding.remoteConnection.field.namePlaceholder":`Mon serveur distant`,"onboarding.remoteConnection.errors.connectionTestFailed":`Le test de connexion a échoué`,"onboarding.remoteConnection.errors.failedToSaveConnection":`Échec de l'enregistrement de la connexion`,"onboarding.remoteConnection.status.connectedSuccessfully":`Connecté avec succès ({latencyMs}ms)`,"onboarding.remoteConnection.status.authWarning":`Le serveur nécessite une authentification. Vous pouvez toujours vous connecter.`,"onboarding.remoteConnection.status.connectionFailed":`Échec de la connexion`,"onboarding.remoteConnection.status.suggestionsUnreachable":`Suggestions : vérifiez l'adresse du serveur, vérifiez que le serveur est en cours d'exécution ou vérifiez votre connexion réseau.`,"onboarding.remoteConnection.status.suggestionsWrongService":`Suggestions : vérifiez que l’URL pointe vers un serveur OpenChamber ou contactez l'administrateur du serveur.`,"onboarding.remoteConnection.actions.testing":`Essai…`,"onboarding.remoteConnection.actions.testConnection":`Tester la connexion`,"onboarding.remoteConnection.actions.connectAndRestart":`Connectez-vous et redémarrez`,"onboarding.remoteConnection.actions.whatToDo":`Qu'aimeriez-vous faire ?`,"onboarding.remoteConnection.actions.chooseDifferentServer":`Choisissez un autre serveur`,"onboarding.remoteConnection.actions.useLocalInstead":`Utilisez plutôt local`,"onboarding.remoteConnection.probe.authMessage":`Le serveur nécessite une authentification. Vous pouvez toujours vous connecter, mais vous devrez peut-être fournir des informations d'identification.`,"onboarding.remoteConnection.probe.wrongServiceMessage":`Le serveur a répondu mais n'exécute pas OpenChamber. Vérifiez que l'adresse pointe vers un serveur OpenChamber.`,"onboarding.remoteConnection.probe.unreachableMessage":`Le serveur est inaccessible. Vérifiez votre connexion réseau et vérifiez l'adresse du serveur.`,"onboarding.desktopRecovery.localUnavailable.title":`OpenCode local indisponible`,"onboarding.desktopRecovery.localUnavailable.description":`OpenCode CLI n'a pas pu être démarré ou n'est pas installé. Installez OpenCode ou connectez-vous plutôt à un serveur distant.`,"onboarding.desktopRecovery.localUnavailable.retry":`Réessayer en local`,"onboarding.desktopRecovery.localUnavailable.useLocal":`Configurer localement`,"onboarding.desktopRecovery.noDefaultConnection.title":`Aucune connexion par défaut`,"onboarding.desktopRecovery.noDefaultConnection.description":`Votre connexion par défaut enregistrée est introuvable. Choisissez comment vous souhaitez vous connecter.`,"onboarding.desktopRecovery.remoteUnreachable.title":`Serveur distant inaccessible`,"onboarding.desktopRecovery.remoteUnreachable.description":`Impossible de se connecter à "{host}". Vérifiez votre connexion réseau et vérifiez l'adresse du serveur.`,"onboarding.desktopRecovery.remoteUnreachable.retry":`Réessayer la connexion`,"onboarding.desktopRecovery.incompatibleServer.title":`Serveur incompatible`,"onboarding.desktopRecovery.incompatibleServer.description":`Le serveur «\xA0{host}\xA0» n'exécute pas OpenChamber. Vérifiez que l'adresse pointe vers un serveur OpenChamber.`,"onboarding.desktopRecovery.common.useLocal":`Utiliser local`,"onboarding.desktopRecovery.common.useRemote":`Utiliser le remote`,"onboarding.desktopRecovery.actions.retrying":`Nouvelle tentative…`,"onboarding.desktopRecovery.actions.retryConnection":`Réessayer la connexion`,"startup.initRecovery.title":`Le démarrage a échoué`,"startup.initRecovery.description":`OpenChamber n'a pas pu terminer l'initialisation. Vérifiez que le serveur est en cours d'exécution, puis réessayez.`,"startup.initRecovery.retry":`Réessayer`,"startup.initRecovery.retrying":`Nouvelle tentative…`,"onboarding.desktopRecovery.placeholders.remoteServer":`le serveur distant`,"onboarding.desktopRecovery.placeholders.unknownServer":`inconnu`,"vscodeLayout.title.chat":`Chat`,"vscodeLayout.title.newSession":`Nouvelle session`,"vscodeLayout.title.sessions":`Sessions`,"vscodeLayout.title.sessionFallback":`Session`,"vscodeLayout.actions.backToSessionsAria":`Retour aux sessions`,"vscodeLayout.actions.newSessionAria":`Nouvelle session`,"vscodeLayout.actions.openAgentManagerAria":`Ouvrir le gestionnaire d'agents`,"vscodeLayout.actions.resizeSessionsSidebarAria":`Redimensionner la barre latérale des sessions`,"vscodeLayout.actions.settingsAria":`Paramètres`,"vscodeLayout.quota.title":`Limites de taux`,"vscodeLayout.quota.mode.used":`Utilisé`,"vscodeLayout.quota.mode.remaining":`Restant`,"vscodeLayout.quota.lastUpdated":`Dernière mise à jour {time}`,"vscodeLayout.quota.noRateLimitsAvailable":`Aucune limite de taux disponible.`,"vscodeLayout.quota.noRateLimitsReported":`Aucune limite de taux signalée.`,"vscodeLayout.quota.actions.rateLimitsAria":`Limites de taux`,"vscodeLayout.quota.actions.showUsedAria":`Afficher le quota utilisé`,"vscodeLayout.quota.actions.showRemainingAria":`Afficher le quota restant`,"vscodeLayout.quota.actions.refreshAria":`Limites du taux de rafraîchissement`,"updateDialog.header.updateAvailable":`Mise à jour disponible`,"updateDialog.header.updating":`Mise à jour de OpenChamber...`,"updateDialog.status.installingUpdate":`Installation de la mise à jour...`,"updateDialog.status.serverRestarting":`Redémarrage du serveur...`,"updateDialog.status.waitingForServer":`En attente du serveur...`,"updateDialog.status.autoReloadHint":`La page se rechargera automatiquement une fois la mise à jour terminée.`,"updateDialog.fallback.updateViaTerminal":`Ou mettre à jour via le terminal :`,"updateDialog.actions.copyCommand":`Commande Copier`,"updateDialog.actions.copied":`Copié!`,"updateDialog.status.downloadingPayload":`Téléchargement de la charge utile de la mise à jour...`,"updateDialog.actions.downloadUpdate":`Télécharger la mise à jour`,"updateDialog.status.downloading":`Téléchargement...`,"updateDialog.actions.restartToUpdate":`Redémarrer pour mettre à jour`,"updateDialog.actions.updateNow":`Mettre à jour maintenant`,"updateDialog.actions.openMobileUpdate":`Ouvrir la mise à jour`,"updateDialog.changelog.title":`Nouveautés`,"updateDialog.status.updating":`Mise à jour...`,"updateDialog.error.updateFailed":`La mise à jour a échoué`,"updateDialog.error.takingLonger":`La mise à jour prend plus de temps que prévu. Attendez un peu et actualisez, ou exécutez : openchamber update`,"mobileUpdate.toast.available.title":`Mise à jour OpenChamber disponible`,"mobileUpdate.toast.available.description":`La version {version} est prête pour Android.`,"mobileUpdate.toast.actions.download":`Télécharger`,"mobileUpdate.toast.actions.dismiss":`Ignorer`,"opencodeUpdate.toast.available.title":`Mise à jour OpenCode`,"opencodeUpdate.toast.available.description":`Version {version} disponible.`,"opencodeUpdate.toast.actions.update":`Mise à jour`,"opencodeUpdate.toast.actions.dismiss":`Ignorer`,"opencodeUpdate.toast.actions.reload":`Recharger OpenCode`,"opencodeUpdate.toast.upgrading.title":`Mise à jour de OpenCode...`,"opencodeUpdate.toast.upgrading.description":`Gardez OpenChamber ouvert.`,"opencodeUpdate.toast.updated.title":`OpenCode mis à jour`,"opencodeUpdate.toast.updated.description":`Mise à jour installée.`,"opencodeUpdate.toast.updated.descriptionWithVersion":`Version {version} installée.`,"opencodeUpdate.toast.failed.title":`Impossible de mettre à jour OpenCode`,"opencodeUpdate.toast.failed.description":`La mise à niveau du OpenCode a échoué.`,"opencodeUpdate.toast.reload.message":`Redémarrage de OpenCode...`,"memoryDebugPanel.title":`Panneau de débogage`,"memoryDebugPanel.tabs.memory":`Mémoire`,"memoryDebugPanel.tabs.streaming":`Streaming`,"memoryDebugPanel.section.sessionsInMemory":`Sessions en mémoire`,"memoryDebugPanel.section.uiStreamingMetrics":`Métriques de streaming de l'interface utilisateur`,"memoryDebugPanel.section.vscodeBridgeMetrics":`Métriques du pont VS Code`,"memoryDebugPanel.section.noUiSamples":`Aucun échantillon de streaming d'interface utilisateur pour l'instant. Démarrez un flux et gardez ce panneau ouvert.`,"memoryDebugPanel.section.noVscodeSamples":`Aucun échantillon de pont VS Code pour l'instant.`,"memoryDebugPanel.metric.totalMessages":`Nombre total de messages`,"memoryDebugPanel.metric.cachedSessions":`Sessions mises en cache`,"memoryDebugPanel.metric.userMessages":`Messages utilisateur`,"memoryDebugPanel.metric.assistantMessages":`Messages assistant`,"memoryDebugPanel.metric.viewportWindow":`Fenêtre d'affichage`,"memoryDebugPanel.metric.zombieTimeout":`Délai d'attente des zombies`,"memoryDebugPanel.metric.githubTotalRequests":`GitHub Total des demandes`,"memoryDebugPanel.metric.metrics":`Métrique`,"memoryDebugPanel.metric.samples":`Échantillons`,"memoryDebugPanel.metric.lastUpdate":`Dernière mise à jour`,"memoryDebugPanel.metric.uiMetrics":`Métriques de l'interface utilisateur`,"memoryDebugPanel.metric.vscodeMetrics":`VS Code Métriques`,"memoryDebugPanel.metric.messageListRenders":`Rendus de liste de messages`,"memoryDebugPanel.metric.messageListStreamRenders":`Rendus de flux MsgList`,"memoryDebugPanel.metric.chatMessageRenders":`Rendus de messages de chat`,"memoryDebugPanel.metric.chatMessageStreamRenders":`Rendus de flux de messages ChatMessage`,"memoryDebugPanel.metric.chatMessageStaticDuringStream":`ChatMessage statique pendant le flux`,"memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn":`ChatMessage statique en dehors du tour actif`,"memoryDebugPanel.metric.messagesValue":`Messages {count}`,"memoryDebugPanel.metric.minutesValue":`Minutes {count}`,"memoryDebugPanel.metric.msgsValue":`Messages {count}`,"memoryDebugPanel.metric.roleMsgsValue":`U {user} / A {assistant}`,"memoryDebugPanel.metric.countValue":`compter {value}`,"memoryDebugPanel.metric.avgValue":`moyenne {value}`,"memoryDebugPanel.metric.maxValue":`maximum {value}`,"memoryDebugPanel.metric.totalValue":`total {value}`,"memoryDebugPanel.actions.logState":`État du journal`,"memoryDebugPanel.actions.copyJson":`Copier JSON`,"memoryDebugPanel.tooltip.logCurrentState":`Enregistrer l'état actuel de la mémoire sur la console du navigateur`,"memoryDebugPanel.streaming.copy.copied":`Débogage en streaming JSON copié`,"memoryDebugPanel.streaming.copy.failed":`Échec de la copie de JSON`,"memoryDebugPanel.streaming.copy.hint":`La copie exporte les métriques de streaming de l'interface utilisateur et de VS Code en tant que JSON.`,"memoryDebugPanel.common.idle":`inactif`,"memoryDebugPanel.common.live":`en direct`,"memoryDebugPanel.common.notAvailable":`n / A`,"memoryDebugPanel.common.untitled":`Sans titre`,"directoryTree.field.newDirectoryPlaceholder":`nouveau_répertoire`,"textarea.resizeHandleAria":`Redimensionner la zone de texte`,"sidebar.resize.leftPanelAria":`Redimensionner le panneau de gauche`,"sidebar.resize.rightPanelAria":`Redimensionner le panneau de droite`,"mainLayout.mobile.closeDrawerAria":`Fermer le tiroir`,"sortableTabsStrip.aria.tabs":`Onglets`,"openChamberLogo.aria.logo":`Logo OpenChamber`,"markdownRenderer.code.actions.copyTitle":`Copier le code`,"markdownRenderer.code.actions.copiedTitle":`Copié`,"markdownRenderer.table.actions.copyTitle":`Copier le tableau`,"markdownRenderer.code.actions.enableWrapTitle":`Activer le retour à la ligne`,"markdownRenderer.code.actions.disableWrapTitle":`Désactiver le retour à la ligne`,"markdownRenderer.table.actions.downloadTitle":`Télécharger le tableau`,"markdownRenderer.table.toast.downloadedAsFormat":`Table téléchargée sous le nom {format}`,"markdownRenderer.mermaid.actions.copyTitle":`Copie`,"markdownRenderer.mermaid.actions.copySourceTitle":`Copier la source`,"markdownRenderer.mermaid.actions.downloadSvgTitle":`Télécharger SVG`,"markdownRenderer.mermaid.actions.zoomInTitle":`Zoom avant`,"markdownRenderer.mermaid.actions.zoomOutTitle":`Zoom arrière`,"markdownRenderer.mermaid.actions.resetViewTitle":`Réinitialiser la vue`,"markdownRenderer.mermaid.toast.downloadFailed":`Échec du téléchargement du diagramme`,"common.date.today":`Aujourd’hui`,"common.date.yesterday":`Hier`,"common.date.yesterdayWithTime":`Hier {time}`,"common.relative.justNow":`À l’instant`,"common.relative.minutesAgoShort":`il y a {count} min`,"common.relative.hoursAgoShort":`il y a {count} h`,"common.relative.daysAgoShort":`il y a {count} j`,"common.relative.weeksAgoShort":`il y a {count} sem`,"common.relative.yearsAgoShort":`il y a {count} a`,"common.relative.minutesAgoCompact":`{count} min`,"common.relative.hoursAgoCompact":`{count} h`,"common.relative.daysAgoCompact":`{count} j`,"common.relative.weeksAgoCompact":`{count} sem`,"common.relative.monthsAgoCompact":`{count} mois`,"common.relative.yearsAgoCompact":`{count} a`,"contextFileOpen.failure.tooLarge":`Le fichier est trop volumineux pour être ouvert (> {count} lignes)`,"contextFileOpen.failure.missing":`Fichier introuvable`,"contextFileOpen.failure.unreadable":`Impossible d’ouvrir le fichier`,"quota.window.5h":`5 heures`,"quota.window.7d":`Limite sur 7 jours`,"quota.window.7dSonnet":`Limite Sonnet sur 7 jours`,"quota.window.7dOpus":`Limite Opus sur 7 jours`,"quota.window.weekly":`Limite hebdomadaire`,"quota.window.daily":`Quotidien`,"quota.window.monthly":`Limite mensuelle`,"quota.window.credits":`Crédits`,"quota.window.creditsBalance":`Solde de crédits`,"quota.window.billingCycle":`Cycle de facturation`,"quota.window.auto":`Auto`,"quota.window.api":`API`,"quota.window.planLimit":`Limite du forfait`,"quota.window.onDemand":`À la demande`,"quota.window.session":`Session`,"quota.window.premium":`Interactions premium`,"quota.window.chat":`Requêtes de chat`,"quota.window.completions":`Complétions`,"quota.window.premiumInteractions":`Interactions premium`,"layout.mainTab.diagram":`Diagramme`,"mobile.nav.aria":`Navigation mobile`,"mobile.nav.secondaryPageAria":`Page de détail`,"mobile.connect.welcome.title":`Se connecter à OpenChamber`,"mobile.connect.welcome.description":`Ajoutez une URL de serveur ou scannez un code QR d'appairage pour commencer à utiliser l'app mobile.`,"mobile.connect.url.label":`URL du serveur`,"mobile.connect.url.placeholder":`http://192.168.1.74:2606`,"mobile.connect.link.divider":`Ou utilisez un lien d'appairage`,"mobile.connect.address.divider":`Ou saisissez une adresse de serveur`,"mobile.connect.link.label":`Lien d'appairage`,"mobile.connect.link.placeholder":`Collez le lien openchamber://connect`,"mobile.connect.link.invalid":`Ce lien d'appairage n'est pas valide ou a expiré.`,"mobile.connect.token.label":`Jeton client`,"mobile.connect.token.placeholder":`Collez le jeton d'accès`,"mobile.connect.token.hint":`Nécessaire uniquement si votre serveur exige un jeton au lieu d'un mot de passe.`,"mobile.connect.password.label":`Mot de passe`,"mobile.connect.password.placeholder":`Mot de passe OpenChamber`,"mobile.connect.connectButton":`Se connecter`,"mobile.connect.unlockButton":`Déverrouiller et se connecter`,"mobile.connect.cancelPassword":`Utiliser un autre serveur`,"mobile.connect.connecting":`Connexion...`,"mobile.connect.scanQr":`Scanner le code QR`,"mobile.connect.welcome.scanHint":`Sur votre ordinateur, ouvrez « Ajouter un appareil » pour afficher un code QR, puis scannez-le ici.`,"mobile.connect.advanced":`Avancé`,"mobile.connect.manual.toggle":`Connexion manuelle`,"mobile.connect.scan.permissionDenied":`L'accès à la caméra est désactivé. Activez-le dans les Réglages pour scanner un code QR.`,"mobile.connect.scan.failed":`Impossible de scanner ce code QR. Réessayez ou saisissez l'URL manuellement.`,"mobile.connect.scan.invalid":`Ce code QR n'est pas un code de connexion OpenChamber.`,"mobile.connect.scan.unsupported":`Le scan QR est disponible uniquement dans l'app mobile installée.`,"mobile.connect.saved.title":`Connexions enregistrées`,"mobile.connect.saved.empty":`Aucune connexion enregistrée pour le moment.`,"mobile.connect.relay.badge":`via OpenChamber Relay`,"mobile.connect.error.urlRequired":`Saisissez une URL de serveur.`,"mobile.connect.splash.connectingTo":`Connexion à l’appareil :`,"mobile.connect.error.invalidUrl":`Cette URL de serveur n'est pas valide.`,"mobile.connect.error.unreachable":`Impossible de joindre ce serveur OpenChamber.`,"mobile.connect.error.authRequired":`Ce serveur nécessite un mot de passe ou un jeton client.`,"mobile.connect.error.passwordFailed":`Impossible de déverrouiller ce serveur. Vérifiez le mot de passe.`,"mobile.instances.addTitle":`Ajouter une instance`,"mobile.instances.addManual":`Ajouter par adresse`,"mobile.instances.editTitle":`Modifier l'instance`,"mobile.instances.edit":`Modifier`,"mobile.instances.delete":`Supprimer`,"mobile.instances.deleteAria":`Supprimer {label}`,"mobile.instances.confirmDeleteAria":`Confirmer la suppression de {label}`,"mobile.instances.cancelDeleteAria":`Conserver {label}`,"mobile.instances.cancelEdit":`Annuler`,"mobile.instances.label.label":`Nom`,"mobile.instances.label.placeholder":`Nom d'affichage facultatif`,"mobile.instances.saveNew":`Enregistrer l'instance`,"mobile.instances.status.connectedDirect":`Connecté · Réseau local`,"mobile.instances.status.connectedRelay":`Connecté · Relais`,"mobile.instances.status.connectedSshRelay":`Connecté · SSH via relais`,"mobile.instances.sshBadge":`SSH`,"mobile.instances.sshViaDesktop":`Acheminé via le bureau vers {host} · le bureau doit rester en ligne`,"mobile.connect.error.sshNotConnected":`Cette instance SSH n’est pas connectée pour le moment.`,"mobile.connect.ssh.fallbackDesktop":`Instance SSH indisponible — connexion au bureau à la place.`,"mobile.instances.saveEdit":`Enregistrer les modifications`,"mobile.nav.changes":`Modifications`,"mobile.nav.settings":`Paramètres`,"mobile.tabs.projects":`Projets`,"mobile.tabs.assistant":`Agent`,"mobile.tabs.scheduled":`Tâches`,"mobile.tabs.settings":`Réglages`,"mobile.surface.closeAria":`Fermer`,"mobile.header.openMenuAria":`Ouvrir le menu`,"mobile.header.openMetadataAria":`Ouvrir les métadonnées de session`,"mobile.header.metadata.context":`Contexte`,"mobile.header.metadata.branch":`Branche`,"mobile.header.metadata.usage":`Utilisation`,"mobile.menu.titleAria":`Outils de l’espace de travail`,"mobile.menu.newSession":`Nouveau chat`,"mobile.chat.syncingMessages":`Synchronisation des messages...`,"mobile.menu.files":`Fichiers`,"mobile.menu.changes":`Modifications`,"mobile.menu.mcp":`MCP`,"mobile.menu.instances":`Instances`,"mobile.settings.switchInstance":`Changer d'instance`,"mobile.menu.update":`Mettre à jour`,"mobile.menu.settings":`Paramètres`,"mobile.sessions.newChatCta":`Nouveau Chat dans {project}`,"mobile.sessions.dateGroup.today":`Aujourd’hui`,"mobile.sessions.dateGroup.yesterday":`Hier`,"mobile.sessions.dateGroup.thisWeek":`Plus tôt cette semaine`,"mobile.sessions.dateGroup.older":`Plus ancien`,"mobile.sessions.section.worktrees":`Worktrees`,"mobile.sessions.mainWorkspace":`Espace de travail principal`,"mobile.sessions.section.pinned":`Épinglés`,"mobile.sessions.searchAria":`Rechercher des sessions`,"mobile.sessions.section.otherProjects":`Changer de projet`,"mobile.sessions.section.projects":`Projets`,"mobile.sessions.empty.noProjectsTitle":`Aucun projet pour le moment`,"mobile.sessions.empty.noProjectsDescription":`Ajoutez un projet pour commencer à discuter avec votre code.`,"mobile.sessions.empty.noSessionsTitle":`Aucune session pour le moment`,"mobile.sessions.empty.noSessionsDescription":`Démarrez votre premier chat pour le voir ici.`,"mobile.sessions.empty.searchTitle":`Aucun résultat`,"mobile.sessions.empty.searchDescription":`Essayez un autre terme de recherche.`,"mobile.sessions.showArchived":`Afficher les archivées ({count})`,"mobile.sessions.hideArchived":`Masquer les archivées`,"mobile.sessions.activeWorktreeAria":`Worktree actif`,"mobile.sessions.activeProjectAria":`Projet actif`,"mobile.sessions.startNewChat":`Nouveau chat`,"mobile.sessions.newChat":`Nouveau Chat`,"mobile.sessions.editOrder":`Réordonner les projets`,"mobile.sessions.doneEditing":`Terminé`,"mobile.sessions.editOrderHint":`Faites glisser la poignée pour réordonner les projets. Touchez la coche pour terminer.`,"mobile.sessions.editProjectAria":`Modifier {label}`,"mobile.sessions.dragHandleAria":`Faire glisser {label} pour réordonner`,"mobile.sessions.moveUpAria":`Déplacer {label} vers le haut`,"mobile.sessions.moveDownAria":`Déplacer {label} vers le bas`,"mobile.sessions.removeProjectAria":`Supprimer {label}`,"mobile.sessions.cancelRemoveProjectAria":`Annuler la suppression de {label}`,"mobile.sessions.confirmRemoveProject":`Fermer`,"mobile.sessions.confirmRemoveProjectAria":`Confirmer la suppression de {label}`,"mobile.projects.closeConfirmMessage":`Fermer « {title} » ? Il quittera la liste des projets. Les sessions restent sur le disque.`,"mobile.sessions.toast.projectRemoved":`{label} supprimé`,"mobile.sessions.archiveSessionAria":`Archiver {title}`,"mobile.sessions.cancelArchiveAria":`Annuler l’archivage de {title}`,"mobile.sessions.stopSessionAria":`Arrêter {title}`,"mobile.sessions.stopGroupAria":`Arrêter toutes les sessions en cours dans {label}`,"mobile.sessions.stopSubsessionsAria":`Arrêter les sous-sessions en cours de {title}`,"mobile.projectEdit.worktreesTitle":`Worktrees`,"mobile.projectEdit.worktreesEmpty":`Aucun worktree dans ce projet pour le moment.`,"mobile.projectEdit.reorderHint":`Faites glisser pour réordonner les worktrees.`,"mobile.projectEdit.dragWorktreeAria":`Faire glisser {label} pour réordonner`,"mobile.projectEdit.deleteWorktreeAria":`Supprimer le worktree {label}`,"mobile.projectEdit.deleteWorktreeTitle":`Supprimer le worktree`,"mobile.projectEdit.deleteWorktreeConfirmButton":`Supprimer`,"mobile.projectEdit.deleteWorktreeConfirm":`Supprimer le worktree « {name} » ? Cette action est irréversible.`,"mobile.projectEdit.deleteWorktreeDirty":`Ce worktree contient des modifications non commitées qui seront perdues.`,"mobile.projectEdit.deleteWorktreeArchiveNote":`{count} session(s) associée(s) seront archivées.`,"mobile.projectEdit.deleteLocalBranch":`Supprimer aussi la branche locale`,"mobile.projectEdit.deleteRemoteBranch":`Supprimer aussi la branche distante`,"mobile.sessions.showMore":`Afficher {count} de plus`,"mobile.sessions.search.section.sessions":`Sessions`,"mobile.sessions.search.section.archived":`Archivées`,"mobile.sessions.search.section.projects":`Projets`,"mobile.sessions.clearSearchAria":`Effacer la recherche`,"mobile.header.noProject":`Sélectionnez un projet`,"mobile.header.activeSession":`Session active`,"mobile.header.noSession":`Aucune session active`,"mobile.sessions.openSheetAria":`Ouvrir les sessions et projets`,"mobile.sessions.closeSheetAria":`Fermer les sessions et projets`,"mobile.sessions.sheet.title":`Conversations récentes`,"mobile.sessions.sheet.resizeAria":`Redimensionner le panneau des sessions`,"mobile.changes.sheet.resizeAria":`Redimensionner le panneau des modifications`,"mobile.sessions.sheet.description":`Changez de projet, ouvrez des sessions ou démarrez un nouveau chat.`,"mobile.sessions.search.placeholder":`Rechercher des sessions`,"mobile.sessions.empty":`Aucune session trouvée.`,"mobile.sessions.unassignedProject":`Autres sessions`,"mobile.sessions.newSessionAria":`Démarrer un nouveau chat dans ce projet`,"mobile.sessions.untitled":`Session sans titre`,"mobile.sessions.project.sessionsSingle":`1 session`,"mobile.sessions.project.sessionsPlural":`{count} sessions`,"mobile.files.refreshAria":`Actualiser les fichiers`,"mobile.files.backToParentAria":`Retour à {name}`,"mobile.files.rootDirectory":`Fichiers du projet`,"mobile.files.search.placeholder":`Rechercher des fichiers`,"mobile.files.search.empty":`Aucun fichier trouvé.`,"mobile.files.parentDirectory":`Dossier parent`,"mobile.files.empty.noDirectory":`Sélectionnez un projet pour parcourir les fichiers.`,"mobile.files.empty.directory":`Ce dossier est vide.`,"mobile.files.error.listFailed":`Impossible de charger les fichiers`,"mobile.files.error.readUnavailable":`L’aperçu du fichier n’est pas disponible dans ce runtime.`,"mobile.files.file.truncated":`Aperçu du fichier tronqué sur mobile.`,"mobile.files.copyPathAria":`Copier le chemin du fichier`,"mobile.files.copyContent":`Copier le contenu`,"mobile.files.copyContentAria":`Copier le contenu du fichier`,"mobile.files.toast.pathCopied":`Chemin copié`,"mobile.files.toast.contentCopied":`Contenu copié`,"mobile.files.toast.copyFailed":`Échec de la copie`,"mobile.changes.placeholder.title":`Modifications`,"mobile.changes.placeholder.description":`La revue du working tree, la synchronisation et les actions de commit seront ici.`,"mobile.changes.branchLabel":`Branche : {branch}`,"mobile.changes.noRemote":`Aucun remote disponible`,"mobile.changes.cleanDescription":`Aucun fichier modifié dans cet espace de travail.`,"mobile.changes.diffDetail.subtitle":`Diff en lecture seule`,"mobile.changes.diffDetail.loadFailed":`Impossible de charger le diff`,"mobile.changes.diffDetail.missingTitle":`Le fichier n’est plus modifié`,"mobile.changes.diffDetail.missingDescription":`Retournez aux modifications et actualisez la liste.`,"mobile.changes.diffDetail.imageUnavailable":`Les diffs d’images ne sont pas encore disponibles dans les modifications mobile.`,"mobile.settings.placeholder.title":`Paramètres`,"mobile.settings.placeholder.description":`Les paramètres mobiles ciblés de connexion et d’application seront ici.`,"sessions.sidebar.header.displayMode.showArchived":`Afficher les sessions archivées`,"sessions.sidebar.group.showMore":`Plus`,"gitView.changes.revertDirectoryAria":`Annuler les modifications dans {path}`,"gitView.changes.revertDirectory":`Annuler le dossier`,"gitView.changes.revertDirectoryDescriptionPlural":`Cela supprimera les modifications locales dans {count} fichiers sous {path}.`,"gitView.changes.revertDirectoryDescriptionSingle":`Cela supprimera les modifications locales dans {count} fichier sous {path}.`,"gitView.changes.revertDirectoryDialogTitle":`Annuler les modifications du dossier ?`,"gitView.changes.revertDirectoryTooltip":`Annuler les modifications du dossier`,"worktree.bootstrap.toast.failed":`Échec de la configuration du worktree`,"worktree.bootstrap.toast.failedDescription":`Le worktree a été créé, mais la configuration en arrière-plan ne s’est pas terminée.`,"worktree.bootstrap.toast.timeoutDescription":`Le worktree a été créé, mais la configuration en arrière-plan a expiré.`,"contextPanel.browser.inspectUnavailable":`Cette page ne peut pas être inspectée depuis le panneau de navigateur.`,"contextPanel.browser.trustNotice":`Les pages ouvertes ici s’exécutent avec un accès complet à OpenChamber — nécessaire pour l’inspection et les captures d’écran. N’ouvrez que des sites de confiance : une page malveillante pourrait lire vos données ou agir en votre nom.`,"contextPanel.file.notice.turnDiffOutsideWorkspace":`Le diff du tour est indisponible hors du projet. Affichage du fichier actuel à la place.`,"filesView.diagram.closeDiagramView":`Fermer la vue diagramme`,"filesView.diagram.saveDiagram":`Enregistrer le diagramme`,"inlineComment.input.placeholderShort":`Ajouter un commentaire...`,"header.services.remoteUpdate.title":`Mise à jour de l’instance distante`,"header.services.remoteUpdate.checking":`Recherche de mises à jour...`,"header.services.remoteUpdate.upToDate":`Cette instance est à jour.`,"header.services.remoteUpdate.available":`La version {version} est disponible pour cette instance.`,"header.services.remoteUpdate.error":`Impossible de vérifier les mises à jour de l’instance distante`,"header.services.remoteUpdate.actions.open":`Mettre à jour`,"chat.fileAttachment.openInDiagram":`Ouvrir dans la vue diagramme`,"chat.draftPresets.explore.label":`Explorer le codebase`,"chat.draftPresets.catchup.label":`Me remettre à niveau`,"chat.draftPresets.weigh.label":`Comparer mes options`,"chat.draftPresets.plan.label":`Lancer la planification de fonctionnalité`,"chat.draftPresets.craftGoal.label":`Créer un Goal`,"chat.draftPresets.debug.label":`Déboguer un problème`,"chat.draftPresets.review.label":`Revoir mes modifications`,"chat.draftStarters.add":`Ajouter un démarrage`,"chat.draftStarters.searchPlaceholder":`Rechercher des commandes et skills…`,"chat.draftStarters.empty":`Rien à ajouter`,"chat.draftStarters.sectionBuiltIn":`Intégré`,"chat.draftStarters.sectionCommands":`Commandes`,"chat.draftStarters.sectionSkills":`Skills`,"chat.draftStarters.remove":`Retirer`,"chat.draftStarters.expand":`Afficher plus`,"chat.draftStarters.collapse":`Réduire`,"chat.commandAutocomplete.command.handoffReviewDescription":`Créer ou réutiliser une session de revue séparée à partir d’un handoff généré.`,"chat.commandAutocomplete.command.featurePlanDescription":`Lancer une session guidée et interactive de planification pour une nouvelle fonctionnalité.`,"chat.commandAutocomplete.command.craftGoalDescription":`Transformer une idée ou une tâche en Goal clair et vérifiable.`,"chat.chatInput.toast.craftGoalFailed":`Impossible de démarrer la création du Goal`,"chat.commandAutocomplete.command.catchUpDescription":`Rétablir le contexte : ce que vous faisiez et où reprendre.`,"chat.commandAutocomplete.command.debugDescription":`Investigation guidée de la cause racine d’un bug avant de proposer une correction.`,"chat.commandAutocomplete.command.weighDescription":`Comparer 2 à 3 approches avec compromis et recommandation avant de vous engager.`,"chat.commandAutocomplete.command.exploreDescription":`Vous orienter dans ce codebase : tour d’ensemble de l’architecture et des parties principales.`,"chat.commandAutocomplete.command.newDescription":`Démarrer une nouvelle session dans le projet actuel.`,"chat.questionCard.submitFailed":`Impossible d’envoyer la réponse`,"chat.questionCard.dismissFailed":`Impossible d’ignorer la question`,"chat.questionCard.noLongerPending":`Cette question n’attend plus de réponse.`,"chat.questionCard.tryAgain":`Veuillez réessayer dans un instant.`,"chat.messageBody.forkDialog.instructions.label":`Instructions`,"chat.messageBody.forkDialog.instructions.placeholder":`Ajouter des instructions pour la nouvelle session…`,"chat.messageBody.forkDialog.createWorktree":`Créer un worktree`,"chat.forkTransition.preparing":`Préparation du fork`,"chat.forkTransition.copying":`Copie de la conversation (les longues sessions peuvent prendre du temps)`,"chat.forkTransition.opening":`Ouverture de la nouvelle session`,"chat.forkTransition.loading":`Chargement des messages récents`,"chat.forkTransition.progress":`{current} / {total}`,"planView.tts.readAloud":`Lire le plan à voix haute`,"planView.tts.stopSpeaking":`Arrêter la lecture`,"filesView.tts.readAloud":`Lire le fichier à voix haute`,"filesView.tts.stopSpeaking":`Arrêter la lecture`,"chat.messageBody.actions.sendReviewFeedback":`Envoyer le retour de revue à l’agent d’implémentation`,"chat.messageBody.actions.sendImplementationResponse":`Envoyer la réponse d’implémentation à l’agent de revue`,"chat.chatInput.toast.planFeatureFailed":`Impossible de lancer la planification de fonctionnalité`,"chat.chatInput.toast.catchUpFailed":`Impossible de rattraper le contexte`,"chat.chatInput.toast.debugFailed":`Impossible de lancer le débogage`,"chat.chatInput.toast.weighFailed":`Impossible de comparer les options`,"chat.chatInput.toast.exploreFailed":`Impossible de lancer le tour`,"chat.chatInput.reviewCommentsRemove":`Retirer les commentaires de revue`,"chat.toolPart.showRawJson":`Afficher le JSON brut`,"chat.toolPart.showFormattedJson":`Afficher le JSON formaté`,"chat.toolPart.showNavigableJson":`Afficher le JSON navigable`,"chat.toolPart.openFileAtFirstChange":`Ouvrir le fichier à la première modification`,"chat.toolPart.openFileDiff":`Ouvrir les différences du fichier`,"chat.toolPart.copyOutput":`Copier la sortie`,"chat.toolPart.copiedOutput":`Sortie copiée`,"chat.toolPart.copyOutputFailed":`Impossible de copier la sortie`,"desktopHostSwitcher.status.checking":`Vérification`,"desktopHostSwitcher.status.updateRecommended":`Mise à jour recommandée`,"desktopHostSwitcher.status.incompatible":`Incompatible`,"onboarding.remoteConnection.probe.updateRecommendedMessage":`Cette instance utilise une version différente d’OpenChamber. Vous pouvez vous connecter, mais mettez les deux applications à jour si quelque chose ne fonctionne pas.`,"onboarding.remoteConnection.probe.incompatibleMessage":`Le serveur exécute OpenChamber mais n’est pas compatible avec cette version de l’application. Mettez OpenChamber à jour sur le serveur, puis réessayez.`,"onboarding.desktopRecovery.remoteIncompatible.title":`Mise à jour du serveur requise`,"onboarding.desktopRecovery.remoteIncompatible.description":`Le serveur OpenChamber à l’adresse « {host} » n’est pas compatible avec cette version de l’application. Mettez OpenChamber à jour sur le serveur, puis réessayez.`,"vscodeLayout.actions.archiveAllAria":`Archiver toutes les sessions`,"vscodeLayout.actions.archiveAllConfirm":`Tout archiver`,"vscodeLayout.actions.archiveAllSuccess":`{count} session(s) archivée(s)`,"vscodeLayout.actions.archiveAllError":`Impossible d’archiver {count} session(s)`,"vscodeLayout.actions.cancel":`Annuler`};export{e as dict};
13
+ {summary}`,"chat.chatInput.toast.vscodePickFailed":`Échec de la sélection des fichiers dans VS Code`,"chat.chatInput.toast.openSessionFirst":`Ouvrir d'abord une session`,"chat.chatInput.toast.togglePermissionAutoAcceptFailed":`Échec de l'activation de l'acceptation automatique des autorisations`,"chat.chatInput.toast.sessionReferenceLoadFailed":`Impossible de charger la référence de session.`,"chat.chatInput.reviewComments":`Commentaires de révision :`,"chat.chatInput.devServerLogs":`Journaux du serveur de développement :`,"chat.chatInput.devServerLogsRemove":`Supprimer les journaux du serveur de développement`,"chat.chatInput.previewAnnotations":`Aperçu des annotations :`,"chat.chatInput.previewContext":`Contexte d'aperçu :`,"chat.chatInput.previewContextRemove":`Supprimer le contexte d'aperçu`,"chat.chatInput.projectRoot":`Racine du projet`,"chat.chatInput.branch":`Bifurquer`,"chat.chatInput.draftPicker.projectTitle":`Projet`,"chat.chatInput.draftPicker.newProject":`Nouveau projet`,"chat.chatInput.draftPicker.searchProjects":`Rechercher des projets...`,"chat.chatInput.draftPicker.searchBranches":`Rechercher des branches...`,"chat.chatInput.worktrees":`Worktrees`,"chat.chatInput.worktreeNew":`+ Nouveau`,"chat.chatInput.branchSwitch.title":`Basculer vers {branch}\xA0?`,"chat.chatInput.branchSwitch.description":`Comment ouvrir cette branche pour la nouvelle conversation\xA0?`,"chat.chatInput.branchSwitch.createWorktree":`Créer un worktree`,"chat.chatInput.branchSwitch.createWorktreeDescription":`Conserver le répertoire actuel et travailler dans un worktree isolé.`,"chat.chatInput.branchSwitch.checkoutHere":`Checkout ici`,"chat.chatInput.branchSwitch.checkoutHereDescription":`Basculer le répertoire actuel vers cette branche.`,"chat.chatInput.branchSwitch.cancel":`Annuler`,"chat.chatInput.drop.insertMention":`Déposer pour insérer comme mention`,"chat.chatInput.drop.attachFiles":`Déposez les fichiers ici pour les joindre`,"chat.chatInput.fileFallback":`déposer`,"chat.mobileStatus.editProjects.title":`Modifier des projets`,"chat.mobileStatus.editProjects.footer":`Faites glisser les éléments pour les réorganiser ou utilisez les flèches pour les déplacer. Appuyez sur modifier pour modifier les détails.`,"chat.mobileStatus.editProjects.empty":`Aucun projet à modifier`,"chat.mobileStatus.projects.empty":`Aucun projet`,"chat.mobileStatus.projects.addAria":`Ajouter un projet`,"chat.mobileStatus.projects.removeTitle":`Supprimer le projet`,"chat.mobileStatus.projects.removeDescriptionPrefix":`Etes-vous sûr de vouloir supprimer`,"chat.mobileStatus.projects.cancel":`Annuler`,"chat.mobileStatus.projects.remove":`Retirer`,"chat.mobileStatus.new":`Nouveau`,"chat.mobileStatus.noSessionsInProject":`Aucune session dans ce projet`,"chat.mobileStatus.swipeHint":`← Glissez ici pour ouvrir les barres latérales →`,"chat.mobileStatus.toast.addProjectFailed":`Échec de l'ajout du projet`,"chat.mobileStatus.toast.selectValidDirectory":`Veuillez sélectionner un répertoire valide.`,"chat.mobileStatus.toast.selectDirectoryFailed":`Échec de la sélection du répertoire`,"chat.toolOutputDialog.image.previousAria":`Image précédente`,"chat.toolOutputDialog.image.nextAria":`Image suivante`,"chat.toolOutputDialog.image.zoomInAria":`Zoom avant`,"chat.toolOutputDialog.image.zoomOutAria":`Zoom arrière`,"chat.toolOutputDialog.image.resetZoomAria":`Réinitialiser le zoom`,"chat.image.actions.sheetTitle":`Image`,"chat.image.actions.saveImage":`Enregistrer l'image`,"chat.image.actions.saveToPhotos":`Enregistrer dans Photos`,"chat.image.actions.saving":`Enregistrement…`,"chat.image.actions.saveSuccess":`Image enregistrée`,"chat.image.actions.saveFailed":`Impossible d'enregistrer l'image`,"chat.toolOutputDialog.mermaid.missingSource":`URL de source Mermaid manquante.`,"chat.toolOutputDialog.mermaid.loadFailed":`Impossible de charger le diagramme Mermaid.`,"chat.toolOutputDialog.mermaid.dataUrlMalformed":`L'URL de données Mermaid est mal formée.`,"chat.toolOutputDialog.mermaid.invalidLocalPath":`Le chemin du fichier Mermaid local est invalide.`,"chat.toolOutputDialog.mermaid.readFileFailedWithStatus":`Impossible de lire le fichier Mermaid. Statut : {status}.`,"chat.toolOutputDialog.mermaid.unsupportedUrlProtocol":`Le protocole de l'URL Mermaid n'est pas pris en charge.`,"chat.toolOutputDialog.mermaid.loadFailedWithStatus":`Impossible de charger le diagramme Mermaid. Statut : {status}.`,"chat.toolOutputDialog.mermaid.closeAria":`Fermer l'aperçu du diagramme`,"chat.toolOutputDialog.mermaid.loading":`Diagramme de chargement...`,"chat.toolOutputDialog.mermaid.renderFailed":`Impossible d'afficher le diagramme Mermaid.`,"chat.toolOutputDialog.mermaid.retry":`Réessayer`,"chat.toolOutputDialog.commandCompleted":`Commande terminée avec succès`,"chat.toolOutputDialog.noOutputProduced":`Aucune sortie n'a été produite`,"chat.activity.outputLoading":`Chargement de la sortie complète…`,"chat.activity.outputLoadFailed":`Impossible de charger la sortie complète.`,"chat.activity.outputRetry":`Réessayer`,"chat.fileAttachment.image.loading":`Chargement de l’image…`,"chat.fileAttachment.image.loadFailed":`Impossible de charger l’image.`,"chat.fileAttachment.image.retry":`Réessayer de charger l’image`,"chat.fileAttachment.image.loadManually":`Charger l’image`,"chat.fileAttachment.image.loadManuallyCount":`Charger {count} images`,"chat.toolPart.lspErrors":`Erreurs LSP`,"chat.toolPart.moreErrors":`+{count} plus d'erreurs`,"chat.toolPart.error":`Erreur:`,"chat.toolPart.awaitingResponse":`En attente de réponse...`,"chat.toolPart.noOutputProduced":`Aucune sortie produite`,"chat.toolPart.output":`Sortie`,"chat.toolPart.openSubtask":`Ouvrir la sous-tâche {type}`,"chat.todo.total":`Total`,"chat.todo.inProgress":`En cours`,"chat.todo.pending":`En attente`,"chat.todo.completed":`Complété`,"chat.todo.cancelled":`Annulé`,"chat.permissionCard.workingDirectory":`Répertoire de travail :`,"chat.permissionCard.timeout":`Temps mort:`,"chat.permissionCard.request":`Demande:`,"chat.permissionCard.headers":`En-têtes :`,"chat.permissionCard.body":`Corps:`,"chat.permissionCard.action":`Action:`,"chat.permissionCard.details":`Détails:`,"chat.permissionCard.patterns":`Motifs:`,"chat.permissionCard.replaceAll":`Remplacer toutes les occurrences`,"chat.permissionCard.responseFormat":`Format de réponse :`,"chat.permissionCard.allowOnce":`Autoriser une fois`,"chat.permissionCard.alwaysAgree":`Toujours autoriser`,"chat.permissionToast.sessionFallback":`Session`,"chat.permissionToast.permissionFallback":`Détails de l'autorisation indisponibles`,"chat.permissionToast.labels.session":`Session:`,"chat.permissionToast.labels.permission":`Autorisation:`,"chat.permissionToast.actions.once":`Une fois`,"chat.permissionToast.actions.always":`Toujours`,"chat.permissionToast.actions.deny":`Refuser`,"chat.permissionToast.actions.approveOnceAria":`Approuver une fois`,"chat.permissionToast.actions.approveOnceAriaWithSession":`Approuver une fois pour {session}`,"chat.permissionToast.actions.approveAlwaysAria":`Approuver toujours`,"chat.permissionToast.actions.approveAlwaysAriaWithSession":`Approuver toujours pour {session}`,"chat.permissionToast.actions.denyAria":`Refuser l'autorisation`,"chat.permissionToast.actions.denyAriaWithSession":`Refuser l'autorisation pour {session}`,"chat.permissionRequest.required":`Autorisation requise :`,"chat.permissionRequest.actions.once":`Une fois`,"chat.permissionRequest.actions.always":`Toujours`,"chat.permissionRequest.actions.reject":`Refuser`,"chat.modelControls.provider":`Fournisseur`,"chat.modelControls.capability.toolCalling":`Appel d'outil`,"chat.modelControls.capability.reasoning":`Raisonnement`,"chat.modelControls.modality.text":`Texte`,"chat.modelControls.modality.image":`Image`,"chat.modelControls.modality.video":`Vidéo`,"chat.modelControls.modality.audio":`Audio`,"chat.modelControls.modality.pdf":`PDF`,"chat.modelControls.capabilities":`Capacités`,"chat.modelControls.modalities":`Modalités`,"chat.modelControls.input":`Entrée`,"chat.modelControls.output":`Sortie`,"chat.modelControls.limits":`Limites`,"chat.modelControls.context":`Contexte`,"chat.modelControls.metadata":`Métadonnées`,"chat.modelControls.knowledge":`Connaissance`,"chat.modelControls.release":`Libérer`,"chat.modelControls.mode":`Mode`,"chat.modelControls.model":`Modèle`,"chat.modelControls.temperature":`Température`,"chat.modelControls.topP":`Haut P`,"chat.modelControls.permissions":`Autorisations`,"chat.modelControls.edit":`Modifier`,"chat.modelControls.bash":`Bash`,"chat.modelControls.webFetch":`WebFetch`,"chat.modelControls.customPrompt":`Prompt personnalisé`,"chat.modelControls.selectModel":`Sélectionnez le modèle`,"chat.modelControls.searchProvidersOrModels":`Rechercher des fournisseurs ou des modèles`,"chat.modelControls.clearSearch":`Effacer la recherche`,"chat.modelControls.current":`Actuel`,"chat.modelControls.thinking":`Pensée`,"chat.modelControls.default":`Défaut`,"chat.modelControls.selectAgent":`Sélectionnez un agent`,"chat.modelControls.costPerMillion":`Coût`,"chat.modelControls.costInput":`Entrée`,"chat.modelControls.costOutput":`Sortie`,"chat.modelControls.metadataUnavailable":`Métadonnées du modèle indisponibles.`,"chat.modelControls.addNewProvider":`Ajouter un nouveau fournisseur`,"chat.modelControls.noAgentSelected":`Aucun agent sélectionné.`,"chat.modelControls.resetToDefault":`Réinitialiser aux valeurs par défaut`,"chat.modelControls.searchModels":`Rechercher des modèles`,"chat.modelControls.searchAgents":`Agents de recherche`,"chat.modelControls.noModelsFound":`Aucun modèle trouvé`,"chat.modelControls.favorites":`Favoris`,"chat.modelControls.recent":`Récents`,"chat.modelControls.addToFavorites":`Ajouter aux favoris`,"chat.modelControls.removeFromFavorites":`Supprimer des favoris`,"chat.modelControls.favoriteAria":`Préféré`,"chat.modelControls.unfavoriteAria":`Supprimer des favoris`,"chat.modelControls.collapseProvider":`Fournisseur de réduction`,"chat.modelControls.expandProvider":`Développer le fournisseur`,"chat.modelControls.keyboardHint":`↑↓ naviguer{thinking} • Entrer sélectionner • Esc fermer`,"chat.modelControls.keyboardHintNavigate":`↑↓ naviguer`,"chat.modelControls.keyboardHintSwitchAgent":`Agent de commutation {shortcut}`,"chat.modelControls.keyboardHintSwitchAgentLabel":`Changer d'agent`,"chat.modelControls.keyboardHintThinking":`←→ penser`,"chat.modelControls.showThinkingModes":`Afficher les modes de réflexion`,"chat.modelControls.hideThinkingModes":`Masquer les modes de réflexion`,"chat.modelControls.moreThinkingModes":`Plus de modes de réflexion`,"chat.modelControls.noProvidersOrModelsFound":`Aucun fournisseur ou modèle ne correspond à votre recherche.`,"chat.modelControls.reorderFavoriteAria":`Réorganiser les favoris`,"chat.modelControls.reorderFavoriteTitle":`Faites glisser pour réorganiser les favoris`,"chat.modelControls.reorderProviderTitle":`Faites glisser pour réorganiser le fournisseur`,"chat.modelControls.permissionLabel.custom":`Personnalisé`,"chat.modelControls.permissionLabel.allow":`Permettre`,"chat.modelControls.permissionLabel.deny":`Refuser`,"chat.modelControls.permissionLabel.ask":`Demander`,"chat.modelControls.modeValue.primary":`Primaire`,"chat.modelControls.modeValue.subagent":`Sous-agent`,"chat.modelControls.modeValue.all":`Tous`,"chat.modelControls.modeValue.none":`—`,"chat.reasoningTrace.thinking":`Pensée`,"chat.reasoningTrace.justification":`Justification`,"chat.reasoningTrace.expandAria":`Développer la trace du raisonnement`,"chat.reasoningTrace.collapseAria":`Réduire la trace du raisonnement`,"chat.reasoningTrace.thought":`Pensée`,"chat.contextGroup.exploring":`Exploration en cours`,"chat.contextGroup.explored":`Exploré`,"chat.contextGroup.expandAria":`Développer les outils explorés`,"chat.contextGroup.collapseAria":`Réduire les outils explorés`,"chat.contextGroup.readSingle":`{count} lecture`,"chat.contextGroup.readPlural":`{count} lectures`,"chat.contextGroup.searchSingle":`{count} recherche`,"chat.contextGroup.searchPlural":`{count} recherches`,"chat.contextGroup.listSingle":`{count} liste`,"chat.contextGroup.listPlural":`{count} listes`,"chat.skillGroup.expandAria":`Développer les compétences chargées`,"chat.skillGroup.collapseAria":`Réduire les compétences chargées`,"chat.skillGroup.summaryOverflow":`{names} et {count} de plus`,"chat.tools.display.read":`Lire le fichier`,"chat.tools.display.write":`Écrire le fichier`,"chat.tools.display.edit":`Modifier le fichier`,"chat.tools.display.multiedit":`Édition multiple`,"chat.tools.display.apply_patch":`Appliquer le correctif`,"chat.tools.display.bash":`Commande shell`,"chat.tools.display.grep":`Rechercher dans les fichiers`,"chat.tools.display.glob":`Trouver des fichiers`,"chat.tools.display.list":`Lister le répertoire`,"chat.tools.display.task":`Tâche d'agent`,"chat.tools.display.webfetch":`Récupérer l'URL`,"chat.tools.display.websearch":`Recherche web`,"chat.tools.display.codesearch":`Recherche de code`,"chat.tools.display.todowrite":`Mettre à jour les tâches`,"chat.tools.display.todoread":`Lire les tâches`,"chat.tools.display.skill":`Charger une compétence`,"chat.tools.display.question":`Question`,"chat.tools.display.lsp":`LSP`,"chat.tools.display.plan_enter":`Mode plan`,"chat.tools.display.plan_exit":`Mode construction`,"chat.tools.display.structuredoutput":`Sortie structurée`,"chat.messageBody.subtask.title":`Tâche déléguée`,"chat.messageBody.subtask.hidePrompt":`Masquer le prompt`,"chat.messageBody.subtask.showPrompt":`Afficher le prompt`,"chat.messageBody.subtask.openSession":`Ouvrir une session de sous-tâche`,"chat.messageBody.subagent.completed":`Terminé`,"chat.messageBody.subagent.error":`Échec`,"chat.messageBody.subagent.cancelled":`Annulé`,"chat.messageBody.subagent.completedDescription":`Le sous-agent en arrière-plan a terminé`,"chat.messageBody.subagent.errorDescription":`Le sous-agent en arrière-plan a échoué`,"chat.messageBody.subagent.cancelledDescription":`Le sous-agent en arrière-plan a été annulé`,"chat.messageBody.subagent.openSession":`Ouvrir la session du sous-agent : {label}`,"chat.messageBody.shellCommand.title":`Commande Shell`,"chat.messageBody.shellCommand.hideOutput":`Masquer la sortie`,"chat.messageBody.shellCommand.showOutput":`Afficher la sortie`,"chat.messageBody.shellCommand.copied":`Copié`,"chat.messageBody.shellCommand.copyOutput":`Copier la sortie`,"commandPalette.title":`Palette de commandes`,"commandPalette.description":`Recherchez des fichiers, des sessions et des commandes.`,"commandPalette.input.placeholder":`Rechercher des fichiers, des sessions, des commandes...`,"commandPalette.empty.noResults":`Aucun résultat trouvé.`,"commandPalette.empty.searchingFiles":`Recherche de fichiers...`,"commandPalette.item.newSession":`Nouvelle session`,"commandPalette.item.newMiniChat":`Nouvelle mini-fenêtre de discussion`,"commandPalette.item.newWorktreeDraft":`Nouveau brouillon d'worktree`,"commandPalette.item.addProject":`Ajouter un projet`,"commandPalette.item.showSessionSwitcher":`Afficher le sélecteur de session`,"commandPalette.item.toggleSidebar":`Basculer la barre latérale`,"commandPalette.item.toggleRightSidebar":`Basculer la barre latérale droite`,"commandPalette.item.showContextUsage":`Afficher l'utilisation du contexte`,"commandPalette.item.toggleTerminal":`Basculer le terminal`,"commandPalette.item.newTerminalTab":`Nouvel onglet de terminal`,"commandPalette.item.openSettings":`Ouvrez les paramètres...`,"commandPalette.session.untitled":`Session sans titre`,"openCodeStatusDialog.title":`Statut OpenCode`,"openCodeStatusDialog.description":`Inspectez l’état et les diagnostics actuels du OpenCode.`,"openCodeStatusDialog.actions.copy":`Copie`,"openCodeStatusDialog.empty.noData":`Aucune donnée.`,"openCodeStatusDialog.toast.copiedTitle":`Copié`,"openCodeStatusDialog.toast.copiedDescription":`Statut copié dans le presse-papiers`,"openCodeStatusDialog.toast.copyFailed":`Échec de la copie du statut`,"branchPickerDialog.title":`Sélecteur de branches`,"branchPickerDialog.description.localBranchesForProject":`Branches locales pour {project}`,"branchPickerDialog.description.selectProject":`Sélectionnez un projet pour afficher les branches`,"branchPickerDialog.search.placeholder":`Rechercher des branches...`,"branchPickerDialog.search.renameBranchPlaceholder":`Renommer la branche`,"branchPickerDialog.state.noProjectSelected":`Aucun projet sélectionné`,"branchPickerDialog.state.loadingBranches":`Chargement des branches...`,"branchPickerDialog.state.noMatchingBranches":`Aucune branche correspondante`,"branchPickerDialog.state.noBranchesFound":`Aucune branche trouvée`,"branchPickerDialog.badge.head":`HEAD`,"branchPickerDialog.badge.worktree":`worktree`,"branchPickerDialog.actions.createWorktreeAria":`Créer un worktree à partir d'une branche`,"branchPickerDialog.actions.renameAria":`Renommer la branche`,"branchPickerDialog.actions.deleteAria":`Supprimer la branche`,"branchPickerDialog.actions.deleteWorktreeAria":`Supprimer le worktree`,"branchPickerDialog.actions.confirmRenameAria":`Confirmer le changement de nom`,"branchPickerDialog.actions.cancelRenameAria":`Annuler le changement de nom`,"branchPickerDialog.actions.confirmDeleteAria":`Confirmer la suppression de la branche`,"branchPickerDialog.actions.cancelDeleteAria":`Annuler la suppression de la branche`,"branchPickerDialog.actions.deletePrompt":`Supprimer`,"branchPickerDialog.actions.forceDeletePrompt":`Forcer la suppression`,"branchPickerDialog.tooltip.createWorktree":`Créer un worktree`,"branchPickerDialog.tooltip.worktreeAlreadyExists":`Le worktree existe déjà`,"branchPickerDialog.tooltip.rename":`Renommer la branche`,"branchPickerDialog.tooltip.renameDisabledForRoot":`Impossible de renommer la branche racine`,"branchPickerDialog.tooltip.delete":`Supprimer la branche`,"branchPickerDialog.tooltip.deleteCurrentBranch":`Impossible de supprimer la branche actuelle`,"branchPickerDialog.tooltip.deleteDisabledForRoot":`Impossible de supprimer la branche racine`,"branchPickerDialog.tooltip.deleteWorktree":`Supprimer le worktree`,"branchPickerDialog.tooltip.deleteWorktreeRootProtected":`Impossible de supprimer le worktree racine`,"branchPickerDialog.toast.branchRenamed":`Branche renommée`,"branchPickerDialog.toast.failedToRenameBranch":`Échec du renommage de la branche`,"branchPickerDialog.toast.branchDeleted":`Branche supprimée`,"branchPickerDialog.toast.branchNotMerged":`La branche n'est pas entièrement fusionnée`,"branchPickerDialog.toast.confirmAgainToForceDelete":`Confirmez à nouveau pour forcer la suppression`,"branchPickerDialog.toast.failedToDeleteBranch":`Échec de la suppression de la branche`,"branchPickerDialog.toast.worktreeCreated":`Worktree créé`,"branchPickerDialog.toast.failedToCreateWorktree":`Échec de la création du worktree`,"branchPickerDialog.error.failedToLoad":`Échec du chargement des branches`,"branchPickerDialog.error.renameRejected":`Le changement de nom a été refusé`,"branchPickerDialog.error.renameFailed":`Échec du renommage de la branche`,"branchPickerDialog.error.deleteRejected":`La suppression a été refusée`,"branchPickerDialog.error.deleteFailed":`Échec de la suppression de la branche`,"branchPickerDialog.error.createWorktreeFailed":`Échec de la création du worktree`,"projectEditDialog.title":`Modifier le projet`,"projectEditDialog.field.name":`Nom`,"projectEditDialog.field.namePlaceholder":`Nom du projet`,"projectEditDialog.field.color":`Couleur`,"projectEditDialog.field.icon":`Icône`,"projectEditDialog.field.preview":`Aperçu`,"projectEditDialog.field.iconBackground":`Fond d'icône`,"projectEditDialog.field.iconBackgroundAria":`Couleur d’arrière-plan de l’icône du projet`,"projectEditDialog.option.none":`Aucun`,"projectEditDialog.actions.uploadIcon":`Icône de téléchargement`,"projectEditDialog.actions.uploading":`Téléchargement...`,"projectEditDialog.actions.discoverFavicon":`Découvrez Favicon`,"projectEditDialog.actions.discovering":`Découverte...`,"projectEditDialog.actions.removeProjectIcon":`Supprimer l'icône du projet`,"projectEditDialog.actions.removing":`Suppression...`,"projectEditDialog.actions.undoRemove":`Annuler Supprimer`,"projectEditDialog.actions.clear":`Effacer`,"projectEditDialog.actions.cancel":`Annuler`,"projectEditDialog.actions.save":`Sauvegarder`,"projectEditDialog.toast.failedToUploadIcon":`Échec du téléchargement de l'icône du projet`,"projectEditDialog.toast.iconUpdated":`Icône du projet mise à jour`,"projectEditDialog.toast.failedToRemoveIcon":`Échec de la suppression de l'icône du projet`,"projectEditDialog.toast.iconRemoved":`Icône du projet supprimée`,"projectEditDialog.toast.failedToDiscoverIcon":`Échec de la découverte de l'icône du projet`,"projectEditDialog.toast.customIconAlreadySet":`Icône personnalisée déjà définie pour ce projet`,"projectEditDialog.toast.iconDiscovered":`Icône de projet découverte`,"agentManager.sidebar.search.placeholder":`Rechercher des groupes d'agents...`,"agentManager.sidebar.actions.newAgentGroup":`Nouveau groupe d'agents`,"agentManager.sidebar.actions.more":`... Plus ({count})`,"agentManager.sidebar.actions.showLess":`Afficher moins`,"agentManager.sidebar.section.agentGroups":`Groupes d'agents`,"agentManager.sidebar.state.loading":`Chargement...`,"agentManager.sidebar.state.noGroupsFound":`Aucun groupe trouvé`,"agentManager.sidebar.state.noGroupsYet":`Aucun groupe d'agents pour l'instant`,"agentManager.sidebar.state.createToGetStarted":`Créez un nouveau groupe d'agents pour commencer`,"agentManager.sidebar.item.modelCountSingle":`Modèle {count}`,"agentManager.sidebar.item.modelCountPlural":`Modèles {count}`,"agentManager.sidebar.item.groupMenuAria":`Menu de groupe`,"agentManager.sidebar.item.delete":`Supprimer`,"agentManager.sidebar.relativeTime.now":`maintenant`,"agentManager.sidebar.relativeTime.minutes":`{count}m`,"agentManager.sidebar.relativeTime.hours":`{count}h`,"agentManager.sidebar.relativeTime.days":`{count}d`,"agentManager.sidebar.dialog.deleteGroupTitle":`Supprimer le groupe d'agents`,"agentManager.sidebar.dialog.deleteGroupDescription":`Supprimer «\xA0{group}\xA0» ? Cela supprime tous les worktrees et sessions de ce groupe.`,"agentManager.sidebar.dialog.cancel":`Annuler`,"agentManager.sidebar.dialog.delete":`Supprimer`,"agentManager.sidebar.dialog.deleting":`Suppression...`,"agentManager.sidebar.toast.deletingGroup":`Suppression de "{group}"...`,"agentManager.sidebar.toast.deletedGroup":`"{group}" supprimé`,"agentManager.sidebar.toast.failedToDeleteGroup":`Échec de la suppression complète de "{group}"`,"agentManager.detail.header.modelCountSingle":`Modèle {count}`,"agentManager.detail.header.modelCountPlural":`Modèles {count}`,"agentManager.detail.header.noBranch":`Pas de branche`,"agentManager.detail.actions.worktreeActionsAria":`Actions du worktree`,"agentManager.detail.actions.removeThisWorktree":`Supprimer ce worktree`,"agentManager.detail.actions.keepThisRemoveOthers":`Laissez celui-ci, supprimez les autres`,"agentManager.detail.actions.copyWorktreePath":`Copier le chemin du worktree`,"agentManager.detail.dialog.removeWorktreeTitle":`Supprimer le worktree`,"agentManager.detail.dialog.removeOtherWorktreesTitle":`Supprimer les autres worktrees`,"agentManager.detail.dialog.removeWorktreeDescription":`Supprimer «\xA0{label}\xA0» ? Cela supprime toutes les sessions de ce worktree ainsi que le worktree lui-même.`,"agentManager.detail.dialog.removeOtherWorktreesDescription":`Conservez "{label}" et supprimez les autres worktrees dans "{group}".`,"agentManager.detail.dialog.cancel":`Annuler`,"agentManager.detail.dialog.remove":`Retirer`,"agentManager.detail.dialog.removeOthers":`Supprimer les autres`,"agentManager.detail.dialog.working":`Fonctionnement...`,"agentManager.detail.state.loadingSessionFor":`Session de chargement pour {label}`,"agentManager.detail.state.sessionId":`ID de session : {id}`,"agentManager.detail.state.noSessionsInGroup":`Aucune session dans ce groupe`,"agentManager.detail.toast.noWorktreePath":`Aucun chemin de worktree disponible`,"agentManager.detail.toast.worktreePathCopied":`Chemin du worktree copié`,"agentManager.detail.toast.failedToCopyPath":`Échec de la copie du chemin`,"agentManager.detail.toast.removingWorktree":`Suppression du worktree...`,"agentManager.detail.toast.removingOtherWorktrees":`Suppression d'autres worktrees...`,"agentManager.detail.toast.failedToFullyRemoveWorktree":`Échec de la suppression complète du worktree`,"agentManager.detail.toast.worktreeRemoved":`Worktree supprimé`,"agentManager.detail.toast.otherWorktreesRemoved":`Suppression d'autres worktrees`,"agentManager.empty.groupName.label":`Nom du groupe`,"agentManager.empty.groupName.placeholder":`e.g. fonctionnalité-auth, correction de bugs-connexion`,"agentManager.empty.groupName.description":`Utilisé pour le répertoire du worktree et le nommage des branches`,"agentManager.empty.baseBranch.label":`Branche de base`,"agentManager.empty.baseBranch.description":`Crée de nouvelles branches à partir de {branch}`,"agentManager.empty.setupCommands.label":`Commandes de configuration`,"agentManager.empty.setupCommands.configured":`{count} configuré`,"agentManager.empty.setupCommands.description":`Les commandes s'exécutent dans chaque nouveau worktree. Utilisez $ROOT_PROJECT_PATH pour la racine du projet.`,"agentManager.empty.setupCommands.loading":`Chargement...`,"agentManager.empty.setupCommands.commandPlaceholder":`p. ex. bun install`,"agentManager.empty.setupCommands.removeCommandAria":`Supprimer la commande`,"agentManager.empty.setupCommands.addCommand":`Ajouter une commande`,"agentManager.empty.agent.label":`Agent`,"agentManager.empty.agent.description":`Par défaut, votre agent par défaut configuré`,"agentManager.empty.models.label":`Modèles`,"agentManager.empty.models.addModel":`Ajouter un modèle`,"agentManager.empty.models.selectedSingle":`Modèle {count} sélectionné`,"agentManager.empty.models.selectedPlural":`Modèles {count} sélectionnés`,"agentManager.empty.prompt.label":`Invite`,"agentManager.empty.prompt.placeholder":`Demandez n'importe quoi...`,"agentManager.empty.prompt.addAttachmentAria":`Ajouter une pièce jointe`,"agentManager.empty.actions.startAgentGroupAria":`Démarrer le groupe d'agents`,"agentManager.empty.toast.fileTooLarge":`Le fichier "{fileName}" est trop volumineux (max 10\xA0Mo)`,"agentManager.empty.toast.failedToAttach":`Échec de la connexion de "{fileName}"`,"agentManager.empty.toast.attachedSingle":`Fichier {count} joint`,"agentManager.empty.toast.attachedPlural":`Fichiers {count} joints`,"agentManager.empty.toast.failedToCreateGroup":`Échec de la création du groupe d'agents`,"openInApp.actions.open":`Ouvrir`,"openInApp.actions.openInAria":`Ouvert dans {app}`,"openInApp.actions.chooseAppAria":`Choisissez l'application à ouvrir`,"openInApp.actions.copyPath":`Copier le chemin`,"openInApp.actions.refreshApps":`Actualiser les applications`,"openInApp.toast.pathCopied":`Chemin copié dans le presse-papiers`,"projectActions.actions.addActionAria":`Ajouter une action`,"projectActions.actions.addAction":`Ajouter une action`,"projectActions.actions.addNewAction":`Ajouter une nouvelle action`,"projectActions.actions.autoDiscover":`Découverte automatique`,"projectActions.actions.chooseActionAria":`Choisir l'action du projet`,"projectActions.actions.openPreview":`Ouvrir l'aperçu`,"projectActions.actions.runNamedAria":`Exécutez {name}`,"projectActions.actions.stopNamedAria":`Arrêter {name}`,"projectActions.label.fallbackAction":`Action`,"projectActions.toast.openedUrlFromOutput":`URL ouvert à partir de la sortie d'action`,"projectActions.toast.openedForwardedUrl":`Ouvert transmis URL`,"projectActions.toast.openedActionUrl":`Action ouverte URL`,"projectActions.error.noActiveDirectory":`Pas de répertoire actif`,"projectActions.error.noActiveDirectoryForAction":`Pas de répertoire actif pour l'action`,"projectActions.error.failedToCreateTerminalSession":`Échec de la création d'une session de terminal`,"projectActions.error.invalidCustomUrlFormat":`Format URL personnalisé non valide`,"projectActions.error.selectedDesktopSshForwardUnavailable":`Le transfert du bureau SSH sélectionné n'est pas disponible`,"projectActions.error.failedToRunAction":`Échec de l'exécution de l'action`,"mcpDropdown.title":`Serveurs MCP`,"mcpDropdown.actions.refreshAria":`Rafraîchir`,"mcpDropdown.actions.openAria":`Serveurs MCP`,"mcpDropdown.statusAria":`Statut MCP`,"mcpDropdown.status.unknown":`Inconnu`,"mcpDropdown.status.connected":`Connecté`,"mcpDropdown.status.failed":`Échec : {error}`,"mcpDropdown.status.unknownError":`Erreur inconnue`,"mcpDropdown.status.needsAuth":`Nécessite une authentification`,"mcpDropdown.status.needsRegistration":`Nécessite un enregistrement : {error}`,"mcpDropdown.empty.configureInConfig":`Configurez les serveurs MCP dans la configuration OpenCode.`,"sessionAuth.error.rateLimitTitle":`Trop de tentatives`,"sessionAuth.error.networkTitle":`Impossible d'atteindre le serveur`,"sessionAuth.error.rateLimitDescriptionSingle":`Veuillez attendre {minutes} minute avant de réessayer.`,"sessionAuth.error.rateLimitDescriptionPlural":`Veuillez attendre {minutes} minutes avant de réessayer.`,"sessionAuth.error.networkDescription":`Nous n'avons pas pu vérifier la session d'interface utilisateur. Si vous ouvrez OpenChamber depuis un autre appareil sur votre réseau local, activez l'accès au réseau du bureau dans l'application de bureau et utilisez l'adresse LAN indiquée dans les paramètres.`,"sessionAuth.error.retry":`Réessayer`,"sessionAuth.error.passkeySetupFailed":`La configuration du mot de passe a échoué.`,"sessionAuth.error.incorrectPassword":`Mot de passe incorrect. Essayer à nouveau.`,"sessionAuth.error.unexpectedResponse":`Réponse inattendue du serveur.`,"sessionAuth.error.networkRetry":`Erreur réseau. Vérifiez la connexion et réessayez.`,"sessionAuth.error.passkeySignInCanceled":`La connexion par mot de passe a été annulée.`,"sessionAuth.error.enterPasswordForPasskey":`Entrez votre mot de passe pour ajouter un mot de passe.`,"sessionAuth.locked.tunnelTitle":`Accès au tunnel requis`,"sessionAuth.locked.unlockTitle":`Débloquez OpenChamber`,"sessionAuth.locked.tunnelDescription":`Ouvrez ce tunnel à l'aide du lien de connexion unique depuis l'application de bureau.`,"sessionAuth.locked.passwordDescription":`Cette session est protégée par mot de passe.`,"sessionAuth.locked.hostSwitcherHint":`Utilisez local si la remote est inaccessible.`,"sessionAuth.actions.cancelPasskey":`Annuler le mot de passe`,"sessionAuth.actions.usePasskey":`Utiliser le mot de passe`,"sessionAuth.actions.unlockingAria":`Déverrouillage`,"sessionAuth.actions.unlockAria":`Ouvrir`,"sessionAuth.actions.trustDevice":`Faites confiance à cet appareil`,"sessionAuth.actions.trustDeviceAria":`Faites confiance à cet appareil`,"sessionAuth.actions.cancelPasskeySetup":`Annuler la configuration du mot de passe`,"sessionAuth.actions.addPasskey":`Ajouter un mot de passe`,"sessionAuth.password.placeholder":`Entrez le mot de passe`,"sessionAuth.toast.passkeyAdded":`Clé d'accès ajoutée`,"sessionAuth.toast.passkeySetupCanceled":`Configuration du mot de passe annulée`,"desktopHostSwitcher.title":`Instance`,"desktopHostSwitcher.transition.title":`Changement d’instance…`,"desktopHostSwitcher.transition.description":`Chargement des données de l’instance sélectionnée.`,"desktopHostSwitcher.description":`Basculer entre les serveurs OpenChamber locaux et distants`,"desktopHostSwitcher.header.current":`Actuel`,"desktopHostSwitcher.header.default":`Défaut`,"desktopHostSwitcher.header.currentColon":`Actuel:`,"desktopHostSwitcher.header.currentDefaultColon":`Valeur par défaut actuelle :`,"desktopHostSwitcher.status.connected":`Connecté`,"desktopHostSwitcher.status.authRequired":`Authentification requise`,"desktopHostSwitcher.status.wrongService":`Mauvais service`,"desktopHostSwitcher.status.unreachable":`Injoignable`,"desktopHostSwitcher.status.unknown":`Inconnu`,"desktopHostSwitcher.status.ping":`· Ping {ms}ms`,"desktopHostSwitcher.statusAria":`Statut de l'instance`,"desktopHostSwitcher.sshPhase.ready":`Prêt`,"desktopHostSwitcher.sshPhase.error":`Erreur`,"desktopHostSwitcher.sshPhase.reconnecting":`Reconnexion`,"desktopHostSwitcher.sshPhase.resolvingConfig":`Résolution de la configuration`,"desktopHostSwitcher.sshPhase.checkingAuth":`Vérification de l'authentification`,"desktopHostSwitcher.sshPhase.connectingSsh":`Connexion du SSH`,"desktopHostSwitcher.sshPhase.probingRemote":`Sondage à distance`,"desktopHostSwitcher.sshPhase.installing":`Installation`,"desktopHostSwitcher.sshPhase.updating":`Mise à jour`,"desktopHostSwitcher.sshPhase.detectingServer":`Serveur de détection`,"desktopHostSwitcher.sshPhase.startingServer":`Démarrage du serveur`,"desktopHostSwitcher.sshPhase.forwardingPorts":`Ports de transfert`,"desktopHostSwitcher.sshPhase.idle":`Inactif`,"desktopHostSwitcher.ssh.needInstancesHint":`Besoin d'instances SSH ? Gérez-les dans Paramètres.`,"desktopHostSwitcher.ssh.instanceFallback":`Instance SSH`,"desktopHostSwitcher.ssh.connectingTo":`Connexion à {host}`,"desktopHostSwitcher.actions.refresh":`Rafraîchir`,"desktopHostSwitcher.actions.refreshInstancesAria":`Actualiser les instances`,"desktopHostSwitcher.actions.remoteSsh":`SSH remote`,"desktopHostSwitcher.actions.instanceActionsAria":`Actions d'instance`,"desktopHostSwitcher.actions.edit":`Modifier`,"desktopHostSwitcher.actions.delete":`Supprimer`,"desktopHostSwitcher.actions.connect":`Connecter`,"desktopHostSwitcher.actions.defaultInstanceAria":`Instance par défaut`,"desktopHostSwitcher.actions.setAsDefaultAria":`Définir par défaut`,"desktopHostSwitcher.actions.setAsDefault":`Définir par défaut`,"desktopHostSwitcher.actions.openInNewWindowAria":`Ouvrir dans une nouvelle fenêtre`,"desktopHostSwitcher.actions.openInNewWindow":`Ouvrir dans une nouvelle fenêtre`,"desktopHostSwitcher.actions.addInstance":`Ajouter une instance`,"desktopHostSwitcher.actions.cancel":`Annuler`,"desktopHostSwitcher.actions.save":`Sauvegarder`,"desktopHostSwitcher.actions.add":`Ajouter`,"desktopHostSwitcher.actions.switchToLocal":`Passer au local`,"desktopHostSwitcher.actions.retry":`Réessayer`,"desktopHostSwitcher.actions.switchInstanceAria":`Changer d'instance`,"desktopHostSwitcher.actions.switchInstance":`Changer d'instance`,"desktopHostSwitcher.actions.switchToAria":`Passer à {instance}`,"desktopHostSwitcher.field.labelPlaceholder":`Étiquette`,"desktopHostSwitcher.field.labelOptionalPlaceholder":`Étiquette (facultatif)`,"desktopHostSwitcher.field.urlPlaceholder":`https://hôte:port`,"desktopHostSwitcher.state.limitedOnPage":`Le sélecteur d'instance est limité sur cette page. Utilisez Local pour récupérer.`,"desktopHostSwitcher.state.loading":`Chargement...`,"desktopHostSwitcher.state.instanceUnreachable":`Instance inaccessible`,"desktopHostSwitcher.edit.title":`Modifier l'instance`,"desktopHostSwitcher.add.title":`Ajouter une instance`,"desktopHostSwitcher.error.failedToSave":`Échec de l'enregistrement`,"desktopHostSwitcher.error.failedToLoad":`Échec du chargement`,"desktopHostSwitcher.error.invalidUrl":`URL non valide (doit être http/https)`,"desktopHostSwitcher.error.failedToOpenNewWindow":`Échec de l'ouverture d'une nouvelle fenêtre`,"desktopHostSwitcher.instance.local":`Local`,"desktopHostSwitcher.instance.fallback":`Instance`,"desktopHostSwitcher.startup.title":`Instance SSH par défaut indisponible`,"desktopHostSwitcher.startup.connectingTo":`Connexion à {host}...`,"desktopHostSwitcher.startup.failed":`Échec de la connexion de l'instance SSH par défaut.`,"desktopHostSwitcher.toast.sshConnected":`Instance SSH "{host}" connectée`,"desktopHostSwitcher.toast.sshFailedToConnect":`L'instance SSH "{host}" n'a pas réussi à se connecter`,"desktopHostSwitcher.toast.instanceUnreachable":`L'instance "{host}" est inaccessible`,"miniChat.header.newSession":`Nouvelle session`,"miniChat.header.session":`Session`,"miniChat.header.defaultAgent":`Agent par défaut`,"miniChat.header.noModel":`Aucun modèle`,"miniChat.status.busy":`En cours d'exécution`,"miniChat.status.retry":`Réessayer`,"miniChat.status.idle":`Inactif`,"miniChat.actions.pin":`Épingler au-dessus des autres fenêtres`,"miniChat.actions.unpin":`Détacher la fenêtre`,"miniChat.actions.pinAria":`Épingler la fenêtre Mini Chat`,"miniChat.actions.unpinAria":`Désépingler la fenêtre Mini Chat`,"miniChat.actions.openMain":`Ouvrir dans la fenêtre principale`,"miniChat.actions.openMainAria":`Ouvrir la session dans la fenêtre principale`,"miniChat.unavailable.title":`Session indisponible`,"miniChat.unavailable.description":`Cette session n'a pas pu être chargée. Il peut avoir été supprimé, archivé ou ouvert à partir d'un contexte de projet différent.`,"sessions.sidebar.session.menu.openMiniChatWindow":`Ouvrir dans la mini-fenêtre de discussion`,"header.actions.newMiniChat":`Nouvelle mini-fenêtre de discussion`,"header.actions.newMiniChatAria":`Ouvrir une nouvelle fenêtre de mini-chat`,"header.actions.openSessionMiniChat":`Session ouverte dans le mini-chat`,"header.actions.openSessionMiniChatAria":`Ouvrir la session en cours dans Mini Chat`,"header.windowControls.groupAria":`Champs de fenêtre`,"header.windowControls.minimize":`Réduire la fenêtre`,"header.windowControls.maximize":`Agrandir la fenêtre`,"header.windowControls.restore":`Fenêtre de restauration`,"header.windowControls.close":`Fermer la fenêtre`,"errorBoundary.title":`Quelque chose s'est mal passé`,"errorBoundary.description":`L'application a rencontré une erreur inattendue. Cela a été enregistré pour le débogage.`,"errorBoundary.state.unknownError":`Erreur inconnue`,"errorBoundary.state.componentStackLabel":`Pile de composants :`,"errorBoundary.actions.errorDetails":`Détails de l'erreur`,"errorBoundary.actions.tryAgain":`Essayer à nouveau`,"errorBoundary.actions.copy":`Copie`,"errorBoundary.actions.copied":`Copié`,"jsonTreeView.error.emptyJson":`Contenu JSON vide`,"jsonTreeView.error.invalidJson":`JSON invalide`,"jsonTreeView.error.invalidJsonTitle":`JSON invalide`,"jsonTreeView.actions.expandAll":`Développer tout`,"jsonTreeView.actions.collapseAll":`Réduire tout`,"numberInput.actions.decreaseAria":`Diminuer la valeur`,"numberInput.actions.increaseAria":`Augmenter la valeur`,"goToLineDialog.field.linePlaceholderShort":`Ligne`,"goToLineDialog.field.linePlaceholder":`Numéro de ligne`,"goToLineDialog.actions.go":`Aller`,"goToLineDialog.helper.editorUnavailable":`Éditeur indisponible.`,"goToLineDialog.helper.currentLineRange":`Ligne actuelle : {current}. Tapez un numéro de ligne compris entre 1 et {max} vers lequel accéder.`,"goToLineDialog.helper.goToLine":`Aller à la ligne {line}`,"dialog.common.actions.close":`Fermer`,"filesView.toast.relativePathCopied":`Chemin relatif copié`,"filesView.tree.menu.copyRelativePath":`Copier le chemin relatif`,"multiRun.branchSelector.placeholder.selectSourceBranch":`Sélectionnez la branche source...`,"multiRun.branchSelector.status.loadingBranches":`Chargement des branches...`,"multiRun.branchSelector.status.noBranchesFound":`Aucune branche trouvée`,"multiRun.branchSelector.status.notInGitRepository":`Pas dans un dépôt git.`,"multiRun.branchSelector.groups.localBranches":`Branches locales`,"multiRun.branchSelector.groups.remoteBranches":`Branches du dépôt distant`,"multiRun.window.actions.closeAria":`Fermer le multi-exécution`,"multiRun.window.description":`Fenêtre multi-exécution OpenChamber.`,"voice.status.idle":`Prêt pour la voix`,"voice.status.listening":`Écoute...`,"voice.status.processing":`Traitement...`,"voice.status.speaking":`Parlant...`,"voice.status.error":`Erreur vocale`,"voice.status.conversationModeActiveAria":`Mode conversation actif`,"voice.action.finishAndTranscribe":`Terminer et transcrire la saisie vocale`,"onboarding.common.actions.back":`Retour`,"onboarding.common.copyToClipboard":`Copier dans le presse-papier`,"onboarding.common.status.copiedToClipboard":`Copié dans le presse-papiers`,"onboarding.chooser.title":`Bienvenue sur OpenChamber`,"onboarding.chooser.description":`Choisissez comment vous souhaitez vous connecter pour commencer.`,"onboarding.chooser.tabs.localInstall":`Installation locale`,"onboarding.chooser.tabs.connectRemote":`Se connecter en remote`,"onboarding.localSetup.title":`Configuration de OpenCode`,"onboarding.localSetup.description":`Installez OpenCode CLI pour continuer.`,"onboarding.localSetup.dialog.selectOpencodeBinary":`Sélectionnez le binaire OpenCode`,"onboarding.localSetup.errors.cliNotReady":`OpenCode CLI n’est pas encore prêt. Veuillez confirmer que l'installation est terminée et réessayer.`,"onboarding.localSetup.errors.detectionFailed":`Échec de la détection`,"onboarding.localSetup.windows.title":`Configuration de Windows (WSL recommandé)`,"onboarding.localSetup.windows.stepInstallWsl":`Installez WSL (si nécessaire) avec`,"onboarding.localSetup.windows.stepInstallWslSuffix":`dans PowerShell.`,"onboarding.localSetup.windows.stepRunInstallInWsl":`Exécutez la commande d'installation ci-dessous dans votre terminal WSL.`,"onboarding.localSetup.windows.stepSetBinaryPath":`Si OpenChamber ne détecte pas automatiquement OpenCode, définissez le chemin binaire ci-dessous.`,"onboarding.localSetup.intro":`OpenCode est le cœur de OpenChamber — installez-le pour commencer.`,"onboarding.localSetup.docs.windows":`Documents OpenCode Windows + WSL`,"onboarding.localSetup.docs.default":`Documents OpenCode`,"onboarding.localSetup.actions.checking":`Vérification…`,"onboarding.localSetup.actions.checkNow":`Vérifiez maintenant`,"onboarding.localSetup.actions.checkAndContinue":`J’ai terminé l’installation, vérifier et continuer`,"onboarding.localSetup.helper.checkAndContinue":`Cliquez pour vérifier si OpenCode CLI est disponible. En cas de succès, vous entrerez automatiquement dans l'écran principal.`,"onboarding.localSetup.status.watching":`En attendant OpenCode`,"onboarding.localSetup.status.autoContinue":`Nous continuerons automatiquement une fois qu’il sera détecté.`,"onboarding.localSetup.field.alreadyInstalled":`Déjà installé ? Définissez le chemin OpenCode CLI :`,"onboarding.localSetup.advanced.title":`Définir un chemin binaire personnalisé`,"onboarding.localSetup.troubleshoot.title":`Vous avez des problèmes ?`,"onboarding.localSetup.actions.browse":`Parcourir`,"onboarding.localSetup.actions.apply":`Appliquer`,"onboarding.localSetup.helper.saveAndReload":`Enregistre dans les paramètres OpenChamber et recharge la configuration OpenCode.`,"onboarding.localSetup.remotePreference":`Vous préférez utiliser un serveur distant ?`,"onboarding.localSetup.actions.connectRemoteServer":`Se connecter au serveur distant →`,"onboarding.localSetup.windows.hintInstallInWsl":`Sous Windows, installez et exécutez OpenCode dans WSL pour une meilleure compatibilité.`,"onboarding.localSetup.windows.hintDetectionFailed":`Si la détection échoue, définissez un chemin natif (opencode.cmd/opencode.exe), wsl.exe ou wsl:/usr/local/bin/opencode.`,"onboarding.localSetup.hint.ensurePath":`Déjà installé ? Assurez-vous qu'OpenCode est dans votre PATH.`,"onboarding.localSetup.hint.setEnv":`Ou définissez la variable d'environnement OPENCODE_BINARY.`,"onboarding.localSetup.hint.missingRuntime":`Si vous voyez « env: node : No such file or directory » ou « env: bun : No such file or directory », installez ce runtime ou assurez-vous qu'il se trouve sur PATH.`,"onboarding.remoteConnection.title":`Se connecter au serveur distant`,"onboarding.remoteConnection.titleRecovery":`Connectez-vous à un autre serveur`,"onboarding.remoteConnection.description":`Saisissez l'adresse d'un serveur OpenChamber auquel vous connecter.`,"onboarding.remoteConnection.field.serverAddress":`Adresse du serveur`,"onboarding.remoteConnection.field.serverAddressPlaceholder":`https://your-server.example.com:4096`,"onboarding.remoteConnection.field.nameOptional":`Nom (facultatif)`,"onboarding.remoteConnection.field.namePlaceholder":`Mon serveur distant`,"onboarding.remoteConnection.errors.connectionTestFailed":`Le test de connexion a échoué`,"onboarding.remoteConnection.errors.failedToSaveConnection":`Échec de l'enregistrement de la connexion`,"onboarding.remoteConnection.status.connectedSuccessfully":`Connecté avec succès ({latencyMs}ms)`,"onboarding.remoteConnection.status.authWarning":`Le serveur nécessite une authentification. Vous pouvez toujours vous connecter.`,"onboarding.remoteConnection.status.connectionFailed":`Échec de la connexion`,"onboarding.remoteConnection.status.suggestionsUnreachable":`Suggestions : vérifiez l'adresse du serveur, vérifiez que le serveur est en cours d'exécution ou vérifiez votre connexion réseau.`,"onboarding.remoteConnection.status.suggestionsWrongService":`Suggestions : vérifiez que l’URL pointe vers un serveur OpenChamber ou contactez l'administrateur du serveur.`,"onboarding.remoteConnection.actions.testing":`Essai…`,"onboarding.remoteConnection.actions.testConnection":`Tester la connexion`,"onboarding.remoteConnection.actions.connectAndRestart":`Connectez-vous et redémarrez`,"onboarding.remoteConnection.actions.whatToDo":`Qu'aimeriez-vous faire ?`,"onboarding.remoteConnection.actions.chooseDifferentServer":`Choisissez un autre serveur`,"onboarding.remoteConnection.actions.useLocalInstead":`Utilisez plutôt local`,"onboarding.remoteConnection.probe.authMessage":`Le serveur nécessite une authentification. Vous pouvez toujours vous connecter, mais vous devrez peut-être fournir des informations d'identification.`,"onboarding.remoteConnection.probe.wrongServiceMessage":`Le serveur a répondu mais n'exécute pas OpenChamber. Vérifiez que l'adresse pointe vers un serveur OpenChamber.`,"onboarding.remoteConnection.probe.unreachableMessage":`Le serveur est inaccessible. Vérifiez votre connexion réseau et vérifiez l'adresse du serveur.`,"onboarding.desktopRecovery.localUnavailable.title":`OpenCode local indisponible`,"onboarding.desktopRecovery.localUnavailable.description":`OpenCode CLI n'a pas pu être démarré ou n'est pas installé. Installez OpenCode ou connectez-vous plutôt à un serveur distant.`,"onboarding.desktopRecovery.localUnavailable.retry":`Réessayer en local`,"onboarding.desktopRecovery.localUnavailable.useLocal":`Configurer localement`,"onboarding.desktopRecovery.noDefaultConnection.title":`Aucune connexion par défaut`,"onboarding.desktopRecovery.noDefaultConnection.description":`Votre connexion par défaut enregistrée est introuvable. Choisissez comment vous souhaitez vous connecter.`,"onboarding.desktopRecovery.remoteUnreachable.title":`Serveur distant inaccessible`,"onboarding.desktopRecovery.remoteUnreachable.description":`Impossible de se connecter à "{host}". Vérifiez votre connexion réseau et vérifiez l'adresse du serveur.`,"onboarding.desktopRecovery.remoteUnreachable.retry":`Réessayer la connexion`,"onboarding.desktopRecovery.incompatibleServer.title":`Serveur incompatible`,"onboarding.desktopRecovery.incompatibleServer.description":`Le serveur «\xA0{host}\xA0» n'exécute pas OpenChamber. Vérifiez que l'adresse pointe vers un serveur OpenChamber.`,"onboarding.desktopRecovery.common.useLocal":`Utiliser local`,"onboarding.desktopRecovery.common.useRemote":`Utiliser le remote`,"onboarding.desktopRecovery.actions.retrying":`Nouvelle tentative…`,"onboarding.desktopRecovery.actions.retryConnection":`Réessayer la connexion`,"startup.initRecovery.title":`Le démarrage a échoué`,"startup.initRecovery.description":`OpenChamber n'a pas pu terminer l'initialisation. Vérifiez que le serveur est en cours d'exécution, puis réessayez.`,"startup.initRecovery.retry":`Réessayer`,"startup.initRecovery.retrying":`Nouvelle tentative…`,"onboarding.desktopRecovery.placeholders.remoteServer":`le serveur distant`,"onboarding.desktopRecovery.placeholders.unknownServer":`inconnu`,"vscodeLayout.title.chat":`Chat`,"vscodeLayout.title.newSession":`Nouvelle session`,"vscodeLayout.title.sessions":`Sessions`,"vscodeLayout.title.sessionFallback":`Session`,"vscodeLayout.actions.backToSessionsAria":`Retour aux sessions`,"vscodeLayout.actions.newSessionAria":`Nouvelle session`,"vscodeLayout.actions.openAgentManagerAria":`Ouvrir le gestionnaire d'agents`,"vscodeLayout.actions.resizeSessionsSidebarAria":`Redimensionner la barre latérale des sessions`,"vscodeLayout.actions.settingsAria":`Paramètres`,"vscodeLayout.quota.title":`Limites de taux`,"vscodeLayout.quota.mode.used":`Utilisé`,"vscodeLayout.quota.mode.remaining":`Restant`,"vscodeLayout.quota.lastUpdated":`Dernière mise à jour {time}`,"vscodeLayout.quota.noRateLimitsAvailable":`Aucune limite de taux disponible.`,"vscodeLayout.quota.noRateLimitsReported":`Aucune limite de taux signalée.`,"vscodeLayout.quota.actions.rateLimitsAria":`Limites de taux`,"vscodeLayout.quota.actions.showUsedAria":`Afficher le quota utilisé`,"vscodeLayout.quota.actions.showRemainingAria":`Afficher le quota restant`,"vscodeLayout.quota.actions.refreshAria":`Limites du taux de rafraîchissement`,"updateDialog.header.updateAvailable":`Mise à jour disponible`,"updateDialog.header.updating":`Mise à jour de OpenChamber...`,"updateDialog.status.installingUpdate":`Installation de la mise à jour...`,"updateDialog.status.serverRestarting":`Redémarrage du serveur...`,"updateDialog.status.waitingForServer":`En attente du serveur...`,"updateDialog.status.autoReloadHint":`La page se rechargera automatiquement une fois la mise à jour terminée.`,"updateDialog.fallback.updateViaTerminal":`Ou mettre à jour via le terminal :`,"updateDialog.actions.copyCommand":`Commande Copier`,"updateDialog.actions.copied":`Copié!`,"updateDialog.status.downloadingPayload":`Téléchargement de la charge utile de la mise à jour...`,"updateDialog.actions.downloadUpdate":`Télécharger la mise à jour`,"updateDialog.status.downloading":`Téléchargement...`,"updateDialog.actions.restartToUpdate":`Redémarrer pour mettre à jour`,"updateDialog.actions.updateNow":`Mettre à jour maintenant`,"updateDialog.actions.openMobileUpdate":`Ouvrir la mise à jour`,"updateDialog.changelog.title":`Nouveautés`,"updateDialog.status.updating":`Mise à jour...`,"updateDialog.error.updateFailed":`La mise à jour a échoué`,"updateDialog.error.takingLonger":`La mise à jour prend plus de temps que prévu. Attendez un peu et actualisez, ou exécutez : openchamber update`,"mobileUpdate.toast.available.title":`Mise à jour OpenChamber disponible`,"mobileUpdate.toast.available.description":`La version {version} est prête pour Android.`,"mobileUpdate.toast.actions.download":`Télécharger`,"mobileUpdate.toast.actions.dismiss":`Ignorer`,"opencodeUpdate.toast.available.title":`Mise à jour OpenCode`,"opencodeUpdate.toast.available.description":`Version {version} disponible.`,"opencodeUpdate.toast.actions.update":`Mise à jour`,"opencodeUpdate.toast.actions.dismiss":`Ignorer`,"opencodeUpdate.toast.actions.reload":`Recharger OpenCode`,"opencodeUpdate.toast.upgrading.title":`Mise à jour de OpenCode...`,"opencodeUpdate.toast.upgrading.description":`Gardez OpenChamber ouvert.`,"opencodeUpdate.toast.updated.title":`OpenCode mis à jour`,"opencodeUpdate.toast.updated.description":`Mise à jour installée.`,"opencodeUpdate.toast.updated.descriptionWithVersion":`Version {version} installée.`,"opencodeUpdate.toast.failed.title":`Impossible de mettre à jour OpenCode`,"opencodeUpdate.toast.failed.description":`La mise à niveau du OpenCode a échoué.`,"opencodeUpdate.toast.reload.message":`Redémarrage de OpenCode...`,"memoryDebugPanel.title":`Panneau de débogage`,"memoryDebugPanel.tabs.memory":`Mémoire`,"memoryDebugPanel.tabs.streaming":`Streaming`,"memoryDebugPanel.section.sessionsInMemory":`Sessions en mémoire`,"memoryDebugPanel.section.uiStreamingMetrics":`Métriques de streaming de l'interface utilisateur`,"memoryDebugPanel.section.vscodeBridgeMetrics":`Métriques du pont VS Code`,"memoryDebugPanel.section.noUiSamples":`Aucun échantillon de streaming d'interface utilisateur pour l'instant. Démarrez un flux et gardez ce panneau ouvert.`,"memoryDebugPanel.section.noVscodeSamples":`Aucun échantillon de pont VS Code pour l'instant.`,"memoryDebugPanel.metric.totalMessages":`Nombre total de messages`,"memoryDebugPanel.metric.cachedSessions":`Sessions mises en cache`,"memoryDebugPanel.metric.userMessages":`Messages utilisateur`,"memoryDebugPanel.metric.assistantMessages":`Messages assistant`,"memoryDebugPanel.metric.viewportWindow":`Fenêtre d'affichage`,"memoryDebugPanel.metric.zombieTimeout":`Délai d'attente des zombies`,"memoryDebugPanel.metric.githubTotalRequests":`GitHub Total des demandes`,"memoryDebugPanel.metric.metrics":`Métrique`,"memoryDebugPanel.metric.samples":`Échantillons`,"memoryDebugPanel.metric.lastUpdate":`Dernière mise à jour`,"memoryDebugPanel.metric.uiMetrics":`Métriques de l'interface utilisateur`,"memoryDebugPanel.metric.vscodeMetrics":`VS Code Métriques`,"memoryDebugPanel.metric.messageListRenders":`Rendus de liste de messages`,"memoryDebugPanel.metric.messageListStreamRenders":`Rendus de flux MsgList`,"memoryDebugPanel.metric.chatMessageRenders":`Rendus de messages de chat`,"memoryDebugPanel.metric.chatMessageStreamRenders":`Rendus de flux de messages ChatMessage`,"memoryDebugPanel.metric.chatMessageStaticDuringStream":`ChatMessage statique pendant le flux`,"memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn":`ChatMessage statique en dehors du tour actif`,"memoryDebugPanel.metric.messagesValue":`Messages {count}`,"memoryDebugPanel.metric.minutesValue":`Minutes {count}`,"memoryDebugPanel.metric.msgsValue":`Messages {count}`,"memoryDebugPanel.metric.roleMsgsValue":`U {user} / A {assistant}`,"memoryDebugPanel.metric.countValue":`compter {value}`,"memoryDebugPanel.metric.avgValue":`moyenne {value}`,"memoryDebugPanel.metric.maxValue":`maximum {value}`,"memoryDebugPanel.metric.totalValue":`total {value}`,"memoryDebugPanel.actions.logState":`État du journal`,"memoryDebugPanel.actions.copyJson":`Copier JSON`,"memoryDebugPanel.tooltip.logCurrentState":`Enregistrer l'état actuel de la mémoire sur la console du navigateur`,"memoryDebugPanel.streaming.copy.copied":`Débogage en streaming JSON copié`,"memoryDebugPanel.streaming.copy.failed":`Échec de la copie de JSON`,"memoryDebugPanel.streaming.copy.hint":`La copie exporte les métriques de streaming de l'interface utilisateur et de VS Code en tant que JSON.`,"memoryDebugPanel.common.idle":`inactif`,"memoryDebugPanel.common.live":`en direct`,"memoryDebugPanel.common.notAvailable":`n / A`,"memoryDebugPanel.common.untitled":`Sans titre`,"directoryTree.field.newDirectoryPlaceholder":`nouveau_répertoire`,"textarea.resizeHandleAria":`Redimensionner la zone de texte`,"sidebar.resize.leftPanelAria":`Redimensionner le panneau de gauche`,"sidebar.resize.rightPanelAria":`Redimensionner le panneau de droite`,"mainLayout.mobile.closeDrawerAria":`Fermer le tiroir`,"sortableTabsStrip.aria.tabs":`Onglets`,"openChamberLogo.aria.logo":`Logo OpenChamber`,"markdownRenderer.code.actions.copyTitle":`Copier le code`,"markdownRenderer.code.actions.copiedTitle":`Copié`,"markdownRenderer.table.actions.copyTitle":`Copier le tableau`,"markdownRenderer.code.actions.enableWrapTitle":`Activer le retour à la ligne`,"markdownRenderer.code.actions.disableWrapTitle":`Désactiver le retour à la ligne`,"markdownRenderer.table.actions.downloadTitle":`Télécharger le tableau`,"markdownRenderer.table.toast.downloadedAsFormat":`Table téléchargée sous le nom {format}`,"markdownRenderer.mermaid.actions.copyTitle":`Copie`,"markdownRenderer.mermaid.actions.copySourceTitle":`Copier la source`,"markdownRenderer.mermaid.actions.downloadSvgTitle":`Télécharger SVG`,"markdownRenderer.mermaid.actions.zoomInTitle":`Zoom avant`,"markdownRenderer.mermaid.actions.zoomOutTitle":`Zoom arrière`,"markdownRenderer.mermaid.actions.resetViewTitle":`Réinitialiser la vue`,"markdownRenderer.mermaid.toast.downloadFailed":`Échec du téléchargement du diagramme`,"common.date.today":`Aujourd’hui`,"common.date.yesterday":`Hier`,"common.date.yesterdayWithTime":`Hier {time}`,"common.relative.justNow":`À l’instant`,"common.relative.minutesAgoShort":`il y a {count} min`,"common.relative.hoursAgoShort":`il y a {count} h`,"common.relative.daysAgoShort":`il y a {count} j`,"common.relative.weeksAgoShort":`il y a {count} sem`,"common.relative.yearsAgoShort":`il y a {count} a`,"common.relative.minutesAgoCompact":`{count} min`,"common.relative.hoursAgoCompact":`{count} h`,"common.relative.daysAgoCompact":`{count} j`,"common.relative.weeksAgoCompact":`{count} sem`,"common.relative.monthsAgoCompact":`{count} mois`,"common.relative.yearsAgoCompact":`{count} a`,"contextFileOpen.failure.tooLarge":`Le fichier est trop volumineux pour être ouvert (> {count} lignes)`,"contextFileOpen.failure.missing":`Fichier introuvable`,"contextFileOpen.failure.unreadable":`Impossible d’ouvrir le fichier`,"quota.window.5h":`5 heures`,"quota.window.7d":`Limite sur 7 jours`,"quota.window.7dSonnet":`Limite Sonnet sur 7 jours`,"quota.window.7dOpus":`Limite Opus sur 7 jours`,"quota.window.weekly":`Limite hebdomadaire`,"quota.window.daily":`Quotidien`,"quota.window.monthly":`Limite mensuelle`,"quota.window.credits":`Crédits`,"quota.window.creditsBalance":`Solde de crédits`,"quota.window.billingCycle":`Cycle de facturation`,"quota.window.auto":`Auto`,"quota.window.api":`API`,"quota.window.planLimit":`Limite du forfait`,"quota.window.onDemand":`À la demande`,"quota.window.session":`Session`,"quota.window.premium":`Interactions premium`,"quota.window.chat":`Requêtes de chat`,"quota.window.completions":`Complétions`,"quota.window.premiumInteractions":`Interactions premium`,"layout.mainTab.diagram":`Diagramme`,"mobile.nav.aria":`Navigation mobile`,"mobile.nav.secondaryPageAria":`Page de détail`,"mobile.connect.welcome.title":`Se connecter à OpenChamber`,"mobile.connect.welcome.description":`Ajoutez une URL de serveur ou scannez un code QR d'appairage pour commencer à utiliser l'app mobile.`,"mobile.connect.url.label":`URL du serveur`,"mobile.connect.url.placeholder":`http://192.168.1.74:2606`,"mobile.connect.link.divider":`Ou utilisez un lien d'appairage`,"mobile.connect.address.divider":`Ou saisissez une adresse de serveur`,"mobile.connect.link.label":`Lien d'appairage`,"mobile.connect.link.placeholder":`Collez le lien openchamber://connect`,"mobile.connect.link.invalid":`Ce lien d'appairage n'est pas valide ou a expiré.`,"mobile.connect.token.label":`Jeton client`,"mobile.connect.token.placeholder":`Collez le jeton d'accès`,"mobile.connect.token.hint":`Nécessaire uniquement si votre serveur exige un jeton au lieu d'un mot de passe.`,"mobile.connect.password.label":`Mot de passe`,"mobile.connect.password.placeholder":`Mot de passe OpenChamber`,"mobile.connect.connectButton":`Se connecter`,"mobile.connect.unlockButton":`Déverrouiller et se connecter`,"mobile.connect.cancelPassword":`Utiliser un autre serveur`,"mobile.connect.connecting":`Connexion...`,"mobile.connect.scanQr":`Scanner le code QR`,"mobile.connect.welcome.scanHint":`Sur votre ordinateur, ouvrez « Ajouter un appareil » pour afficher un code QR, puis scannez-le ici.`,"mobile.connect.advanced":`Avancé`,"mobile.connect.manual.toggle":`Connexion manuelle`,"mobile.connect.scan.permissionDenied":`L'accès à la caméra est désactivé. Activez-le dans les Réglages pour scanner un code QR.`,"mobile.connect.scan.failed":`Impossible de scanner ce code QR. Réessayez ou saisissez l'URL manuellement.`,"mobile.connect.scan.invalid":`Ce code QR n'est pas un code de connexion OpenChamber.`,"mobile.connect.scan.unsupported":`Le scan QR est disponible uniquement dans l'app mobile installée.`,"mobile.connect.saved.title":`Connexions enregistrées`,"mobile.connect.saved.empty":`Aucune connexion enregistrée pour le moment.`,"mobile.connect.relay.badge":`via OpenChamber Relay`,"mobile.connect.error.urlRequired":`Saisissez une URL de serveur.`,"mobile.connect.splash.connectingTo":`Connexion à l’appareil :`,"mobile.connect.error.invalidUrl":`Cette URL de serveur n'est pas valide.`,"mobile.connect.error.unreachable":`Impossible de joindre ce serveur OpenChamber.`,"mobile.connect.error.authRequired":`Ce serveur nécessite un mot de passe ou un jeton client.`,"mobile.connect.error.passwordFailed":`Impossible de déverrouiller ce serveur. Vérifiez le mot de passe.`,"mobile.instances.addTitle":`Ajouter une instance`,"mobile.instances.addManual":`Ajouter par adresse`,"mobile.instances.editTitle":`Modifier l'instance`,"mobile.instances.edit":`Modifier`,"mobile.instances.delete":`Supprimer`,"mobile.instances.deleteAria":`Supprimer {label}`,"mobile.instances.confirmDeleteAria":`Confirmer la suppression de {label}`,"mobile.instances.cancelDeleteAria":`Conserver {label}`,"mobile.instances.cancelEdit":`Annuler`,"mobile.instances.label.label":`Nom`,"mobile.instances.label.placeholder":`Nom d'affichage facultatif`,"mobile.instances.saveNew":`Enregistrer l'instance`,"mobile.instances.status.connectedDirect":`Connecté · Réseau local`,"mobile.instances.status.connectedRelay":`Connecté · Relais`,"mobile.instances.status.connectedSshRelay":`Connecté · SSH via relais`,"mobile.instances.sshBadge":`SSH`,"mobile.instances.sshViaDesktop":`Acheminé via le bureau vers SSH`,"mobile.connect.error.sshNotConnected":`Cette instance SSH n’est pas connectée pour le moment.`,"mobile.connect.ssh.fallbackDesktop":`Instance SSH indisponible — connexion au bureau à la place.`,"mobile.instances.saveEdit":`Enregistrer les modifications`,"mobile.nav.changes":`Modifications`,"mobile.nav.settings":`Paramètres`,"mobile.tabs.projects":`Projets`,"mobile.tabs.assistant":`Agent`,"mobile.tabs.scheduled":`Tâches`,"mobile.tabs.settings":`Réglages`,"mobile.surface.closeAria":`Fermer`,"mobile.header.openMenuAria":`Ouvrir le menu`,"mobile.header.openMetadataAria":`Ouvrir les métadonnées de session`,"mobile.header.metadata.context":`Contexte`,"mobile.header.metadata.branch":`Branche`,"mobile.header.metadata.usage":`Utilisation`,"mobile.menu.titleAria":`Outils de l’espace de travail`,"mobile.menu.newSession":`Nouveau chat`,"mobile.chat.syncingMessages":`Synchronisation des messages...`,"mobile.menu.files":`Fichiers`,"mobile.menu.changes":`Modifications`,"mobile.menu.mcp":`MCP`,"mobile.menu.instances":`Instances`,"mobile.settings.switchInstance":`Changer d'instance`,"mobile.menu.update":`Mettre à jour`,"mobile.menu.settings":`Paramètres`,"mobile.sessions.newChatCta":`Nouveau Chat dans {project}`,"mobile.sessions.dateGroup.today":`Aujourd’hui`,"mobile.sessions.dateGroup.yesterday":`Hier`,"mobile.sessions.dateGroup.thisWeek":`Plus tôt cette semaine`,"mobile.sessions.dateGroup.older":`Plus ancien`,"mobile.sessions.section.worktrees":`Worktrees`,"mobile.sessions.mainWorkspace":`Espace de travail principal`,"mobile.sessions.section.pinned":`Épinglés`,"mobile.sessions.searchAria":`Rechercher des sessions`,"mobile.sessions.section.otherProjects":`Changer de projet`,"mobile.sessions.section.projects":`Projets`,"mobile.projects.menu.label":`Plus d'actions`,"mobile.projects.menu.newChat":`Nouvelle conversation`,"mobile.projects.menu.newProject":`Nouveau projet`,"mobile.projects.menu.scanQr":`Scanner un QR code`,"mobile.projects.menu.switchInstance":`Changer d'instance`,"mobile.sessions.empty.noProjectsTitle":`Aucun projet pour le moment`,"mobile.sessions.empty.noProjectsDescription":`Ajoutez un projet pour commencer à discuter avec votre code.`,"mobile.sessions.empty.noSessionsTitle":`Aucune session pour le moment`,"mobile.sessions.empty.noSessionsDescription":`Démarrez votre premier chat pour le voir ici.`,"mobile.sessions.empty.searchTitle":`Aucun résultat`,"mobile.sessions.empty.searchDescription":`Essayez un autre terme de recherche.`,"mobile.sessions.showArchived":`Afficher les archivées ({count})`,"mobile.sessions.hideArchived":`Masquer les archivées`,"mobile.sessions.activeWorktreeAria":`Worktree actif`,"mobile.sessions.activeProjectAria":`Projet actif`,"mobile.sessions.startNewChat":`Nouveau chat`,"mobile.sessions.newChat":`Nouveau Chat`,"mobile.sessions.editOrder":`Réordonner les projets`,"mobile.sessions.doneEditing":`Terminé`,"mobile.sessions.editOrderHint":`Faites glisser la poignée pour réordonner les projets. Touchez la coche pour terminer.`,"mobile.sessions.editProjectAria":`Modifier {label}`,"mobile.sessions.dragHandleAria":`Faire glisser {label} pour réordonner`,"mobile.sessions.moveUpAria":`Déplacer {label} vers le haut`,"mobile.sessions.moveDownAria":`Déplacer {label} vers le bas`,"mobile.sessions.removeProjectAria":`Supprimer {label}`,"mobile.sessions.cancelRemoveProjectAria":`Annuler la suppression de {label}`,"mobile.sessions.confirmRemoveProject":`Fermer`,"mobile.sessions.confirmRemoveProjectAria":`Confirmer la suppression de {label}`,"mobile.projects.closeConfirmMessage":`Fermer « {title} » ? Il quittera la liste des projets. Les sessions restent sur le disque.`,"mobile.sessions.toast.projectRemoved":`{label} supprimé`,"mobile.sessions.archiveSessionAria":`Archiver {title}`,"mobile.sessions.cancelArchiveAria":`Annuler l’archivage de {title}`,"mobile.sessions.stopSessionAria":`Arrêter {title}`,"mobile.sessions.stopGroupAria":`Arrêter toutes les sessions en cours dans {label}`,"mobile.sessions.stopSubsessionsAria":`Arrêter les sous-sessions en cours de {title}`,"mobile.projectEdit.worktreesTitle":`Worktrees`,"mobile.projectEdit.worktreesEmpty":`Aucun worktree dans ce projet pour le moment.`,"mobile.projectEdit.reorderHint":`Faites glisser pour réordonner les worktrees.`,"mobile.projectEdit.dragWorktreeAria":`Faire glisser {label} pour réordonner`,"mobile.projectEdit.deleteWorktreeAria":`Supprimer le worktree {label}`,"mobile.projectEdit.deleteWorktreeTitle":`Supprimer le worktree`,"mobile.projectEdit.deleteWorktreeConfirmButton":`Supprimer`,"mobile.projectEdit.deleteWorktreeConfirm":`Supprimer le worktree « {name} » ? Cette action est irréversible.`,"mobile.projectEdit.deleteWorktreeDirty":`Ce worktree contient des modifications non commitées qui seront perdues.`,"mobile.projectEdit.deleteWorktreeArchiveNote":`{count} session(s) associée(s) seront archivées.`,"mobile.projectEdit.deleteLocalBranch":`Supprimer aussi la branche locale`,"mobile.projectEdit.deleteRemoteBranch":`Supprimer aussi la branche distante`,"mobile.sessions.showMore":`Afficher {count} de plus`,"mobile.sessions.search.section.sessions":`Sessions`,"mobile.sessions.search.section.archived":`Archivées`,"mobile.sessions.search.section.projects":`Projets`,"mobile.sessions.clearSearchAria":`Effacer la recherche`,"mobile.header.noProject":`Sélectionnez un projet`,"mobile.header.activeSession":`Session active`,"mobile.header.noSession":`Aucune session active`,"mobile.sessions.openSheetAria":`Ouvrir les sessions et projets`,"mobile.sessions.closeSheetAria":`Fermer les sessions et projets`,"mobile.sessions.sheet.title":`Conversations récentes`,"mobile.sessions.sheet.resizeAria":`Redimensionner le panneau des sessions`,"mobile.changes.sheet.resizeAria":`Redimensionner le panneau des modifications`,"mobile.sessions.sheet.description":`Changez de projet, ouvrez des sessions ou démarrez un nouveau chat.`,"mobile.sessions.search.placeholder":`Rechercher des sessions`,"mobile.sessions.empty":`Aucune session trouvée.`,"mobile.sessions.unassignedProject":`Autres sessions`,"mobile.sessions.newSessionAria":`Démarrer un nouveau chat dans ce projet`,"mobile.sessions.untitled":`Session sans titre`,"mobile.sessions.project.sessionsSingle":`1 session`,"mobile.sessions.project.sessionsPlural":`{count} sessions`,"mobile.files.refreshAria":`Actualiser les fichiers`,"mobile.files.backToParentAria":`Retour à {name}`,"mobile.files.rootDirectory":`Fichiers du projet`,"mobile.files.search.placeholder":`Rechercher des fichiers`,"mobile.files.search.empty":`Aucun fichier trouvé.`,"mobile.files.parentDirectory":`Dossier parent`,"mobile.files.empty.noDirectory":`Sélectionnez un projet pour parcourir les fichiers.`,"mobile.files.empty.directory":`Ce dossier est vide.`,"mobile.files.error.listFailed":`Impossible de charger les fichiers`,"mobile.files.error.readUnavailable":`L’aperçu du fichier n’est pas disponible dans ce runtime.`,"mobile.files.file.truncated":`Aperçu du fichier tronqué sur mobile.`,"mobile.files.copyPathAria":`Copier le chemin du fichier`,"mobile.files.copyContent":`Copier le contenu`,"mobile.files.copyContentAria":`Copier le contenu du fichier`,"mobile.files.toast.pathCopied":`Chemin copié`,"mobile.files.toast.contentCopied":`Contenu copié`,"mobile.files.toast.copyFailed":`Échec de la copie`,"mobile.changes.placeholder.title":`Modifications`,"mobile.changes.placeholder.description":`La revue du working tree, la synchronisation et les actions de commit seront ici.`,"mobile.changes.branchLabel":`Branche : {branch}`,"mobile.changes.noRemote":`Aucun remote disponible`,"mobile.changes.cleanDescription":`Aucun fichier modifié dans cet espace de travail.`,"mobile.changes.diffDetail.subtitle":`Diff en lecture seule`,"mobile.changes.diffDetail.loadFailed":`Impossible de charger le diff`,"mobile.changes.diffDetail.missingTitle":`Le fichier n’est plus modifié`,"mobile.changes.diffDetail.missingDescription":`Retournez aux modifications et actualisez la liste.`,"mobile.changes.diffDetail.imageUnavailable":`Les diffs d’images ne sont pas encore disponibles dans les modifications mobile.`,"mobile.settings.placeholder.title":`Paramètres`,"mobile.settings.placeholder.description":`Les paramètres mobiles ciblés de connexion et d’application seront ici.`,"sessions.sidebar.header.displayMode.showArchived":`Afficher les sessions archivées`,"sessions.sidebar.group.showMore":`Plus`,"gitView.changes.revertDirectoryAria":`Annuler les modifications dans {path}`,"gitView.changes.revertDirectory":`Annuler le dossier`,"gitView.changes.revertDirectoryDescriptionPlural":`Cela supprimera les modifications locales dans {count} fichiers sous {path}.`,"gitView.changes.revertDirectoryDescriptionSingle":`Cela supprimera les modifications locales dans {count} fichier sous {path}.`,"gitView.changes.revertDirectoryDialogTitle":`Annuler les modifications du dossier ?`,"gitView.changes.revertDirectoryTooltip":`Annuler les modifications du dossier`,"worktree.bootstrap.toast.failed":`Échec de la configuration du worktree`,"worktree.bootstrap.toast.failedDescription":`Le worktree a été créé, mais la configuration en arrière-plan ne s’est pas terminée.`,"worktree.bootstrap.toast.timeoutDescription":`Le worktree a été créé, mais la configuration en arrière-plan a expiré.`,"contextPanel.browser.inspectUnavailable":`Cette page ne peut pas être inspectée depuis le panneau de navigateur.`,"contextPanel.browser.trustNotice":`Les pages ouvertes ici s’exécutent avec un accès complet à OpenChamber — nécessaire pour l’inspection et les captures d’écran. N’ouvrez que des sites de confiance : une page malveillante pourrait lire vos données ou agir en votre nom.`,"contextPanel.file.notice.turnDiffOutsideWorkspace":`Le diff du tour est indisponible hors du projet. Affichage du fichier actuel à la place.`,"filesView.diagram.closeDiagramView":`Fermer la vue diagramme`,"filesView.diagram.saveDiagram":`Enregistrer le diagramme`,"inlineComment.input.placeholderShort":`Ajouter un commentaire...`,"header.services.remoteUpdate.title":`Mise à jour de l’instance distante`,"header.services.remoteUpdate.checking":`Recherche de mises à jour...`,"header.services.remoteUpdate.upToDate":`Cette instance est à jour.`,"header.services.remoteUpdate.available":`La version {version} est disponible pour cette instance.`,"header.services.remoteUpdate.error":`Impossible de vérifier les mises à jour de l’instance distante`,"header.services.remoteUpdate.actions.open":`Mettre à jour`,"chat.fileAttachment.openInDiagram":`Ouvrir dans la vue diagramme`,"chat.draftPresets.explore.label":`Explorer le codebase`,"chat.draftPresets.catchup.label":`Me remettre à niveau`,"chat.draftPresets.weigh.label":`Comparer mes options`,"chat.draftPresets.plan.label":`Lancer la planification de fonctionnalité`,"chat.draftPresets.craftGoal.label":`Créer un Goal`,"chat.draftPresets.debug.label":`Déboguer un problème`,"chat.draftPresets.review.label":`Revoir mes modifications`,"chat.draftStarters.add":`Ajouter un démarrage`,"chat.draftStarters.searchPlaceholder":`Rechercher des commandes et skills…`,"chat.draftStarters.empty":`Rien à ajouter`,"chat.draftStarters.sectionBuiltIn":`Intégré`,"chat.draftStarters.sectionCommands":`Commandes`,"chat.draftStarters.sectionSkills":`Skills`,"chat.draftStarters.remove":`Retirer`,"chat.draftStarters.expand":`Afficher plus`,"chat.draftStarters.collapse":`Réduire`,"chat.commandAutocomplete.command.handoffReviewDescription":`Créer ou réutiliser une session de revue séparée à partir d’un handoff généré.`,"chat.commandAutocomplete.command.featurePlanDescription":`Lancer une session guidée et interactive de planification pour une nouvelle fonctionnalité.`,"chat.commandAutocomplete.command.craftGoalDescription":`Transformer une idée ou une tâche en Goal clair et vérifiable.`,"chat.chatInput.toast.craftGoalFailed":`Impossible de démarrer la création du Goal`,"chat.commandAutocomplete.command.catchUpDescription":`Rétablir le contexte : ce que vous faisiez et où reprendre.`,"chat.commandAutocomplete.command.debugDescription":`Investigation guidée de la cause racine d’un bug avant de proposer une correction.`,"chat.commandAutocomplete.command.weighDescription":`Comparer 2 à 3 approches avec compromis et recommandation avant de vous engager.`,"chat.commandAutocomplete.command.exploreDescription":`Vous orienter dans ce codebase : tour d’ensemble de l’architecture et des parties principales.`,"chat.commandAutocomplete.command.newDescription":`Démarrer une nouvelle session dans le projet actuel.`,"chat.questionCard.submitFailed":`Impossible d’envoyer la réponse`,"chat.questionCard.dismissFailed":`Impossible d’ignorer la question`,"chat.questionCard.noLongerPending":`Cette question n’attend plus de réponse.`,"chat.questionCard.tryAgain":`Veuillez réessayer dans un instant.`,"chat.messageBody.forkDialog.instructions.label":`Instructions`,"chat.messageBody.forkDialog.instructions.placeholder":`Ajouter des instructions pour la nouvelle session…`,"chat.messageBody.forkDialog.createWorktree":`Créer un worktree`,"chat.forkTransition.preparing":`Préparation du fork`,"chat.forkTransition.copying":`Copie de la conversation (les longues sessions peuvent prendre du temps)`,"chat.forkTransition.opening":`Ouverture de la nouvelle session`,"chat.forkTransition.loading":`Chargement des messages récents`,"chat.forkTransition.progress":`{current} / {total}`,"planView.tts.readAloud":`Lire le plan à voix haute`,"planView.tts.stopSpeaking":`Arrêter la lecture`,"filesView.tts.readAloud":`Lire le fichier à voix haute`,"filesView.tts.stopSpeaking":`Arrêter la lecture`,"chat.messageBody.actions.sendReviewFeedback":`Envoyer le retour de revue à l’agent d’implémentation`,"chat.messageBody.actions.sendImplementationResponse":`Envoyer la réponse d’implémentation à l’agent de revue`,"chat.chatInput.toast.planFeatureFailed":`Impossible de lancer la planification de fonctionnalité`,"chat.chatInput.toast.catchUpFailed":`Impossible de rattraper le contexte`,"chat.chatInput.toast.debugFailed":`Impossible de lancer le débogage`,"chat.chatInput.toast.weighFailed":`Impossible de comparer les options`,"chat.chatInput.toast.exploreFailed":`Impossible de lancer le tour`,"chat.chatInput.reviewCommentsRemove":`Retirer les commentaires de revue`,"chat.toolPart.showRawJson":`Afficher le JSON brut`,"chat.toolPart.showFormattedJson":`Afficher le JSON formaté`,"chat.toolPart.showNavigableJson":`Afficher le JSON navigable`,"chat.toolPart.openFileAtFirstChange":`Ouvrir le fichier à la première modification`,"chat.toolPart.openFileDiff":`Ouvrir les différences du fichier`,"chat.toolPart.copyOutput":`Copier la sortie`,"chat.toolPart.copiedOutput":`Sortie copiée`,"chat.toolPart.copyOutputFailed":`Impossible de copier la sortie`,"desktopHostSwitcher.status.checking":`Vérification`,"desktopHostSwitcher.status.updateRecommended":`Mise à jour recommandée`,"desktopHostSwitcher.status.incompatible":`Incompatible`,"onboarding.remoteConnection.probe.updateRecommendedMessage":`Cette instance utilise une version différente d’OpenChamber. Vous pouvez vous connecter, mais mettez les deux applications à jour si quelque chose ne fonctionne pas.`,"onboarding.remoteConnection.probe.incompatibleMessage":`Le serveur exécute OpenChamber mais n’est pas compatible avec cette version de l’application. Mettez OpenChamber à jour sur le serveur, puis réessayez.`,"onboarding.desktopRecovery.remoteIncompatible.title":`Mise à jour du serveur requise`,"onboarding.desktopRecovery.remoteIncompatible.description":`Le serveur OpenChamber à l’adresse « {host} » n’est pas compatible avec cette version de l’application. Mettez OpenChamber à jour sur le serveur, puis réessayez.`,"vscodeLayout.actions.archiveAllAria":`Archiver toutes les sessions`,"vscodeLayout.actions.archiveAllConfirm":`Tout archiver`,"vscodeLayout.actions.archiveAllSuccess":`{count} session(s) archivée(s)`,"vscodeLayout.actions.archiveAllError":`Impossible d’archiver {count} session(s)`,"vscodeLayout.actions.cancel":`Annuler`};export{e as dict};