reigncode-app 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/AGENTS.md +30 -0
  2. package/Dockerfile +21 -0
  3. package/README.md +51 -0
  4. package/bunfig.toml +3 -0
  5. package/create-effect-simplification-spec.md +515 -0
  6. package/e2e/AGENTS.md +226 -0
  7. package/e2e/actions.ts +1018 -0
  8. package/e2e/app/home.spec.ts +24 -0
  9. package/e2e/app/navigation.spec.ts +10 -0
  10. package/e2e/app/palette.spec.ts +20 -0
  11. package/e2e/app/server-default.spec.ts +58 -0
  12. package/e2e/app/session.spec.ts +16 -0
  13. package/e2e/app/titlebar-history.spec.ts +120 -0
  14. package/e2e/commands/input-focus.spec.ts +15 -0
  15. package/e2e/commands/panels.spec.ts +33 -0
  16. package/e2e/commands/tab-close.spec.ts +32 -0
  17. package/e2e/files/file-open.spec.ts +31 -0
  18. package/e2e/files/file-tree.spec.ts +56 -0
  19. package/e2e/files/file-viewer.spec.ts +156 -0
  20. package/e2e/fixtures.ts +154 -0
  21. package/e2e/models/model-picker.spec.ts +48 -0
  22. package/e2e/models/models-visibility.spec.ts +61 -0
  23. package/e2e/projects/project-edit.spec.ts +43 -0
  24. package/e2e/projects/projects-close.spec.ts +54 -0
  25. package/e2e/projects/projects-switch.spec.ts +116 -0
  26. package/e2e/projects/workspace-new-session.spec.ts +94 -0
  27. package/e2e/projects/workspaces.spec.ts +375 -0
  28. package/e2e/prompt/context.spec.ts +95 -0
  29. package/e2e/prompt/prompt-async.spec.ts +76 -0
  30. package/e2e/prompt/prompt-drop-file-uri.spec.ts +22 -0
  31. package/e2e/prompt/prompt-drop-file.spec.ts +30 -0
  32. package/e2e/prompt/prompt-history.spec.ts +184 -0
  33. package/e2e/prompt/prompt-mention.spec.ts +26 -0
  34. package/e2e/prompt/prompt-multiline.spec.ts +24 -0
  35. package/e2e/prompt/prompt-shell.spec.ts +62 -0
  36. package/e2e/prompt/prompt-slash-open.spec.ts +22 -0
  37. package/e2e/prompt/prompt-slash-share.spec.ts +64 -0
  38. package/e2e/prompt/prompt-slash-terminal.spec.ts +18 -0
  39. package/e2e/prompt/prompt.spec.ts +55 -0
  40. package/e2e/selectors.ts +75 -0
  41. package/e2e/session/session-child-navigation.spec.ts +37 -0
  42. package/e2e/session/session-composer-dock.spec.ts +530 -0
  43. package/e2e/session/session-model-persistence.spec.ts +359 -0
  44. package/e2e/session/session-review.spec.ts +426 -0
  45. package/e2e/session/session-undo-redo.spec.ts +233 -0
  46. package/e2e/session/session.spec.ts +174 -0
  47. package/e2e/settings/settings-keybinds.spec.ts +389 -0
  48. package/e2e/settings/settings-models.spec.ts +122 -0
  49. package/e2e/settings/settings-providers.spec.ts +136 -0
  50. package/e2e/settings/settings.spec.ts +519 -0
  51. package/e2e/sidebar/sidebar-popover-actions.spec.ts +118 -0
  52. package/e2e/sidebar/sidebar-session-links.spec.ts +30 -0
  53. package/e2e/sidebar/sidebar.spec.ts +40 -0
  54. package/e2e/status/status-popover.spec.ts +94 -0
  55. package/e2e/terminal/terminal-init.spec.ts +28 -0
  56. package/e2e/terminal/terminal-reconnect.spec.ts +46 -0
  57. package/e2e/terminal/terminal-tabs.spec.ts +168 -0
  58. package/e2e/terminal/terminal.spec.ts +18 -0
  59. package/e2e/thinking-level.spec.ts +25 -0
  60. package/e2e/tsconfig.json +9 -0
  61. package/e2e/utils.ts +63 -0
  62. package/happydom.ts +75 -0
  63. package/index.html +23 -0
  64. package/package.json +77 -0
  65. package/playwright.config.ts +45 -0
  66. package/public/_headers +17 -0
  67. package/public/oc-theme-preload.js +35 -0
  68. package/script/e2e-local.ts +180 -0
  69. package/src/addons/serialize.test.ts +319 -0
  70. package/src/addons/serialize.ts +634 -0
  71. package/src/app.tsx +308 -0
  72. package/src/components/debug-bar.tsx +443 -0
  73. package/src/components/dialog-connect-provider.tsx +617 -0
  74. package/src/components/dialog-custom-provider-form.ts +158 -0
  75. package/src/components/dialog-custom-provider.test.ts +80 -0
  76. package/src/components/dialog-custom-provider.tsx +329 -0
  77. package/src/components/dialog-edit-project.tsx +255 -0
  78. package/src/components/dialog-fork.tsx +108 -0
  79. package/src/components/dialog-manage-models.tsx +101 -0
  80. package/src/components/dialog-release-notes.tsx +144 -0
  81. package/src/components/dialog-select-directory.tsx +392 -0
  82. package/src/components/dialog-select-file.tsx +466 -0
  83. package/src/components/dialog-select-mcp.tsx +107 -0
  84. package/src/components/dialog-select-model-unpaid.tsx +137 -0
  85. package/src/components/dialog-select-model.tsx +220 -0
  86. package/src/components/dialog-select-provider.tsx +86 -0
  87. package/src/components/dialog-select-server.tsx +649 -0
  88. package/src/components/dialog-settings.tsx +73 -0
  89. package/src/components/file-tree.test.ts +78 -0
  90. package/src/components/file-tree.tsx +507 -0
  91. package/src/components/link.tsx +26 -0
  92. package/src/components/model-tooltip.tsx +91 -0
  93. package/src/components/prompt-input/attachments.test.ts +44 -0
  94. package/src/components/prompt-input/attachments.ts +201 -0
  95. package/src/components/prompt-input/build-request-parts.test.ts +312 -0
  96. package/src/components/prompt-input/build-request-parts.ts +175 -0
  97. package/src/components/prompt-input/context-items.tsx +88 -0
  98. package/src/components/prompt-input/drag-overlay.tsx +25 -0
  99. package/src/components/prompt-input/editor-dom.test.ts +99 -0
  100. package/src/components/prompt-input/editor-dom.ts +148 -0
  101. package/src/components/prompt-input/files.ts +66 -0
  102. package/src/components/prompt-input/history.test.ts +153 -0
  103. package/src/components/prompt-input/history.ts +256 -0
  104. package/src/components/prompt-input/image-attachments.tsx +58 -0
  105. package/src/components/prompt-input/paste.ts +24 -0
  106. package/src/components/prompt-input/placeholder.test.ts +48 -0
  107. package/src/components/prompt-input/placeholder.ts +15 -0
  108. package/src/components/prompt-input/slash-popover.tsx +141 -0
  109. package/src/components/prompt-input/submit.test.ts +346 -0
  110. package/src/components/prompt-input/submit.ts +579 -0
  111. package/src/components/prompt-input.tsx +1595 -0
  112. package/src/components/server/server-row.tsx +130 -0
  113. package/src/components/session/index.ts +5 -0
  114. package/src/components/session/session-context-breakdown.test.ts +61 -0
  115. package/src/components/session/session-context-breakdown.ts +132 -0
  116. package/src/components/session/session-context-format.ts +20 -0
  117. package/src/components/session/session-context-metrics.test.ts +101 -0
  118. package/src/components/session/session-context-metrics.ts +82 -0
  119. package/src/components/session/session-context-tab.tsx +339 -0
  120. package/src/components/session/session-header.tsx +486 -0
  121. package/src/components/session/session-new-view.tsx +91 -0
  122. package/src/components/session/session-sortable-tab.tsx +70 -0
  123. package/src/components/session/session-sortable-terminal-tab.tsx +193 -0
  124. package/src/components/session-context-usage.tsx +122 -0
  125. package/src/components/settings-general.tsx +585 -0
  126. package/src/components/settings-keybinds.tsx +453 -0
  127. package/src/components/settings-list.tsx +5 -0
  128. package/src/components/settings-models.tsx +137 -0
  129. package/src/components/settings-providers.tsx +251 -0
  130. package/src/components/status-popover.tsx +419 -0
  131. package/src/components/terminal.tsx +653 -0
  132. package/src/components/titlebar-history.test.ts +63 -0
  133. package/src/components/titlebar-history.ts +57 -0
  134. package/src/components/titlebar.tsx +312 -0
  135. package/src/constants/file-picker.ts +89 -0
  136. package/src/context/command-keybind.test.ts +69 -0
  137. package/src/context/command.test.ts +25 -0
  138. package/src/context/command.tsx +437 -0
  139. package/src/context/comments.test.ts +186 -0
  140. package/src/context/comments.tsx +243 -0
  141. package/src/context/file/content-cache.ts +88 -0
  142. package/src/context/file/path.test.ts +360 -0
  143. package/src/context/file/path.ts +151 -0
  144. package/src/context/file/tree-store.ts +170 -0
  145. package/src/context/file/types.ts +41 -0
  146. package/src/context/file/view-cache.ts +146 -0
  147. package/src/context/file/watcher.test.ts +149 -0
  148. package/src/context/file/watcher.ts +53 -0
  149. package/src/context/file-content-eviction-accounting.test.ts +65 -0
  150. package/src/context/file.tsx +280 -0
  151. package/src/context/global-sdk.tsx +232 -0
  152. package/src/context/global-sync/bootstrap.ts +206 -0
  153. package/src/context/global-sync/child-store.test.ts +38 -0
  154. package/src/context/global-sync/child-store.ts +281 -0
  155. package/src/context/global-sync/event-reducer.test.ts +552 -0
  156. package/src/context/global-sync/event-reducer.ts +359 -0
  157. package/src/context/global-sync/eviction.ts +28 -0
  158. package/src/context/global-sync/queue.ts +83 -0
  159. package/src/context/global-sync/session-cache.test.ts +102 -0
  160. package/src/context/global-sync/session-cache.ts +62 -0
  161. package/src/context/global-sync/session-load.ts +25 -0
  162. package/src/context/global-sync/session-prefetch.test.ts +96 -0
  163. package/src/context/global-sync/session-prefetch.ts +100 -0
  164. package/src/context/global-sync/session-trim.test.ts +59 -0
  165. package/src/context/global-sync/session-trim.ts +56 -0
  166. package/src/context/global-sync/types.ts +133 -0
  167. package/src/context/global-sync/utils.ts +25 -0
  168. package/src/context/global-sync.test.ts +122 -0
  169. package/src/context/global-sync.tsx +408 -0
  170. package/src/context/highlights.tsx +233 -0
  171. package/src/context/language.tsx +248 -0
  172. package/src/context/layout-scroll.test.ts +64 -0
  173. package/src/context/layout-scroll.ts +126 -0
  174. package/src/context/layout.test.ts +69 -0
  175. package/src/context/layout.tsx +937 -0
  176. package/src/context/local.tsx +422 -0
  177. package/src/context/model-variant.test.ts +86 -0
  178. package/src/context/model-variant.ts +52 -0
  179. package/src/context/models.tsx +163 -0
  180. package/src/context/notification.tsx +373 -0
  181. package/src/context/permission-auto-respond.test.ts +102 -0
  182. package/src/context/permission-auto-respond.ts +51 -0
  183. package/src/context/permission.tsx +277 -0
  184. package/src/context/platform.tsx +99 -0
  185. package/src/context/prompt.tsx +297 -0
  186. package/src/context/sdk.tsx +49 -0
  187. package/src/context/server.tsx +295 -0
  188. package/src/context/settings.tsx +241 -0
  189. package/src/context/sync-optimistic.test.ts +123 -0
  190. package/src/context/sync.tsx +618 -0
  191. package/src/context/terminal-title.ts +51 -0
  192. package/src/context/terminal.test.ts +82 -0
  193. package/src/context/terminal.tsx +437 -0
  194. package/src/entry.tsx +144 -0
  195. package/src/env.d.ts +18 -0
  196. package/src/hooks/use-providers.ts +44 -0
  197. package/src/i18n/ar.ts +855 -0
  198. package/src/i18n/br.ts +867 -0
  199. package/src/i18n/bs.ts +943 -0
  200. package/src/i18n/da.ts +937 -0
  201. package/src/i18n/de.ts +879 -0
  202. package/src/i18n/en.ts +948 -0
  203. package/src/i18n/es.ts +950 -0
  204. package/src/i18n/fr.ts +878 -0
  205. package/src/i18n/ja.ts +861 -0
  206. package/src/i18n/ko.ts +860 -0
  207. package/src/i18n/no.ts +944 -0
  208. package/src/i18n/parity.test.ts +32 -0
  209. package/src/i18n/pl.ts +865 -0
  210. package/src/i18n/ru.ts +946 -0
  211. package/src/i18n/th.ts +933 -0
  212. package/src/i18n/tr.ts +952 -0
  213. package/src/i18n/zh.ts +930 -0
  214. package/src/i18n/zht.ts +925 -0
  215. package/src/index.css +29 -0
  216. package/src/index.ts +6 -0
  217. package/src/pages/directory-layout.tsx +88 -0
  218. package/src/pages/error.tsx +327 -0
  219. package/src/pages/home.tsx +131 -0
  220. package/src/pages/layout/deep-links.ts +50 -0
  221. package/src/pages/layout/helpers.test.ts +211 -0
  222. package/src/pages/layout/helpers.ts +98 -0
  223. package/src/pages/layout/inline-editor.tsx +126 -0
  224. package/src/pages/layout/sidebar-items.tsx +437 -0
  225. package/src/pages/layout/sidebar-project.tsx +384 -0
  226. package/src/pages/layout/sidebar-shell.tsx +125 -0
  227. package/src/pages/layout/sidebar-workspace.tsx +504 -0
  228. package/src/pages/layout.tsx +2509 -0
  229. package/src/pages/session/composer/index.ts +2 -0
  230. package/src/pages/session/composer/session-composer-region.tsx +255 -0
  231. package/src/pages/session/composer/session-composer-state.test.ts +128 -0
  232. package/src/pages/session/composer/session-composer-state.ts +249 -0
  233. package/src/pages/session/composer/session-followup-dock.tsx +109 -0
  234. package/src/pages/session/composer/session-permission-dock.tsx +74 -0
  235. package/src/pages/session/composer/session-question-dock.tsx +449 -0
  236. package/src/pages/session/composer/session-request-tree.ts +52 -0
  237. package/src/pages/session/composer/session-revert-dock.tsx +99 -0
  238. package/src/pages/session/composer/session-todo-dock.tsx +330 -0
  239. package/src/pages/session/file-tab-scroll.test.ts +40 -0
  240. package/src/pages/session/file-tab-scroll.ts +67 -0
  241. package/src/pages/session/file-tabs.tsx +456 -0
  242. package/src/pages/session/handoff.ts +36 -0
  243. package/src/pages/session/helpers.test.ts +181 -0
  244. package/src/pages/session/helpers.ts +198 -0
  245. package/src/pages/session/message-gesture.test.ts +62 -0
  246. package/src/pages/session/message-gesture.ts +21 -0
  247. package/src/pages/session/message-id-from-hash.ts +6 -0
  248. package/src/pages/session/message-timeline.tsx +1013 -0
  249. package/src/pages/session/review-tab.tsx +170 -0
  250. package/src/pages/session/session-layout.ts +20 -0
  251. package/src/pages/session/session-model-helpers.test.ts +51 -0
  252. package/src/pages/session/session-model-helpers.ts +16 -0
  253. package/src/pages/session/session-side-panel.tsx +453 -0
  254. package/src/pages/session/terminal-label.ts +16 -0
  255. package/src/pages/session/terminal-panel.test.ts +25 -0
  256. package/src/pages/session/terminal-panel.tsx +326 -0
  257. package/src/pages/session/use-session-commands.tsx +495 -0
  258. package/src/pages/session/use-session-hash-scroll.test.ts +16 -0
  259. package/src/pages/session/use-session-hash-scroll.ts +197 -0
  260. package/src/pages/session.tsx +1841 -0
  261. package/src/sst-env.d.ts +12 -0
  262. package/src/testing/model-selection.ts +80 -0
  263. package/src/testing/prompt.ts +56 -0
  264. package/src/testing/session-composer.ts +84 -0
  265. package/src/testing/terminal.ts +118 -0
  266. package/src/theme-preload.test.ts +46 -0
  267. package/src/utils/agent.ts +23 -0
  268. package/src/utils/aim.ts +138 -0
  269. package/src/utils/base64.ts +10 -0
  270. package/src/utils/comment-note.ts +88 -0
  271. package/src/utils/id.ts +99 -0
  272. package/src/utils/notification-click.test.ts +27 -0
  273. package/src/utils/notification-click.ts +13 -0
  274. package/src/utils/persist.test.ts +115 -0
  275. package/src/utils/persist.ts +476 -0
  276. package/src/utils/prompt.test.ts +44 -0
  277. package/src/utils/prompt.ts +203 -0
  278. package/src/utils/runtime-adapters.test.ts +62 -0
  279. package/src/utils/runtime-adapters.ts +39 -0
  280. package/src/utils/same.ts +6 -0
  281. package/src/utils/scoped-cache.test.ts +69 -0
  282. package/src/utils/scoped-cache.ts +104 -0
  283. package/src/utils/server-errors.test.ts +131 -0
  284. package/src/utils/server-errors.ts +80 -0
  285. package/src/utils/server-health.test.ts +123 -0
  286. package/src/utils/server-health.ts +91 -0
  287. package/src/utils/server.ts +22 -0
  288. package/src/utils/solid-dnd.tsx +49 -0
  289. package/src/utils/sound.ts +117 -0
  290. package/src/utils/terminal-writer.test.ts +64 -0
  291. package/src/utils/terminal-writer.ts +65 -0
  292. package/src/utils/time.ts +22 -0
  293. package/src/utils/uuid.test.ts +78 -0
  294. package/src/utils/uuid.ts +12 -0
  295. package/src/utils/worktree.test.ts +46 -0
  296. package/src/utils/worktree.ts +73 -0
  297. package/sst-env.d.ts +10 -0
  298. package/tsconfig.json +26 -0
  299. package/vite.config.ts +15 -0
  300. package/vite.js +26 -0
package/src/i18n/fr.ts ADDED
@@ -0,0 +1,878 @@
1
+ export const dict = {
2
+ "command.category.suggested": "Suggéré",
3
+ "command.category.view": "Affichage",
4
+ "command.category.project": "Projet",
5
+ "command.category.provider": "Fournisseur",
6
+ "command.category.server": "Serveur",
7
+ "command.category.session": "Session",
8
+ "command.category.theme": "Thème",
9
+ "command.category.language": "Langue",
10
+ "command.category.file": "Fichier",
11
+ "command.category.context": "Contexte",
12
+ "command.category.terminal": "Terminal",
13
+ "command.category.model": "Modèle",
14
+ "command.category.mcp": "MCP",
15
+ "command.category.agent": "Agent",
16
+ "command.category.permissions": "Permissions",
17
+ "command.category.workspace": "Espace de travail",
18
+ "command.category.settings": "Paramètres",
19
+ "theme.scheme.system": "Système",
20
+ "theme.scheme.light": "Clair",
21
+ "theme.scheme.dark": "Sombre",
22
+ "command.sidebar.toggle": "Basculer la barre latérale",
23
+ "command.project.open": "Ouvrir un projet",
24
+ "command.provider.connect": "Connecter un fournisseur",
25
+ "command.server.switch": "Changer de serveur",
26
+ "command.settings.open": "Ouvrir les paramètres",
27
+ "command.session.previous": "Session précédente",
28
+ "command.session.next": "Session suivante",
29
+ "command.session.previous.unseen": "Session non lue précédente",
30
+ "command.session.next.unseen": "Session non lue suivante",
31
+ "command.session.archive": "Archiver la session",
32
+ "command.palette": "Palette de commandes",
33
+ "command.theme.cycle": "Changer de thème",
34
+ "command.theme.set": "Utiliser le thème : {{theme}}",
35
+ "command.theme.scheme.cycle": "Changer de schéma de couleurs",
36
+ "command.theme.scheme.set": "Utiliser le schéma de couleurs : {{scheme}}",
37
+ "command.language.cycle": "Changer de langue",
38
+ "command.language.set": "Utiliser la langue : {{language}}",
39
+ "command.session.new": "Nouvelle session",
40
+ "command.file.open": "Ouvrir un fichier",
41
+ "command.tab.close": "Fermer l'onglet",
42
+ "command.context.addSelection": "Ajouter la sélection au contexte",
43
+ "command.context.addSelection.description": "Ajouter les lignes sélectionnées du fichier actuel",
44
+ "command.input.focus": "Focus sur l'entrée",
45
+ "command.terminal.toggle": "Basculer le terminal",
46
+ "command.fileTree.toggle": "Basculer l'arborescence des fichiers",
47
+ "command.review.toggle": "Basculer la revue",
48
+ "command.terminal.new": "Nouveau terminal",
49
+ "command.terminal.new.description": "Créer un nouvel onglet de terminal",
50
+ "command.steps.toggle": "Basculer les étapes",
51
+ "command.steps.toggle.description": "Afficher ou masquer les étapes du message actuel",
52
+ "command.message.previous": "Message précédent",
53
+ "command.message.previous.description": "Aller au message utilisateur précédent",
54
+ "command.message.next": "Message suivant",
55
+ "command.message.next.description": "Aller au message utilisateur suivant",
56
+ "command.model.choose": "Choisir le modèle",
57
+ "command.model.choose.description": "Sélectionner un modèle différent",
58
+ "command.mcp.toggle": "Basculer MCP",
59
+ "command.mcp.toggle.description": "Basculer les MCPs",
60
+ "command.agent.cycle": "Changer d'agent",
61
+ "command.agent.cycle.description": "Passer à l'agent suivant",
62
+ "command.agent.cycle.reverse": "Changer d'agent (inverse)",
63
+ "command.agent.cycle.reverse.description": "Passer à l'agent précédent",
64
+ "command.model.variant.cycle": "Changer l'effort de réflexion",
65
+ "command.model.variant.cycle.description": "Passer au niveau d'effort suivant",
66
+ "command.prompt.mode.shell": "Shell",
67
+ "command.prompt.mode.normal": "Prompt",
68
+ "command.permissions.autoaccept.enable": "Accepter automatiquement les permissions",
69
+ "command.permissions.autoaccept.disable": "Arrêter d'accepter automatiquement les permissions",
70
+ "command.workspace.toggle": "Basculer les espaces de travail",
71
+ "command.workspace.toggle.description": "Activer ou désactiver plusieurs espaces de travail dans la barre latérale",
72
+ "command.session.undo": "Annuler",
73
+ "command.session.undo.description": "Annuler le dernier message",
74
+ "command.session.redo": "Rétablir",
75
+ "command.session.redo.description": "Rétablir le dernier message annulé",
76
+ "command.session.compact": "Compacter la session",
77
+ "command.session.compact.description": "Résumer la session pour réduire la taille du contexte",
78
+ "command.session.fork": "Bifurquer à partir du message",
79
+ "command.session.fork.description": "Créer une nouvelle session à partir d'un message précédent",
80
+ "command.session.share": "Partager la session",
81
+ "command.session.share.description": "Partager cette session et copier l'URL dans le presse-papiers",
82
+ "command.session.unshare": "Ne plus partager la session",
83
+ "command.session.unshare.description": "Arrêter de partager cette session",
84
+ "palette.search.placeholder": "Rechercher des fichiers, des commandes et des sessions",
85
+ "palette.empty": "Aucun résultat trouvé",
86
+ "palette.group.commands": "Commandes",
87
+ "palette.group.files": "Fichiers",
88
+ "dialog.provider.search.placeholder": "Rechercher des fournisseurs",
89
+ "dialog.provider.empty": "Aucun fournisseur trouvé",
90
+ "dialog.provider.group.popular": "Populaire",
91
+ "dialog.provider.group.other": "Autre",
92
+ "dialog.provider.tag.recommended": "Recommandé",
93
+ "dialog.provider.opencode.note": "Modèles sélectionnés incluant Claude, GPT, Gemini et plus",
94
+ "dialog.provider.opencode.tagline": "Modèles optimisés et fiables",
95
+ "dialog.provider.opencodeGo.tagline": "Abonnement abordable pour tous",
96
+ "dialog.provider.anthropic.note": "Connectez-vous avec Claude Pro/Max ou une clé API",
97
+ "dialog.provider.copilot.note": "Connectez-vous avec Copilot ou une clé API",
98
+ "dialog.provider.openai.note": "Connectez-vous avec ChatGPT Pro/Plus ou une clé API",
99
+ "dialog.provider.google.note": "Modèles Gemini pour des réponses rapides et structurées",
100
+ "dialog.provider.openrouter.note": "Accédez à tous les modèles pris en charge depuis un seul fournisseur",
101
+ "dialog.provider.vercel.note": "Accès unifié aux modèles d'IA avec routage intelligent",
102
+ "dialog.model.select.title": "Sélectionner un modèle",
103
+ "dialog.model.search.placeholder": "Rechercher des modèles",
104
+ "dialog.model.empty": "Aucun résultat de modèle",
105
+ "dialog.model.manage": "Gérer les modèles",
106
+ "dialog.model.manage.description": "Personnalisez les modèles qui apparaissent dans le sélecteur.",
107
+ "dialog.model.manage.provider.toggle": "Basculer tous les modèles {{provider}}",
108
+ "dialog.model.unpaid.freeModels.title": "Modèles gratuits fournis par OpenCode",
109
+ "dialog.model.unpaid.addMore.title": "Ajouter plus de modèles de fournisseurs populaires",
110
+ "dialog.provider.viewAll": "Voir plus de fournisseurs",
111
+ "provider.connect.title": "Connecter {{provider}}",
112
+ "provider.connect.title.anthropicProMax": "Connexion avec Claude Pro/Max",
113
+ "provider.connect.selectMethod": "Sélectionnez la méthode de connexion pour {{provider}}.",
114
+ "provider.connect.method.apiKey": "Clé API",
115
+ "provider.connect.status.inProgress": "Autorisation en cours...",
116
+ "provider.connect.status.waiting": "En attente d'autorisation...",
117
+ "provider.connect.status.failed": "Échec de l'autorisation : {{error}}",
118
+ "provider.connect.apiKey.description":
119
+ "Entrez votre clé API {{provider}} pour connecter votre compte et utiliser les modèles {{provider}} dans OpenCode.",
120
+ "provider.connect.apiKey.label": "Clé API {{provider}}",
121
+ "provider.connect.apiKey.placeholder": "Clé API",
122
+ "provider.connect.apiKey.required": "La clé API est requise",
123
+ "provider.connect.opencodeZen.line1":
124
+ "OpenCode Zen vous donne accès à un ensemble sélectionné de modèles fiables et optimisés pour les agents de codage.",
125
+ "provider.connect.opencodeZen.line2":
126
+ "Avec une seule clé API, vous aurez accès à des modèles tels que Claude, GPT, Gemini, GLM et plus encore.",
127
+ "provider.connect.opencodeZen.visit.prefix": "Visitez ",
128
+ "provider.connect.opencodeZen.visit.link": "code.reign-labs.com/zen",
129
+ "provider.connect.opencodeZen.visit.suffix": " pour récupérer votre clé API.",
130
+ "provider.connect.oauth.code.visit.prefix": "Visitez ",
131
+ "provider.connect.oauth.code.visit.link": "ce lien",
132
+ "provider.connect.oauth.code.visit.suffix":
133
+ " pour récupérer votre code d'autorisation afin de connecter votre compte et utiliser les modèles {{provider}} dans OpenCode.",
134
+ "provider.connect.oauth.code.label": "Code d'autorisation {{method}}",
135
+ "provider.connect.oauth.code.placeholder": "Code d'autorisation",
136
+ "provider.connect.oauth.code.required": "Le code d'autorisation est requis",
137
+ "provider.connect.oauth.code.invalid": "Code d'autorisation invalide",
138
+ "provider.connect.oauth.auto.visit.prefix": "Visitez ",
139
+ "provider.connect.oauth.auto.visit.link": "ce lien",
140
+ "provider.connect.oauth.auto.visit.suffix":
141
+ " et entrez le code ci-dessous pour connecter votre compte et utiliser les modèles {{provider}} dans OpenCode.",
142
+ "provider.connect.oauth.auto.confirmationCode": "Code de confirmation",
143
+ "provider.connect.toast.connected.title": "{{provider}} connecté",
144
+ "provider.connect.toast.connected.description": "Les modèles {{provider}} sont maintenant disponibles.",
145
+ "provider.custom.title": "Fournisseur personnalisé",
146
+ "provider.custom.description.prefix": "Configurer un fournisseur compatible OpenAI. Voir la ",
147
+ "provider.custom.description.link": "doc de config fournisseur",
148
+ "provider.custom.description.suffix": ".",
149
+ "provider.custom.field.providerID.label": "ID du fournisseur",
150
+ "provider.custom.field.providerID.placeholder": "monfournisseur",
151
+ "provider.custom.field.providerID.description": "Lettres minuscules, chiffres, traits d'union ou tirets bas",
152
+ "provider.custom.field.name.label": "Nom d'affichage",
153
+ "provider.custom.field.name.placeholder": "Mon fournisseur IA",
154
+ "provider.custom.field.baseURL.label": "URL de base",
155
+ "provider.custom.field.baseURL.placeholder": "https://api.monfournisseur.com/v1",
156
+ "provider.custom.field.apiKey.label": "Clé API",
157
+ "provider.custom.field.apiKey.placeholder": "Clé API",
158
+ "provider.custom.field.apiKey.description": "Optionnel. Laisser vide si vous gérez l'auth via les en-têtes.",
159
+ "provider.custom.models.label": "Modèles",
160
+ "provider.custom.models.id.label": "ID",
161
+ "provider.custom.models.id.placeholder": "id-modele",
162
+ "provider.custom.models.name.label": "Nom",
163
+ "provider.custom.models.name.placeholder": "Nom d'affichage",
164
+ "provider.custom.models.remove": "Supprimer le modèle",
165
+ "provider.custom.models.add": "Ajouter un modèle",
166
+ "provider.custom.headers.label": "En-têtes (optionnel)",
167
+ "provider.custom.headers.key.label": "En-tête",
168
+ "provider.custom.headers.key.placeholder": "Nom-En-Tête",
169
+ "provider.custom.headers.value.label": "Valeur",
170
+ "provider.custom.headers.value.placeholder": "valeur",
171
+ "provider.custom.headers.remove": "Supprimer l'en-tête",
172
+ "provider.custom.headers.add": "Ajouter un en-tête",
173
+ "provider.custom.error.providerID.required": "L'ID du fournisseur est requis",
174
+ "provider.custom.error.providerID.format": "Utilisez des lettres minuscules, chiffres, traits d'union ou tirets bas",
175
+ "provider.custom.error.providerID.exists": "Cet ID de fournisseur existe déjà",
176
+ "provider.custom.error.name.required": "Le nom d'affichage est requis",
177
+ "provider.custom.error.baseURL.required": "L'URL de base est requise",
178
+ "provider.custom.error.baseURL.format": "Doit commencer par http:// ou https://",
179
+ "provider.custom.error.required": "Requis",
180
+ "provider.custom.error.duplicate": "Doublon",
181
+ "provider.disconnect.toast.disconnected.title": "{{provider}} déconnecté",
182
+ "provider.disconnect.toast.disconnected.description": "Les modèles {{provider}} ne sont plus disponibles.",
183
+ "model.tag.free": "Gratuit",
184
+ "model.tag.latest": "Dernier",
185
+ "model.provider.anthropic": "Anthropic",
186
+ "model.provider.openai": "OpenAI",
187
+ "model.provider.google": "Google",
188
+ "model.provider.xai": "xAI",
189
+ "model.provider.meta": "Meta",
190
+ "model.input.text": "texte",
191
+ "model.input.image": "image",
192
+ "model.input.audio": "audio",
193
+ "model.input.video": "vidéo",
194
+ "model.input.pdf": "pdf",
195
+ "model.tooltip.allows": "Autorise : {{inputs}}",
196
+ "model.tooltip.reasoning.allowed": "Autorise le raisonnement",
197
+ "model.tooltip.reasoning.none": "Sans raisonnement",
198
+ "model.tooltip.context": "Limite de contexte {{limit}}",
199
+ "common.search.placeholder": "Rechercher",
200
+ "common.goBack": "Retour",
201
+ "common.goForward": "Avancer",
202
+ "common.loading": "Chargement",
203
+ "common.loading.ellipsis": "...",
204
+ "common.cancel": "Annuler",
205
+ "common.connect": "Connecter",
206
+ "common.disconnect": "Déconnecter",
207
+ "common.continue": "Soumettre",
208
+ "common.submit": "Soumettre",
209
+ "common.save": "Enregistrer",
210
+ "common.saving": "Enregistrement...",
211
+ "common.default": "Défaut",
212
+ "common.attachment": "pièce jointe",
213
+ "prompt.placeholder.shell": "Entrez une commande shell...",
214
+ "prompt.placeholder.normal": 'Demandez n\'importe quoi... "{{example}}"',
215
+ "prompt.placeholder.simple": "Demandez n'importe quoi...",
216
+ "prompt.placeholder.summarizeComments": "Résumer les commentaires…",
217
+ "prompt.placeholder.summarizeComment": "Résumer le commentaire…",
218
+ "prompt.mode.shell": "Shell",
219
+ "prompt.mode.normal": "Prompt",
220
+ "prompt.mode.shell.exit": "esc pour quitter",
221
+ "prompt.example.1": "Corriger un TODO dans la base de code",
222
+ "prompt.example.2": "Quelle est la pile technique de ce projet ?",
223
+ "prompt.example.3": "Réparer les tests échoués",
224
+ "prompt.example.4": "Expliquer comment fonctionne l'authentification",
225
+ "prompt.example.5": "Trouver et corriger les vulnérabilités de sécurité",
226
+ "prompt.example.6": "Ajouter des tests unitaires pour le service utilisateur",
227
+ "prompt.example.7": "Refactoriser cette fonction pour être plus lisible",
228
+ "prompt.example.8": "Que signifie cette erreur ?",
229
+ "prompt.example.9": "Aidez-moi à déboguer ce problème",
230
+ "prompt.example.10": "Générer la documentation de l'API",
231
+ "prompt.example.11": "Optimiser les requêtes de base de données",
232
+ "prompt.example.12": "Ajouter une validation d'entrée",
233
+ "prompt.example.13": "Créer un nouveau composant pour...",
234
+ "prompt.example.14": "Comment déployer ce projet ?",
235
+ "prompt.example.15": "Vérifier mon code pour les meilleures pratiques",
236
+ "prompt.example.16": "Ajouter la gestion des erreurs à cette fonction",
237
+ "prompt.example.17": "Expliquer ce modèle regex",
238
+ "prompt.example.18": "Convertir ceci en TypeScript",
239
+ "prompt.example.19": "Ajouter des logs dans toute la base de code",
240
+ "prompt.example.20": "Quelles dépendances sont obsolètes ?",
241
+ "prompt.example.21": "Aidez-moi à écrire un script de migration",
242
+ "prompt.example.22": "Implémenter la mise en cache pour ce point de terminaison",
243
+ "prompt.example.23": "Ajouter la pagination à cette liste",
244
+ "prompt.example.24": "Créer une commande CLI pour...",
245
+ "prompt.example.25": "Comment fonctionnent les variables d'environnement ici ?",
246
+ "prompt.popover.emptyResults": "Aucun résultat correspondant",
247
+ "prompt.popover.emptyCommands": "Aucune commande correspondante",
248
+ "prompt.dropzone.label": "Déposez des images, des PDF ou des fichiers texte ici",
249
+ "prompt.dropzone.file.label": "Déposez pour @mentionner le fichier",
250
+ "prompt.slash.badge.custom": "personnalisé",
251
+ "prompt.slash.badge.skill": "skill",
252
+ "prompt.slash.badge.mcp": "mcp",
253
+ "prompt.context.active": "actif",
254
+ "prompt.context.includeActiveFile": "Inclure le fichier actif",
255
+ "prompt.context.removeActiveFile": "Retirer le fichier actif du contexte",
256
+ "prompt.context.removeFile": "Retirer le fichier du contexte",
257
+ "prompt.action.attachFile": "Joindre un fichier",
258
+ "prompt.attachment.remove": "Supprimer la pièce jointe",
259
+ "prompt.action.send": "Envoyer",
260
+ "prompt.action.stop": "Arrêter",
261
+ "prompt.toast.pasteUnsupported.title": "Pièce jointe non prise en charge",
262
+ "prompt.toast.pasteUnsupported.description":
263
+ "Seules les images, les PDF ou les fichiers texte peuvent être joints ici.",
264
+ "prompt.toast.modelAgentRequired.title": "Sélectionnez un agent et un modèle",
265
+ "prompt.toast.modelAgentRequired.description": "Choisissez un agent et un modèle avant d'envoyer un message.",
266
+ "prompt.toast.worktreeCreateFailed.title": "Échec de la création de l'arbre de travail",
267
+ "prompt.toast.sessionCreateFailed.title": "Échec de la création de la session",
268
+ "prompt.toast.shellSendFailed.title": "Échec de l'envoi de la commande shell",
269
+ "prompt.toast.commandSendFailed.title": "Échec de l'envoi de la commande",
270
+ "prompt.toast.promptSendFailed.title": "Échec de l'envoi du message",
271
+ "prompt.toast.promptSendFailed.description": "Impossible de récupérer la session",
272
+ "dialog.mcp.title": "MCPs",
273
+ "dialog.mcp.description": "{{enabled}} sur {{total}} activés",
274
+ "dialog.mcp.empty": "Aucun MCP configuré",
275
+ "dialog.lsp.empty": "LSPs détectés automatiquement par type de fichier",
276
+ "dialog.plugins.empty": "Plugins configurés dans reigncode.json",
277
+ "mcp.status.connected": "connecté",
278
+ "mcp.status.failed": "échoué",
279
+ "mcp.status.needs_auth": "nécessite auth",
280
+ "mcp.status.disabled": "désactivé",
281
+ "dialog.fork.empty": "Aucun message à partir duquel bifurquer",
282
+ "dialog.directory.search.placeholder": "Rechercher des dossiers",
283
+ "dialog.directory.empty": "Aucun dossier trouvé",
284
+ "dialog.server.title": "Serveurs",
285
+ "dialog.server.description": "Changez le serveur OpenCode auquel cette application se connecte.",
286
+ "dialog.server.search.placeholder": "Rechercher des serveurs",
287
+ "dialog.server.empty": "Aucun serveur pour l'instant",
288
+ "dialog.server.add.title": "Ajouter un serveur",
289
+ "dialog.server.add.url": "URL du serveur",
290
+ "dialog.server.add.placeholder": "http://localhost:4096",
291
+ "dialog.server.add.error": "Impossible de se connecter au serveur",
292
+ "dialog.server.add.checking": "Vérification...",
293
+ "dialog.server.add.button": "Ajouter un serveur",
294
+ "dialog.server.add.name": "Nom du serveur (optionnel)",
295
+ "dialog.server.add.namePlaceholder": "Localhost",
296
+ "dialog.server.add.username": "Nom d'utilisateur (optionnel)",
297
+ "dialog.server.add.password": "Mot de passe (optionnel)",
298
+ "dialog.server.edit.title": "Modifier le serveur",
299
+ "dialog.server.default.title": "Serveur par défaut",
300
+ "dialog.server.default.description":
301
+ "Se connecter à ce serveur au lancement de l'application au lieu de démarrer un serveur local. Nécessite un redémarrage.",
302
+ "dialog.server.default.none": "Aucun serveur sélectionné",
303
+ "dialog.server.default.set": "Définir le serveur actuel comme défaut",
304
+ "dialog.server.default.clear": "Effacer",
305
+ "dialog.server.action.remove": "Supprimer le serveur",
306
+ "dialog.server.menu.edit": "Modifier",
307
+ "dialog.server.menu.default": "Définir par défaut",
308
+ "dialog.server.menu.defaultRemove": "Supprimer par défaut",
309
+ "dialog.server.menu.delete": "Supprimer",
310
+ "dialog.server.current": "Serveur actuel",
311
+ "dialog.server.status.default": "Défaut",
312
+ "dialog.project.edit.title": "Modifier le projet",
313
+ "dialog.project.edit.name": "Nom",
314
+ "dialog.project.edit.icon": "Icône",
315
+ "dialog.project.edit.icon.alt": "Icône du projet",
316
+ "dialog.project.edit.icon.hint": "Cliquez ou faites glisser une image",
317
+ "dialog.project.edit.icon.recommended": "Recommandé : 128x128px",
318
+ "dialog.project.edit.color": "Couleur",
319
+ "dialog.project.edit.color.select": "Sélectionner la couleur {{color}}",
320
+ "dialog.project.edit.worktree.startup": "Script de démarrage de l'espace de travail",
321
+ "dialog.project.edit.worktree.startup.description":
322
+ "S'exécute après la création d'un nouvel espace de travail (arbre de travail).",
323
+ "dialog.project.edit.worktree.startup.placeholder": "p. ex. bun install",
324
+ "context.breakdown.title": "Répartition du contexte",
325
+ "context.breakdown.note":
326
+ "Répartition approximative des jetons d'entrée. \"Autre\" inclut les définitions d'outils et les frais généraux.",
327
+ "context.breakdown.system": "Système",
328
+ "context.breakdown.user": "Utilisateur",
329
+ "context.breakdown.assistant": "Assistant",
330
+ "context.breakdown.tool": "Appels d'outils",
331
+ "context.breakdown.other": "Autre",
332
+ "context.systemPrompt.title": "Prompt système",
333
+ "context.rawMessages.title": "Messages bruts",
334
+ "context.stats.session": "Session",
335
+ "context.stats.messages": "Messages",
336
+ "context.stats.provider": "Fournisseur",
337
+ "context.stats.model": "Modèle",
338
+ "context.stats.limit": "Limite de contexte",
339
+ "context.stats.totalTokens": "Total des jetons",
340
+ "context.stats.usage": "Utilisation",
341
+ "context.stats.inputTokens": "Jetons d'entrée",
342
+ "context.stats.outputTokens": "Jetons de sortie",
343
+ "context.stats.reasoningTokens": "Jetons de raisonnement",
344
+ "context.stats.cacheTokens": "Jetons de cache (lecture/écriture)",
345
+ "context.stats.userMessages": "Messages utilisateur",
346
+ "context.stats.assistantMessages": "Messages assistant",
347
+ "context.stats.totalCost": "Coût total",
348
+ "context.stats.sessionCreated": "Session créée",
349
+ "context.stats.lastActivity": "Dernière activité",
350
+ "context.usage.tokens": "Jetons",
351
+ "context.usage.usage": "Utilisation",
352
+ "context.usage.cost": "Coût",
353
+ "context.usage.clickToView": "Cliquez pour voir le contexte",
354
+ "context.usage.view": "Voir l'utilisation du contexte",
355
+ "language.en": "English",
356
+ "language.zh": "简体中文",
357
+ "language.zht": "繁體中文",
358
+ "language.ko": "한국어",
359
+ "language.de": "Deutsch",
360
+ "language.es": "Español",
361
+ "language.fr": "Français",
362
+ "language.da": "Dansk",
363
+ "language.ja": "日本語",
364
+ "language.pl": "Polski",
365
+ "language.ru": "Русский",
366
+ "language.ar": "العربية",
367
+ "language.no": "Norsk",
368
+ "language.br": "Português (Brasil)",
369
+ "language.bs": "Bosanski",
370
+ "language.th": "ไทย",
371
+ "language.tr": "Türkçe",
372
+ "toast.language.title": "Langue",
373
+ "toast.language.description": "Passé à {{language}}",
374
+ "toast.theme.title": "Thème changé",
375
+ "toast.scheme.title": "Schéma de couleurs",
376
+ "toast.workspace.enabled.title": "Espaces de travail activés",
377
+ "toast.workspace.enabled.description": "Plusieurs worktrees sont désormais affichés dans la barre latérale",
378
+ "toast.workspace.disabled.title": "Espaces de travail désactivés",
379
+ "toast.workspace.disabled.description": "Seul le worktree principal est affiché dans la barre latérale",
380
+ "toast.permissions.autoaccept.on.title": "Acceptation automatique des permissions",
381
+ "toast.permissions.autoaccept.on.description": "Les demandes de permission seront approuvées automatiquement",
382
+ "toast.permissions.autoaccept.off.title": "Acceptation automatique des permissions arrêtée",
383
+ "toast.permissions.autoaccept.off.description": "Les demandes de permission nécessiteront une approbation",
384
+ "toast.model.none.title": "Aucun modèle sélectionné",
385
+ "toast.model.none.description": "Connectez un fournisseur pour résumer cette session",
386
+ "toast.file.loadFailed.title": "Échec du chargement du fichier",
387
+ "toast.file.listFailed.title": "Échec de la liste des fichiers",
388
+ "toast.context.noLineSelection.title": "Aucune sélection de lignes",
389
+ "toast.context.noLineSelection.description": "Sélectionnez d'abord une plage de lignes dans un onglet de fichier.",
390
+ "toast.session.share.copyFailed.title": "Échec de la copie de l'URL dans le presse-papiers",
391
+ "toast.session.share.success.title": "Session partagée",
392
+ "toast.session.share.success.description": "URL de partage copiée dans le presse-papiers !",
393
+ "toast.session.share.failed.title": "Échec du partage de la session",
394
+ "toast.session.share.failed.description": "Une erreur s'est produite lors du partage de la session",
395
+ "toast.session.unshare.success.title": "Session non partagée",
396
+ "toast.session.unshare.success.description": "Session non partagée avec succès !",
397
+ "toast.session.unshare.failed.title": "Échec de l'annulation du partage",
398
+ "toast.session.unshare.failed.description": "Une erreur s'est produite lors de l'annulation du partage de la session",
399
+ "toast.session.listFailed.title": "Échec du chargement des sessions pour {{project}}",
400
+ "toast.update.title": "Mise à jour disponible",
401
+ "toast.update.description":
402
+ "Une nouvelle version d'OpenCode ({{version}}) est maintenant disponible pour installation.",
403
+ "toast.update.action.installRestart": "Installer et redémarrer",
404
+ "toast.update.action.notYet": "Pas encore",
405
+ "error.page.title": "Quelque chose s'est mal passé",
406
+ "error.page.description": "Une erreur s'est produite lors du chargement de l'application.",
407
+ "error.page.details.label": "Détails de l'erreur",
408
+ "error.page.action.restart": "Redémarrer",
409
+ "error.page.action.checking": "Vérification...",
410
+ "error.page.action.checkUpdates": "Vérifier les mises à jour",
411
+ "error.page.action.updateTo": "Mettre à jour vers {{version}}",
412
+ "error.page.report.prefix": "Veuillez signaler cette erreur à l'équipe OpenCode",
413
+ "error.page.report.discord": "sur Discord",
414
+ "error.page.version": "Version : {{version}}",
415
+ "error.dev.rootNotFound":
416
+ "Élément racine introuvable. Avez-vous oublié de l'ajouter à votre index.html ? Ou peut-être que l'attribut id est mal orthographié ?",
417
+ "error.globalSync.connectFailed":
418
+ "Impossible de se connecter au serveur. Y a-t-il un serveur en cours d'exécution à `{{url}}` ?",
419
+ "directory.error.invalidUrl": "Répertoire invalide dans l'URL.",
420
+ "error.chain.unknown": "Erreur inconnue",
421
+ "error.chain.causedBy": "Causé par :",
422
+ "error.chain.apiError": "Erreur API",
423
+ "error.chain.status": "Statut : {{status}}",
424
+ "error.chain.retryable": "Réessayable : {{retryable}}",
425
+ "error.chain.responseBody": "Corps de la réponse :\n{{body}}",
426
+ "error.chain.didYouMean": "Vouliez-vous dire : {{suggestions}}",
427
+ "error.chain.modelNotFound": "Modèle introuvable : {{provider}}/{{model}}",
428
+ "error.chain.checkConfig": "Vérifiez votre configuration (reigncode.json) pour les noms de fournisseur/modèle",
429
+ "error.chain.mcpFailed":
430
+ "Le serveur MCP \"{{name}}\" a échoué. Notez qu'OpenCode ne supporte pas encore l'authentification MCP.",
431
+ "error.chain.providerAuthFailed": "Échec de l'authentification du fournisseur ({{provider}}) : {{message}}",
432
+ "error.chain.providerInitFailed":
433
+ 'Échec de l\'initialisation du fournisseur "{{provider}}". Vérifiez les identifiants et la configuration.',
434
+ "error.chain.configJsonInvalid": "Le fichier de configuration à {{path}} n'est pas un JSON(C) valide",
435
+ "error.chain.configJsonInvalidWithMessage":
436
+ "Le fichier de configuration à {{path}} n'est pas un JSON(C) valide : {{message}}",
437
+ "error.chain.configDirectoryTypo":
438
+ 'Le répertoire "{{dir}}" dans {{path}} n\'est pas valide. Renommez le répertoire en "{{suggestion}}" ou supprimez-le. C\'est une faute de frappe courante.',
439
+ "error.chain.configFrontmatterError": "Échec de l'analyse du frontmatter dans {{path}} :\n{{message}}",
440
+ "error.chain.configInvalid": "Le fichier de configuration à {{path}} est invalide",
441
+ "error.chain.configInvalidWithMessage": "Le fichier de configuration à {{path}} est invalide : {{message}}",
442
+ "notification.permission.title": "Permission requise",
443
+ "notification.permission.description": "{{sessionTitle}} dans {{projectName}} a besoin d'une permission",
444
+ "notification.question.title": "Question",
445
+ "notification.question.description": "{{sessionTitle}} dans {{projectName}} a une question",
446
+ "notification.action.goToSession": "Aller à la session",
447
+ "notification.session.responseReady.title": "Réponse prête",
448
+ "notification.session.error.title": "Erreur de session",
449
+ "notification.session.error.fallbackDescription": "Une erreur s'est produite",
450
+ "home.recentProjects": "Projets récents",
451
+ "home.empty.title": "Aucun projet récent",
452
+ "home.empty.description": "Commencez par ouvrir un projet local",
453
+ "session.tab.session": "Session",
454
+ "session.tab.review": "Revue",
455
+ "session.tab.context": "Contexte",
456
+ "session.panel.reviewAndFiles": "Revue et fichiers",
457
+ "session.review.filesChanged": "{{count}} fichiers modifiés",
458
+ "session.review.change.one": "Modification",
459
+ "session.review.change.other": "Modifications",
460
+ "session.review.loadingChanges": "Chargement des modifications...",
461
+ "session.review.empty": "Aucune modification dans cette session pour l'instant",
462
+ "session.review.noChanges": "Aucune modification",
463
+ "session.review.noVcs": "Aucun système de contrôle de version Git détecté, modifications non affichées",
464
+ "session.review.noSnapshot":
465
+ "Le suivi des instantanés est désactivé dans la configuration, les modifications de session sont donc indisponibles",
466
+ "session.files.selectToOpen": "Sélectionnez un fichier à ouvrir",
467
+ "session.files.all": "Tous les fichiers",
468
+ "session.files.empty": "Aucun fichier",
469
+ "session.files.binaryContent": "Fichier binaire (le contenu ne peut pas être affiché)",
470
+ "session.messages.renderEarlier": "Afficher les messages précédents",
471
+ "session.messages.loadingEarlier": "Chargement des messages précédents...",
472
+ "session.messages.loadEarlier": "Charger les messages précédents",
473
+ "session.messages.loading": "Chargement des messages...",
474
+ "session.messages.jumpToLatest": "Aller au dernier",
475
+ "session.context.addToContext": "Ajouter {{selection}} au contexte",
476
+ "session.todo.title": "Tâches",
477
+ "session.todo.collapse": "Réduire",
478
+ "session.todo.expand": "Développer",
479
+ "session.followupDock.summary.one": "{{count}} message en file d'attente",
480
+ "session.followupDock.summary.other": "{{count}} messages en file d'attente",
481
+ "session.followupDock.sendNow": "Envoyer maintenant",
482
+ "session.followupDock.edit": "Modifier",
483
+ "session.followupDock.collapse": "Réduire les messages en file d'attente",
484
+ "session.followupDock.expand": "Développer les messages en file d'attente",
485
+ "session.revertDock.summary.one": "{{count}} message annulé",
486
+ "session.revertDock.summary.other": "{{count}} messages annulés",
487
+ "session.revertDock.collapse": "Réduire les messages annulés",
488
+ "session.revertDock.expand": "Développer les messages annulés",
489
+ "session.revertDock.restore": "Restaurer le message",
490
+ "session.new.title": "Créez ce que vous voulez",
491
+ "session.new.worktree.main": "Branche principale",
492
+ "session.new.worktree.mainWithBranch": "Branche principale ({{branch}})",
493
+ "session.new.worktree.create": "Créer un nouvel arbre de travail",
494
+ "session.new.lastModified": "Dernière modification",
495
+ "session.header.search.placeholder": "Rechercher {{project}}",
496
+ "session.header.searchFiles": "Rechercher des fichiers",
497
+ "session.header.openIn": "Ouvrir dans",
498
+ "session.header.open.action": "Ouvrir {{app}}",
499
+ "session.header.open.ariaLabel": "Ouvrir dans {{app}}",
500
+ "session.header.open.menu": "Options d'ouverture",
501
+ "session.header.open.copyPath": "Copier le chemin",
502
+ "status.popover.trigger": "Statut",
503
+ "status.popover.ariaLabel": "Configurations des serveurs",
504
+ "status.popover.tab.servers": "Serveurs",
505
+ "status.popover.tab.mcp": "MCP",
506
+ "status.popover.tab.lsp": "LSP",
507
+ "status.popover.tab.plugins": "Plugins",
508
+ "status.popover.action.manageServers": "Gérer les serveurs",
509
+ "session.share.popover.title": "Publier sur le web",
510
+ "session.share.popover.description.shared":
511
+ "Cette session est publique sur le web. Elle est accessible à toute personne disposant du lien.",
512
+ "session.share.popover.description.unshared":
513
+ "Partager la session publiquement sur le web. Elle sera accessible à toute personne disposant du lien.",
514
+ "session.share.action.share": "Partager",
515
+ "session.share.action.publish": "Publier",
516
+ "session.share.action.publishing": "Publication...",
517
+ "session.share.action.unpublish": "Dépublier",
518
+ "session.share.action.unpublishing": "Dépublication...",
519
+ "session.share.action.view": "Voir",
520
+ "session.share.copy.copied": "Copié",
521
+ "session.share.copy.copyLink": "Copier le lien",
522
+ "lsp.tooltip.none": "Aucun serveur LSP",
523
+ "lsp.label.connected": "{{count}} LSP",
524
+ "prompt.loading": "Chargement du prompt...",
525
+ "terminal.loading": "Chargement du terminal...",
526
+ "terminal.title": "Terminal",
527
+ "terminal.title.numbered": "Terminal {{number}}",
528
+ "terminal.close": "Fermer le terminal",
529
+ "terminal.connectionLost.title": "Connexion perdue",
530
+ "terminal.connectionLost.description":
531
+ "La connexion au terminal a été interrompue. Cela peut arriver lorsque le serveur redémarre.",
532
+ "common.closeTab": "Fermer l'onglet",
533
+ "common.dismiss": "Ignorer",
534
+ "common.requestFailed": "La demande a échoué",
535
+ "common.moreOptions": "Plus d'options",
536
+ "common.learnMore": "En savoir plus",
537
+ "common.rename": "Renommer",
538
+ "common.reset": "Réinitialiser",
539
+ "common.archive": "Archiver",
540
+ "common.delete": "Supprimer",
541
+ "common.close": "Fermer",
542
+ "common.edit": "Modifier",
543
+ "common.loadMore": "Charger plus",
544
+ "common.key.esc": "ESC",
545
+ "sidebar.menu.toggle": "Basculer le menu",
546
+ "sidebar.nav.projectsAndSessions": "Projets et sessions",
547
+ "sidebar.settings": "Paramètres",
548
+ "sidebar.help": "Aide",
549
+ "sidebar.workspaces.enable": "Activer les espaces de travail",
550
+ "sidebar.workspaces.disable": "Désactiver les espaces de travail",
551
+ "sidebar.gettingStarted.title": "Commencer",
552
+ "sidebar.gettingStarted.line1":
553
+ "OpenCode inclut des modèles gratuits pour que vous puissiez commencer immédiatement.",
554
+ "sidebar.gettingStarted.line2":
555
+ "Connectez n'importe quel fournisseur pour utiliser des modèles, y compris Claude, GPT, Gemini etc.",
556
+ "sidebar.project.recentSessions": "Sessions récentes",
557
+ "sidebar.project.viewAllSessions": "Voir toutes les sessions",
558
+ "sidebar.project.clearNotifications": "Effacer les notifications",
559
+ "app.name.desktop": "OpenCode Desktop",
560
+ "settings.section.desktop": "Bureau",
561
+ "settings.section.server": "Serveur",
562
+ "settings.tab.general": "Général",
563
+ "settings.tab.shortcuts": "Raccourcis",
564
+ "settings.desktop.section.wsl": "WSL",
565
+ "settings.desktop.wsl.title": "Intégration WSL",
566
+ "settings.desktop.wsl.description": "Exécuter le serveur OpenCode dans WSL sur Windows.",
567
+ "settings.general.section.appearance": "Apparence",
568
+ "settings.general.section.notifications": "Notifications système",
569
+ "settings.general.section.updates": "Mises à jour",
570
+ "settings.general.section.sounds": "Effets sonores",
571
+ "settings.general.section.feed": "Flux",
572
+ "settings.general.section.display": "Affichage",
573
+ "settings.general.row.language.title": "Langue",
574
+ "settings.general.row.language.description": "Changer la langue d'affichage pour OpenCode",
575
+ "settings.general.row.appearance.title": "Apparence",
576
+ "settings.general.row.appearance.description": "Personnaliser l'apparence d'OpenCode sur votre appareil",
577
+ "settings.general.row.colorScheme.title": "Schéma de couleurs",
578
+ "settings.general.row.colorScheme.description": "Choisissez si OpenCode suit le thème système, clair ou sombre",
579
+ "settings.general.row.theme.title": "Thème",
580
+ "settings.general.row.theme.description": "Personnaliser le thème d'OpenCode.",
581
+ "settings.general.row.font.title": "Police",
582
+ "settings.general.row.font.description": "Personnaliser la police mono utilisée dans les blocs de code",
583
+ "settings.general.row.followup.title": "Comportement de suivi",
584
+ "settings.general.row.followup.description":
585
+ "Choisissez si les messages de suivi dirigent immédiatement ou attendent dans une file d'attente",
586
+ "settings.general.row.followup.option.queue": "File d'attente",
587
+ "settings.general.row.followup.option.steer": "Diriger",
588
+ "settings.general.row.reasoningSummaries.title": "Afficher les résumés de raisonnement",
589
+ "settings.general.row.reasoningSummaries.description":
590
+ "Afficher les résumés de raisonnement du modèle dans la chronologie",
591
+ "settings.general.row.shellToolPartsExpanded.title": "Développer les parties de l'outil shell",
592
+ "settings.general.row.shellToolPartsExpanded.description":
593
+ "Afficher les parties de l'outil shell développées par défaut dans la chronologie",
594
+ "settings.general.row.editToolPartsExpanded.title": "Développer les parties de l'outil edit",
595
+ "settings.general.row.editToolPartsExpanded.description":
596
+ "Afficher les parties des outils edit, write et patch développées par défaut dans la chronologie",
597
+ "settings.general.row.wayland.title": "Utiliser Wayland natif",
598
+ "settings.general.row.wayland.description": "Désactiver le repli X11 sur Wayland. Nécessite un redémarrage.",
599
+ "settings.general.row.wayland.tooltip":
600
+ "Sur Linux avec des moniteurs à taux de rafraîchissement mixte, Wayland natif peut être plus stable.",
601
+ "settings.general.row.releaseNotes.title": "Notes de version",
602
+ "settings.general.row.releaseNotes.description": 'Afficher des pop-ups "Quoi de neuf" après les mises à jour',
603
+ "settings.updates.row.startup.title": "Vérifier les mises à jour au démarrage",
604
+ "settings.updates.row.startup.description": "Vérifier automatiquement les mises à jour au lancement d'OpenCode",
605
+ "settings.updates.row.check.title": "Vérifier les mises à jour",
606
+ "settings.updates.row.check.description": "Vérifier manuellement les mises à jour et installer si disponible",
607
+ "settings.updates.action.checkNow": "Vérifier maintenant",
608
+ "settings.updates.action.checking": "Vérification...",
609
+ "settings.updates.toast.latest.title": "Vous êtes à jour",
610
+ "settings.updates.toast.latest.description": "Vous utilisez la dernière version d'OpenCode.",
611
+ "font.option.ibmPlexMono": "IBM Plex Mono",
612
+ "font.option.cascadiaCode": "Cascadia Code",
613
+ "font.option.firaCode": "Fira Code",
614
+ "font.option.hack": "Hack",
615
+ "font.option.inconsolata": "Inconsolata",
616
+ "font.option.intelOneMono": "Intel One Mono",
617
+ "font.option.iosevka": "Iosevka",
618
+ "font.option.jetbrainsMono": "JetBrains Mono",
619
+ "font.option.mesloLgs": "Meslo LGS",
620
+ "font.option.robotoMono": "Roboto Mono",
621
+ "font.option.sourceCodePro": "Source Code Pro",
622
+ "font.option.ubuntuMono": "Ubuntu Mono",
623
+ "font.option.geistMono": "Geist Mono",
624
+ "sound.option.none": "Aucun",
625
+ "sound.option.alert01": "Alerte 01",
626
+ "sound.option.alert02": "Alerte 02",
627
+ "sound.option.alert03": "Alerte 03",
628
+ "sound.option.alert04": "Alerte 04",
629
+ "sound.option.alert05": "Alerte 05",
630
+ "sound.option.alert06": "Alerte 06",
631
+ "sound.option.alert07": "Alerte 07",
632
+ "sound.option.alert08": "Alerte 08",
633
+ "sound.option.alert09": "Alerte 09",
634
+ "sound.option.alert10": "Alerte 10",
635
+ "sound.option.bipbop01": "Bip-bop 01",
636
+ "sound.option.bipbop02": "Bip-bop 02",
637
+ "sound.option.bipbop03": "Bip-bop 03",
638
+ "sound.option.bipbop04": "Bip-bop 04",
639
+ "sound.option.bipbop05": "Bip-bop 05",
640
+ "sound.option.bipbop06": "Bip-bop 06",
641
+ "sound.option.bipbop07": "Bip-bop 07",
642
+ "sound.option.bipbop08": "Bip-bop 08",
643
+ "sound.option.bipbop09": "Bip-bop 09",
644
+ "sound.option.bipbop10": "Bip-bop 10",
645
+ "sound.option.staplebops01": "Staplebops 01",
646
+ "sound.option.staplebops02": "Staplebops 02",
647
+ "sound.option.staplebops03": "Staplebops 03",
648
+ "sound.option.staplebops04": "Staplebops 04",
649
+ "sound.option.staplebops05": "Staplebops 05",
650
+ "sound.option.staplebops06": "Staplebops 06",
651
+ "sound.option.staplebops07": "Staplebops 07",
652
+ "sound.option.nope01": "Non 01",
653
+ "sound.option.nope02": "Non 02",
654
+ "sound.option.nope03": "Non 03",
655
+ "sound.option.nope04": "Non 04",
656
+ "sound.option.nope05": "Non 05",
657
+ "sound.option.nope06": "Non 06",
658
+ "sound.option.nope07": "Non 07",
659
+ "sound.option.nope08": "Non 08",
660
+ "sound.option.nope09": "Non 09",
661
+ "sound.option.nope10": "Non 10",
662
+ "sound.option.nope11": "Non 11",
663
+ "sound.option.nope12": "Non 12",
664
+ "sound.option.yup01": "Oui 01",
665
+ "sound.option.yup02": "Oui 02",
666
+ "sound.option.yup03": "Oui 03",
667
+ "sound.option.yup04": "Oui 04",
668
+ "sound.option.yup05": "Oui 05",
669
+ "sound.option.yup06": "Oui 06",
670
+ "settings.general.notifications.agent.title": "Agent",
671
+ "settings.general.notifications.agent.description":
672
+ "Afficher une notification système lorsque l'agent a terminé ou nécessite une attention",
673
+ "settings.general.notifications.permissions.title": "Permissions",
674
+ "settings.general.notifications.permissions.description":
675
+ "Afficher une notification système lorsqu'une permission est requise",
676
+ "settings.general.notifications.errors.title": "Erreurs",
677
+ "settings.general.notifications.errors.description": "Afficher une notification système lorsqu'une erreur se produit",
678
+ "settings.general.sounds.agent.title": "Agent",
679
+ "settings.general.sounds.agent.description": "Jouer un son lorsque l'agent a terminé ou nécessite une attention",
680
+ "settings.general.sounds.permissions.title": "Permissions",
681
+ "settings.general.sounds.permissions.description": "Jouer un son lorsqu'une permission est requise",
682
+ "settings.general.sounds.errors.title": "Erreurs",
683
+ "settings.general.sounds.errors.description": "Jouer un son lorsqu'une erreur se produit",
684
+ "settings.shortcuts.title": "Raccourcis clavier",
685
+ "settings.shortcuts.reset.button": "Rétablir les défauts",
686
+ "settings.shortcuts.reset.toast.title": "Raccourcis réinitialisés",
687
+ "settings.shortcuts.reset.toast.description": "Les raccourcis clavier ont été réinitialisés aux valeurs par défaut.",
688
+ "settings.shortcuts.conflict.title": "Raccourci déjà utilisé",
689
+ "settings.shortcuts.conflict.description": "{{keybind}} est déjà assigné à {{titles}}.",
690
+ "settings.shortcuts.unassigned": "Non assigné",
691
+ "settings.shortcuts.pressKeys": "Appuyez sur les touches",
692
+ "settings.shortcuts.search.placeholder": "Rechercher des raccourcis",
693
+ "settings.shortcuts.search.empty": "Aucun raccourci trouvé",
694
+ "settings.shortcuts.group.general": "Général",
695
+ "settings.shortcuts.group.session": "Session",
696
+ "settings.shortcuts.group.navigation": "Navigation",
697
+ "settings.shortcuts.group.modelAndAgent": "Modèle et agent",
698
+ "settings.shortcuts.group.terminal": "Terminal",
699
+ "settings.shortcuts.group.prompt": "Prompt",
700
+ "settings.providers.title": "Fournisseurs",
701
+ "settings.providers.description": "Les paramètres des fournisseurs seront configurables ici.",
702
+ "settings.providers.section.connected": "Fournisseurs connectés",
703
+ "settings.providers.connected.empty": "Aucun fournisseur connecté",
704
+ "settings.providers.section.popular": "Fournisseurs populaires",
705
+ "settings.providers.tag.environment": "Environnement",
706
+ "settings.providers.tag.config": "Configuration",
707
+ "settings.providers.tag.custom": "Personnalisé",
708
+ "settings.providers.tag.other": "Autre",
709
+ "settings.models.title": "Modèles",
710
+ "settings.models.description": "Les paramètres des modèles seront configurables ici.",
711
+ "settings.agents.title": "Agents",
712
+ "settings.agents.description": "Les paramètres des agents seront configurables ici.",
713
+ "settings.commands.title": "Commandes",
714
+ "settings.commands.description": "Les paramètres des commandes seront configurables ici.",
715
+ "settings.mcp.title": "MCP",
716
+ "settings.mcp.description": "Les paramètres MCP seront configurables ici.",
717
+ "settings.permissions.title": "Permissions",
718
+ "settings.permissions.description": "Contrôlez les outils que le serveur peut utiliser par défaut.",
719
+ "settings.permissions.section.tools": "Outils",
720
+ "settings.permissions.toast.updateFailed.title": "Échec de la mise à jour des permissions",
721
+ "settings.permissions.action.allow": "Autoriser",
722
+ "settings.permissions.action.ask": "Demander",
723
+ "settings.permissions.action.deny": "Refuser",
724
+ "settings.permissions.tool.read.title": "Lire",
725
+ "settings.permissions.tool.read.description": "Lecture d'un fichier (correspond au chemin du fichier)",
726
+ "settings.permissions.tool.edit.title": "Modifier",
727
+ "settings.permissions.tool.edit.description":
728
+ "Modifier des fichiers, y compris les modifications, écritures, patchs et multi-modifications",
729
+ "settings.permissions.tool.glob.title": "Glob",
730
+ "settings.permissions.tool.glob.description": "Correspondre aux fichiers utilisant des modèles glob",
731
+ "settings.permissions.tool.grep.title": "Grep",
732
+ "settings.permissions.tool.grep.description":
733
+ "Rechercher dans le contenu des fichiers à l'aide d'expressions régulières",
734
+ "settings.permissions.tool.list.title": "Lister",
735
+ "settings.permissions.tool.list.description": "Lister les fichiers dans un répertoire",
736
+ "settings.permissions.tool.bash.title": "Bash",
737
+ "settings.permissions.tool.bash.description": "Exécuter des commandes shell",
738
+ "settings.permissions.tool.task.title": "Tâche",
739
+ "settings.permissions.tool.task.description": "Lancer des sous-agents",
740
+ "settings.permissions.tool.skill.title": "Compétence",
741
+ "settings.permissions.tool.skill.description": "Charger une compétence par son nom",
742
+ "settings.permissions.tool.lsp.title": "LSP",
743
+ "settings.permissions.tool.lsp.description": "Exécuter des requêtes de serveur de langage",
744
+ "settings.permissions.tool.todoread.title": "Lire Todo",
745
+ "settings.permissions.tool.todoread.description": "Lire la liste de tâches",
746
+ "settings.permissions.tool.todowrite.title": "Écrire Todo",
747
+ "settings.permissions.tool.todowrite.description": "Mettre à jour la liste de tâches",
748
+ "settings.permissions.tool.webfetch.title": "Récupération Web",
749
+ "settings.permissions.tool.webfetch.description": "Récupérer le contenu d'une URL",
750
+ "settings.permissions.tool.websearch.title": "Recherche Web",
751
+ "settings.permissions.tool.websearch.description": "Rechercher sur le web",
752
+ "settings.permissions.tool.codesearch.title": "Recherche de code",
753
+ "settings.permissions.tool.codesearch.description": "Rechercher du code sur le web",
754
+ "settings.permissions.tool.external_directory.title": "Répertoire externe",
755
+ "settings.permissions.tool.external_directory.description": "Accéder aux fichiers en dehors du répertoire du projet",
756
+ "settings.permissions.tool.doom_loop.title": "Boucle infernale",
757
+ "settings.permissions.tool.doom_loop.description": "Détecter les appels d'outils répétés avec une entrée identique",
758
+ "session.delete.failed.title": "Échec de la suppression de la session",
759
+ "session.delete.title": "Supprimer la session",
760
+ "session.delete.confirm": 'Supprimer la session "{{name}}" ?',
761
+ "session.delete.button": "Supprimer la session",
762
+ "workspace.new": "Nouvel espace de travail",
763
+ "workspace.type.local": "local",
764
+ "workspace.type.sandbox": "bac à sable",
765
+ "workspace.create.failed.title": "Échec de la création de l'espace de travail",
766
+ "workspace.delete.failed.title": "Échec de la suppression de l'espace de travail",
767
+ "workspace.resetting.title": "Réinitialisation de l'espace de travail",
768
+ "workspace.resetting.description": "Cela peut prendre une minute.",
769
+ "workspace.reset.failed.title": "Échec de la réinitialisation de l'espace de travail",
770
+ "workspace.reset.success.title": "Espace de travail réinitialisé",
771
+ "workspace.reset.success.description": "L'espace de travail correspond maintenant à la branche par défaut.",
772
+ "workspace.error.stillPreparing": "L'espace de travail est encore en cours de préparation",
773
+ "workspace.status.checking": "Vérification des modifications non fusionnées...",
774
+ "workspace.status.error": "Impossible de vérifier le statut git.",
775
+ "workspace.status.clean": "Aucune modification non fusionnée détectée.",
776
+ "workspace.status.dirty": "Modifications non fusionnées détectées dans cet espace de travail.",
777
+ "workspace.delete.title": "Supprimer l'espace de travail",
778
+ "workspace.delete.confirm": 'Supprimer l\'espace de travail "{{name}}" ?',
779
+ "workspace.delete.button": "Supprimer l'espace de travail",
780
+ "workspace.reset.title": "Réinitialiser l'espace de travail",
781
+ "workspace.reset.confirm": 'Réinitialiser l\'espace de travail "{{name}}" ?',
782
+ "workspace.reset.button": "Réinitialiser l'espace de travail",
783
+ "workspace.reset.archived.none": "Aucune session active ne sera archivée.",
784
+ "workspace.reset.archived.one": "1 session sera archivée.",
785
+ "workspace.reset.archived.many": "{{count}} sessions seront archivées.",
786
+ "workspace.reset.note": "Cela réinitialisera l'espace de travail pour correspondre à la branche par défaut.",
787
+ "common.open": "Ouvrir",
788
+ "dialog.releaseNotes.action.getStarted": "Commencer",
789
+ "dialog.releaseNotes.action.next": "Suivant",
790
+ "dialog.releaseNotes.action.hideFuture": "Ne plus afficher à l'avenir",
791
+ "dialog.releaseNotes.media.alt": "Aperçu de la version",
792
+ "toast.project.reloadFailed.title": "Échec du rechargement de {{project}}",
793
+ "error.server.invalidConfiguration": "Configuration invalide",
794
+ "common.moreCountSuffix": " (+{{count}} de plus)",
795
+ "common.time.justNow": "À l'instant",
796
+ "common.time.minutesAgo.short": "il y a {{count}}m",
797
+ "common.time.hoursAgo.short": "il y a {{count}}h",
798
+ "common.time.daysAgo.short": "il y a {{count}}j",
799
+ "settings.providers.connected.environmentDescription": "Connecté à partir de vos variables d'environnement",
800
+ "settings.providers.custom.description": "Ajouter un fournisseur compatible avec OpenAI via l'URL de base.",
801
+
802
+ "app.server.unreachable": "Impossible de joindre {{server}}",
803
+ "app.server.retrying": "Nouvelle tentative automatique...",
804
+ "app.server.otherServers": "Autres serveurs",
805
+ "dialog.server.add.usernamePlaceholder": "nom d'utilisateur",
806
+ "dialog.server.add.passwordPlaceholder": "mot de passe",
807
+ "server.row.noUsername": "aucun nom d'utilisateur",
808
+ "session.review.noVcs.createGit.title": "Créer un dépôt Git",
809
+ "session.review.noVcs.createGit.description": "Suivre, examiner et annuler les modifications dans ce projet",
810
+ "session.review.noVcs.createGit.actionLoading": "Création du dépôt Git...",
811
+ "session.review.noVcs.createGit.action": "Créer un dépôt Git",
812
+ "session.todo.progress": "{{done}} tâches sur {{total}} terminées",
813
+ "session.question.progress": "{{current}} questions sur {{total}}",
814
+ "session.header.open.finder": "Finder",
815
+ "session.header.open.fileExplorer": "Explorateur de fichiers",
816
+ "session.header.open.fileManager": "Gestionnaire de fichiers",
817
+ "session.header.open.app.vscode": "VS Code",
818
+ "session.header.open.app.cursor": "Cursor",
819
+ "session.header.open.app.zed": "Zed",
820
+ "session.header.open.app.textmate": "TextMate",
821
+ "session.header.open.app.antigravity": "Antigravity",
822
+ "session.header.open.app.terminal": "Terminal",
823
+ "session.header.open.app.iterm2": "iTerm2",
824
+ "session.header.open.app.ghostty": "Ghostty",
825
+ "session.header.open.app.warp": "Warp",
826
+ "session.header.open.app.xcode": "Xcode",
827
+ "session.header.open.app.androidStudio": "Android Studio",
828
+ "session.header.open.app.powershell": "PowerShell",
829
+ "session.header.open.app.sublimeText": "Sublime Text",
830
+ "debugBar.ariaLabel": "Diagnostics de performance de développement",
831
+ "debugBar.na": "n/a",
832
+ "debugBar.nav.label": "NAV",
833
+ "debugBar.nav.tip":
834
+ "Dernière transition de route terminée touchant une page de session, mesurée du début du routeur jusqu'au premier affichage après stabilisation.",
835
+ "debugBar.fps.label": "FPS",
836
+ "debugBar.fps.tip": "Images par seconde glissantes sur les 5 dernières secondes.",
837
+ "debugBar.frame.label": "FRAME",
838
+ "debugBar.frame.tip": "Pire temps d'image sur les 5 dernières secondes.",
839
+ "debugBar.jank.label": "JANK",
840
+ "debugBar.jank.tip": "Images de plus de 32ms au cours des 5 dernières secondes.",
841
+ "debugBar.long.label": "LONG",
842
+ "debugBar.long.tip":
843
+ "Temps bloqué et nombre de tâches longues au cours des 5 dernières secondes. Tâche max : {{max}}.",
844
+ "debugBar.delay.label": "DELAY",
845
+ "debugBar.delay.tip": "Pire délai d'entrée observé au cours des 5 dernières secondes.",
846
+ "debugBar.inp.label": "INP",
847
+ "debugBar.inp.tip":
848
+ "Durée approximative d'interaction au cours des 5 dernières secondes. Ceci est similaire à INP, pas le INP officiel des Web Vitals.",
849
+ "debugBar.cls.label": "CLS",
850
+ "debugBar.cls.tip": "Décalage cumulatif de la mise en page pour la durée de vie actuelle de l'application.",
851
+ "debugBar.mem.label": "MEM",
852
+ "debugBar.mem.tipUnavailable": "Tas JS utilisé vs limite de tas. Chromium uniquement.",
853
+ "debugBar.mem.tip": "Tas JS utilisé vs limite de tas. {{used}} sur {{limit}}.",
854
+ "common.key.ctrl": "Ctrl",
855
+ "common.key.alt": "Alt",
856
+ "common.key.shift": "Maj",
857
+ "common.key.meta": "Méta",
858
+ "common.key.space": "Espace",
859
+ "common.key.backspace": "Retour arrière",
860
+ "common.key.enter": "Entrée",
861
+ "common.key.tab": "Tab",
862
+ "common.key.delete": "Suppr",
863
+ "common.key.home": "Début",
864
+ "common.key.end": "Fin",
865
+ "common.key.pageUp": "Page précédente",
866
+ "common.key.pageDown": "Page suivante",
867
+ "common.key.insert": "Inser",
868
+ "common.unknown": "inconnu",
869
+ "error.page.circular": "[Circulaire]",
870
+ "error.globalSDK.noServerAvailable": "Aucun serveur disponible",
871
+ "error.globalSDK.serverNotAvailable": "Serveur non disponible",
872
+ "error.childStore.persistedCacheCreateFailed": "Échec de la création du cache persistant",
873
+ "error.childStore.persistedProjectMetadataCreateFailed":
874
+ "Échec de la création des métadonnées de projet persistantes",
875
+ "error.childStore.persistedProjectIconCreateFailed": "Échec de la création de l'icône de projet persistante",
876
+ "error.childStore.storeCreateFailed": "Échec de la création du stockage",
877
+ "terminal.connectionLost.abnormalClose": "WebSocket fermé anormalement : {{code}}",
878
+ }