@ai-development-environment/server 0.0.43 → 0.0.44

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 (508) hide show
  1. package/package.json +1 -1
  2. package/standalone/.next/BUILD_ID +1 -1
  3. package/standalone/.next/build-manifest.json +3 -3
  4. package/standalone/.next/prerender-manifest.json +3 -3
  5. package/standalone/.next/server/app/[locale]/actions/page.js.nft.json +1 -1
  6. package/standalone/.next/server/app/[locale]/actions/page_client-reference-manifest.js +1 -1
  7. package/standalone/.next/server/app/[locale]/actions-cache/page.js.nft.json +1 -1
  8. package/standalone/.next/server/app/[locale]/actions-cache/page_client-reference-manifest.js +1 -1
  9. package/standalone/.next/server/app/[locale]/agents/[id]/page.js.nft.json +1 -1
  10. package/standalone/.next/server/app/[locale]/agents/[id]/page_client-reference-manifest.js +1 -1
  11. package/standalone/.next/server/app/[locale]/agents/page.js.nft.json +1 -1
  12. package/standalone/.next/server/app/[locale]/agents/page_client-reference-manifest.js +1 -1
  13. package/standalone/.next/server/app/[locale]/analytics-events/page.js.nft.json +1 -1
  14. package/standalone/.next/server/app/[locale]/analytics-events/page_client-reference-manifest.js +1 -1
  15. package/standalone/.next/server/app/[locale]/build-data/page.js.nft.json +1 -1
  16. package/standalone/.next/server/app/[locale]/build-data/page_client-reference-manifest.js +1 -1
  17. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page.js.nft.json +1 -1
  18. package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page_client-reference-manifest.js +1 -1
  19. package/standalone/.next/server/app/[locale]/builds/[buildId]/page.js.nft.json +1 -1
  20. package/standalone/.next/server/app/[locale]/builds/[buildId]/page_client-reference-manifest.js +1 -1
  21. package/standalone/.next/server/app/[locale]/builds/page.js.nft.json +1 -1
  22. package/standalone/.next/server/app/[locale]/builds/page_client-reference-manifest.js +1 -1
  23. package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page.js.nft.json +1 -1
  24. package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page_client-reference-manifest.js +1 -1
  25. package/standalone/.next/server/app/[locale]/codebases/page.js.nft.json +1 -1
  26. package/standalone/.next/server/app/[locale]/codebases/page_client-reference-manifest.js +1 -1
  27. package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page.js.nft.json +1 -1
  28. package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page_client-reference-manifest.js +1 -1
  29. package/standalone/.next/server/app/[locale]/comments/page.js.nft.json +1 -1
  30. package/standalone/.next/server/app/[locale]/comments/page_client-reference-manifest.js +1 -1
  31. package/standalone/.next/server/app/[locale]/console-logs/page.js.nft.json +1 -1
  32. package/standalone/.next/server/app/[locale]/console-logs/page_client-reference-manifest.js +1 -1
  33. package/standalone/.next/server/app/[locale]/credentials/page.js.nft.json +1 -1
  34. package/standalone/.next/server/app/[locale]/credentials/page_client-reference-manifest.js +1 -1
  35. package/standalone/.next/server/app/[locale]/devices/[id]/page.js.nft.json +1 -1
  36. package/standalone/.next/server/app/[locale]/devices/[id]/page_client-reference-manifest.js +1 -1
  37. package/standalone/.next/server/app/[locale]/devices/enroll/page.js.nft.json +1 -1
  38. package/standalone/.next/server/app/[locale]/devices/enroll/page_client-reference-manifest.js +1 -1
  39. package/standalone/.next/server/app/[locale]/devices/page.js.nft.json +1 -1
  40. package/standalone/.next/server/app/[locale]/devices/page_client-reference-manifest.js +1 -1
  41. package/standalone/.next/server/app/[locale]/jira/cache/page.js.nft.json +1 -1
  42. package/standalone/.next/server/app/[locale]/jira/cache/page_client-reference-manifest.js +1 -1
  43. package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page.js.nft.json +1 -1
  44. package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
  45. package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page.js.nft.json +1 -1
  46. package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
  47. package/standalone/.next/server/app/[locale]/jira/tickets/page.js.nft.json +1 -1
  48. package/standalone/.next/server/app/[locale]/jira/tickets/page_client-reference-manifest.js +1 -1
  49. package/standalone/.next/server/app/[locale]/jobs/[jobId]/page.js.nft.json +1 -1
  50. package/standalone/.next/server/app/[locale]/jobs/[jobId]/page_client-reference-manifest.js +1 -1
  51. package/standalone/.next/server/app/[locale]/notifications/page.js.nft.json +1 -1
  52. package/standalone/.next/server/app/[locale]/notifications/page_client-reference-manifest.js +1 -1
  53. package/standalone/.next/server/app/[locale]/page.js.nft.json +1 -1
  54. package/standalone/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
  55. package/standalone/.next/server/app/[locale]/provisioning-profiles/[profileId]/page.js.nft.json +1 -1
  56. package/standalone/.next/server/app/[locale]/provisioning-profiles/[profileId]/page_client-reference-manifest.js +1 -1
  57. package/standalone/.next/server/app/[locale]/provisioning-profiles/page.js.nft.json +1 -1
  58. package/standalone/.next/server/app/[locale]/provisioning-profiles/page_client-reference-manifest.js +1 -1
  59. package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page.js.nft.json +1 -1
  60. package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page_client-reference-manifest.js +1 -1
  61. package/standalone/.next/server/app/[locale]/pull-requests/page.js.nft.json +1 -1
  62. package/standalone/.next/server/app/[locale]/pull-requests/page_client-reference-manifest.js +1 -1
  63. package/standalone/.next/server/app/[locale]/push-notifications/page.js.nft.json +1 -1
  64. package/standalone/.next/server/app/[locale]/push-notifications/page_client-reference-manifest.js +1 -1
  65. package/standalone/.next/server/app/[locale]/settings/page.js.nft.json +1 -1
  66. package/standalone/.next/server/app/[locale]/settings/page_client-reference-manifest.js +1 -1
  67. package/standalone/.next/server/app/[locale]/skills/[skillId]/page.js.nft.json +1 -1
  68. package/standalone/.next/server/app/[locale]/skills/[skillId]/page_client-reference-manifest.js +1 -1
  69. package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page.js.nft.json +1 -1
  70. package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page_client-reference-manifest.js +1 -1
  71. package/standalone/.next/server/app/[locale]/skills/groups/page.js.nft.json +1 -1
  72. package/standalone/.next/server/app/[locale]/skills/groups/page_client-reference-manifest.js +1 -1
  73. package/standalone/.next/server/app/[locale]/skills/page.js.nft.json +1 -1
  74. package/standalone/.next/server/app/[locale]/skills/page_client-reference-manifest.js +1 -1
  75. package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page.js.nft.json +1 -1
  76. package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page_client-reference-manifest.js +1 -1
  77. package/standalone/.next/server/app/[locale]/tools/page.js.nft.json +1 -1
  78. package/standalone/.next/server/app/[locale]/tools/page_client-reference-manifest.js +1 -1
  79. package/standalone/.next/server/app/[locale]/unified-events/page.js.nft.json +1 -1
  80. package/standalone/.next/server/app/[locale]/unified-events/page_client-reference-manifest.js +1 -1
  81. package/standalone/.next/server/app/[locale]/usage/page.js.nft.json +1 -1
  82. package/standalone/.next/server/app/[locale]/usage/page_client-reference-manifest.js +1 -1
  83. package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page.js.nft.json +1 -1
  84. package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page_client-reference-manifest.js +1 -1
  85. package/standalone/.next/server/app/[locale]/worktrees/page.js.nft.json +1 -1
  86. package/standalone/.next/server/app/[locale]/worktrees/page_client-reference-manifest.js +1 -1
  87. package/standalone/.next/server/app/_global-error.html +1 -1
  88. package/standalone/.next/server/app/_global-error.rsc +1 -1
  89. package/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  90. package/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  91. package/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  92. package/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  93. package/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  94. package/standalone/.next/server/app/_not-found.html +1 -1
  95. package/standalone/.next/server/app/_not-found.rsc +1 -1
  96. package/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  97. package/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  98. package/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  99. package/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  100. package/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  101. package/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  102. package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js +1 -1
  103. package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js.nft.json +1 -1
  104. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route.js +1 -1
  105. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route.js.nft.json +1 -1
  106. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/route.js +1 -1
  107. package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/route.js.nft.json +1 -1
  108. package/standalone/.next/server/app/api/codebases/by-path/route.js +1 -1
  109. package/standalone/.next/server/app/api/codebases/by-path/route.js.nft.json +1 -1
  110. package/standalone/.next/server/app/api/codebases/route.js +1 -1
  111. package/standalone/.next/server/app/api/codebases/route.js.nft.json +1 -1
  112. package/standalone/.next/server/app/api/graphql/route.js +1 -1
  113. package/standalone/.next/server/app/api/graphql/route.js.nft.json +1 -1
  114. package/standalone/.next/server/app/api/ios/apns-devices/route.js +1 -1
  115. package/standalone/.next/server/app/api/ios/apns-devices/route.js.nft.json +1 -1
  116. package/standalone/.next/server/app/api/ios/devices/export.tsv/route.js +1 -1
  117. package/standalone/.next/server/app/api/ios/devices/export.tsv/route.js.nft.json +1 -1
  118. package/standalone/.next/server/app/api/ios/enrollment/start/route.js +1 -1
  119. package/standalone/.next/server/app/api/ios/enrollment/start/route.js.nft.json +1 -1
  120. package/standalone/.next/server/app/api/ios/enrollment-profile/route.js +1 -1
  121. package/standalone/.next/server/app/api/ios/enrollment-profile/route.js.nft.json +1 -1
  122. package/standalone/.next/server/app/api/ios/profile-response/route.js +1 -1
  123. package/standalone/.next/server/app/api/ios/profile-response/route.js.nft.json +1 -1
  124. package/standalone/.next/server/app/api/mcp/route.js +1 -1
  125. package/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  126. package/standalone/.next/server/app/api/openapi.json/route.js +1 -1
  127. package/standalone/.next/server/app/api/openapi.json/route.js.nft.json +1 -1
  128. package/standalone/.next/server/app/api/telemetry/analytics-events/route.js +1 -1
  129. package/standalone/.next/server/app/api/telemetry/analytics-events/route.js.nft.json +1 -1
  130. package/standalone/.next/server/app/api/telemetry/console-logs/route.js +1 -1
  131. package/standalone/.next/server/app/api/telemetry/console-logs/route.js.nft.json +1 -1
  132. package/standalone/.next/server/app/api/telemetry/export/route.js +1 -1
  133. package/standalone/.next/server/app/api/telemetry/export/route.js.nft.json +1 -1
  134. package/standalone/.next/server/app/api/tools/call/route.js +1 -1
  135. package/standalone/.next/server/app/api/tools/call/route.js.nft.json +1 -1
  136. package/standalone/.next/server/app/api/tools/catalog/route.js +1 -1
  137. package/standalone/.next/server/app/api/tools/catalog/route.js.nft.json +1 -1
  138. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js +1 -1
  139. package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js.nft.json +1 -1
  140. package/standalone/.next/server/chunks/{[root-of-the-server]__00h1t-5._.js → [root-of-the-server]__0-ptbns._.js} +1 -1
  141. package/standalone/.next/server/chunks/{[root-of-the-server]__0lrv7jk._.js → [root-of-the-server]__0-rk-gw._.js} +1 -1
  142. package/standalone/.next/server/chunks/{[root-of-the-server]__0783dgt._.js → [root-of-the-server]__0-siu15._.js} +1 -1
  143. package/standalone/.next/server/chunks/{[root-of-the-server]__0fbv1bw._.js → [root-of-the-server]__00l1ur7._.js} +1 -1
  144. package/standalone/.next/server/chunks/{[root-of-the-server]__09--bpf._.js → [root-of-the-server]__00pz9u-._.js} +1 -1
  145. package/standalone/.next/server/chunks/{[root-of-the-server]__00pg8ki._.js → [root-of-the-server]__00q730m._.js} +1 -1
  146. package/standalone/.next/server/chunks/{[root-of-the-server]__2195vvu._.js → [root-of-the-server]__03l7uod._.js} +2 -2
  147. package/standalone/.next/server/chunks/{[root-of-the-server]__09n1yz-._.js → [root-of-the-server]__04ytt8c._.js} +1 -1
  148. package/standalone/.next/server/chunks/{[root-of-the-server]__1t1-x5a._.js → [root-of-the-server]__05l-vh9._.js} +1 -1
  149. package/standalone/.next/server/chunks/{[root-of-the-server]__0gyqdmk._.js → [root-of-the-server]__05o3hc7._.js} +1 -1
  150. package/standalone/.next/server/chunks/{[root-of-the-server]__0kmxj4m._.js → [root-of-the-server]__0661gy0._.js} +1 -1
  151. package/standalone/.next/server/chunks/{[root-of-the-server]__03i41aw._.js → [root-of-the-server]__06v-y44._.js} +1 -1
  152. package/standalone/.next/server/chunks/{[root-of-the-server]__027a5vb._.js → [root-of-the-server]__0730ihs._.js} +1 -1
  153. package/standalone/.next/server/chunks/{[root-of-the-server]__1yxu--t._.js → [root-of-the-server]__076321a._.js} +1 -1
  154. package/standalone/.next/server/chunks/{[root-of-the-server]__0o-m0xx._.js → [root-of-the-server]__076y818._.js} +1 -1
  155. package/standalone/.next/server/chunks/[root-of-the-server]__0_d9q6w._.js +3 -0
  156. package/standalone/.next/server/chunks/{[root-of-the-server]__16u_xzt._.js → [root-of-the-server]__0_smoou._.js} +2 -2
  157. package/standalone/.next/server/chunks/{[root-of-the-server]__1pan46j._.js → [root-of-the-server]__0a61u23._.js} +1 -1
  158. package/standalone/.next/server/chunks/{[root-of-the-server]__0gm8rnl._.js → [root-of-the-server]__0a8ssv2._.js} +1 -1
  159. package/standalone/.next/server/chunks/{[root-of-the-server]__04ws4jm._.js → [root-of-the-server]__0cusg9h._.js} +1 -1
  160. package/standalone/.next/server/chunks/{[root-of-the-server]__0dfk0up._.js → [root-of-the-server]__0czmmn3._.js} +2 -2
  161. package/standalone/.next/server/chunks/{[root-of-the-server]__0gvldsm._.js → [root-of-the-server]__0d157q5._.js} +1 -1
  162. package/standalone/.next/server/chunks/[root-of-the-server]__0dq1b6t._.js +3 -0
  163. package/standalone/.next/server/chunks/[root-of-the-server]__0duw2z9._.js +3 -0
  164. package/standalone/.next/server/chunks/{[root-of-the-server]__0i8jv9o._.js → [root-of-the-server]__0f4mi_7._.js} +1 -1
  165. package/standalone/.next/server/chunks/[root-of-the-server]__0gwt8xn._.js +3 -0
  166. package/standalone/.next/server/chunks/{[root-of-the-server]__1mofk4t._.js → [root-of-the-server]__0jc7f-h._.js} +2 -2
  167. package/standalone/.next/server/chunks/{[root-of-the-server]__01k_3ze._.js → [root-of-the-server]__0ji4_aa._.js} +1 -1
  168. package/standalone/.next/server/chunks/[root-of-the-server]__0kffrvp._.js +3 -0
  169. package/standalone/.next/server/chunks/{[root-of-the-server]__1mlcdp1._.js → [root-of-the-server]__0lqruq_._.js} +1 -1
  170. package/standalone/.next/server/chunks/{[root-of-the-server]__0_yro61._.js → [root-of-the-server]__0m-o7gg._.js} +2 -2
  171. package/standalone/.next/server/chunks/[root-of-the-server]__0ny_w4c._.js +3 -0
  172. package/standalone/.next/server/chunks/[root-of-the-server]__0qay7yq._.js +3 -0
  173. package/standalone/.next/server/chunks/{[root-of-the-server]__0ksul8g._.js → [root-of-the-server]__0qpwbwq._.js} +1 -1
  174. package/standalone/.next/server/chunks/[root-of-the-server]__0r73w_w._.js +3 -0
  175. package/standalone/.next/server/chunks/[root-of-the-server]__0srh8bm._.js +3 -0
  176. package/standalone/.next/server/chunks/[root-of-the-server]__0syu0s0._.js +3 -0
  177. package/standalone/.next/server/chunks/{[root-of-the-server]__154lh-5._.js → [root-of-the-server]__0t0z79p._.js} +2 -2
  178. package/standalone/.next/server/chunks/{[root-of-the-server]__0olwy-c._.js → [root-of-the-server]__0tt2s67._.js} +1 -1
  179. package/standalone/.next/server/chunks/{[root-of-the-server]__1ric9t-._.js → [root-of-the-server]__0uz7ud6._.js} +2 -2
  180. package/standalone/.next/server/chunks/{[root-of-the-server]__0s5dxd3._.js → [root-of-the-server]__0x7nzft._.js} +1 -1
  181. package/standalone/.next/server/chunks/[root-of-the-server]__0xro-tn._.js +3 -0
  182. package/standalone/.next/server/chunks/{[root-of-the-server]__01lu84h._.js → [root-of-the-server]__10784d-._.js} +2 -2
  183. package/standalone/.next/server/chunks/[root-of-the-server]__123on-v._.js +3 -0
  184. package/standalone/.next/server/chunks/{[root-of-the-server]__1wn2s2e._.js → [root-of-the-server]__12i2_e-._.js} +2 -2
  185. package/standalone/.next/server/chunks/[root-of-the-server]__133en1z._.js +3 -0
  186. package/standalone/.next/server/chunks/[root-of-the-server]__13njn4x._.js +3 -0
  187. package/standalone/.next/server/chunks/[root-of-the-server]__145nk5b._.js +3 -0
  188. package/standalone/.next/server/chunks/[root-of-the-server]__14p-wic._.js +3 -0
  189. package/standalone/.next/server/chunks/[root-of-the-server]__14v5hwd._.js +3 -0
  190. package/standalone/.next/server/chunks/[root-of-the-server]__1549etm._.js +3 -0
  191. package/standalone/.next/server/chunks/[root-of-the-server]__15zod2l._.js +3 -0
  192. package/standalone/.next/server/chunks/{[root-of-the-server]__0xc-tua._.js → [root-of-the-server]__16lxm7i._.js} +2 -2
  193. package/standalone/.next/server/chunks/[root-of-the-server]__176ofx1._.js +3 -0
  194. package/standalone/.next/server/chunks/{[root-of-the-server]__1z2wsgn._.js → [root-of-the-server]__17yxr8i._.js} +1 -1
  195. package/standalone/.next/server/chunks/{[root-of-the-server]__1sfzs44._.js → [root-of-the-server]__18_g5so._.js} +2 -2
  196. package/standalone/.next/server/chunks/{[root-of-the-server]__0iayrsu._.js → [root-of-the-server]__198g-0l._.js} +1 -1
  197. package/standalone/.next/server/chunks/[root-of-the-server]__19n37bl._.js +3 -0
  198. package/standalone/.next/server/chunks/[root-of-the-server]__1_z0-o0._.js +3 -0
  199. package/standalone/.next/server/chunks/[root-of-the-server]__1c91-d3._.js +3 -0
  200. package/standalone/.next/server/chunks/[root-of-the-server]__1cmajoo._.js +3 -0
  201. package/standalone/.next/server/chunks/[root-of-the-server]__1cpfh84._.js +3 -0
  202. package/standalone/.next/server/chunks/[root-of-the-server]__1dn92tm._.js +3 -0
  203. package/standalone/.next/server/chunks/[root-of-the-server]__1elf__p._.js +3 -0
  204. package/standalone/.next/server/chunks/{[root-of-the-server]__0ynkv_7._.js → [root-of-the-server]__1f2c4fv._.js} +1 -1
  205. package/standalone/.next/server/chunks/[root-of-the-server]__1fnqwa3._.js +3 -0
  206. package/standalone/.next/server/chunks/[root-of-the-server]__1fumbd9._.js +3 -0
  207. package/standalone/.next/server/chunks/{[root-of-the-server]__0eaabcp._.js → [root-of-the-server]__1fwcg2w._.js} +2 -2
  208. package/standalone/.next/server/chunks/[root-of-the-server]__1gl82vr._.js +3 -0
  209. package/standalone/.next/server/chunks/{[root-of-the-server]__1f9ug94._.js → [root-of-the-server]__1j88891._.js} +1 -1
  210. package/standalone/.next/server/chunks/[root-of-the-server]__1j89nx9._.js +3 -0
  211. package/standalone/.next/server/chunks/[root-of-the-server]__1ke6fy2._.js +3 -0
  212. package/standalone/.next/server/chunks/{[root-of-the-server]__0bl-go3._.js → [root-of-the-server]__1kr6xrb._.js} +2 -2
  213. package/standalone/.next/server/chunks/[root-of-the-server]__1kvooj6._.js +3 -0
  214. package/standalone/.next/server/chunks/[root-of-the-server]__1m7y79-._.js +3 -0
  215. package/standalone/.next/server/chunks/[root-of-the-server]__1md2i2u._.js +3 -0
  216. package/standalone/.next/server/chunks/[root-of-the-server]__1mnaj5t._.js +3 -0
  217. package/standalone/.next/server/chunks/{[root-of-the-server]__1bfswt2._.js → [root-of-the-server]__1ohhyet._.js} +1 -1
  218. package/standalone/.next/server/chunks/{[root-of-the-server]__1v2l-cb._.js → [root-of-the-server]__1pf55w3._.js} +2 -2
  219. package/standalone/.next/server/chunks/[root-of-the-server]__1q247bc._.js +3 -0
  220. package/standalone/.next/server/chunks/[root-of-the-server]__1qaicnm._.js +3 -0
  221. package/standalone/.next/server/chunks/{[root-of-the-server]__15zmuuw._.js → [root-of-the-server]__1qpos_f._.js} +2 -2
  222. package/standalone/.next/server/chunks/[root-of-the-server]__1qr-aka._.js +3 -0
  223. package/standalone/.next/server/chunks/{[root-of-the-server]__0i2ljnx._.js → [root-of-the-server]__1syo7nr._.js} +2 -2
  224. package/standalone/.next/server/chunks/[root-of-the-server]__1v9n3yu._.js +3 -0
  225. package/standalone/.next/server/chunks/[root-of-the-server]__1xi2k6g._.js +3 -0
  226. package/standalone/.next/server/chunks/{[root-of-the-server]__1j0txpm._.js → [root-of-the-server]__1yta_xv._.js} +2 -2
  227. package/standalone/.next/server/chunks/[root-of-the-server]__1zadv3h._.js +3 -0
  228. package/standalone/.next/server/chunks/{[root-of-the-server]__13l3v-v._.js → [root-of-the-server]__1zdk-iw._.js} +2 -2
  229. package/standalone/.next/server/chunks/[root-of-the-server]__1zwqj_g._.js +3 -0
  230. package/standalone/.next/server/chunks/[root-of-the-server]__20rr3br._.js +3 -0
  231. package/standalone/.next/server/chunks/_00pgex-._.js +68 -66
  232. package/standalone/.next/server/chunks/_03k34hm._.js +4 -4
  233. package/standalone/.next/server/chunks/_04tltxp._.js +4 -4
  234. package/standalone/.next/server/chunks/_05ieldc._.js +4 -4
  235. package/standalone/.next/server/chunks/_0_3-lke._.js +2 -0
  236. package/standalone/.next/server/chunks/_1bpbnrs._.js +4 -4
  237. package/standalone/.next/server/chunks/_1hcmg6g._.js +4 -4
  238. package/standalone/.next/server/chunks/_1javz-p._.js +4 -4
  239. package/standalone/.next/server/chunks/_1qvlhr_._.js +4 -4
  240. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e80fhr._.js +3 -3
  241. package/standalone/.next/server/chunks/ssr/{[root-of-the-server]__03nc3bp._.js → [root-of-the-server]__0k74961._.js} +4 -4
  242. package/standalone/.next/server/chunks/ssr/{[root-of-the-server]__04fj378._.js → [root-of-the-server]__0tz354o._.js} +3 -3
  243. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1i04gpy._.js +27 -0
  244. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1wpef1o._.js +3 -0
  245. package/standalone/.next/server/chunks/ssr/_0-_e-ox._.js +1 -1
  246. package/standalone/.next/server/chunks/ssr/_0-ih50c._.js +3 -0
  247. package/standalone/.next/server/chunks/ssr/{_08lb8p6._.js → _00_gb4o._.js} +2 -2
  248. package/standalone/.next/server/chunks/ssr/_012q7w6._.js +10 -10
  249. package/standalone/.next/server/chunks/ssr/_03kzeos._.js +3 -0
  250. package/standalone/.next/server/chunks/ssr/_05ohevo._.js +1 -1
  251. package/standalone/.next/server/chunks/ssr/{_0jum_1m._.js → _0759zq8._.js} +2 -2
  252. package/standalone/.next/server/chunks/ssr/_07a5zv1._.js +3 -0
  253. package/standalone/.next/server/chunks/ssr/{_117jkyy._.js → _09wh5xv._.js} +8 -3
  254. package/standalone/.next/server/chunks/ssr/_0c7yfj8._.js +3 -0
  255. package/standalone/.next/server/chunks/ssr/{_01cun29._.js → _0cynmyr._.js} +2 -2
  256. package/standalone/.next/server/chunks/ssr/_0dir-eb._.js +34 -0
  257. package/standalone/.next/server/chunks/ssr/_0dvnys0._.js +5 -5
  258. package/standalone/.next/server/chunks/ssr/_0fha4pb._.js +1 -1
  259. package/standalone/.next/server/chunks/ssr/_0fk_1t_._.js +3 -0
  260. package/standalone/.next/server/chunks/ssr/_0k5jx04._.js +5 -5
  261. package/standalone/.next/server/chunks/ssr/_0n98rd4._.js +3 -0
  262. package/standalone/.next/server/chunks/ssr/_0nnwpvt._.js +3 -0
  263. package/standalone/.next/server/chunks/ssr/{_1c_ojfs._.js → _0pk2e_s._.js} +2 -2
  264. package/standalone/.next/server/chunks/ssr/_0pm3j9j._.js +3 -0
  265. package/standalone/.next/server/chunks/ssr/_0rcby6e._.js +5 -5
  266. package/standalone/.next/server/chunks/ssr/{_170xw1h._.js → _0rx-o1y._.js} +2 -2
  267. package/standalone/.next/server/chunks/ssr/_0ry7kff._.js +3 -0
  268. package/standalone/.next/server/chunks/ssr/_0t2jwg3._.js +31 -31
  269. package/standalone/.next/server/chunks/ssr/_0t5lgno._.js +1 -1
  270. package/standalone/.next/server/chunks/ssr/_0tc_1s_._.js +3 -0
  271. package/standalone/.next/server/chunks/ssr/{_0m5obko._.js → _0w9r25f._.js} +2 -2
  272. package/standalone/.next/server/chunks/ssr/_0ysjbys._.js +11 -0
  273. package/standalone/.next/server/chunks/ssr/_17q5b-5._.js +9 -0
  274. package/standalone/.next/server/chunks/ssr/{_1q79umx._.js → _196iuum._.js} +2 -2
  275. package/standalone/.next/server/chunks/ssr/_1bga6ml._.js +3 -0
  276. package/standalone/.next/server/chunks/ssr/_1biqcz_._.js +3 -0
  277. package/standalone/.next/server/chunks/ssr/_1bzibio._.js +31 -31
  278. package/standalone/.next/server/chunks/ssr/_1c34qp8._.js +2 -2
  279. package/standalone/.next/server/chunks/ssr/_1d-qtbz._.js +1 -1
  280. package/standalone/.next/server/chunks/ssr/{_04jk-xk._.js → _1ecln95._.js} +2 -2
  281. package/standalone/.next/server/chunks/ssr/_1eoq6hs._.js +3 -0
  282. package/standalone/.next/server/chunks/ssr/{_1zqt7an._.js → _1h2b2b5._.js} +2 -2
  283. package/standalone/.next/server/chunks/ssr/_1kwnjml._.js +34 -0
  284. package/standalone/.next/server/chunks/ssr/_1o8-fvv._.js +3 -0
  285. package/standalone/.next/server/chunks/ssr/_1pqjzks._.js +3 -0
  286. package/standalone/.next/server/chunks/ssr/{_1u7742_._.js → _1r1e3_z._.js} +2 -2
  287. package/standalone/.next/server/chunks/ssr/_1rqnk8t._.js +3 -0
  288. package/standalone/.next/server/chunks/ssr/_1sjzp8l._.js +3 -0
  289. package/standalone/.next/server/chunks/ssr/_1tmllxv._.js +24 -0
  290. package/standalone/.next/server/chunks/ssr/_1uoc7zb._.js +6 -0
  291. package/standalone/.next/server/chunks/ssr/_1xs2spu._.js +3 -3
  292. package/standalone/.next/server/chunks/ssr/_1zgu74l._.js +7 -7
  293. package/standalone/.next/server/chunks/ssr/{_0y9d64c._.js → _1zsu_6o._.js} +2 -2
  294. package/standalone/.next/server/chunks/ssr/_20pbep2._.js +2 -2
  295. package/standalone/.next/server/chunks/ssr/messages_de_json_[json]_cjs_1uig1ud._.js +1 -1
  296. package/standalone/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-._.js +1 -1
  297. package/standalone/.next/server/chunks/ssr/messages_es_json_[json]_cjs_082yukd._.js +1 -1
  298. package/standalone/.next/server/chunks/ssr/messages_fr_json_[json]_cjs_0j6-w0i._.js +1 -1
  299. package/standalone/.next/server/chunks/ssr/node_modules_1fko13n._.js +3 -0
  300. package/standalone/.next/server/chunks/ssr/node_modules_1qembts._.js +3 -0
  301. package/standalone/.next/server/chunks/ssr/node_modules_@radix-ui_1nipfj2._.js +3 -0
  302. package/standalone/.next/server/chunks/ssr/node_modules_@radix-ui_react-popper_dist_index_mjs_0428afp._.js +3 -0
  303. package/standalone/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_icons_1b76nr4._.js → node_modules_lucide-react_dist_esm_icons_15-ly7n._.js} +2 -2
  304. package/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1ye04e4._.js +3 -0
  305. package/standalone/.next/server/chunks/ssr/src_components_agents_agent-detail_tsx_0lfa4ui._.js +16 -16
  306. package/standalone/.next/server/chunks/ssr/src_components_build-data_build-data-page_tsx_1t2rrh0._.js +11 -11
  307. package/standalone/.next/server/chunks/ssr/src_components_builds_build-detail-page_tsx_0q1lvps._.js +10 -10
  308. package/standalone/.next/server/chunks/ssr/src_components_builds_builds-page_tsx_17qzmsl._.js +8 -8
  309. package/standalone/.next/server/chunks/ssr/src_components_builds_configuration-icon_tsx_1v42ztc._.js +2 -2
  310. package/standalone/.next/server/chunks/ssr/src_components_cache-server_cache-page_tsx_0_-eo_e._.js +5 -5
  311. package/standalone/.next/server/chunks/ssr/src_components_codebases_codebase-detail-page_tsx_0qfum00._.js +11 -11
  312. package/standalone/.next/server/chunks/ssr/src_components_codebases_codebases-page_tsx_0wcj3k1._.js +10 -10
  313. package/standalone/.next/server/chunks/ssr/src_components_codebases_repository-detail-page_tsx_20_7wk_._.js +17 -17
  314. package/standalone/.next/server/chunks/ssr/src_components_devices_device-detail-page_tsx_1mut_l4._.js +7 -7
  315. package/standalone/.next/server/chunks/ssr/src_components_devices_devices-page_tsx_1y45lv2._.js +8 -8
  316. package/standalone/.next/server/chunks/ssr/src_components_github_actions-page_tsx_18434xt._.js +4 -4
  317. package/standalone/.next/server/chunks/ssr/src_components_github_pull-request-detail-page_tsx_1etlamp._.js +2 -2
  318. package/standalone/.next/server/chunks/ssr/src_components_github_pull-requests-page_tsx_1il3ga-._.js +12 -12
  319. package/standalone/.next/server/chunks/ssr/src_components_jira_cache-page_tsx_1znt1yl._.js +3 -3
  320. package/standalone/.next/server/chunks/ssr/src_components_jira_ticket-detail-page_tsx_0vmf8nk._.js +15 -15
  321. package/standalone/.next/server/chunks/ssr/src_components_jira_tickets-page_tsx_0_ocldp._.js +3 -3
  322. package/standalone/.next/server/chunks/ssr/src_components_notifications_notifications-page_tsx_19f4ztg._.js +18 -18
  323. package/standalone/.next/server/chunks/ssr/src_components_push-notifications_push-notifications-page_tsx_1c_b-t4._.js +2 -2
  324. package/standalone/.next/server/chunks/ssr/src_components_settings-page_tsx_06dxqc7._.js +31 -31
  325. package/standalone/.next/server/chunks/ssr/src_components_signing-assets_provisioning-profiles-page_tsx_1zr20o7._.js +9 -9
  326. package/standalone/.next/server/chunks/ssr/src_components_skills_skills-page_tsx_0o1nlbg._.js +3 -3
  327. package/standalone/.next/server/chunks/ssr/src_components_telemetry_telemetry-page_tsx_0yzdpy6._.js +14 -14
  328. package/standalone/.next/server/chunks/ssr/src_components_ui_date-time_tsx_0zuage9._.js +3 -0
  329. package/standalone/.next/server/chunks/ssr/src_components_worktrees_worktree-detail-page_tsx_1oexgu_._.js +4 -4
  330. package/standalone/.next/server/middleware-build-manifest.js +3 -3
  331. package/standalone/.next/server/pages/404.html +1 -1
  332. package/standalone/.next/server/pages/500.html +1 -1
  333. package/standalone/.next/server/server-reference-manifest.js +1 -1
  334. package/standalone/.next/server/server-reference-manifest.json +1 -1
  335. package/standalone/.next/static/chunks/000lif3c0zhvu.js +80 -0
  336. package/standalone/.next/static/chunks/02wsz0adffqp8.js +28 -0
  337. package/standalone/.next/static/chunks/{2mth_pn5d54qo.js → 02zr1fj6sg9gn.js} +33 -33
  338. package/standalone/.next/static/chunks/{1k02pmb5ikjwl.js → 03cte61olt23o.js} +3 -3
  339. package/standalone/.next/static/chunks/{1ezpx5-kghuo6.js → 04inif3zp27ql.js} +11 -11
  340. package/standalone/.next/static/chunks/{2qe7etuh1bwv3.js → 04twsuitu09qc.js} +1 -1
  341. package/standalone/.next/static/chunks/{1g0hwagd4q811.js → 0ejnphkok3cbc.js} +1 -1
  342. package/standalone/.next/static/chunks/0f822nit06dft.js +9 -0
  343. package/standalone/.next/static/chunks/0fovjx-g7eta0.js +65 -0
  344. package/standalone/.next/static/chunks/{0b0w_wac5cqbn.js → 0fw1be4ry6k_r.js} +2 -2
  345. package/standalone/.next/static/chunks/{1ywyjstd4f1px.js → 0ikbwsq-7rewz.js} +1 -1
  346. package/standalone/.next/static/chunks/0ir2jvw5qtwnj.js +1 -0
  347. package/standalone/.next/static/chunks/0iwqaqr66hgne.js +1 -0
  348. package/standalone/.next/static/chunks/0k8int7jsgtz3.js +30 -0
  349. package/standalone/.next/static/chunks/{2a6rrto2ktoc_.js → 0nutq5ctjfc37.js} +5 -5
  350. package/standalone/.next/static/chunks/0u2tsyv0tassx.js +12 -0
  351. package/standalone/.next/static/chunks/0xaamcimitizu.js +1 -0
  352. package/standalone/.next/static/chunks/1-_hzodjvgft7.js +1 -0
  353. package/standalone/.next/static/chunks/10xbozbf30cv-.js +1 -0
  354. package/standalone/.next/static/chunks/{0579din_nqxhf.js → 14jtogt0f0nsh.js} +3 -3
  355. package/standalone/.next/static/chunks/169-gif_99pjd.js +41 -0
  356. package/standalone/.next/static/chunks/{349ls84c4dbp9.js → 18zmneu2dpo8s.js} +3 -3
  357. package/standalone/.next/static/chunks/{3bnkoq89szbzx.js → 1a4de2uh02g6b.js} +2 -2
  358. package/standalone/.next/static/chunks/1ch1iiugfh7pr.js +1 -0
  359. package/standalone/.next/static/chunks/1edawd0o38cx6.js +28 -0
  360. package/standalone/.next/static/chunks/1gz-q30e1qzuf.js +35 -0
  361. package/standalone/.next/static/chunks/{37kyqfr93cgmv.js → 1h5cc0dmoomfs.js} +33 -33
  362. package/standalone/.next/static/chunks/1hzt4mwdfnmv2.js +33 -0
  363. package/standalone/.next/static/chunks/{2b6qj3i_of-b7.js → 1k2n9o4o5p8s6.js} +1 -1
  364. package/standalone/.next/static/chunks/1ufkqj87rj6-i.js +1 -0
  365. package/standalone/.next/static/chunks/1z77ayhor3gtg.js +36 -0
  366. package/standalone/.next/static/chunks/2-1-vmcvalx28.js +1 -0
  367. package/standalone/.next/static/chunks/{1zqoc_5v6sshl.js → 28-e9fkcgfk62.js} +11 -11
  368. package/standalone/.next/static/chunks/{3rolhb6l918f3.js → 28jwnowa-b2u5.js} +5 -5
  369. package/standalone/.next/static/chunks/2ar0jmg8yo3_q.js +13 -0
  370. package/standalone/.next/static/chunks/{0duto9u8a-gcp.js → 2f9kasslyd1ss.js} +16 -16
  371. package/standalone/.next/static/chunks/{1jtaoae30sltr.js → 2ly2npblvc-_j.js} +17 -17
  372. package/standalone/.next/static/chunks/2vv30t-8y66id.js +1 -0
  373. package/standalone/.next/static/chunks/2x3_xry-6de68.css +1 -0
  374. package/standalone/.next/static/chunks/{1nc0w3yg2nwys.js → 2y3w6cb0dlmzd.js} +5 -5
  375. package/standalone/.next/static/chunks/2yayf07873iy6.js +1 -0
  376. package/standalone/.next/static/chunks/2yfhr6so_34cy.js +33 -0
  377. package/standalone/.next/static/chunks/{1jp3oxzet05xp.js → 2zftfpd-e3i12.js} +1 -1
  378. package/standalone/.next/static/chunks/{16n8heazfxgkp.js → 2zho87usah-sc.js} +1 -1
  379. package/standalone/.next/static/chunks/2zypdpeeqzci1.js +10 -0
  380. package/standalone/.next/static/chunks/{30xpb_0lt8jpx.js → 347ov6pk6gcg2.js} +11 -11
  381. package/standalone/.next/static/chunks/36h9gn_o83hax.js +4 -0
  382. package/standalone/.next/static/chunks/{0az2qcfmxe26_.js → 377e8qofcd6up.js} +9 -9
  383. package/standalone/.next/static/chunks/388484eodm15m.js +8 -0
  384. package/standalone/.next/static/chunks/3_as3_z1u3nnb.js +1 -0
  385. package/standalone/.next/static/chunks/3_g7zsn_y38wy.js +1 -0
  386. package/standalone/.next/static/chunks/{31pn-_jxgdd7h.js → 3ajafpxyeycth.js} +5 -5
  387. package/standalone/.next/static/chunks/3bqm7ynezy7eb.js +7 -0
  388. package/standalone/.next/static/chunks/3c4-hisg3lm8z.js +9 -0
  389. package/standalone/.next/static/chunks/{1h5y3qq56veer.js → 3f6axekan26k2.js} +3 -3
  390. package/standalone/.next/static/chunks/3gx3ywvr2ggbb.js +1 -0
  391. package/standalone/.next/static/chunks/3jqmoapzyq5tx.js +8 -0
  392. package/standalone/.next/static/chunks/3llcyep7mkp-i.js +155 -0
  393. package/standalone/.next/static/chunks/{1n1t0xlcfflb5.js → 3nmfnes9vz7cm.js} +8 -8
  394. package/standalone/.next/static/chunks/{2vu5ny7yd8uz6.js → 3o31isuqgjdgf.js} +17 -17
  395. package/standalone/.next/static/chunks/3u04m_dram50f.js +1 -0
  396. package/standalone/.next/static/chunks/3y3ginr-kriqa.js +39 -0
  397. package/standalone/.next/static/chunks/{1pmegdso5i73a.js → 40f0gc3x_52ei.js} +1 -1
  398. package/standalone/.next/static/chunks/40j-6wiq8b9d7.js +1 -0
  399. package/standalone/.next/static/chunks/{3tmt2fscg4x0a.js → 44pprg5jd-0j8.js} +13 -13
  400. package/standalone/.next/server/chunks/[root-of-the-server]__0hmxoy-._.js +0 -3
  401. package/standalone/.next/server/chunks/[root-of-the-server]__0na0kf5._.js +0 -3
  402. package/standalone/.next/server/chunks/[root-of-the-server]__0o2r2g3._.js +0 -3
  403. package/standalone/.next/server/chunks/[root-of-the-server]__0qn2s4y._.js +0 -3
  404. package/standalone/.next/server/chunks/[root-of-the-server]__0s36z37._.js +0 -3
  405. package/standalone/.next/server/chunks/[root-of-the-server]__0sl88nm._.js +0 -3
  406. package/standalone/.next/server/chunks/[root-of-the-server]__0tx5g5o._.js +0 -3
  407. package/standalone/.next/server/chunks/[root-of-the-server]__0uyjad8._.js +0 -3
  408. package/standalone/.next/server/chunks/[root-of-the-server]__0vwq0xl._.js +0 -3
  409. package/standalone/.next/server/chunks/[root-of-the-server]__0wtla_4._.js +0 -3
  410. package/standalone/.next/server/chunks/[root-of-the-server]__0z-lmzl._.js +0 -3
  411. package/standalone/.next/server/chunks/[root-of-the-server]__11bmvex._.js +0 -3
  412. package/standalone/.next/server/chunks/[root-of-the-server]__11zhw_f._.js +0 -3
  413. package/standalone/.next/server/chunks/[root-of-the-server]__12yyk-v._.js +0 -3
  414. package/standalone/.next/server/chunks/[root-of-the-server]__152ip4m._.js +0 -3
  415. package/standalone/.next/server/chunks/[root-of-the-server]__1a28vw2._.js +0 -3
  416. package/standalone/.next/server/chunks/[root-of-the-server]__1bo7dgt._.js +0 -3
  417. package/standalone/.next/server/chunks/[root-of-the-server]__1bzm9rj._.js +0 -3
  418. package/standalone/.next/server/chunks/[root-of-the-server]__1dc6__1._.js +0 -3
  419. package/standalone/.next/server/chunks/[root-of-the-server]__1duupjc._.js +0 -3
  420. package/standalone/.next/server/chunks/[root-of-the-server]__1dyeloz._.js +0 -3
  421. package/standalone/.next/server/chunks/[root-of-the-server]__1e5dea0._.js +0 -3
  422. package/standalone/.next/server/chunks/[root-of-the-server]__1f4gxqa._.js +0 -3
  423. package/standalone/.next/server/chunks/[root-of-the-server]__1gejcnd._.js +0 -3
  424. package/standalone/.next/server/chunks/[root-of-the-server]__1l-0_di._.js +0 -3
  425. package/standalone/.next/server/chunks/[root-of-the-server]__1l33gc2._.js +0 -3
  426. package/standalone/.next/server/chunks/[root-of-the-server]__1nm1v2v._.js +0 -3
  427. package/standalone/.next/server/chunks/[root-of-the-server]__1nzw_pg._.js +0 -3
  428. package/standalone/.next/server/chunks/[root-of-the-server]__1o02rgu._.js +0 -3
  429. package/standalone/.next/server/chunks/[root-of-the-server]__1ofzum5._.js +0 -3
  430. package/standalone/.next/server/chunks/[root-of-the-server]__1qf_jx0._.js +0 -3
  431. package/standalone/.next/server/chunks/[root-of-the-server]__1rz3t-8._.js +0 -3
  432. package/standalone/.next/server/chunks/[root-of-the-server]__1rzexif._.js +0 -3
  433. package/standalone/.next/server/chunks/[root-of-the-server]__1s_2-hp._.js +0 -3
  434. package/standalone/.next/server/chunks/[root-of-the-server]__1tl4gde._.js +0 -3
  435. package/standalone/.next/server/chunks/[root-of-the-server]__1u283f9._.js +0 -3
  436. package/standalone/.next/server/chunks/[root-of-the-server]__1uek0dm._.js +0 -3
  437. package/standalone/.next/server/chunks/[root-of-the-server]__1v1kr7z._.js +0 -3
  438. package/standalone/.next/server/chunks/[root-of-the-server]__1vhxr5_._.js +0 -3
  439. package/standalone/.next/server/chunks/[root-of-the-server]__1w36m17._.js +0 -3
  440. package/standalone/.next/server/chunks/[root-of-the-server]__1xws3pt._.js +0 -3
  441. package/standalone/.next/server/chunks/[root-of-the-server]__1z15fu5._.js +0 -3
  442. package/standalone/.next/server/chunks/[root-of-the-server]__20gqolc._.js +0 -3
  443. package/standalone/.next/server/chunks/[root-of-the-server]__20no38f._.js +0 -3
  444. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__04beow0._.js +0 -3
  445. package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b4pivw._.js +0 -6
  446. package/standalone/.next/server/chunks/ssr/_00pb_-u._.js +0 -3
  447. package/standalone/.next/server/chunks/ssr/_08ux-xx._.js +0 -35
  448. package/standalone/.next/server/chunks/ssr/_0_c2ksk._.js +0 -3
  449. package/standalone/.next/server/chunks/ssr/_0_nha02._.js +0 -3
  450. package/standalone/.next/server/chunks/ssr/_0bpm26t._.js +0 -3
  451. package/standalone/.next/server/chunks/ssr/_0e64d91._.js +0 -3
  452. package/standalone/.next/server/chunks/ssr/_0ho0wc7._.js +0 -3
  453. package/standalone/.next/server/chunks/ssr/_0jxepjk._.js +0 -3
  454. package/standalone/.next/server/chunks/ssr/_0l6y7z2._.js +0 -3
  455. package/standalone/.next/server/chunks/ssr/_0sdizo4._.js +0 -34
  456. package/standalone/.next/server/chunks/ssr/_0zg79hi._.js +0 -3
  457. package/standalone/.next/server/chunks/ssr/_11oshuh._.js +0 -3
  458. package/standalone/.next/server/chunks/ssr/_11z-hcq._.js +0 -34
  459. package/standalone/.next/server/chunks/ssr/_123h643._.js +0 -3
  460. package/standalone/.next/server/chunks/ssr/_1cc_dsb._.js +0 -34
  461. package/standalone/.next/server/chunks/ssr/_1mke0us._.js +0 -3
  462. package/standalone/.next/server/chunks/ssr/_1qy-wes._.js +0 -3
  463. package/standalone/.next/server/chunks/ssr/_1r4w1io._.js +0 -24
  464. package/standalone/.next/server/chunks/ssr/_1upie3e._.js +0 -3
  465. package/standalone/.next/server/chunks/ssr/_1vx9bqg._.js +0 -14
  466. package/standalone/.next/server/chunks/ssr/_1wmzpjb._.js +0 -3
  467. package/standalone/.next/server/chunks/ssr/node_modules_0blr8x6._.js +0 -3
  468. package/standalone/.next/server/chunks/ssr/node_modules_0ylkf4l._.js +0 -3
  469. package/standalone/.next/server/chunks/ssr/node_modules_@radix-ui_1n5j09z._.js +0 -3
  470. package/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1_ugphm._.js +0 -3
  471. package/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_0m__-6s._.js +0 -3
  472. package/standalone/.next/static/chunks/06711eeflvyu7.js +0 -1
  473. package/standalone/.next/static/chunks/0c9r1f3che9mf.css +0 -1
  474. package/standalone/.next/static/chunks/0ddp859-x81j2.js +0 -1
  475. package/standalone/.next/static/chunks/0evao2rpxqreq.js +0 -80
  476. package/standalone/.next/static/chunks/0nt5uq75yrfm2.js +0 -13
  477. package/standalone/.next/static/chunks/0okpg2ejyn95o.js +0 -9
  478. package/standalone/.next/static/chunks/0udza_i0n8xhm.js +0 -36
  479. package/standalone/.next/static/chunks/0vtavvo7gx3rr.js +0 -33
  480. package/standalone/.next/static/chunks/0xybrwnbju35k.js +0 -41
  481. package/standalone/.next/static/chunks/0y-5_7jbnsr0m.js +0 -1
  482. package/standalone/.next/static/chunks/12qdfeyqgqh62.js +0 -1
  483. package/standalone/.next/static/chunks/193m8crej9xrt.js +0 -7
  484. package/standalone/.next/static/chunks/1nkkb5gu3-rhf.js +0 -28
  485. package/standalone/.next/static/chunks/1ny7skwqcfglg.js +0 -39
  486. package/standalone/.next/static/chunks/1qebx-2i3ao34.js +0 -28
  487. package/standalone/.next/static/chunks/1zt6tg-4jpdru.js +0 -1
  488. package/standalone/.next/static/chunks/2-5c1n7c9ncu0.js +0 -12
  489. package/standalone/.next/static/chunks/29axmq_boxoc_.js +0 -1
  490. package/standalone/.next/static/chunks/2giql1u6bn9gi.js +0 -33
  491. package/standalone/.next/static/chunks/2nco50dwradd6.js +0 -8
  492. package/standalone/.next/static/chunks/2nr9sxr9bqwin.js +0 -8
  493. package/standalone/.next/static/chunks/31_9e-uzmy7vp.js +0 -35
  494. package/standalone/.next/static/chunks/31t_wgps20fl1.js +0 -4
  495. package/standalone/.next/static/chunks/331lb29dcb1ta.js +0 -1
  496. package/standalone/.next/static/chunks/369biqq4fd0sk.js +0 -1
  497. package/standalone/.next/static/chunks/37dd1jthysw7j.js +0 -10
  498. package/standalone/.next/static/chunks/3apliool1acey.js +0 -155
  499. package/standalone/.next/static/chunks/3d95bb1fej1i5.js +0 -1
  500. package/standalone/.next/static/chunks/3eumqpi7f1fek.js +0 -30
  501. package/standalone/.next/static/chunks/3f1yh13gawn34.js +0 -1
  502. package/standalone/.next/static/chunks/3mtxpg0cke1s1.js +0 -9
  503. package/standalone/.next/static/chunks/3qovaml41zb61.js +0 -1
  504. package/standalone/.next/static/chunks/3vuv-wz2jb38o.js +0 -65
  505. package/standalone/.next/static/chunks/44sbqm3y2mvct.js +0 -1
  506. /package/standalone/.next/static/{z7DvrCFcDrWcS4YaEvaXP → CD2ohdtyd8xVfYLr1u3bY}/_buildManifest.js +0 -0
  507. /package/standalone/.next/static/{z7DvrCFcDrWcS4YaEvaXP → CD2ohdtyd8xVfYLr1u3bY}/_clientMiddlewareManifest.js +0 -0
  508. /package/standalone/.next/static/{z7DvrCFcDrWcS4YaEvaXP → CD2ohdtyd8xVfYLr1u3bY}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[800675,(a,b,c)=>{b.exports=JSON.parse('{"metadata":{"title":"AI Development Environment","description":"Un environnement de développement axé sur l’intelligence artificielle."},"common":{"cancel":"Annuler","continue":"Continuer","cannotBeUndone":"Cette action est irréversible."},"shell":{"productName":"AI Development Environment","welcome":"Bienvenue","dashboard":"Tableau de bord","navigation":"Navigation","navigationDescription":"Navigation principale d’AI Development Environment.","notifications":"Notifications","notificationsDescription":"Mises à jour et alertes de notification.","showNavigation":"Afficher la navigation","hideNavigation":"Masquer la navigation","closeNavigation":"Fermer la navigation","showNotifications":"Afficher les notifications","hideNotifications":"Masquer les notifications","closeNotifications":"Fermer les notifications","codebases":"Bases de code","worktrees":"Arbres de travail","buildData":"Données de build","builds":"Builds","provisioningProfiles":"Profils de provisionnement","devices":"Appareils","pushNotifications":"Notifications push","agents":"Agents","usage":"Utilisation","github":"GitHub","pullRequests":"Demandes de tirage","actions":"Actions","comments":"Commentaires","actionsCache":"Cache des Actions","jira":"Jira","tickets":"Tickets","cache":"Cache","system":"Système","skills":"Compétences","tools":"Outils","debugging":"Débogage","consoleLogs":"Journaux de console","analyticsEvents":"Événements analytiques","unifiedEvents":"Vue unifiée","credentials":"Identifiants","settings":"Paramètres"},"notifications":{"title":"Notifications","description":"Consultez l’historique et choisissez comment recevoir chaque événement.","deliverySetup":"Diffusion dans le navigateur","deliverySetupDescription":"L’autorisation du navigateur et l’abonnement Web Push sont configurés séparément pour ce navigateur.","browserAlerts":"Alertes du navigateur","browserUnsupported":"Les alertes du navigateur ne sont pas prises en charge ici.","enabled":"Activé","enable":"Activer","webPush":"Push web","pushUnsupported":"Web Push nécessite un navigateur compatible et un contexte HTTPS sécurisé.","pushSubscribed":"Ce navigateur est abonné.","pushNotSubscribed":"Ce navigateur n’est pas abonné.","subscriptionCount":"{count, plural, one {# navigateur abonné} other {# navigateurs abonnés}}","subscribedBrowsers":"Navigateurs abonnés","subscribedBrowsersDescription":"Envoyez une notification de test ou retirez les navigateurs qui ne doivent plus recevoir de Push web.","browser":"Navigateur","pushService":"Service push","locale":"Paramètres régionaux","lastSeen":"Dernière activité","actions":"Actions","noSubscribedBrowsers":"Aucun navigateur n’est abonné au Push web.","current":"Actuel","test":"Tester","testSent":"Envoyée","remove":"Retirer","removeBrowser":"Retirer {browser}","removeBrowserTitle":"Retirer ce navigateur abonné ?","removeBrowserDescription":"Ce navigateur ne recevra plus de notifications Push web. Il pourra s’abonner à nouveau plus tard.","unknownBrowser":"Navigateur inconnu","subscribe":"S’abonner","unsubscribe":"Se désabonner","permissionRequired":"L’autorisation des notifications est requise pour Web Push.","pushKeyUnavailable":"La clé publique Web Push n’est pas disponible.","pushSubscriptionInvalid":"Le navigateur a renvoyé un abonnement push non valide.","iosInstallHelp":"Sur iPhone ou iPad, installez cette app via Partager → Sur l’écran d’accueil avant de vous abonner à Web Push.","preferences":"Types de notification","preferencesDescription":"Les canaux sont indépendants. Navigateur et Web Push peuvent produire les deux alertes.","notificationType":"Type","sidebarChannel":"Barre latérale","browserChannel":"Navigateur","pushChannel":"Push web","toggleChannel":"Basculer {channel} pour {type}","history":"Historique","historyCount":"{count, plural, one {# notification} other {# notifications}}","historyEmpty":"Aucune notification pour le moment.","notification":"Notification","channels":"Canaux","received":"Reçue","edit":"Modifier","done":"Terminé","deleteSelected":"Supprimer la sélection","deleteAll":"Tout supprimer","deleteAllTitle":"Supprimer tout l’historique des notifications ?","deleteAllDescription":"Cette action supprime définitivement toutes les notifications de la base de données.","selectedCount":"{count} sélectionnées","allSelected":"Toutes les notifications sont sélectionnées","selectAll":"Sélectionner toutes les notifications","selectDay":"Sélectionner les notifications du {day}","selectNotification":"Sélectionner {title}","dismiss":"Masquer","dismissOne":"Masquer {title} de la barre latérale","openBuild":"Ouvrir le build","openWorktree":"Ouvrir le worktree","delete":"Supprimer","confirmDelete":"Confirmer la suppression","mute":"Couper les sons de notification","unmute":"Activer les sons de notification","clearAll":"Tout effacer","clearSidebar":"Effacer la barre latérale","clearSidebarTitle":"Effacer la barre de notifications ?","clearSidebarDescription":"Les notifications seront retirées de la barre latérale mais resteront dans l’historique.","sidebarEmpty":"Aucune nouvelle notification.","cancel":"Annuler","permissions":{"default":"L’autorisation n’a pas encore été demandée.","granted":"Autorisation accordée pour ce navigateur.","denied":"L’autorisation est bloquée dans les paramètres du navigateur."},"types":{"IOS_BUILD_SUCCEEDED":{"title":"Build iOS réussi","description":"Un build iOS se termine avec succès."},"IOS_BUILD_FAILED":{"title":"Échec du build iOS","description":"Un build iOS se termine avec une erreur."}},"categories":{"BUILDS":"Builds"}},"credentialEncryption":{"title":"Les identifiants de la base de données ne sont pas chiffrés","description":"Les secrets stockés dans la base de données de l’application sont actuellement en clair. Générez une clé de 32 octets avec cette commande :","instructionsPrefix":"Définissez la valeur générée comme","instructionsSuffix":"dans l’environnement du serveur, puis redémarrez-le. Les identifiants existants en clair seront chiffrés ensemble après le redémarrage.","backup":"Sauvegardez cette clé de manière sécurisée et conservez-la pendant toute la durée de vie des lignes chiffrées. Sa perte ou sa modification rend ces identifiants illisibles."},"credentials":{"title":"Identifiants","description":"Consultez le backend actif, l’état de protection et un inventaire limité aux métadonnées. Les valeurs secrètes ne sont jamais affichées ici.","refresh":"Actualiser","loading":"Chargement de l’inventaire des identifiants…","loadFailed":"Impossible de charger l’inventaire des identifiants","storageTitle":"Stockage des identifiants","storageDescription":"Configuration d’exécution et détails d’emplacement sûrs pour le backend sélectionné.","backend":"Système de stockage","protection":"Protection","itemCount":"Éléments stockés","mismatchCount":"Incompatibilités de backend","inventoryTitle":"Identifiants stockés","inventoryDescription":"Ce tableau contient uniquement des identifiants et des métadonnées de protection. Gérez chaque valeur dans ses paramètres propriétaires.","feature":"Fonction propriétaire","kind":"Type d’identifiant","updated":"Mis à jour","emptyTitle":"Aucun identifiant stocké","emptyDescription":"Les identifiants apparaissent ici après leur enregistrement depuis le formulaire de paramètres associé.","states":{"READY":"Prêt","WARNING":"Avertissement","ERROR":"Erreur"},"backends":{"DATABASE":"Base de données","VAULT":"Coffre HashiCorp Vault","KEYCHAIN":"Trousseau macOS","UNKNOWN":"Inconnu"},"encryptionStates":{"ENCRYPTED":"Chiffré","PLAINTEXT":"En clair","EXTERNAL":"Backend externe","ERROR":"Indisponible"},"protections":{"ENCRYPTED":"Chiffrement AES-256-GCM","PLAINTEXT":"En clair","VAULT":"Stockage Vault KV v2","KEYCHAIN":"Trousseau"},"features":{"jira":"Intégration Jira","github":"Intégration GitHub","cache":"Cache Actions","mcp":"Serveur MCP externe","ios":"Appareils iOS","push":"Notifications push","notifications":"Notifications"},"kinds":{"jira-api-token":"Jeton d’API","github-personal-access-token":"Jeton d’accès personnel","github-app-private-key":"Clé privée GitHub App","cache-server-api-key":"Clé d’API","cache-server-headers":"Ensemble d’en-têtes personnalisés","external-mcp-server-headers":"Ensemble d’en-têtes","ios-profile-signer-private-key":"Clé privée de signature de profil","app-store-connect-private-key":"Clé privée App Store Connect","apns-token-private-key":"Clé privée du jeton APNs","apns-certificate-bundle":"Ensemble de certificat APNs","web-push-vapid-private-key":"Clé privée VAPID de push web"},"details":{"configuredValue":"Valeur configurée","location":"Emplacement","encryptionKey":"Clé de chiffrement","service":"Service","hostPlatform":"Plateforme hôte","address":"Adresse","mount":"Montage KV v2","pathPrefix":"Préfixe de chemin","namespace":"Espace de noms","authenticationToken":"Jeton d’authentification","additionalHeaders":"Noms d’en-têtes supplémentaires","customCa":"AC personnalisée","tlsServerName":"Nom du serveur TLS"},"detailValues":{"configured":"Configuré","notConfigured":"Non configuré","none":"Aucun","invalid":"Invalide","applicationDatabase":"Base de données de l’application"},"warningTitles":{"DATABASE_UNENCRYPTED":"Le chiffrement de la base de données est désactivé","CREDENTIAL_ENCRYPTION_KEY_INVALID":"La clé de chiffrement est invalide","CREDENTIAL_ENCRYPTION_KEY_MISSING":"La clé de chiffrement est absente","CREDENTIAL_ENCRYPTION_KEY_MISMATCH":"La clé de chiffrement ne correspond pas","CREDENTIAL_DATA_INVALID":"Les données d’identification sont invalides","CREDENTIAL_STORAGE_TYPE_INVALID":"Le type de stockage est invalide","CREDENTIAL_STORE_UNAVAILABLE":"Le stockage des identifiants est indisponible","VAULT_CONFIGURATION_INVALID":"La configuration de Vault est invalide","VAULT_INSECURE_HTTP":"Vault utilise HTTP en clair","VAULT_TLS_VERIFICATION_DISABLED":"La vérification du certificat Vault est désactivée","KEYCHAIN_UNSUPPORTED_PLATFORM":"Le trousseau n’est pas pris en charge sur cet hôte","BACKEND_MISMATCH":"Des identifiants utilisent un autre backend"},"warnings":{"DATABASE_UNENCRYPTED":"Les identifiants de la base de données sont stockés en clair jusqu’à la configuration d’une clé de chiffrement.","CREDENTIAL_ENCRYPTION_KEY_INVALID":"CREDENTIAL_ENCRYPTION_KEY doit être un encodage Base64 strict de 32 octets exactement. Corrigez-la et redémarrez le serveur ; aucune solution de repli en clair n’est utilisée avec une clé invalide.","CREDENTIAL_ENCRYPTION_KEY_MISSING":"Des identifiants chiffrés existent, mais la clé est absente. Restaurez la clé d’origine et redémarrez le serveur.","CREDENTIAL_ENCRYPTION_KEY_MISMATCH":"La clé configurée ne correspond pas aux identifiants existants. Restaurez la clé d’origine et redémarrez le serveur.","CREDENTIAL_DATA_INVALID":"Un ou plusieurs enregistrements d’identifiants contiennent des métadonnées invalides et ne peuvent pas être utilisés.","CREDENTIAL_STORAGE_TYPE_INVALID":"CREDENTIAL_STORAGE_TYPE doit être database, vault ou keychain.","CREDENTIAL_STORE_UNAVAILABLE":"Le stockage des identifiants n’a pas pu être initialisé. Vérifiez la configuration et les journaux du serveur.","VAULT_CONFIGURATION_INVALID":"Vault ne peut pas être initialisé avec les variables d’environnement actuelles. Vérifiez l’adresse, les en-têtes, le chemin et les réglages TLS.","VAULT_INSECURE_HTTP":"Le trafic Vault, les secrets et les en-têtes d’authentification ne sont pas protégés en transit sur HTTP.","VAULT_TLS_VERIFICATION_DISABLED":"VAULT_SKIP_VERIFY autorise les certificats non approuvés et expose le trafic Vault à l’interception.","KEYCHAIN_UNSUPPORTED_PLATFORM":"Le trousseau macOS n’est disponible que si l’hôte Next.js s’exécute sur macOS. Le serveur reste disponible, mais les opérations sur les identifiants échoueront.","BACKEND_MISMATCH":"{count} élément(s) d’identification ont été enregistrés avec un autre backend. Saisissez-les à nouveau dans leurs paramètres propriétaires ; les valeurs ne sont ni déplacées ni supprimées automatiquement."}},"agents":{"title":"Agents","description":"Gérez les Macs inscrits et les tâches durables depuis un plan de contrôle unique.","refresh":"Actualiser","enroll":"Inscrire un agent","enrollmentTitle":"Commande d’inscription à usage unique","enrollmentDescription":"Exécutez cette commande sur le Mac après avoir installé control-agent. Le Mac établit une connexion sortante ; il n’ouvre aucun port d’écoute.","serverAddress":"Adresse du serveur","copy":"Copier la commande","copyFailed":"Impossible de copier la commande. Sélectionnez-la et copiez-la manuellement.","expires":"Le jeton expire le {date}","loading":"Chargement des agents…","emptyTitle":"Aucun agent inscrit","emptyDescription":"Créez une commande d’inscription pour associer votre premier Mac.","version":"Version","platform":"Plateforme","lastSeen":"Dernière activité","never":"Jamais"},"usage":{"title":"Utilisation","description":"Consultez l’utilisation des jetons et les coûts de tous les Macs inscrits.","refresh":"Actualiser l’utilisation","rangeLabel":"Période d’utilisation","allData":"Toutes les données","last7Days":"7 jours","last30Days":"30 jours","loading":"Chargement des agents…","noAgents":"Aucun agent inscrit","noAgentsDescription":"Inscrivez un Mac avant de collecter l’utilisation.","noCompatible":"Aucun agent compatible en ligne","noCompatibleDescription":"Mettez à jour control-agent sur un Mac en ligne pour ajouter la capacité ccusage.","noOnline":"Aucun agent en ligne","noOnlineDescription":"Connectez un Mac inscrit avant de collecter l’utilisation.","collectionFailed":"Échec de la collecte d’utilisation","collectionFailedDescription":"Aucun agent n’a renvoyé de rapport ccusage valide. Consultez les erreurs ci-dessus et réessayez.","zeroUsage":"Aucune utilisation trouvée","zeroUsageDescription":"Les agents ont répondu correctement, mais ccusage n’a trouvé aucune utilisation quotidienne.","noUsageInRange":"Aucune utilisation sur cette période","noUsageInRangeDescription":"Choisissez une période plus longue pour afficher l’utilisation antérieure.","progress":"{complete} agents compatibles sur {total} ont répondu","offlineAgents":"Hors ligne : {agents}","unsupportedAgents":"Mise à jour requise : {agents}","failedAgents":"Échec : {agents}","costChartTitle":"Coût quotidien par modèle","costChartDescription":"Utilisation quotidienne cumulée en USD sur la période sélectionnée.","totalCost":"Coût total","totalTokens":"Total des jetons","inputTokens":"Jetons d’entrée","outputTokens":"Jetons de sortie","cacheCreationTokens":"Jetons de création du cache","cacheReadTokens":"Jetons de lecture du cache","usage":"Utilisation","input":"Entrée","output":"Sortie","cacheCreation":"Création du cache","cacheRead":"Lecture du cache","total":"Total","cost":"Coût","grandTotal":"Total général","unattributedTokens":"Jetons non attribués","modelCount":"{count} modèles","agentCount":"{count} agents","showModels":"Afficher les modèles du {date}","hideModels":"Masquer les modèles du {date}","showAgents":"Afficher les agents utilisant {model}","hideAgents":"Masquer les agents utilisant {model}"},"agentDetail":{"back":"Agents","loading":"Chargement de l’agent…","notFound":"Agent introuvable.","version":"Version","lastSeen":"Dernière activité","never":"Jamais","generalInformation":"Informations générales","generalInformationDescription":"Le matériel et l’utilisation des ressources sont actualisés à chaque signal de l’agent.","cpuModel":"Modèle du processeur","operatingSystem":"Système d’exploitation","architecture":"Architecture","ipAddress":"Adresse IP","memory":"Mémoire","disk":"Espace disque","used":"Utilisé","free":"Libre","unavailable":"Indisponible","capabilities":"Fonctionnalités","capabilitiesDescription":"Recherchez les capacités annoncées par cet agent, exécutez-en une et inspectez sa réponse en direct.","searchCapabilities":"Rechercher des capacités","searchCapabilitiesPlaceholder":"Rechercher des noms de capacités…","noMatchingCapabilities":"Aucune capacité ne correspond à cette recherche.","capability":"Capacité","kind":"Type","event":"Événement","job":"Tâche","expandCapability":"Développer {capability}","collapseCapability":"Réduire {capability}","eventCapabilityDescription":"Cet événement demande une réconciliation immédiate des bases de code et n’accepte aucune donnée.","payload":"Données (objet JSON)","invoke":"Exécuter la capacité","invokeOffline":"Connectez cet agent avant d’exécuter une capacité.","noCapabilityResponse":"Exécutez la capacité pour voir sa réponse.","codebases":"Bases de code","codebasesDescription":"Bases de code enregistrées sur cet agent.","noCodebases":"Aucune base de code n’est enregistrée sur cet agent.","repository":"Dépôt","status":"État","created":"Créée","finished":"Terminée","selectJob":"Sélectionner {kind}","runTitle":"Exécuter un tunnel Cloudflared","runDescription":"Démarre le gestionnaire cloudflared autorisé sur ce Mac. Il continue de s’exécuter dans le service de l’agent lorsque vous quittez cette page.","tunnelName":"Nom du tunnel","tunnelPlaceholder":"tunnel-developpement","queuing":"Mise en file…","run":"Exécuter","history":"Historique des tâches","noJobs":"Aucune tâche n’a été exécutée sur cet agent.","baseRepoDirectory":"Répertoire de base des dépôts","baseRepoDirectoryDescription":"Choisissez le dossier de cet agent qui contient ses dépôts. Les chemins des worktrees qui s’y trouvent seront affichés relativement à ce dossier.","currentDirectory":"Répertoire actuel","notConfigured":"Non configuré","useDirectory":"Utiliser ce répertoire","clearDirectory":"Effacer le répertoire","directoryBrowsingUnavailable":"Connectez cet agent et mettez-le à jour si nécessaire pour parcourir les répertoires.","derivedDataLocation":"Derived Data Xcode","derivedDataLocationDescription":"Choisissez où cet agent stocke le DerivedData Xcode.","derivedDataMode":"Mode d’emplacement","derivedDataDefault":"Emplacement Xcode par défaut","derivedDataAbsolute":"Répertoire absolu personnalisé","derivedDataRelative":"Relatif à chaque arbre de travail","derivedDataAbsolutePath":"Répertoire absolu","derivedDataRelativePath":"Chemin de dossier relatif","derivedDataAbsoluteHelp":"Saisissez un chemin absolu sur cet agent ou choisissez un répertoire existant.","derivedDataRelativeHelp":"Ce dossier est recherché sous chaque arbre de travail actif suivi.","saveDerivedDataSettings":"Enregistrer les paramètres Derived Data","buildsDirectory":"Répertoire des builds","buildsDirectoryDescription":"Les journaux, produits copiés, archives et exports sont stockés dans un dossier par build. Par défaut, /Builds est ajouté au répertoire de base des dépôts, sauf remplacement ici.","browseBuildsDirectory":"Parcourir le répertoire des builds","effectiveDirectory":"Répertoire effectif","agentDefault":"Valeur par défaut du dépôt de base","customBuildsDirectory":"Répertoire absolu personnalisé","saveBuildsDirectory":"Enregistrer le répertoire des builds","useAgentDefault":"Utiliser la valeur par défaut du dépôt de base","deleteAgent":"Supprimer l’agent","deleteAgentTitle":"Supprimer cet agent ?","deleteAgentDescription":"Supprimer définitivement {name} ainsi que tous ses jobs et enregistrements de bases de code. Cette action est irréversible."},"buildData":{"title":"Données de build","description":"Inspectez et nettoyez le DerivedData Xcode sur les agents inscrits.","derivedDataTitle":"Données dérivées","derivedDataDescription":"Produits de build, index, journaux et caches Xcode par projet.","deviceSupportTitle":"Prise en charge des appareils iOS","deviceSupportDescription":"Symboles et fichiers conservés pour les versions iOS connectées à chaque agent.","deviceSupportVersion":"Version iOS","selectAllDeviceSupport":"Sélectionner toute la prise en charge iOS","noDeviceSupport":"Aucun dossier de prise en charge iOS trouvé.","deleteDeviceSupportTitle":"Supprimer la prise en charge iOS ?","deleteDeviceSupportDescription":"Supprimer définitivement {count} dossiers ? Xcode peut les recréer à la connexion d’un appareil compatible.","refresh":"Actualiser","calculateSizes":"Calculer les tailles","loading":"Analyse de Derived Data…","emptyTitle":"Aucune Derived Data trouvée","emptyDescription":"Les répertoires DerivedData configurés ne contiennent aucune entrée.","progress":"{complete} agents analysés sur {total} éligibles","selected":"{count} sélectionnés","deleteSelected":"Supprimer la sélection","selectAll":"Sélectionner toutes les entrées Derived Data","selectEntry":"Sélectionner {name}","folder":"Dossier","worktree":"Chemin de l’arbre de travail","size":"Espace disque","agent":"Agent","actions":"Actions","entryActions":"Actions pour {name}","deleteEntry":"Supprimer {name}","confirmDeleteEntry":"Confirmer la suppression de {name}","confirmDelete":"Confirmer","delete":"Supprimer","deleteTitle":"Supprimer Derived Data ?","deleteDescription":"Supprimer définitivement {count} entrées sélectionnées ? Cette action est irréversible.","history":"Historique des suppressions","historyDescription":"Derived Data supprimées des agents inscrits au cours des 90 derniers jours.","clearHistory":"Effacer l’historique","clearHistoryTitle":"Effacer l’historique ?","clearHistoryDescription":"Supprimer tous les enregistrements conservés ? Cela n’affecte pas les fichiers des agents.","loadingHistory":"Chargement de l’historique…","noHistory":"Aucune Derived Data n’a encore été supprimée.","deleted":"Supprimé","sourceLabel":"Source","loadMore":"Charger plus","status":{"UNLINKED":"Non lié","PENDING":"Build en démarrage","SHARED_CACHE":"Cache partagé"},"source":{"USER":"Utilisateur","AUTOMATIC":"Automatique"},"agentStatus":{"QUEUING":"mise en file","QUEUED":"en attente","RUNNING":"analyse","SUCCEEDED":"terminé","FAILED":"échec","CANCELLED":"annulé","TIMED_OUT":"délai dépassé","OFFLINE":"hors ligne","UNSUPPORTED":"mise à jour de l’agent requise","INVALID":"réponse invalide"}},"cacheServerSettings":{"title":"Serveur de cache Actions","description":"Connectez-vous à un serveur de cache GitHub Actions pour gérer ses entrées de cache.","configured":"Configuré","notConfigured":"Non configuré","loading":"Chargement des paramètres…","saved":"Paramètres du serveur de cache enregistrés.","connectionSucceeded":"Connexion au serveur de cache réussie.","removed":"Paramètres du serveur de cache supprimés.","baseUrl":"URL de base","baseUrlHelp":"L\'URL de base de l\'API de gestion, y compris tout préfixe de chemin.","apiKey":"Clé d\'API","apiKeyPlaceholder":"Saisissez la clé d\'API du serveur de cache","apiKeyPlaceholderConfigured":"Laissez vide pour conserver la clé actuelle","apiKeyHelp":"Envoyée comme en-tête x-api-key à chaque requête.","apiKeyKeepHelp":"Une clé est enregistrée. Saisissez une nouvelle valeur pour la remplacer.","headers":"En-têtes personnalisés","addHeader":"Ajouter un en-tête","headersHelp":"Les valeurs des en-têtes sont enregistrées localement, envoyées à chaque requête au serveur de cache et ne sont jamais renvoyées au navigateur.","noHeaders":"Aucun en-tête personnalisé configuré.","headerName":"Nom","headerValue":"Valeur","headerValuePlaceholderConfigured":"Laissez vide pour conserver la valeur actuelle","removeHeader":"Supprimer l\'en-tête","remove":"Supprimer","confirmRemove":"Supprimer les paramètres du serveur de cache ?","confirmRemoveDescription":"Les informations de connexion et la clé d\'API seront supprimées. La page Cache des Actions sera masquée jusqu\'à sa reconfiguration.","test":"Tester","save":"Enregistrer"},"cacheServer":{"title":"Cache des Actions","description":"Parcourez et gérez les entrées du serveur de cache GitHub Actions.","matchLookup":"Recherche de correspondance","refresh":"Actualiser","close":"Fermer","filtersTitle":"Filtres","filtersDescription":"Filtrez les entrées de cache par clé, version, portée ou dépôt.","key":"Clé","keyPlaceholder":"Clé de cache","version":"Version","versionPlaceholder":"Version du cache","scope":"Portée","scopePlaceholder":"Référence ou portée","repoId":"ID de dépôt","repoIdPlaceholder":"ID du dépôt","itemsPerPage":"Par page","deleteMatching":"Supprimer les correspondances","confirmDeleteMatching":"Supprimer toutes les entrées correspondantes ?","confirmDeleteMatchingDescription":"Toutes les entrées de cache correspondant aux filtres appliqués seront supprimées. Cette action est irréversible.","reset":"Réinitialiser","applyFilters":"Appliquer","entriesTitle":"Entrées de cache","entriesDescription":"Entrées de cache stockées sur le serveur.","loading":"Chargement des entrées de cache…","noEntries":"Aucune entrée de cache ne correspond aux filtres actuels.","updatedAt":"Mis à jour","actions":"Actions","viewDetails":"Voir les détails","delete":"Supprimer","confirmDeleteEntry":"Supprimer cette entrée de cache ?","edit":"Modifier","doneEditing":"Terminé","selected":"{count} sélectionnés","selectAll":"Sélectionner toutes les entrées de cache","selectEntry":"Sélectionner {name}","deleteSelected":"Supprimer la sélection","confirmDeleteSelected":"Supprimer {count} entrées de cache ?","showing":"Affichage de {start} à {end} sur {total}","previous":"Précédent","next":"Suivant","notConfiguredTitle":"Serveur de cache non configuré","notConfiguredDescription":"Configurez le serveur de cache GitHub Actions sur la page Paramètres pour gérer ses entrées.","goToSettings":"Aller aux paramètres","detailTitle":"Entrée de cache","detailDescription":"L\'entrée de cache complète et l\'emplacement de stockage qui la sous-tend.","entryNotFound":"Cette entrée de cache n\'existe plus.","entrySection":"Entrée","id":"Identifiant","locationId":"ID d\'emplacement","locationSection":"Emplacement de stockage","deleteLocation":"Supprimer l\'emplacement","confirmDeleteLocation":"Supprimer cet emplacement de stockage ?","confirmDeleteLocationDescription":"Le dossier de stockage et ses données seront supprimés. Cette action est irréversible.","folderName":"Nom du dossier","partCount":"Nombre de parties","sizeBytes":"Taille","mergeStartedAt":"Fusion démarrée","mergedAt":"Fusionné","partsDeletedAt":"Parties supprimées","lastDownloadedAt":"Dernier téléchargement","noLocation":"Aucun emplacement de stockage n\'est lié à cette entrée.","matchTitle":"Faire correspondre l\'entrée de cache","matchDescription":"Trouvez l\'entrée que le serveur de cache restaurerait pour un ensemble de clés.","primaryKey":"Clé principale","restoreKeys":"Clés de restauration","commaSeparated":"Séparé par des virgules","scopes":"Portées","matchFound":"Correspondance trouvée","matchTypes":{"EXACT_PRIMARY":"Principale exacte","PREFIXED_PRIMARY":"Principale préfixée","EXACT_RESTORE":"Restauration exacte","PREFIXED_RESTORE":"Restauration préfixée"},"noMatch":"Aucune entrée de cache ne correspond aux clés fournies.","runMatch":"Lancer la correspondance"},"jobs":{"back":"Agents","open":"Ouvrir la tâche","cancel":"Annuler","loading":"Chargement de la tâche…","notFound":"Tâche introuvable.","waiting":"En attente de sortie…"},"jiraTickets":{"title":"Tickets Jira","description":"Parcourez par statut les projets, tableaux et requêtes JQL enregistrés.","refresh":"Actualiser","manage":"Gérer","showBoardLayout":"Vue tableau Kanban","showTableLayout":"Vue tabulaire","collapseStatus":"Réduire {status}","expandStatus":"Développer {status}","issueType":"Type de ticket","priority":"Priorité","loading":"Chargement des projets Jira…","loadingTickets":"Chargement des tickets…","loadingTicket":"Chargement des détails du ticket…","emptyProjects":"Aucun projet Jira pour le moment","emptyProjectsDescription":"Configurez Jira, puis ajoutez un projet et sa première source.","emptySources":"Ce projet n’a aucune source","emptySourcesDescription":"Ajoutez une requête JQL nommée ou l’URL d’un tableau Jira.","emptyTickets":"Aucun ticket ne correspond à cette source.","addProject":"Ajouter un projet","addSource":"Ajouter une source","projectTabs":"Projets Jira","sourceTabs":"Sources des tickets","staleWarning":"Jira est inaccessible ; des données expirées du cache sont affichées.","truncatedWarning":"Cette source dépasse 1 000 tickets. Affinez-la pour voir les autres résultats.","issue":"Demande","unassigned":"Non attribué","manageTitle":"Gérer les projets et sources Jira","manageDescription":"Les projets viennent de Jira et chaque source est validée avant l’enregistrement.","projects":"Projets","availableProjects":"Projets Jira disponibles","selectProject":"Sélectionner un projet","sourceCount":"{count} sources","removeProject":"Retirer le projet","confirmRemoveProject":"Retirer ce projet et toutes ses sources enregistrées ?","sourcesFor":"Sources de {project}","displaySettings":"Paramètres d’affichage","displaySettingsDescription":"Ces paramètres s’appliquent uniquement à ce projet.","ticketsToShow":"Tickets à afficher","allTickets":"Tous les tickets","unassignedOrSelfAssigned":"Non assignés ou assignés à moi","selfAssignedInProgress":"Mes tickets en cours","hideCompletedTickets":"Masquer les tickets terminés","hideCompletedTicketsDescription":"Choisissez les statuts du projet considérés comme terminés.","completedStatuses":"Statuts terminés","loadingStatuses":"Chargement des statuts…","selectCompletedStatuses":"Sélectionner les statuts terminés","saveDisplaySettings":"Enregistrer les paramètres d’affichage","branchNaming":"Nommage des branches","branchNamingDescription":"Cette fonction est utilisée lors de la création d’une branche de worktree depuis un ticket de ce projet.","branchNamingFunction":"Fonction JavaScript de nommage des branches","branchNamingFunctionHelp":"Reçoit ticketKey, type, title et alreadyTaken. Retournez un nom de branche Git valide ; alreadyTaken est omis au premier appel.","saveBranchNaming":"Enregistrer le nommage des branches","sourceName":"Nom de la source","sourceType":"Type de source","boardUrl":"URL du tableau","editSource":"Modifier la source","deleteSource":"Supprimer la source","confirmDeleteSource":"Supprimer cette source et les entrées de cache associées ?","saveSource":"Enregistrer la source","cancel":"Annuler","done":"Terminé","ticket":"Ticket","staleTicket":"Certaines données sont expirées car Jira n’a pas répondu.","openInJira":"Ouvrir dans Jira","worktreeAction":"Créer un worktree","ticketWorktreeTitle":"Créer depuis {issueKey}","ticketWorktreeDescription":"Créez un nouveau worktree sur un agent, ou créez la branche du ticket et basculez-y un worktree existant.","newWorktree":"Nouveau worktree","existingWorktree":"Worktree existant","agentAndCodebase":"Agent et base de code","selectWorktreeDestination":"Sélectionner une destination","searchWorktreeDestinations":"Rechercher des worktrees, agents et bases de code","noWorktreeDestinations":"Aucune destination compatible et en ligne n’est disponible.","chooseWorktreeDestination":"Choisissez où créer la branche du ticket.","loadingWorktreeDestinations":"Chargement des destinations de worktree…","ticketWorktreeCreated":"Le worktree du ticket a été créé.","ticketBranchChanged":"La branche du ticket a été créée et le worktree y a été basculé.","createTicketWorktree":"Créer le worktree du ticket","createAndSwitchBranch":"Créer et changer de branche","ticketStashRetryHelp":"Git n’a pas pu changer de branche avec les modifications actuelles. Stashez les modifications suivies et non suivies, puis réessayez.","stashAndRetry":"Stasher et réessayer","detachedBranch":"HEAD détaché","descriptionTitle":"Description","classification":"Classement","labels":"Étiquettes","components":"Composants","fixVersions":"Versions correctives","sprints":"Itérations","relatedIssues":"Tickets associés","attachments":"Pièces jointes","comments":"Commentaires ({count})","noComments":"Ce ticket ne contient aucun commentaire.","unknownUser":"Utilisateur inconnu","assignee":"Responsable","reporter":"Rapporteur","created":"Créé","updated":"Mis à jour","due":"Échéance","resolved":"Résolu","affectedVersions":"Versions affectées","openFullDetails":"Ouvrir tous les détails","renderFormat":"Format d’affichage","markdown":"Format Markdown","jiraWiki":"Wiki Jira","viewRendered":"Voir le rendu","viewRaw":"Voir la source","rendered":"Rendu","raw":"Source","copied":"Copié","copy":"Copier","commentActions":"Actions du commentaire","copyRaw":"Copier le contenu source","copyFailed":"Impossible de copier le contenu.","authoringFormat":"Format de rédaction","preview":"Aperçu","hidePreview":"Masquer l’aperçu","commentBody":"Commentaire","commentPlaceholder":"Écrivez un commentaire…","saving":"Enregistrement…","addComment":"Ajouter un commentaire","changeAssignee":"Changer le responsable","searchAssignees":"Rechercher des utilisateurs assignables","loadingAssignees":"Chargement des utilisateurs…","noAssignees":"Aucun utilisateur assignable trouvé.","status":"Statut","changeStatus":"Changer le statut","requiresJira":"Nécessite Jira"},"jiraTicketDetail":{"loading":"Chargement du ticket Jira…","notFound":"Ticket introuvable","notFoundDescription":"Le ticket Jira n’a pas pu être chargé.","back":"Retour aux tickets Jira","summary":"Résumé","save":"Enregistrer","editSummary":"Modifier le résumé","refresh":"Actualiser","edit":"Modifier","saveDescription":"Enregistrer la description","descriptionHistory":"Historique de la description","descriptionHistoryDescription":"Sélectionnez deux versions de l’activité Jira pour comparer leur texte.","currentVersion":"Version actuelle","beforeChange":"Avant le {date}","afterChange":"Après le {date}","loadingHistory":"Chargement de l’historique…","noDescriptionHistory":"Aucune version antérieure de la description n’est disponible.","compareFrom":"Comparer depuis","compareTo":"Comparer vers","compareVersions":"Comparer les versions","descriptionComparison":"Comparaison de la description","selectVersions":"Sélectionnez deux versions différentes à comparer.","activity":"Activité","comments":"Commentaires","history":"Historique","worklogs":"Journaux de travail","unknownUser":"Utilisateur inconnu","noHistory":"Aucun historique disponible.","loadMore":"Charger plus","started":"Commencé {date}","noWorklogs":"Aucun journal de travail disponible.","allFields":"Tous les champs Jira","expandFields":"Afficher les champs","collapseFields":"Masquer les champs","searchFields":"Rechercher des champs","field":"Champ","value":"Valeur","custom":"Personnalisé","details":"Détails","editDetails":"Modifier les détails du ticket","editDetailsDescription":"Seuls les champs modifiables dans Jira sont affichés.","none":"Aucun","commaSeparated":"Valeurs séparées par des virgules","pickDate":"Choisir une date","clearDate":"Effacer la date","saving":"Enregistrement…"},"jiraCache":{"title":"Cache Jira","description":"Inspectez les données en cache, l’usage de l’API, la latence et les erreurs.","ttl":"Durée du cache en minutes","saveTtl":"Enregistrer la durée","clearCache":"Vider le cache","confirmClear":"Vider les réponses et tickets Jira ? L’historique des appels sera conservé.","loading":"Chargement de l’activité du cache…","average":"Moyenne de {ms} ms","live":"Direct","cache":"Cache","errors":"Erreurs","operationsTitle":"Opérations API","operationsDescription":"Comptages par opération et origine pour chaque fenêtre glissante.","noMetrics":"Aucune activité de l’API Jira au cours des dernières 24 heures.","operation":"Opération","recentTitle":"Appels API récents","recentDescription":"Chaque opération Jira mise en cache, de la plus récente à la plus ancienne.","noCalls":"Aucun appel à l’API Jira n’a été enregistré.","time":"Heure","fetched":"Éléments récupérés","source":"Origine","sources":{"LIVE":"Direct","CACHE":"Cache","ERROR":"Erreur"},"duration":"Durée","error":"Erreur","stale":"Expiré","ticketsTitle":"Tickets en cache","ticketsDescription":"Couverture des résumés, détails et commentaires des tickets Jira.","noTickets":"Aucun ticket Jira n’est en cache.","ticket":"Ticket","status":"Statut","coverage":"Couverture","freshness":"Fraîcheur","fresh":"À jour","lastFetched":"Dernière récupération","actions":"Actions","open":"Ouvrir","refresh":"Actualiser","delete":"Supprimer","confirmDeleteTicket":"Supprimer {issueKey} et toutes les entrées qui le référencent ?","showing":"Affichage de {start} à {end} sur {total}","previous":"Précédent","next":"Suivant"},"jiraCacheDetail":{"back":"Cache Jira","description":"Données Jira du ticket en cache","refresh":"Actualiser le ticket","delete":"Supprimer du cache","confirmDelete":"Supprimer {issueKey} et ses entrées de cache associées ?","loading":"Chargement du ticket en cache…","notFound":"Ce ticket ne figure pas dans le cache Jira.","coverage":"Couverture","freshness":"Fraîcheur","fresh":"À jour","stale":"Expiré","detailFetched":"Détail récupéré","commentsFetched":"Commentaires récupérés","summaryData":"Réponse de résumé","detailData":"Réponse détaillée complète","commentsData":"Réponse complète des commentaires","notFetched":"Ce niveau de données n’a pas encore été récupéré.","relatedEntries":"Entrées de cache associées","noEntries":"Aucune entrée de cache ne référence ce ticket.","operation":"Opération","fetchedAt":"Récupéré le","entryId":"Identifiant de cache"},"jiraSettings":{"title":"Paramètres","description":"Configurez le compte Jira Cloud utilisé par cette application.","loading":"Chargement des paramètres Jira…","credentials":"Identifiants Jira","configured":"Jeton configuré","notConfigured":"Jeton non configuré","siteUrl":"URL du site Jira Cloud","siteUrlHelp":"Utilisez l’URL racine *.atlassian.net de votre site Jira.","email":"Adresse du compte Jira","apiToken":"Jeton d’API Jira","tokenPlaceholder":"Collez un jeton d’API Atlassian","tokenPlaceholderConfigured":"Laissez vide pour conserver le jeton","tokenHelp":"Le jeton est stocké dans SQLite local et n’est jamais renvoyé au navigateur.","tokenKeepHelp":"Laissez ce champ vide sauf pour remplacer le jeton enregistré.","save":"Enregistrer les paramètres","test":"Tester la connexion","remove":"Retirer les identifiants","saved":"Paramètres Jira enregistrés.","connectionSucceeded":"Connexion à Jira réussie.","removed":"Identifiants retirés et données Jira en cache supprimées.","confirmSiteChange":"Changer de site supprime projets, sources et cache Jira. Continuer ?","confirmRemove":"Retirer l’adresse et le jeton enregistrés puis vider le cache Jira ?"},"settings":{"title":"Paramètres","description":"Configurez les outils de développement, les services Apple et les intégrations externes.","developmentGroup":"Développement","developmentGroupDescription":"Choisissez les outils utilisés avec les extractions locales et les worktrees.","appleGroup":"Services Apple","appleGroupDescription":"Gérez l’inscription iOS et les identifiants App Store Connect et APNs.","integrationsGroup":"Intégrations","integrationsGroupDescription":"Connectez les comptes Jira et GitHub utilisés dans toute l’application."},"editorSettings":{"title":"Éditeur des worktrees","description":"Choisissez l’édition de VS Code qui ouvre les worktrees ou masquez ces actions.","loading":"Chargement des réglages de l’éditeur…","label":"Éditeur","code":"Visual Studio Code (version stable)","insiders":"Visual Studio Code (canal Insiders)","none":"Aucun (masquer les boutons)","save":"Enregistrer l’éditeur","saved":"Réglage de l’éditeur enregistré."},"githubSettings":{"title":"Identifiants GitHub","description":"Connectez le compte utilisé pour charger les demandes de tirage et GitHub Actions.","loading":"Chargement des paramètres GitHub…","configured":"Jeton configuré","notConfigured":"Jeton non configuré","apiToken":"Jeton d’accès personnel GitHub","tokenPlaceholder":"Collez un jeton d’accès personnel GitHub","tokenPlaceholderConfigured":"Laissez vide pour conserver le jeton enregistré","tokenHelp":"Accordez un accès en lecture et écriture aux demandes de tirage ainsi qu’un accès en lecture à Actions dans les dépôts utilisés. Le jeton sert aux vues, aux fils de révision et aux détails des exécutions.","tokenKeepHelp":"Laissez ce champ vide sauf si vous souhaitez remplacer le jeton enregistré.","save":"Enregistrer les paramètres","test":"Tester la connexion","remove":"Supprimer les identifiants","saved":"Paramètres GitHub enregistrés.","connectionSucceeded":"Connexion à GitHub réussie.","removed":"Identifiants GitHub supprimés. Les dépôts gérés ont été conservés.","confirmRemove":"Supprimer les identifiants GitHub ?","confirmRemoveDescription":"Le jeton enregistré sera supprimé. Les dépôts gérés et leurs expressions Jira seront conservés."},"githubAppSettings":{"title":"Relance des pipelines par GitHub App","description":"Utilisez votre propre GitHub App pour relancer les workflows GitHub Actions.","loading":"Chargement des paramètres de la GitHub App…","verified":"Vérifiée","notConfigured":"Non configurée","setupTitle":"Configurer votre propre GitHub App","stepRegister":"Enregistrez une GitHub App au nom unique, par exemple « Relance IA Environnement », depuis","registerLink":"Créer une GitHub App","stepHomepage":"Utilisez","stepHomepageSuffix":" comme URL de page d’accueil. Laissez l’URL de rappel vide et désactivez les webhooks.","stepPermissions":"Réglez Repository permissions → Actions sur Read and write. Metadata reste automatiquement en lecture seule ; aucun droit Checks n’est nécessaire.","stepInstall":"Créez l’app, générez une clé privée, puis installez-la uniquement sur les dépôts que ce déploiement doit contrôler.","stepInstallationId":"Après l’installation, ouvrez la page Configure de l’app. L’identifiant d’installation est le dernier nombre de l’URL, par exemple","stepInstallationIdSuffix":". Remplacez Organization-name par votre organisation et copiez la valeur finale de l’ID.","stepCredentials":"Copiez l’identifiant de l’app et celui de l’installation, puis collez-les avec le fichier PEM téléchargé.","appId":"Identifiant de la GitHub App","appIdPlaceholder":"Saisissez l’identifiant numérique de l’app","installationId":"Identifiant d’installation","installationIdPlaceholder":"Saisissez l’identifiant numérique d’installation","privateKey":"Clé privée au format PEM","privateKeyDropZone":"Zone de dépôt de la clé privée PEM","pemDropHint":"Déposez un fichier .pem ici ou collez la clé ci-dessous.","pemFileLoaded":"{filename} a été chargé. Enregistrez et vérifiez pour utiliser cette clé.","pemFileInvalid":"Déposez un fichier .pem valide contenant une clé privée RSA.","pemFileReadError":"Le fichier PEM déposé n’a pas pu être lu.","privateKeyPlaceholder":"Collez le PEM téléchargé de la GitHub App","privateKeyPlaceholderConfigured":"Laissez vide pour conserver la clé configurée","privateKeyHelp":"La clé est envoyée uniquement au serveur Next.js et n’est jamais renvoyée au navigateur.","privateKeyKeepHelp":"Une clé privée est configurée. Collez un nouveau PEM uniquement pour la renouveler.","connectedAs":"Connexion à {app} sur {account}","connectionDetails":"Actions : {permission} ; dépôts : {selection}","lastVerified":"Dernière vérification : {date}","save":"Enregistrer et vérifier","rotate":"Renouveler la clé et vérifier","test":"Tester la connexion","remove":"Supprimer la GitHub App","saved":"La GitHub App a été enregistrée et vérifiée.","rotated":"La clé privée de la GitHub App a été renouvelée et vérifiée.","connectionSucceeded":"La connexion à la GitHub App a été vérifiée.","removed":"Les identifiants de la GitHub App ont été supprimés. Le jeton personnel et les dépôts gérés sont conservés.","confirmRemove":"Supprimer les identifiants de la GitHub App ?","confirmRemoveDescription":"L’identifiant de l’app, celui de l’installation et la clé privée seront supprimés. Les identifiants des demandes et les dépôts gérés seront conservés."},"pullRequests":{"title":"Demandes de tirage","description":"Consultez vos demandes GitHub et les dépôts surveillés au même endroit.","refresh":"Actualiser","manage":"Gérer","loading":"Chargement de la configuration GitHub…","credentialsRequired":"Connectez GitHub pour afficher les demandes","credentialsRequiredDescription":"Ajoutez un jeton d’accès personnel dans les Paramètres avant de charger les données GitHub.","openSettings":"Ouvrir les Paramètres","tabsLabel":"Vues des demandes de tirage","mine":"Les miennes","reviewRequests":"Demandes de révision","repositories":"Dépôts","stateFilter":"État de la demande de tirage","repositoryFilter":"Dépôt","selectRepository":"Sélectionner un dépôt","searchRepositories":"Rechercher des dépôts","searchAvailableRepositories":"Rechercher les dépôts disponibles","noRepositoryMatches":"Aucun dépôt ne correspond à la recherche.","truncated":"La recherche GitHub renvoie au maximum 1 000 résultats. Affinez votre charge de travail sur GitHub pour voir les éléments au-delà de cette limite.","loadingPullRequests":"Chargement des demandes de tirage…","loadingMore":"Chargement…","retryLoad":"Réessayer","empty":"Aucune demande de tirage","emptyDescription":"Aucune demande de tirage ne correspond actuellement à cette vue.","repository":"Dépôt","number":"Numéro","pullRequest":"Demande de tirage","pullRequestAndRepository":"Demande de tirage / Dépôt","labels":"Étiquettes","ticket":"Ticket","pipeline":"Pipeline","approval":"Approbation","openComments":"Commentaires ouverts","viewOpenComments":"Voir {count} commentaires ouverts","age":"Ancienneté","actions":"Actions","details":"Détails","openInGitHub":"Ouvrir dans GitHub","merge":"Fusionner","mergePullRequest":"Fusionner la pull request","mergePullRequestDescription":"Fusionnez {repository} #{number} après avoir vérifié les détails du commit.","loadingMergeOptions":"Vérification des conditions de fusion…","mergeType":"Type de fusion","selectMergeType":"Sélectionner un type de fusion","mergeTypes":{"SQUASH":"Squash et fusion","MERGE":"Créer un commit de fusion","REBASE":"Rebase et fusion"},"commitMessage":"Message du commit","commitDescription":"Description du commit","commitEmail":"E-mail du commit","githubDefaultEmail":"Utiliser la valeur par défaut du compte GitHub","cancelMerge":"Annuler","merging":"Fusion en cours…","pipelineStates":{"ACTION_REQUIRED":"Action requise","CANCELLED":"Annulé","ERROR":"Erreur","EXPECTED":"Attendu","FAILURE":"Échec","IN_PROGRESS":"En cours","NEUTRAL":"Neutre","PENDING":"En attente","QUEUED":"En file","SKIPPED":"Ignoré","STALE":"Obsolète","STARTUP_FAILURE":"Échec au démarrage","SUCCESS":"Réussi","TIMED_OUT":"Délai dépassé","NONE":"Aucune vérification"},"pipelineMenuTitle":"État des pipelines","noPipelines":"Aucune vérification de pipeline n’a été signalée.","retry":"Relancer","retrying":"Relance…","retryUnavailable":{"GITHUB_APP_NOT_CONFIGURED":"Configurez et vérifiez une GitHub App dans les Paramètres pour relancer ce workflow.","NOT_COMPLETED":"Seuls les workflows terminés peuvent être relancés.","NOT_GITHUB_ACTIONS":"Seules les exécutions GitHub Actions peuvent être relancées.","WORKFLOW_RUN_UNAVAILABLE":"GitHub n’a fourni aucune exécution de workflow pour cette suite de vérifications.","HISTORICAL_ATTEMPT":"Les anciennes tentatives sont en lecture seule."},"reviewStates":{"APPROVED":"Approuvée","CHANGES_REQUESTED":"Modifications demandées","REVIEW_REQUIRED":"Révision requise","NONE":"Aucune décision"},"pullRequestStates":{"ALL":"Toutes","OPEN":"Ouverte","CLOSED":"Fermée","MERGED":"Fusionnée"},"mergeableStates":{"CONFLICTING":"Conflits","MERGEABLE":"Fusionnable","UNKNOWN":"Calcul en cours"},"manageTitle":"Gérer les dépôts GitHub","manageDescription":"Choisissez les onglets de dépôt et configurez l’extraction des clés Jira depuis les titres.","manageCredentialsRequired":"Configurez les identifiants GitHub avant d’ajouter des dépôts.","managedRepositories":"Dépôts gérés","noManagedRepositories":"Aucun dépôt n’est encore géré.","addRepository":"Ajouter un dépôt","browse":"Parcourir","enterManually":"Saisir manuellement","privateRepository":"Dépôt privé","managed":"Géré","add":"Ajouter","loadingRepositories":"Chargement des dépôts…","loadMore":"Charger plus","repositoryName":"Propriétaire/nom du dépôt","jiraKeyRegex":"Expression régulière de clé Jira","jiraKeyRegexHelp":"Le premier groupe capturé est utilisé s’il existe, sinon la correspondance complète. Effacez le champ pour désactiver l’analyse.","defaultJiraKeyRegex":"Expression par défaut de clé de ticket","defaultJiraKeyRegexHelp":"Utilisée pour chaque dépôt géré sans remplacement propre. Le premier groupe capturé est utilisé s’il existe.","jiraKeyRegexOverrideHelp":"Laissez vide pour hériter de l’expression par défaut.","saveDefaultRegex":"Enregistrer l’expression par défaut","invalidRegex":"Saisissez une expression régulière de clé Jira valide.","done":"Terminé","removeRepository":"Supprimer le dépôt","confirmRemoveRepository":"Supprimer ce dépôt géré ?","confirmRemoveRepositoryDescription":"Son onglet de demandes et sa configuration d’expression Jira seront supprimés.","saveRegex":"Enregistrer l’expression Jira"},"githubComments":{"title":"Commentaires","description":"Consultez et répondez aux fils de révision GitHub de vos demandes ouvertes.","refresh":"Actualiser","layout":"Disposition des commentaires","cards":"Disposition en cartes","table":"Disposition en tableau","loadingConfiguration":"Chargement de la configuration GitHub…","credentialsRequired":"Connectez GitHub pour voir les commentaires","credentialsDescription":"Ajoutez dans Paramètres un jeton personnel autorisé à lire et modifier les demandes.","openSettings":"Ouvrir les paramètres","allPullRequests":"Toutes les demandes ouvertes","searchPullRequests":"Rechercher des demandes ouvertes","noPullRequestMatches":"Aucune demande ouverte ne correspond à la recherche.","currentUser":"Utilisateur actuel","otherUsers":"Autres utilisateurs","unresolved":"Non résolus","truncated":"La recherche GitHub renvoie au maximum 1 000 demandes. Certains fils peuvent manquer.","loading":"Chargement des commentaires de révision…","empty":"Aucun commentaire de révision","emptyDescription":"Aucun fil ne correspond à la demande et aux filtres sélectionnés.","reviewThreads":"Commentaires de révision","reviewThreadsDescription":"{count, plural, =0 {Aucun fil de révision ne correspond aux filtres actuels.} one {# fil de révision correspond aux filtres actuels.} other {# fils de révision correspondent aux filtres actuels.}}","author":"Auteur","pullRequest":"Demande de tirage","comment":"Commentaire","date":"Date du commentaire","replies":"Réponses","github":"Plateforme GitHub","rendered":"Aperçu rendu","markdown":"Source Markdown","viewRaw":"Source","viewRendered":"Rendu","copy":"Copier","copied":"Copié","copyFailed":"Impossible de copier le Markdown.","unknownAuthor":"Auteur inconnu","fileComment":"Commentaire de fichier","outdated":"Obsolète","resolved":"Résolu","openInGitHub":"Ouvrir dans GitHub","openReplyInGitHub":"Ouvrir la réponse dans GitHub","reply":"Répondre","replyPlaceholder":"Répondre en Markdown…","replyUnavailable":"GitHub n’autorise pas ce compte à répondre à ce fil.","reopen":"Rouvrir le fil","resolve":"Résoudre le fil","replying":"Envoi en cours…","sendReply":"Envoyer la réponse"},"pullRequestDetail":{"back":"Demandes de tirage","loading":"Chargement des détails de la demande…","notFound":"Demande de tirage introuvable","notFoundDescription":"Cette demande est indisponible ou le jeton GitHub configuré ne permet pas d’y accéder.","refresh":"Actualiser","openInGitHub":"Ouvrir dans GitHub","viewWorktree":"Voir le worktree","draft":"Brouillon","description":"Description","noDescription":"Aucune description n’a été fournie.","comments":"Commentaires","noComments":"Aucun commentaire de révision","noCommentsDescription":"Cette demande de tirage ne contient aucun fil de révision.","pipelines":"Chaînes d’intégration","pipelineCount":"{count} pipelines et contextes d’état","viewAll":"Tout afficher","pipelineName":"Pipeline","pipelineStatus":"État","pipelineDetails":"Détails","viewPipeline":"Voir","jobCount":"{count} tâches","noJobs":"Aucune tâche n’a été signalée pour cette exécution.","viewJob":"Voir {job} sur GitHub","retryJob":"Relancer {job}","showJobSteps":"Afficher les étapes de {job}","hideJobSteps":"Masquer les étapes de {job}","steps":"Étapes","noSteps":"Aucune étape n’a encore été signalée pour cette tâche.","details":"Détails de la demande","branches":"Branches","changes":"Modifications","files":"Fichiers modifiés","commits":"Commits","mergeable":"Possibilité de fusion","openComments":"Commentaires ouverts","created":"Créée","updated":"Mise à jour","merged":"Fusionnée","people":"Personnes","author":"Auteur","assignees":"Assignés","unassigned":"Non assignée","unknown":"Inconnu"},"actionsPage":{"title":"Actions GitHub","description":"Surveillez les exécutions de workflows dans les bases de code GitHub enregistrées.","refresh":"Actualiser","loadingConfiguration":"Chargement de la configuration GitHub…","credentialsRequired":"Connectez GitHub pour afficher Actions","credentialsRequiredDescription":"Ajoutez dans les Paramètres un jeton d’accès personnel autorisé à lire Actions.","openSettings":"Ouvrir les Paramètres","repositoryFilter":"Dépôt","allRepositories":"Tous les dépôts","searchRepositories":"Rechercher des dépôts","noRepositoryMatches":"Aucun dépôt ne correspond à la recherche.","branchFilter":"Branche","branchFilterPlaceholder":"Saisir le nom exact de la branche","applyBranchFilter":"Appliquer","clearBranchFilter":"Effacer le filtre de branche","pipelineFilter":"Flux de travail","allPipelines":"Tous les pipelines","searchPipelines":"Rechercher des pipelines","noPipelineMatches":"Aucun pipeline ne correspond à la recherche.","loadingRuns":"Chargement des exécutions…","noCodebases":"Aucune base de code GitHub","noCodebasesDescription":"Enregistrez une base de code dont l’origine est github.com pour afficher ses exécutions.","empty":"Aucune exécution","emptyDescription":"GitHub n’a renvoyé aucune exécution pour cette sélection de dépôts.","expand":"Développer","repository":"Dépôt","workflowRun":"Exécution du workflow","trigger":"Déclencheur","status":"État","pullRequest":"Demande de tirage","ticket":"Ticket","worktree":"Arbre de travail","started":"Démarrée","duration":"Durée : {duration}","actions":"Actions","runNumber":"Exécution n° {number}","autoRetry":"Relance automatique","attempt":"Tentative {attempt}","view":"Voir","viewWorktree":"Voir","cancel":"Annuler","cancelling":"Annulation…","forceCancel":"Forcer l’annulation","forceCancelling":"Annulation forcée…","forceCancelTitle":"Forcer l’annulation de cette exécution ?","forceCancelDescription":"L’annulation forcée contourne les conditions qui empêchent normalement GitHub d’arrêter cette exécution. Utilisez-la uniquement si l’annulation normale est bloquée.","keepRunning":"Laisser s’exécuter","showJobs":"Afficher les tâches de {run}","hideJobs":"Masquer les tâches de {run}","jobs":"Tâches","jobCount":"{count} tâches","loadingJobs":"Chargement des tâches…","retryLoad":"Réessayer","noJobs":"Aucune tâche n’a été signalée pour cette exécution.","showJobSteps":"Afficher les étapes de {job}","hideJobSteps":"Masquer les étapes de {job}","retryJob":"Relancer {job}","steps":"Étapes","noSteps":"Aucune étape n’a encore été signalée pour cette tâche.","loadMore":"Charger plus","loadingMore":"Chargement…"},"githubAutomation":{"autoRetry":"Relance automatique","title":"Configurer la relance automatique","description":"Relance automatiquement les workflows ou tâches GitHub Actions sélectionnés.","loading":"Chargement des workflows et règles enregistrées…","credentialsRequired":"Configurez un jeton d’accès personnel et vérifiez une GitHub App avec un accès en écriture à Actions avant de créer des règles.","scope":"S’applique à","currentRuns":"Exécutions actuelles","futureRuns":"Exécutions futures","targets":"Pipelines et tâches","allWorkflows":"Tous les workflows, y compris ceux ajoutés ultérieurement","noWorkflows":"Aucun workflow GitHub Actions trouvé.","mode":"Mode de relance","failureMode":"Relancer les échecs","countMode":"Relancer les réussites par nombre","retryLimit":"Limite de relances","unlimited":"Illimité","failureStrategy":"Lors d’un échec","failedJobs":"Relancer uniquement les tâches échouées","allJobs":"Relancer toutes les tâches","savedRules":"Règles enregistrées","edit":"Modifier la règle","ruleProgress":"{retries} relances automatiques sur {executions} exécutions","pause":"Suspendre la règle","resume":"Reprendre la règle","delete":"Supprimer la règle","close":"Fermer","save":"Enregistrer la règle","limitError":"Saisissez une limite comprise entre 1 et 100.","targetRequired":"Sélectionnez au moins un workflow ou une tâche.","attemptSelector":"Tentative du workflow","latestAttempt":"Dernière — Tentative {attempt}","attempt":"Tentative {attempt}","attemptStartedBy":"Lancée par @{actor}","pipelines":"Pipelines","pipelineCount":"{count} pipelines GitHub Actions","pipeline":"Chaîne","status":"État","actions":"Actions","view":"Voir","noJobs":"Aucune tâche signalée pour cette tentative.","statuses":{"ACTIVE":"Active","PAUSED":"Suspendue","COMPLETED":"Terminée","EXHAUSTED":"Épuisée","ERROR":"Erreur"},"scopes":{"WORKFLOW_RUN":"Exécution actuelle","WORKTREE_BRANCH":"Branche du worktree","PULL_REQUEST":"Pull request","REPOSITORY":"Dépôt"}},"codebases":{"title":"Bases de code","description":"Suivez les dépôts Git et leurs copies de travail sur tous les agents inscrits.","refreshAll":"Tout actualiser","fetchAll":"Tout récupérer","add":"Ajouter une base de code","groupBy":"Regrouper les bases de code par","agents":"Agents","repositories":"Dépôts","loading":"Chargement des bases de code…","emptyTitle":"Aucune base de code","emptyDescription":"Ajoutez un dépôt Git existant depuis un agent en ligne.","skipped":"{count} bases de code hors ligne, incompatibles ou indisponibles ont été ignorées.","fetchQueued":"La récupération a démarré pour les bases de code admissibles.","refreshQueued":"L’actualisation a démarré pour les bases de code admissibles.","online":"En ligne","offline":"Hors ligne","edit":"Modifier","view":"Afficher","folder":"Dossier","origin":"Origine","branch":"Branche","upstream":"Branche suivie","lastChecked":"Dernière vérification","lastFetched":"Dernière récupération","never":"Jamais","unknown":"Inconnu","none":"Aucune","ahead":"En avance de {count}","behind":"En retard de {count}","sync":{"IN_SYNC":"Synchronisée","AHEAD":"En avance","BEHIND":"En retard","DIVERGED":"Divergente","NO_UPSTREAM":"Sans branche suivie","DETACHED":"Détachée","UNKNOWN":"Inconnu"},"availability":{"AVAILABLE":"Disponible","MISSING":"Dossier introuvable","NOT_REPOSITORY":"Ce n’est pas un dépôt Git","ORIGIN_MISMATCH":"L’origine a changé","ERROR":"Indisponible"},"operationRunning":"Opération Git en cours…","fetch":"Récupérer","addTitle":"Ajouter une base de code","addDescription":"Parcourez un agent, inspectez un dépôt Git et confirmez son origine avant l’enregistrement.","agent":"Agent","selectAgent":"Sélectionnez un agent en ligne","browseHome":"Parcourir le dossier personnel","home":"Accueil","showHidden":"Afficher les dossiers cachés","truncated":"Seuls les 1 000 premiers dossiers sont affichés.","addFolder":"Ajouter ce dossier","detached":"HEAD détachée","existingOrigin":"Cette origine utilise déjà le nom partagé « {name} ».","name":"Nom du dépôt","repositoryDescription":"Description du dépôt","cancel":"Annuler","confirm":"Confirmer la base de code","editTitle":"Modifier les détails du dépôt","loadingRepository":"Chargement du dépôt…","repositoryNotFound":"Dépôt introuvable","repositoryNotFoundDescription":"Ce dépôt logique n’a peut-être plus de copie de travail enregistrée.","backToCodebases":"Retour aux bases de code","repositorySharedDescription":"Ces détails, configurations de build et scripts autorisés appartiennent au dépôt logique et s’appliquent à toutes les copies d’agent et tous les worktrees.","repositoryDetails":"Détails du dépôt","repositoryDetailsDescription":"Gérez les réglages partagés par toutes les copies enregistrées de ce dépôt.","repositorySaved":"Détails du dépôt enregistrés.","autoRetry":"Relance automatique","autoRetryDescription":"Configurez des règles de relance durables pour les workflows GitHub Actions de ce dépôt.","autoRetryGitHubOnly":"La relance automatique est disponible uniquement pour les dépôts hébergés sur GitHub.","skillGroups":"Groupes de compétences","skillGroupsHelp":"Choisissez les groupes synchronisés dans tous les checkouts et worktrees de ce dépôt.","noSkillGroups":"Aucun groupe disponible.","keepBaseBranchUpToDate":"Maintenir la branche de base à jour","keepBaseBranchUpToDateHelp":"Après une récupération réussie, la branche de base est avancée en mode fast-forward lorsqu’aucune modification n’est indexée. Ce réglage du dépôt s’applique à tous les agents.","save":"Enregistrer","remove":"Supprimer","confirmRemoveTitle":"Supprimer l’enregistrement de la base de code ?","confirmRemoveDescription":"L’enregistrement de {folder} sera supprimé. Le dossier et tous ses fichiers resteront intacts sur l’agent.","removed":"L’enregistrement de la base de code a été supprimé.","settings":"Paramètres","settingsTitle":"Paramètres d’état des bases de code","settingsDescription":"Définissez la fréquence à laquelle les agents à jour inspectent les dossiers enregistrés et signalent l’état Git.","refreshInterval":"Intervalle d’actualisation de l’agent (secondes)","refreshIntervalHelp":"Choisissez un entier compris entre {min} et {max}. Chaque agent attend cette durée après la fin d’une analyse. Aucun serveur Git distant n’est contacté.","fetchInterval":"Intervalle de récupération automatique (secondes)","fetchIntervalHelp":"Choisissez un entier de {min} à {max}. L’agent récupère origin lorsque cet intervalle est écoulé.","defaultJiraBranchRegex":"Expression Jira par défaut pour les branches","jiraBranchRegex":"Expression Jira propre à cette origine","jiraBranchRegexHelp":"Le premier groupe capturé est utilisé, sinon la correspondance complète du nom de branche.","inheritDefaultRegex":"Hériter de l’expression par défaut","settingsSaved":"Réglages des bases de code enregistrés."},"codebaseDetail":{"iosApp":"App iOS","loading":"Chargement de la base de code…","notFound":"Base de code introuvable","notFoundDescription":"Cet enregistrement de base de code a peut-être été supprimé.","back":"Retour aux bases de code","operationQueued":"Opération Git mise en attente.","operationSucceeded":"Opération Git terminée.","operationFailed":"L’opération Git a échoué.","offlineReadOnly":"Cet agent est hors ligne. Les informations de branches enregistrées restent disponibles en lecture seule jusqu’à sa reconnexion.","unsupportedReadOnly":"Mettez cet agent à jour pour inspecter et gérer les branches et les stashes. Les informations enregistrées sont affichées en lecture seule.","dirty":"Modifications non validées","refresh":"Actualiser","fetch":"Récupérer origin","repositorySettings":"Réglages du dépôt","origin":"Origine","currentBranch":"Branche actuelle","upstream":"Branche suivie","lastFetched":"Dernière récupération","activeOperation":"{kind} est en cours…","branches":"Branches ({count})","stashes":"Réserves Git ({count})","branchesTruncated":"Seules les 1 000 premières branches sont affichées.","localBranches":"Branches locales","remoteBranches":"Branches distantes d’origin","noLocalBranches":"Aucune branche locale trouvée.","noRemoteBranches":"Aucune branche d’origin trouvée. Récupérez origin puis réessayez.","branchName":"Branche","branchStatus":"État","actions":"Actions","current":"Actuelle","default":"Par défaut","protected":"Protégée","otherWorktree":"Autre worktree","localAvailable":"Branche locale existante","switch":"Changer","stashAndSwitch":"Mettre de côté et changer","confirmDirtySwitchTitle":"Mettre les modifications de côté et changer de branche ?","confirmDirtySwitchDescription":"Les modifications indexées, non indexées et non suivies seront enregistrées dans un nouveau stash avant le passage à {branch}. Le stash sera conservé.","checkout":"Extraire","stashAndCheckout":"Mettre de côté et extraire","confirmDirtyCheckoutTitle":"Mettre les modifications de côté et extraire cette branche ?","confirmDirtyCheckoutDescription":"Les modifications indexées, non indexées et non suivies seront enregistrées dans un nouveau stash avant l’extraction de {branch}. Le stash sera conservé.","pull":"Tirer","deleteRemote":"Supprimer la distante","confirmDeleteRemoteBranchTitle":"Supprimer la branche distante ?","confirmDeleteRemoteBranchDescription":"origin/{branch} sera définitivement supprimée. Les branches locales et worktrees du même nom resteront intacts.","delete":"Supprimer","cancel":"Annuler","confirmDeleteBranchTitle":"Supprimer la branche locale ?","confirmDeleteBranchDescription":"Git ne supprimera {branch} que si ses commits ont déjà été fusionnés. La branche actuelle, celle par défaut ou celle d’un autre worktree ne peut pas être supprimée.","noStashes":"Aucun stash","noStashesDescription":"Ce checkout ne contient actuellement aucun stash Git.","preview":"Aperçu","hidePreview":"Masquer l’aperçu","loadingPreview":"Chargement du patch du stash…","emptyPatch":"Ce stash ne contient aucun patch texte à afficher.","copyPatch":"Copier le patch","patchCopied":"Patch copié","copyPatchFailed":"Impossible de copier le patch.","patchTruncated":"Ce patch a été tronqué à 256 Kio.","stashesTruncated":"Seuls les 200 premiers stashes sont affichés.","apply":"Appliquer","confirmDeleteStashTitle":"Supprimer le stash ?","confirmDeleteStashDescription":"{stash} sera définitivement supprimé. Appliquez-le d’abord si vous devez conserver ses modifications."},"worktrees":{"title":"Arbres de travail","description":"Gérez les worktrees Git principaux et liés sur tous les agents inscrits.","agentOffline":"L’agent est hors ligne.","worktreeUnavailable":"Ce worktree n’est pas disponible.","agentUnsupported":"Mettez à jour l’agent pour activer les builds iOS.","iosBuildNotConfigured":"Ajoutez d’abord un projet d’app iOS et une configuration de build dans les réglages du dépôt.","filters":"Filtres des worktrees","searchWorktrees":"Rechercher des worktrees","searchWorktreesPlaceholder":"Rechercher des branches, agents, dépôts, tickets ou bases de code…","filterByAgent":"Filtrer par agent","allAgents":"Tous les agents","filterByRepository":"Filtrer par dépôt","allRepositories":"Tous les dépôts","noMatchingWorktrees":"Aucun worktree correspondant","noMatchingWorktreesDescription":"Essayez une autre recherche ou un autre filtre.","refresh":"Actualiser","fetchNow":"Récupérer maintenant","fetchStarted":"Récupération lancée pour les bases de code disponibles.","createWorktree":"Créer un worktree","worktreeCreated":"Worktree créé.","repositoryCheckout":"Checkout du dépôt","selectCodebase":"Sélectionner un agent et un dépôt","selectCodebaseHelp":"Choisissez le checkout de l’agent qui possédera ce worktree.","searchCodebases":"Rechercher des dépôts et des agents","noEligibleCodebases":"Aucun checkout de dépôt compatible et en ligne n’est disponible.","newBranch":"Nouvelle branche","existingBranch":"Branche existante","fromTicket":"Depuis un ticket","branchName":"Nom de branche","ticketKey":"Clé du ticket","loadingTicketBranch":"Chargement du ticket et du nom de branche…","selectExistingBranch":"Sélectionner une branche existante","selectBaseBranch":"Sélectionner une branche de base","searchBranches":"Rechercher des branches","noMatchingBranches":"Aucune branche correspondante.","localBranch":"Locale","originBranch":"Branche distante","localAndOrigin":"Locale et origin","remoteDefault":"Branche distante par défaut","changeBranch":"Changer de branche","moveToAgent":"Déplacer vers un agent","moveWorktree":"Déplacer l’arbre de travail","moveDescription":"Pousser {branch} et l’extraire sur un autre agent.","destinationAgent":"Agent et copie de destination","selectDestinationAgent":"Sélectionner un agent de destination","searchDestinationAgents":"Rechercher des agents et des copies","noMoveDestinations":"Aucune copie de destination compatible n’est disponible.","destinationWorktree":"Arbre de travail de destination","createDestinationWorktree":"Créer un nouvel arbre de travail","dirtyDestinationWarning":"Cette destination contient des modifications non validées. Git les conservera sur la branche entrante lorsque possible.","deleteOldWorktree":"Supprimer l’ancien arbre après le déplacement","deleteOldWorktreeDisabled":"Les arbres de travail principaux ne peuvent pas être supprimés.","moveFailed":"Le déplacement de l’arbre de travail a échoué.","moveCompleted":"Arbre de travail déplacé.","moveCompletedWithWarning":"La destination est prête, mais le nettoyage de la source nécessite une intervention.","moveCancelled":"Déplacement annulé. La branche source reste poussée et l’arbre source a été conservé.","moveNeedsStash":"Les modifications de destination empêchent le changement de branche.","moveStashHelp":"Mettre de côté les modifications suivies et non suivies, continuer et conserver le stash pour une restauration manuelle.","moveProgress":"Déplacement de {branch}","stashAndContinue":"Mettre de côté et continuer","cancelMove":"Annuler le déplacement","cancel":"Annuler","moveStatus":{"PUSHING":"Envoi de la branche source…","CHECKING_OUT":"Extraction de la destination…","AWAITING_STASH":"En attente d’une décision de stash…","CLEANING_UP":"Suppression de l’ancien arbre…","SUCCEEDED":"Déplacement terminé.","SUCCEEDED_WITH_WARNING":"Déplacement terminé avec un avertissement de nettoyage.","FAILED":"Échec du déplacement.","CANCELLED":"Déplacement annulé."},"moveBlocked":{"agent":"L’agent source est hors ligne ou doit être mis à jour.","busy":"Une autre opération est active pour ce dépôt.","detached":"Une branche source nommée est requise.","dirty":"Validez ou abandonnez les modifications source avant le déplacement.","behind":"Récupérez les modifications d’origin avant le déplacement.","diverged":"Résolvez la divergence avec origin avant le déplacement.","unknown":"La branche ne peut pas être confirmée comme pouvant être poussée en toute sécurité.","destination":"Aucun agent de destination compatible n’est disponible."},"deleteWorktree":"Supprimer l’arbre de travail","deleteWorktreeDescription":"Supprimer définitivement {path} et sa branche locale.","deleteWorktreeWarning":"Toutes les modifications indexées, non indexées et non suivies de cet arbre seront définitivement perdues.","deleteRemoteBranch":"Supprimer également origin/{branch}","defaultRemoteProtected":"La branche par défaut du dépôt ne peut pas être supprimée d’origin.","stashAndRetry":"Stasher et réessayer","stashRetryHelp":"Git n’a pas pu changer de branche avec les modifications actuelles. Stashez les fichiers suivis et non suivis, réessayez et conservez le stash pour une restauration manuelle.","hidden":"Masqués ({count})","cards":"Vue en cartes","table":"Vue en tableau","loading":"Chargement des worktrees…","emptyTitle":"Aucun worktree trouvé","emptyDescription":"Ajoutez une base de code et connectez son agent pour découvrir ses worktrees.","online":"En ligne","offline":"Hors ligne","lastFetched":"Dernière récupération : {value}","neverFetched":"jamais","secondsAgo":"il y a {count} s","branch":"Branche","path":"Chemin","baseBranch":"Branche de base","editBase":"Modifier la branche de base","saveBase":"Enregistrer la branche de base","inheritBase":"Hériter de la valeur distante","baseUnavailable":"Branche distante par défaut indisponible","upstreamStatus":"État amont","baseStatus":"Actualité de la base","baseCurrent":"À jour · {count} en avance","baseBehind":"{count} derrière la base","yes":"Oui","notUpToDate":"Non · {count} commits derrière la base","ahead":"{count} en avance","behind":"{count} en retard","diverged":"Divergée","upToDate":"À jour","origin":"Origine","inSync":"Synchronisée","dirty":"Modifié","branchCommits":"Commits : {count}","unpublished":"Non publiée","detached":"HEAD détachée","unknown":"Inconnu","primary":"Principal","tags":"Étiquettes","manageTags":"Gérer les étiquettes","manageTagsDescription":"Créez des étiquettes globales réutilisables et choisissez leurs couleurs.","highlight":"Surlignage","clearHighlight":"Effacer le surlignage","customize":"Personnaliser le worktree","edit":"Modifier","editTag":"Modifier l’étiquette","createTag":"Créer une étiquette","saveTag":"Enregistrer l’étiquette","openCode":"Ouvrir dans VS Code","openInsiders":"Ouvrir dans VS Code Insiders","forcePush":"Forcer le push","sync":"Synchroniser","push":"Pousser","publish":"Publier","reset":"Réinitialiser","stashAll":"Remiser tout","stageAll":"Indexer tout","unstageAll":"Désindexer tout","confirmAction":"Confirmer","operationRunning":"Opération en cours…","loadingDetails":"Chargement des commits et modifications…","commits":"Validations ({count})","changes":"Modifications ({count})","noCommits":"Aucun commit ne diffère de la branche de base.","noChanges":"Le worktree est propre.","conflicted":"En conflit","staged":"Indexé","unstaged":"Non indexé","untracked":"Non suivi","truncated":"Seuls les premiers résultats pris en charge sont affichés.","status":"État","pullRequest":"Pull request","latestBuild":"Dernier build","openInGitHub":"Ouvrir dans GitHub","openDetails":"Ouvrir les détails","openWorktreeDetails":"Ouvrir les détails de {branch}","hiddenTitle":"Worktrees masqués","hiddenDescription":"Les worktrees absents sont conservés sept jours. Une redécouverte restaure leurs métadonnées.","noHidden":"Aucun worktree masqué.","purge":"Purger","purgeAll":"Tout purger","review":{"APPROVED":"Approuvée","CHANGES_REQUESTED":"Modifications demandées","REVIEW_REQUIRED":"Révision requise","NONE":"Aucune décision"},"comments":"Commentaires : {count}"},"worktreeDetail":{"loading":"Chargement des détails du worktree…","notFound":"Worktree introuvable","notFoundDescription":"Ce worktree est absent, masqué ou n’est plus disponible.","back":"Retour aux worktrees","linked":"Lié","refresh":"Actualiser","inspectionOffline":"L’agent est hors ligne. Les métadonnées enregistrées restent disponibles, mais les commits et modifications ne peuvent pas être inspectés.","inspectionUnavailable":"Ce worktree n’est pas disponible pour une inspection en direct.","inspectionBusy":"Les commits et modifications seront actualisés à la fin de l’opération en cours.","inspectionUnsupported":"Mettez l’agent à jour pour inspecter les commits et modifications.","inspectionFailed":"Impossible de charger les commits et modifications.","actions":"Actions","workingTree":"Arbre de travail","overview":"Vue d’ensemble","repository":"Dépôt","origin":"Origine","agent":"Agent","folder":"Dossier","head":"Commit HEAD","upstream":"Branche amont","originStatus":"État de l’origine","baseStatus":"Actualité de la base","lastChecked":"Dernière vérification","lastFetched":"Dernière récupération","management":"Gestion","branchChanges":"Modifications de la branche","noBranchChanges":"Aucune modification validée dans la branche","diffTruncated":"Certains fichiers modifiés ne sont pas affichés car le résultat a été tronqué.","codeCoverage":"Couverture du code","noCoverageReports":"Aucun rapport de couverture n’a été généré pour cet arbre de travail.","coverageBuild":"Compilation","coverageStatus":"État du rapport","coverageStatuses":{"PENDING":"En attente","READY":"Prêt","FAILED":"Échoué"},"overallCoverage":"Couverture globale","changedCoverage":"Couverture des modifications","generated":"Généré","viewReport":"Voir le rapport","loadingDiff":"Chargement des modifications…","binaryFileChanged":"Fichier binaire modifié","noTextChanges":"Aucune modification textuelle","diffTooLarge":"Le diff dépasse la limite d’affichage de 2 Mio","diffLimit":"Diff tronqué à 2 Mio.","sideBySide":"Côte à côte","overlap":"Superposer","imageTransparency":"Transparence de l’image","before":"Avant","after":"Après","noImageSide":"Aucune image de ce côté"},"tools":{"title":"Outils","description":"Parcourez, configurez et exécutez les outils MCP intégrés et externes.","addServer":"Ajouter un serveur MCP","search":"Rechercher des outils","searchPlaceholder":"Rechercher des noms, descriptions ou serveurs…","serversTitle":"Serveurs MCP externes","serversDescription":"Gérez les fournisseurs HTTP en flux et SSE historiques.","loadingServers":"Chargement des serveurs MCP…","noServers":"Aucun serveur MCP externe n’est configuré.","name":"Nom","url":"Adresse URL","transport":"Mode de transport","prefix":"Préfixe du nom d’outil","actions":"Commandes","http":"HTTP (flux)","sse":"SSE (historique)","editServer":"Modifier {name}","delete":"Supprimer","deleteServer":"Supprimer {name}","confirmDelete":"Supprimer le serveur MCP ?","confirmDeleteDescription":"Supprimer {name} et ses en-têtes personnalisés enregistrés ?","catalogTitle":"Catalogue d’outils","catalogDescription":"Dépliez un outil, saisissez ses paramètres et examinez la réponse complète.","refresh":"Actualiser les outils","loadingTools":"Chargement des outils…","noMatchingTools":"Aucun outil ne correspond à cette recherche.","addServerTitle":"Ajouter un serveur MCP externe","editServerTitle":"Modifier le serveur MCP externe","serverDialogDescription":"Les données de connexion sont utilisées uniquement par le client MCP côté serveur.","prefixHelp":"Le préfixe est appliqué tel quel à l’affichage et à l’appel des outils.","headers":"En-têtes personnalisés","headersHelp":"Les valeurs sont stockées localement et ne sont jamais renvoyées au navigateur.","addHeader":"Ajouter un en-tête","noHeaders":"Aucun en-tête personnalisé.","headerName":"Nom de l’en-tête","headerValue":"Valeur de l’en-tête","keepHeaderValue":"Laisser vide pour conserver la valeur enregistrée","removeHeader":"Retirer l’en-tête","saveServer":"Enregistrer le serveur","toolCount":"{count} outils","tool":"Outil","toolDescription":"Présentation","expandTool":"Déplier {name}","collapseTool":"Replier {name}","noDescription":"Aucune description n’a été fournie.","parameters":"Paramètres","noParameters":"Cet outil n’a aucun paramètre.","run":"Exécuter l’outil","running":"Exécution…","response":"Résultat","copyResponse":"Copier la réponse","copied":"Réponse copiée","copyFailed":"Impossible de copier la réponse.","noResponse":"Exécutez l’outil pour afficher sa réponse.","selectValue":"Choisir une valeur","unset":"Non défini","true":"Vrai","false":"Faux","jsonArguments":"Arguments (objet JSON)","invalidJson":"Saisissez un JSON valide.","invalidJsonObject":"Saisissez un objet JSON.","jsonObjectPlaceholder":"Saisissez des paires clé-valeur dans un objet JSON","jsonPlaceholder":"Saisissez du JSON, par exemple []"},"skills":{"title":"Compétences","description":"Gérez des paquets de compétences IA réutilisables dans la base, les clients, les agents et les dépôts.","manageGroups":"Gérer les groupes","settings":"Paramètres","addSkill":"Ajouter une compétence","syncAll":"Tout synchroniser","search":"Rechercher des compétences","searchPlaceholder":"Rechercher noms, descriptions, groupes, dépôts, agents ou chemins…","database":"Base de données","skillSource":"Source des compétences","databaseSkills":"Compétences de la base de données","databaseSkillsDescription":"Paquets de compétences canoniques stockés dans le plan de contrôle.","clientSkills":"Compétences du client","clientSkillsDescription":"Paquets de compétences détectés dans le client d’IA sélectionné.","loading":"Chargement des compétences…","name":"Nom","skillDescription":"Description","scope":"Portée","groups":"Groupes","files":"Fichiers","updated":"Mis à jour","global":"Global","project":"Projet","groupOnly":"Groupe uniquement","noSkills":"Aucune compétence ne correspond à la recherche.","agent":"Agent","location":"Emplacement","status":"État","tracked":"Suivi","inSync":"Synchronisé","toDatabase":"Vers la base","conflict":"Conflit","noClientSkills":"Aucune compétence trouvée pour ce client.","settingsTitle":"Paramètres des compétences","settingsDescription":"Choisissez les clients participants et la synchronisation automatique des groupes.","autoSync":"Synchroniser automatiquement les groupes projet","autoSyncHelp":"Maintient les groupes attribués dans tous les checkouts et worktrees.","enabledTools":"Clients IA activés","configured":"Configuré","configuredAgents":"{count} agents configurés","notDetected":"Non détecté","saveSettings":"Enregistrer les paramètres","skillNotFound":"Compétence introuvable.","loadingSkill":"Chargement de la compétence…","backToSkills":"Retour aux compétences","newSkill":"Nouvelle compétence","editorDescription":"Modifiez les métadonnées et tous les fichiers du paquet.","delete":"Supprimer","cancel":"Annuler","deleteSkillDescription":"Supprimer {name} de la base et ses copies gérées lors de la synchronisation ?","deleteSkill":"Supprimer la compétence ?","saveSkill":"Enregistrer la compétence","syncGlobally":"Synchroniser globalement","syncGloballyHelp":"Inclure cette compétence dans la synchronisation personnelle/globale.","noGroups":"Aucun groupe de compétences.","packageFiles":"Fichiers du paquet","addFiles":"Ajouter ou remplacer des fichiers","download":"Télécharger","removeFile":"Supprimer","rename":"Renommer","executable":"Exécutable","binaryFile":"Fichier binaire. Téléchargez-le ou remplacez-le pour le modifier.","selectFile":"Sélectionnez un fichier","duplicateFile":"Un fichier avec ce chemin existe déjà.","skillGroups":"Groupes de compétences","groupsDescription":"Regroupez les compétences projet et attribuez-les aux dépôts.","groupsTableDescription":"Groupes de compétences du projet, avec leurs compétences et dépôts associés.","addGroup":"Ajouter un groupe","loadingGroups":"Chargement des groupes…","skillsCount":"Compétences","repositoriesCount":"Dépôts","newGroup":"Nouveau groupe","newGroupDescription":"Créez le groupe, puis choisissez ses compétences et dépôts.","createGroup":"Créer le groupe","groupNotFound":"Groupe introuvable.","loadingGroup":"Chargement du groupe…","backToGroups":"Retour aux groupes","groupSettingsDescription":"Gérez les membres, les dépôts et le déploiement.","deleteGroupDescription":"Supprimer {name} et les copies inutiles aux autres groupes ?","deleteGroup":"Supprimer le groupe ?","syncGroup":"Synchroniser le groupe","saveGroup":"Enregistrer le groupe","groupSkills":"Compétences du groupe","searchSkills":"Rechercher des compétences…","groupRepositories":"Dépôts utilisant ce groupe","searchRepositories":"Rechercher des dépôts…","syncRunNotFound":"Synchronisation introuvable.","loadingSync":"Chargement de la synchronisation…","syncTitle":"Synchronisation des compétences","syncGroupName":"Synchronisation du groupe {name} dans ses dépôts.","syncAllDescription":"Rapprochement des compétences de base, personnelles et projet.","applySync":"Appliquer la synchronisation","skipPendingClients":"Ignorer les clients en attente","unknownAgent":"Agent inconnu","syncAgents":"État de synchronisation des agents","syncAgentsDescription":"État de connexion et de synchronisation de chaque agent participant.","connection":"Connexion","operation":"Opération","syncStatus":"État de synchronisation","syncChanges":"Modifications proposées","syncChangesDescription":"Vérifiez les modifications et résolvez les conflits avant d’appliquer cette synchronisation.","change":"Modification","resolution":"Résolution","newSharedLocation":"Nouvel emplacement partagé","chooseGroup":"Choisir un groupe","useDatabase":"Utiliser la base","useTarget":"Utiliser la copie client","deleteClientCopy":"Supprimer la copie client","editManually":"Modifier manuellement","compareAndResolve":"Comparer et résoudre","skip":"Ignorer","scanningAgents":"Analyse des clients activés…","noSyncChanges":"Aucune modification requise.","manualResolution":"Résolution manuelle","manualResolutionDescription":"Comparez les paquets complets et modifiez le résultat canonique, y compris les fichiers texte, binaires et exécutables.","startFromDatabase":"Partir de la base de données","startFromTarget":"Partir de la copie du client","databaseVersion":"Version de la base de données","targetVersion":"Version du client","resultVersion":"Résultat canonique","binaryPreview":"Fichier binaire ; comparez la taille et les métadonnées d’exécution.","missingFile":"Cette version ne contient pas le fichier sélectionné.","filePath":"Chemin du fichier","missingResultFile":"Ajoutez ce fichier au résultat ou sélectionnez un autre fichier du paquet.","useManualVersion":"Utiliser la version modifiée"},"builds":{"title":"Builds","description":"Configurez, lancez, inspectez, déployez et exportez les builds iOS des bases de code et worktrees.","build":"Builder","history":"Historique","buildScripts":"Scripts de build","status":"État","destination":"Destination","duration":"Durée","durationValue":"Durée {duration}","actionsLabel":"Actions","selectBuilds":"Sélectionner les builds","selectBuild":"Sélectionner le build {id}","selectDate":"Sélectionner tous les builds du {date}","deleteSelected":"Supprimer la sélection ({count})","deleteBuilds":"Supprimer les builds","deleteBuildsTitle":"Supprimer {count, plural, one {le build} other {les # builds}} ?","deleteBuildsDescription":"Les enregistrements et dossiers de build sélectionnés seront définitivement supprimés.","filterStatus":"Filtrer les builds par état","allStatuses":"Tous les états","loading":"Chargement des builds…","emptyTitle":"Aucun build","emptyDescription":"Lancez un build depuis un worktree pour créer le premier enregistrement immuable.","durationSeconds":"{count} secondes","artifactCount":"{count, plural, one {# artefact} other {# artefacts}}","viewBuild":"Afficher le build","loadMore":"Charger plus","newScript":"Nouveau script de build","noScripts":"Aucun script de build","noScriptsDescription":"Créez des hooks JavaScript réutilisables, puis autorisez-les pour certains dépôts.","defaultEnabled":"Activé par défaut","preBuild":"Avant le build","postBuild":"Après le build","timeoutSeconds":"Délai de {count} secondes","edit":"Modifier","deleteScript":"Supprimer le script de build","editScript":"Modifier le script de build","scriptDescription":"Les hooks ESM Node.js approuvés s’exécutent à la racine du worktree sélectionné avec un environnement minimal.","name":"Nom","preBuildScript":"JavaScript avant le build","postBuildScript":"JavaScript après le build","preBuildScriptHelp":"Exportez par défaut une fonction qui reçoit buildId, branch, destination, action et l’instantané des URL de télémétrie.","postBuildScriptHelp":"Exportez par défaut une fonction qui reçoit aussi buildFolder, failed, cancelled, errorCode, error et le même instantané des URL de télémétrie.","timeout":"Délai en secondes","failureBehavior":"Comportement en cas d’échec","enabledByDefault":"Présélectionner ce script pour les builds","save":"Enregistrer","cancel":"Annuler","startBuild":"Lancer le build","startBuildDescription":"Choisissez une configuration enregistrée et une destination. La commande s’exécute à la racine de ce worktree.","configuration":"Configuration","configurationInvalid":"La source, le schéma ou la configuration enregistrés ne sont pas disponibles dans ce worktree.","noConfigurations":"Créez une configuration de build iOS valide dans les réglages du dépôt avant de lancer un build.","reparse":"Analyser à nouveau","action":"Action","destinationType":"Type de destination","simulator":"Simulateur","physicalDevice":"Appareil physique","device":"Appareil","selectDevice":"Sélectionner un appareil","anySimulator":"N’importe quel simulateur iOS","anyPhysicalDevice":"N’importe quel appareil iOS physique","scripts":"Scripts de build","advancedSettings":"Réglages avancés","priorBuildForTesting":"Build précédent pour les tests","selectPriorBuildForTesting":"Sélectionner un build pour les tests compatible","noPriorBuildForTesting":"Exécutez d’abord un build pour les tests réussi avec cette configuration.","priorBuildSummary":"utilise le build pour les tests {id}","developmentTeam":"Équipe de développement","testPlan":"Plan de test","schemeDefaultTestPlan":"Valeur par défaut du schéma","packageResolution":"Résolution des paquets","disablePackageRepositoryCache":"Désactiver le cache du dépôt de paquets","signingStyle":"Style de signature","codeSignIdentity":"Identité de signature du code","provisioningProfileSpecifier":"Profil de provisionnement","productBundleIdentifier":"Identifiant du paquet produit","codeCoverage":"Activer la couverture du code","parseTestResults":"Analyser les résultats des tests après la compilation","allowProvisioningDeviceRegistration":"Autoriser l’enregistrement des appareils de provisionnement","parallelTesting":"Tests en parallèle","parallelTestingWorkers":"Workers de tests en parallèle","onlyTesting":"Tester uniquement","skipTesting":"Ignorer les tests","priorTestProductsPath":"Chemin des produits de test précédents","priorXctestrunPath":"Chemin xctestrun précédent","settingsEnabled":"Activé","settingsDisabled":"Désactivé","advancedSettingsNotCaptured":"Les réglages avancés n’ont pas été enregistrés pour ce build.","generateWorktreeCoverage":"Générer la couverture du code","startWorktreeCoverage":"Exécuter la couverture de l’arbre de travail","startWorktreeCoverageDescription":"Exécute les tests avec couverture et mesure les lignes exécutables modifiées dans la branche et l’arbre de travail.","startBuildFailed":"La compilation n’a pas pu être lancée.","parseTestResultsAction":"Analyser les résultats des tests","retryParseTestResults":"Réessayer l’analyse des tests","generateCoverageReport":"Générer le rapport de couverture","retryCoverageReport":"Réessayer le rapport de couverture","viewCoverageReport":"Voir le rapport de couverture","testResults":"Résultats des tests","testResultsFailed":"Les résultats des tests n’ont pas pu être analysés.","testTotal":"{count} tests","testPassed":"{count} réussis","testFailed":"{count} échoués","testSkipped":"{count} ignorés","testResultFilters":"Filtres de résultats des tests","testFilterAll":"Tous ({count})","testFilterPassed":"Réussis ({count})","testFilterFailed":"Échoués ({count})","testFilterSkipped":"Ignorés ({count})","testsWithoutSuite":"Tests sans suite","testsWithoutFile":"Tests sans fichier","expandTestSuite":"Développer la suite de tests {suite}","collapseTestSuite":"Réduire la suite de tests {suite}","expandTestFile":"Développer le fichier de tests {file}","collapseTestFile":"Réduire le fichier de tests {file}","testSuitePassed":"{passed} sur {total} réussis ({percent})","testStatus":"Résultat","testName":"Test","testSuite":"Suite de tests","testBundle":"Paquet","testDuration":"Durée","coverageReport":"Rapport de couverture du code","loadingCoverageReport":"Chargement du rapport de couverture…","coverageReportNotFound":"Rapport de couverture introuvable","coverageReportNotFoundDescription":"Générez d’abord un rapport de couverture depuis la page de détails de la compilation.","backToBuild":"Retour à la compilation","overallCoverage":"Couverture globale","changedCoverage":"Couverture des modifications","coveredLines":"Lignes couvertes","executableLines":"Lignes exécutables","uncoveredLines":"Lignes non couvertes","changedFilesCoverage":"Couverture des fichiers modifiés","allCoverageFiles":"Tous les fichiers de couverture","expandCoverageFiles":"Développer tous les fichiers de couverture","collapseCoverageFiles":"Réduire tous les fichiers de couverture","searchCoverageFiles":"Rechercher des cibles, fichiers ou chemins","searchChangedCoverageFiles":"Rechercher des fichiers modifiés ou des chemins","sortCoverageFiles":"Trier les fichiers de couverture par {column}","coverageTarget":"Cible","coverageFile":"Fichier","coverage":"Couverture","changeType":"Modification","allowProvisioningUpdates":"Autoriser les mises à jour du provisionnement","buildSettingOverrides":"Remplacements de réglages de build autorisés (JSON)","commandPreview":"Aperçu de la commande","overridesInvalid":"Les remplacements de réglages de build doivent former un objet JSON.","advancedJsonInvalid":"Les réglages avancés doivent être au format JSON valide.","buildNotFound":"Build introuvable","buildNotFoundDescription":"Cet enregistrement de build n’existe pas ou n’est plus disponible.","backToBuilds":"Retour aux builds","buildId":"ID du build","deleteBuild":"Supprimer le build","deleteBuildTitle":"Supprimer ce build ?","deleteBuildDescription":"L’enregistrement et son dossier de build seront définitivement supprimés.","downloadArtifact":"Télécharger","downloadIpa":"Télécharger l’IPA","installOnDevice":"Installer sur l’appareil","installPreparing":"Préparation du téléchargement…","installRequiresHttps":"L’installation sans fil nécessite une adresse HTTPS publique. Ouvrez cette page en HTTPS ou définissez PUBLIC_BASE_URL.","installNotSupportedForAppStore":"Les builds App Store Connect ne peuvent pas être installés sans fil. Exportez plutôt avec Debugging, Release Testing ou Enterprise.","installMissingBundleIdentifier":"L’identifiant du bundle n’est pas disponible. Exportez à nouveau l’archive pour activer l’installation.","installOpenOnDevice":"Ouvrez cette page sur un iPhone ou un iPad pour installer.","installFailed":"Impossible de démarrer l’installation.","copyInstallLink":"Copier le lien d’installation","installLinkCopied":"Lien d’installation copié","ipaBundleIdentifier":"Identifiant du bundle","ipaBundleVersion":"Version","cancelBuild":"Annuler le build","rebuild":"Reconstruire","outOfDate":"Obsolète","configureBuilds":"Accédez aux réglages du dépôt pour configurer les builds","selectedDevices":"{count} appareils","selectRunDevices":"Appareils d’exécution","noCompatibleDevices":"Aucune destination connectée compatible n’est disponible.","run":"Exécuter","exportArchive":"Exporter l’archive","logs":"Journaux","expandLogs":"Développer les journaux","collapseLogs":"Réduire les journaux","noLogs":"Aucun événement de journal n’a été signalé.","scrollLogsToTop":"Aller au début des journaux","scrollLogsToBottom":"Aller à la fin des journaux","commandSummary":"Résumé de la commande","copyCommand":"Copier le résumé de la commande","commandCopied":"Résumé de la commande copié","copyFailed":"Impossible de copier dans le presse-papiers.","noScriptExecutions":"Aucun script de build n’a été sélectionné.","overview":"Vue d’ensemble","scheme":"Schéma","head":"Révision","startedAt":"Début","finishedAt":"Fin","artifactDirectory":"Dossier du build","artifacts":"Artefacts","noArtifacts":"Aucun artefact n’a été capturé.","runsAndExports":"Exécutions et exports","archiveExport":"Export de l’archive","noRunsOrExports":"Ce build n’a pas encore été exécuté ni exporté.","exportArchiveDescription":"Exportez localement le fichier .xcarchive capturé sans le téléverser.","distributionMethod":"Méthode de distribution","exportMethod":{"DEBUGGING":"Débogage","RELEASE_TESTING":"Test de version","ENTERPRISE":"Entreprise","APP_STORE_CONNECT":"App Store Connect"},"selectTeam":"Sélectionnez une équipe","noTeams":"Aucune équipe de développement trouvée sur l’agent de compilation.","signingCertificate":"Certificat de signature","certificateAutomatic":"Choisi automatiquement","certificateMayNotMatch":"Peut ne pas correspondre aux profils sélectionnés","provisioningProfiles":"Profils de provisionnement","parseProvisioningProfiles":"Analyser le projet","reparseProvisioningProfiles":"Analyser à nouveau","parseProvisioningProfilesHelp":"Lisez les cibles signables du schéma sélectionné et associez les profils installés.","parseProvisioningProfilesEmpty":"Analysez le projet pour remplacer le JSON par un sélecteur de profil pour chaque app et extension.","noSigningRequirements":"Aucune cible d’app ou d’extension à signer n’a été trouvée.","selectSigningSourceFirst":"Sélectionnez d’abord une source Xcode, un schéma et une configuration.","selectProfile":"Sélectionnez un profil","profileMayNotMatch":"Peut ne pas correspondre à cet identifiant","manualBundleIdentifier":"Identifiant de bundle à ajouter","manualBundleIdentifierPlaceholder":"com.exemple.app.extension","manualBundleIdentifierHelp":"Ajoutez tout identifiant non détecté, puis choisissez parmi tous les profils disponibles.","addBundleIdentifier":"Ajouter l’identifiant","removeBundleIdentifier":"Supprimer {bundleId}","showAllProfiles":"Tout afficher","showMatching":"Afficher les correspondances","noMatchingProfiles":"Aucun profil installé ne correspond à ce bundle pour la méthode sélectionnée.","noArchiveBundles":"Aucun bundle signable trouvé dans l’archive.","profileExpired":"expiré","signingOptionsFailed":"Impossible de lire les options de signature depuis l’agent.","automatic":"Automatique","manual":"Manuel","autoExport":"Exporter automatiquement les archives réussies","exportWhenComplete":"Exporter à la fin","uploadSymbols":"Téléverser les symboles","manageBuildNumber":"Gérer la version et le numéro de build","internalTestFlightOnly":"TestFlight interne uniquement","stripSwiftSymbols":"Retirer les symboles Swift","thinning":"Allègement de l’app","iCloudEnvironment":"Environnement du conteneur iCloud","distributionBundleIdentifier":"Identifiant de bundle de distribution","localExportOnly":"Les exports sont enregistrés localement en IPA et ne sont jamais envoyés à App Store Connect.","signingAssetCoverageWarning":"Cette identité est installée sur {installed} des {total} agents compatibles. Les builds affectés ailleurs peuvent échouer à l’export.","iosApp":"App iOS","parseCheckout":"Copie utilisée pour l’analyse","parseCheckoutDescription":"Les configurations enregistrées sont partagées dans tout le dépôt. La découverte, la validation et l’état d’analyse utilisent la copie d’agent sélectionnée.","checkoutUnavailable":"indisponible","addIosProject":"Ajouter un projet d’app iOS","addIosProjectDescription":"Activez des configurations de build Xcode réutilisables pour chaque checkout et worktree de ce dépôt.","sharedProjectDescription":"Les définitions de projet et les scripts autorisés sont partagés par le dépôt. L’état d’analyse ci-dessous provient de ce checkout d’agent.","buildConfigurations":"Configurations de build","newConfiguration":"Nouvelle configuration","lastParsed":"Analysé : {value}","neverParsed":"Jamais analysé","stale":"métadonnées obsolètes","savedValueUnavailable":"valeur enregistrée indisponible","deleteConfiguration":"Supprimer la configuration de build","allowedScripts":"Scripts de build autorisés","createScriptsOnBuildsPage":"Créez des scripts réutilisables sur la page Builds, puis revenez ici pour les autoriser.","editConfiguration":"Modifier la configuration de build","configurationDescription":"Sélectionnez une source Xcode relative au dépôt et enregistrez son schéma, sa configuration, son action et ses réglages avancés facultatifs.","icon":"Icône","configurationIcons":{"none":"Aucune icône","apple":"Plateforme Apple","app-window":"Fenêtre d’app","archive":"Archive","beaker":"Expérience","box":"Boîte","bug":"Bogue","code":"Code","gauge":"Performances","hammer":"Compilation","layers":"Calques","package":"Paquet","play":"Exécution","rocket":"Publication","shield":"Sécurité","smartphone":"App mobile","sparkles":"Fonctionnalité","terminal":"Ligne de commande","test-tube":"Tests","wrench":"Outils"},"source":"Source Xcode","selectSource":"Sélectionner un projet, workspace ou Package.swift à la racine","loadingSources":"Recherche des sources…","defaultAction":"Action par défaut","advancedJson":"Réglages avancés normalisés (JSON)","statuses":{"QUEUED":"En attente","PREPARING":"Préparation","RUNNING":"En cours","SUCCEEDED":"Réussi","FAILED":"Échoué","CANCELLED":"Annulé"},"parseStatuses":{"UNPARSED":"Non analysé","PARSING":"Analyse en cours","VALID":"Valide","INVALID":"Non valide","ERROR":"Erreur"},"actions":{"BUILD":"Builder","TEST":"Tester","ANALYZE":"Analyser","ARCHIVE":"Archiver","BUILD_FOR_TESTING":"Builder pour les tests","TEST_WITHOUT_BUILDING":"Tester sans builder"},"failureBehaviors":{"FAIL_BUILD":"Faire échouer le build","CONTINUE":"Continuer avec un avertissement"}},"devices":{"title":"Appareils","description":"Enrôlez des iPhone et iPad, consultez leur historique de connexion et enregistrez les appareils approuvés auprès d’Apple.","export":"Exporter le TSV Apple","addDevice":"Ajouter un appareil","filterStatus":"Filtrer les appareils par état","allStatuses":"Tous les états","sort":"Trier les appareils","sortOption":{"NEWEST":"Enrôlement le plus récent","NAME":"Nom de l’appareil","LAST_SEEN":"Dernière activité"},"loading":"Chargement des appareils…","emptyTitle":"Aucun appareil enrôlé","emptyDescription":"Créez un profil d’enrôlement sur un iPhone ou un iPad pour recueillir son identifiant.","device":"Appareil","statusLabel":"État","hardware":"Produit","lastIp":"Dernière IP","enrolled":"Enrôlé","registered":"Enregistrement Apple","lastSeen":"Dernière activité","viewDevice":"Voir {name}","unavailable":"Indisponible","status":{"PENDING":"En attente","REGISTERING":"Enregistrement en cours","REGISTERED":"Enregistré","REGISTRATION_FAILED":"Échec de l’enregistrement","REJECTED":"Refusé"},"back":"Retour aux appareils","enrollTitle":"Enrôler un appareil iOS","enrollDescription":"Installez un profil signé temporaire pour transmettre en toute sécurité l’identifiant de développement de cet appareil.","httpsRequired":"L’enrôlement est désactivé car cette adresse n’utilise pas un HTTPS public. Utilisez un proxy inverse HTTPS publiquement approuvé ou configurez PUBLIC_BASE_URL.","collectedTitle":"Informations recueillies","collectUdid":"L’UDID de l’appareil utilisé pour l’enregistrement de développement Apple.","collectProduct":"Le modèle de produit Apple communiqué par iOS.","collectVersion":"La version d’iOS ou d’iPadOS installée.","collectIp":"L’adresse IP observée lors du téléchargement et de la réponse du profil, avec l’en-tête proxy qui l’a fournie.","deviceLabel":"Libellé de l’appareil","deviceLabelPlaceholder":"Par exemple, iPhone","deviceLabelHelp":"Choisissez un libellé reconnaissable. Le service de profils Apple ne peut pas lire le nom attribué dans Réglages.","consent":"J’accepte la collecte et la conservation de l’identifiant, du produit, de la version logicielle et des adresses IP observées à des fins de gestion de l’appareil.","downloadProfile":"Télécharger le profil d’enrôlement","notFound":"Cet appareil est introuvable.","rebuildWarning":"Cet appareil est enregistré auprès d’Apple. Les IPA existants ne l’autorisent pas automatiquement ; créez un nouveau profil d’approvisionnement et exportez un nouvel IPA.","openBuilds":"Ouvrir les Builds","configureAppleFirst":"Configurez et vérifiez les identifiants App Store Connect avant d’enregistrer cet appareil.","openSettings":"Ouvrir les réglages","generalInformation":"Informations générales","deviceModel":"Modèle de l’appareil","saveName":"Enregistrer le libellé","udid":"UDID de l’appareil","hideUdid":"Masquer l’UDID de l’appareil","revealUdid":"Afficher l’UDID de l’appareil","copyUdid":"Copier l’UDID de l’appareil","osVersion":"Version logicielle","appleDeviceId":"ID de ressource Apple","retryRegistration":"Réessayer l’enregistrement","registerWithApple":"Enregistrer auprès d’Apple","reject":"Refuser","delete":"Supprimer","ipHistory":"Historique IP","ipAddress":"Adresse IP","source":"Étape d’enrôlement","forwardedBy":"En-tête d’adresse","observed":"Observée","noIpHistory":"Aucune observation IP n’est conservée pour cet appareil.","ipSource":{"PROFILE_DOWNLOAD":"Téléchargement du profil","PROFILE_RESPONSE":"Réponse du profil"},"ipHeaderSource":{"CLOUDFLARE":"Cloudflare (en-tête CF-Connecting-IP)","FORWARDED":"Proxy (en-tête X-Forwarded-For)","REAL_IP":"Proxy d’origine (en-tête X-Real-IP)"},"enrollmentHistory":"Historique des enrôlements","noEnrollmentHistory":"Aucune tentative d’enrôlement n’est conservée pour cet appareil.","firmwareTitle":"Firmware iOS","firmwareDescription":"Versions du firmware et état actuel de signature fournis par IPSW.me.","firmwareLoading":"Chargement des informations du firmware…","firmwareLoadFailed":"Impossible de charger les informations du firmware : {error}","signingStatus":"État de signature","firmwareVersion":"Version","releaseDate":"Date de sortie","fileSize":"Taille","firmwareDownload":"Téléchargement","signed":"Signé","unsigned":"Non signé","downloadFirmware":"Télécharger","copyFirmwareUrl":"Copier l’URL de téléchargement pour iOS {version}","noFirmware":"Aucune information de firmware n’est disponible pour cet appareil.","created":"Créé","completed":"Terminé","failure":"Échec","enrollmentStatus":{"ISSUED":"Émis","DOWNLOADED":"Téléchargé","COMPLETED":"Terminé","EXPIRED":"Expiré","FAILED":"Échoué"},"registerTitle":"Enregistrer cet appareil auprès d’Apple ?","registerDescription":"L’appareil sera rapproché par UDID puis ajouté à votre compte Apple Developer si nécessaire. Cette action ne reconstruit pas d’IPA.","confirmRegister":"Enregistrer l’appareil","rejectTitle":"Refuser cet appareil ?","rejectDescription":"L’appareil reste dans l’historique local et ne peut pas être enregistré. Supprimez-le localement puis enrôlez-le à nouveau pour le reconsidérer.","confirmReject":"Refuser l’appareil","deleteTitle":"Supprimer cet appareil ?","deleteDescription":"Cette action supprime l’appareil local, les tentatives d’enrôlement et l’historique IP. L’enregistrement annuel d’Apple n’est pas supprimé.","confirmDelete":"Supprimer l’appareil"},"iosDeviceSettings":{"title":"Enrôlement des appareils iOS","description":"Configurez des profils d’enrôlement signés et l’enregistrement facultatif des appareils auprès d’Apple.","loading":"Chargement des réglages des appareils iOS…","unavailable":"Indisponible","profileTitle":"Profil d’enrôlement","profileDescription":"Ces valeurs identifient le profil temporaire affiché dans les Réglages iOS.","signerReady":"Signataire prêt","signerNotGenerated":"Signataire non généré","organizationName":"Nom de l’organisation","profileIdentifier":"Identifiant du profil","signerCreated":"Créé le {date}","signerExpires":"Expire le {date}","unverifiedWarning":"Le certificat généré est autosigné ; iOS affiche donc le profil comme Non vérifié. Contrôlez l’organisation affichée avant de l’installer.","regenerateSigner":"Régénérer le signataire","regenerateTitle":"Régénérer le signataire du profil ?","regenerateDescription":"Les nouveaux profils utiliseront une autre clé privée et un autre certificat. Les profils déjà téléchargés pourront encore répondre jusqu’à l’expiration de leur jeton.","saveProfile":"Enregistrer le profil","profileSaved":"Les réglages du profil d’enrôlement ont été enregistrés.","signerRegenerated":"Un nouveau signataire de profil a été généré.","appleTitle":"API Appareils d’App Store Connect","appleDescription":"Utilisez une clé API ayant accès aux certificats, identifiants et profils. La clé privée reste sur le serveur et n’est jamais renvoyée au navigateur.","verified":"Vérifié","notVerified":"Non vérifié","issuerId":"Identifiant d’émetteur","keyId":"Identifiant de clé","privateKey":"Clé privée .p8 App Store Connect","p8DropZone":"Zone de dépôt de la clé privée App Store Connect","p8DropHint":"Collez la clé ci-dessous, déposez un fichier .p8 ici ou choisissez un fichier.","chooseP8":"Choisir un fichier .p8 App Store Connect","privateKeyPlaceholder":"Collez ici la clé privée PKCS#8","privateKeyConfiguredPlaceholder":"Une clé privée est conservée. Laissez vide pour la garder.","privateKeyHelp":"Seules les clés ES256 PKCS#8 téléchargées depuis App Store Connect sont acceptées.","privateKeyKeepHelp":"Laissez ce champ vide pour garder la clé existante, ou fournissez une nouvelle clé .p8 pour la remplacer.","lastVerified":"Identifiants vérifiés le {date}","lastTestFailed":"Échec du test des identifiants le {date}","clear":"Effacer les identifiants","clearTitle":"Effacer les identifiants App Store Connect ?","clearDescription":"L’enregistrement des appareils sera désactivé jusqu’à l’enregistrement et la vérification d’une autre clé API.","retest":"Tester à nouveau","saveAndVerify":"Enregistrer et vérifier","appleSaved":"Les identifiants App Store Connect ont été enregistrés et vérifiés.","appleTestSucceeded":"Les identifiants App Store Connect ont été vérifiés avec succès.","appleCleared":"Les identifiants App Store Connect ont été effacés.","p8Invalid":"Choisissez un fichier .p8 valide contenant une clé privée PKCS#8.","p8ReadError":"Impossible de lire le fichier .p8 sélectionné.","p8Loaded":"{filename} a été chargé. Enregistrez et vérifiez pour utiliser cette clé."},"telemetry":{"consoleTitle":"Journaux de console","consoleDescription":"Consultez les sorties de console recueillies auprès des builds et des appareils.","analyticsTitle":"Événements analytiques","analyticsDescription":"Consultez les événements analytiques du produit et leurs paramètres dès leur arrivée.","unifiedTitle":"Vue unifiée","unifiedDescription":"Consultez les journaux et événements analytiques dans une seule chronologie en direct.","separator":"Séparateur","deleteSeparator":"Supprimer le séparateur {name}","settings":"Réglages","refresh":"Actualiser","search":"Rechercher dans la télémétrie","searchPlaceholder":"Rechercher du texte, un motif glob ou une expression régulière","searchMode":"Mode de recherche","searchModes":{"text":"Texte","glob":"Motif glob","regex":"Expression régulière"},"caseSensitive":"Respecter la casse","filters":"Filtres","columnsAction":"Colonnes","removeColumn":"Retirer la colonne {column}","export":"Exporter","edit":"Modifier","done":"Terminé","on":"activé","off":"désactivé","allCollection":"Tout","consoleCollection":"Journaux","analyticsCollection":"Analytique","count":"{matching} sur {total}","allResultsSelected":"Toutes les lignes correspondantes sont sélectionnées","selectedCount":"{count} sélectionnées","clearSelected":"Effacer la sélection","clearAll":"Tout effacer","confirmClearRecords":"Effacer les enregistrements","confirmClearWithSeparators":"Effacer avec les séparateurs","clearBeforeSeparator":"Effacer avant le dernier séparateur","confirmClearBefore":"Confirmer l’effacement avant le séparateur","cancel":"Annuler","selectAll":"Sélectionner toutes les lignes correspondantes","expand":"Développer la ligne","collapse":"Réduire la ligne","selectRow":"Sélectionner la ligne","selectDay":"Sélectionner toutes les lignes du {day}","selectSeparator":"Sélectionner les lignes au-dessus de {name}","loading":"Chargement de la télémétrie…","empty":"Aucune télémétrie correspondante.","loadMore":"Charger davantage","highlight":"Surligner","clearHighlight":"Retirer le surlignage","advancedFilters":"Filtres avancés","advancedFiltersDescription":"Combinez des conditions réutilisables entre les champs standard et les chemins de paramètres.","match":"Correspondance","allConditions":"Toutes les conditions","anyCondition":"N’importe quelle condition","filterField":"Champ de filtre","operator":"Opérateur de comparaison","removeCondition":"Retirer la condition","filterValue":"Valeur","appliesTo":"S’applique à","console":"Journaux","analytics":"Analytique","addCondition":"Ajouter une condition","savedFilters":"Filtres enregistrés","noSavedFilters":"Aucun filtre enregistré.","load":"Charger","delete":"Supprimer","filterName":"Nom du filtre","saveFilter":"Enregistrer le filtre","updateFilter":"Mettre à jour le filtre","editSavedFilter":"Modifier {name}","applyFilters":"Appliquer les filtres","clearFilters":"Effacer les filtres","manageColumns":"Gérer les colonnes","manageColumnsDescription":"Choisissez, ordonnez, réinitialisez et enregistrez les colonnes utilisées par cette vue.","availableColumns":"Colonnes disponibles","resetColumns":"Réinitialiser les colonnes","columnPresets":"Préréglages de colonnes","noColumnPresets":"Aucun préréglage de colonnes.","default":"Par défaut","setDefault":"Définir par défaut","presetName":"Nom du préréglage","setAsDefault":"Définir par défaut","savePreset":"Enregistrer le préréglage","updatePreset":"Mettre à jour le préréglage","editPreset":"Modifier {name}","saveAs":"Enregistrer sous","applyColumns":"Appliquer les colonnes","telemetrySettings":"Réglages d’observabilité","apiHelp":"Aide sur l’API","consoleApiHelpTitle":"Envoyer des journaux de console","analyticsApiHelpTitle":"Envoyer des événements analytiques","apiHelpDescription":"Consultez le contrat d’ingestion REST et copiez une référence Markdown prête à l’emploi.","copyMarkdownDocs":"Copier la documentation Markdown","markdownDocsCopied":"Markdown copié","settingsDescription":"Configurez les origines d’ingestion détectées et remplacées, communes à toutes les vues.","localBaseUrl":"URL de base locale","remoteBaseUrl":"URL de base distante","override":"Remplacement","detected":"Détectée : {value}","effective":"Effective : {value}","localConsoleEndpoint":"Point d’entrée local des journaux","localAnalyticsEndpoint":"Point d’entrée local de l’analytique","remoteConsoleEndpoint":"Point d’entrée distant des journaux","remoteAnalyticsEndpoint":"Point d’entrée distant de l’analytique","copyEndpoint":"Copier {label}","clearValues":"Effacer les valeurs","noValues":"Aucune valeur","copyColumnValue":"Copier {label} : valeur","copyValue":"Copier la valeur","filterByValue":"Filtrer par valeur","copyJsonDictionary":"Copier le dictionnaire JSON","copyPathValues":"Copier les paires chemin-valeur","copyParameterValue":"Copier {key} : valeur","addColumn":"Ajouter la colonne {key}","filterParameter":"Filtrer par {key}","saveSettings":"Enregistrer les réglages","addSeparator":"Ajouter un séparateur","addSeparatorDescription":"Insérez une limite partagée dans la chronologie. Le nom est facultatif.","optionalName":"Nom facultatif","exportTitle":"Exporter la télémétrie","exportSelectedDescription":"Exportez les {count} lignes sélectionnées.","exportAllDescription":"Exportez toutes les lignes correspondant à la recherche et aux filtres actuels.","format":"Format du fichier","exportFields":"Champs","exportFailed":"L’exportation a échoué. Réessayez.","columns":{"time":"Heure","source":"Provenance","level":"Niveau","category":"Catégorie","message":"Contenu","buildId":"ID du build","sessionId":"ID de session","deviceIp":"IP de l’appareil","receivedAt":"Reçu","attributes":"Attributs","kind":"Type","levelKind":"Niveau / Type","name":"Nom de l’événement","screenName":"Nom de l’écran","parameters":"Paramètres","defaultParameters":"Paramètres par défaut","additionalParameters":"Paramètres supplémentaires","detail":"Détails","attribute":"Attribut","defaultParameter":"Valeur par défaut","additionalParameter":"Valeur supplémentaire"},"operators":{"CONTAINS":"contient","DOES_NOT_CONTAIN":"ne contient pas","IS":"est égal à","IS_NOT":"n’est pas égal à","MATCHES_GLOB":"correspond au motif glob","MATCHES_REGEX":"correspond à l’expression régulière","NO_REGEX_MATCH":"ne correspond pas à l’expression régulière","IS_EMPTY":"est vide","IS_NOT_EMPTY":"n’est pas vide"}},"provisioningProfiles":{"title":"Profils de provisionnement","description":"Inspectez, synchronisez, importez et supprimez les ressources de signature Apple sur les agents et le portail Apple Developer.","refresh":"Actualiser l’inventaire","refreshProgress":"Actualisation de l’inventaire : {complete} sur {total} agents terminés.","noRefreshAgents":"Aucun agent compatible avec la signature n’est disponible pour l’actualisation.","refreshStatus":{"QUEUED":"En attente","RUNNING":"Analyse","SUCCEEDED":"Terminé","FAILED":"Échec","CANCELLED":"Annulé","TIMED_OUT":"Délai dépassé"},"agents":"Agents cibles","agentsDescription":"Les anciens agents restent visibles, mais doivent être mis à jour pour recevoir des opérations de signature.","unsupported":"Non pris en charge","uploadProfile":"Installer un profil","uploadProfileDescription":"Installe un fichier .mobileprovision sur tous les agents sélectionnés.","chooseMobileprovision":"Choisir .mobileprovision","importIdentity":"Importer une identité de signature","importIdentityDescription":"Transmet un .p12 chiffré via des autorisations à usage unique et l’importe pour codesign.","passphrase":"Mot de passe du .p12","chooseP12":"Choisir le .p12 chiffré","localProfiles":"Profils locaux","localCertificates":"Identités locales","applePortal":"Portail Apple","profilesDescription":"Les profils sont regroupés entre agents par UUID et empreinte de contenu.","deleteExpired":"Supprimer les expirés","deleteExpiredDescription":"Supprimer tous les profils locaux expirés des agents sélectionnés ?","name":"Nom","bundleId":"ID du bundle","type":"Type","team":"Équipe","devices":"Appareils","expires":"Expiration","installedAgents":"Agents installés","expired":"Expiré","syncMissing":"Synchroniser les manquants","viewProfile":"Voir les détails de {name}","download":"Télécharger le profil","delete":"Supprimer","deleteProfile":"Supprimer le profil ?","deleteProfileDescription":"Supprime ce profil de tous les agents indiqués. Xcode peut retélécharger les profils gérés.","fingerprints":"Empreintes","privateKey":"Clé privée","available":"Disponible","missing":"Manquante","deleteIdentity":"Supprimer l’identité ?","deleteIdentityDescription":"Supprime cette identité et sa clé privée du trousseau de connexion de chaque agent.","portalProfiles":"Profils du portail","portalCertificates":"Certificats du portail","createPortalProfile":"Créer un profil du portail","createPortalProfileDescription":"Crée un profil avec un ID de bundle, un certificat et les appareils inscrits applicables. Aucune clé privée n’est générée.","profileName":"Nom du profil","selectBundleId":"Choisir l’ID du bundle","selectCertificate":"Choisir le certificat","create":"Créer","confirmPortalDelete":"Confirmer la modification Apple","portalDeleteDescription":"Cette action modifie immédiatement le compte Apple Developer et peut interrompre la signature sur d’autres machines.","none":"Aucun élément.","operations":"Opérations récentes","certificatesDescription":"Identités de signature regroupées par empreinte de certificat sur les agents.","noLocalProfiles":"Aucun profil de provisionnement local trouvé.","noLocalCertificates":"Aucune identité de signature locale trouvée.","loadingPortal":"Chargement des ressources Apple Developer…","loadingProfile":"Chargement du profil de provisionnement…","backToProfiles":"Retour aux profils de provisionnement","profileNotFound":"Ce profil de provisionnement n’est plus installé sur un agent.","profileDetails":"Détails du profil","platforms":"Plateformes","created":"Créé","acceptedCertificates":"Empreintes de certificats acceptées","provisionedDevices":"Appareils provisionnés","provisionedDevicesDescription":"Ce profil contient {count} identifiants d’appareil.","deviceListPendingRefresh":"Actualisez l’inventaire de signature pour charger les identifiants stockés dans ce profil.","noProvisionedDevices":"Ce profil de distribution n’est pas limité à des appareils individuels.","device":"Appareil","udid":"UDID de l’appareil","status":"État","unknownDevice":"Non inscrit dans cette application"},"apnsDevices":{"title":"Appareils APNs","description":"Inscriptions de jetons d’apps et MDM disponibles pour le ciblage.","loading":"Chargement des appareils APNs…","empty":"Aucune app n’a encore inscrit de jeton APNs.","device":"Appareil / app","topic":"Sujet","environment":"Environnement","pushTypes":"Types push","token":"Jeton masqué","status":"État","lastRegistration":"Dernière inscription","lastSend":"Dernier envoi","rename":"Renommer","renameDescription":"Choisissez un libellé facile à reconnaître.","displayName":"Nom affiché","save":"Enregistrer","activate":"Activer","deactivate":"Désactiver","delete":"Supprimer","deleteTitle":"Supprimer l’inscription APNs ?","deleteDescription":"Supprimer ce jeton et le détacher de l’historique conservé ?","apiHelp":"Aide API","apiHelpTitle":"Inscrire un appareil APNs","apiHelpDescription":"Envoyez du JSON strict au point public. Les jetons peuvent être HEX ou Base64 ; MDM exige aussi pushMagic."},"pushSettings":{"title":"Notifications push","tokenAuthentication":"Authentification par jeton (.p8)","tokenDescription":"Recommandée pour les apps, Live Activities, VoIP et les types hors MDM.","configured":"Configuré","notConfigured":"Non configuré","teamId":"ID d’équipe","keyId":"ID de clé","chooseP8":"Déposer ou choisir la clé APNs .p8","replaceP8":"Déposer un nouveau .p8 pour renouveler la clé","p8Ready":".p8 prêt à enregistrer","remove":"Supprimer","removeToken":"Supprimer la clé APNs ?","removeTokenDescription":"Les envois par jeton s’arrêteront jusqu’à la configuration d’un nouveau .p8.","save":"Enregistrer","certificateAuthentication":"Authentification par certificat (.p12)","certificateDescription":"Plusieurs certificats liés à un sujet sont acceptés et sont requis pour MDM.","name":"Nom de l’accès","topic":"Sujet","environment":"Environnement","chooseP12":"Choisir le .p12 chiffré","p12Ready":".p12 prêt à enregistrer","passphrase":"Mot de passe du .p12","addCertificate":"Ajouter le certificat","expires":"Expire le {date}","lastTested":"Dernier test le {date}","retest":"Tester à nouveau","removeCertificate":"Supprimer le certificat APNs ?","removeCertificateDescription":"Les envois utilisant ce certificat échoueront après sa suppression."},"pushNotifications":{"title":"Notifications push","description":"Composez, validez, ciblez, mettez en file et inspectez les notifications Apple.","editor":"Éditeur de notification","editorDescription":"La forme du payload, les en-têtes, les limites et les appareils éligibles évoluent avec le type push.","presetName":"Nom du préréglage","savePreset":"Enregistrer l’actuel","presetSaved":"Préréglage enregistré.","content":"Contenu","headers":"En-têtes","advanced":"aps avancé","specialized":"Spécialisé","pushType":"Type push","titleField":"Titre","subtitle":"Sous-titre","body":"Corps","badge":"Badge","sound":"Son","category":"Catégorie","threadId":"ID du fil","contentAvailable":"Contenu disponible","mutableContent":"Contenu modifiable","criticalSound":"Son critique","soundVolume":"Volume","topic":"Sujet APNs","priority":"Priorité","apnsId":"ID APNs","expiration":"Expiration","collapseId":"ID de regroupement","certificateCredential":"Certificat","selectCredential":"Choisir un certificat","titleLocKey":"Clé locale du titre","titleLocArgs":"Arguments du titre","subtitleLocKey":"Clé locale du sous-titre","subtitleLocArgs":"Arguments du sous-titre","bodyLocKey":"Clé locale du corps","bodyLocArgs":"Arguments du corps","launchImage":"Image de lancement","summaryArg":"Argument de résumé","summaryArgCount":"Nombre d’arguments","targetContentId":"ID du contenu cible","interruptionLevel":"Niveau d’interruption","relevanceScore":"Score de pertinence","customJson":"JSON racine personnalisé","timestamp":"Horodatage","event":"Événement","attributesType":"Type d’attributs","contentState":"JSON de l’état","attributes":"JSON des attributs","staleDate":"Date d’obsolescence","dismissalDate":"Date de retrait","inputPushToken":"Demander un jeton push d’entrée","mdmHelp":"MDM utilise le certificat choisi et le PushMagic de chaque inscription. Son payload contient uniquement mdm, sans dictionnaire aps.","specializedHelp":"Utilisez le JSON racine personnalisé pour le payload {type} ; les en-têtes et limites APNs restent validés.","payloadPreview":"Aperçu JSON en direct","recipients":"Destinataires","directDevices":"Jetons directs","directToken":"Jeton Live Activity ponctuel","liveActivityToken":"Jeton push Live Activity","allEligibleDevices":"Tous les appareils éligibles ({count})","selectedDevices":"{count} appareils sélectionnés","searchDevices":"Rechercher des appareils…","noEligibleDevices":"Aucune inscription active compatible.","saveDraft":"Enregistrer le brouillon","draftSaved":"Brouillon enregistré dans l’historique.","send":"Envoyer","queued":"Lot push mis en file.","broadcastChannels":"Canaux de diffusion Live Activity","broadcastDescription":"La politique de stockage est immuable après création.","bundleId":"ID du bundle","noStorage":"Sans stockage","mostRecent":"Message le plus récent","createChannel":"Créer le canal","deleteChannel":"Supprimer le canal ?","deleteChannelDescription":"Supprime ce canal ; les préréglages et l’historique conservent seulement son identifiant.","delete":"Supprimer","history":"Historique","presets":"Préréglages","created":"Créé","deliveryMode":"Livraison","result":"Réussites / échecs","status":"État","payload":"Charge utile","attempts":"tentatives","load":"Charger dans l’éditeur","saveAsPreset":"Enregistrer comme préréglage","presetFromHistory":"Historique","resend":"Renvoyer","deleteHistory":"Supprimer l’élément ?","deleteHistoryDescription":"Supprime ce lot, son payload et les résultats.","clearHistory":"Effacer l’historique","clearHistoryDescription":"Supprimer tous les envois terminés et brouillons ? Les lots actifs sont conservés.","name":"Nom","updated":"Mis à jour","loadEdit":"Charger / modifier","deletePreset":"Supprimer le préréglage ?","deletePresetDescription":"Supprime ce payload réutilisable et ses en-têtes.","historyDescription":"Lots envoyés, brouillons et résultats APNs par destinataire.","presetsDescription":"Contenu et en-têtes réutilisables ; les destinataires sont choisis à l’envoi.","noHistory":"Aucun historique de notification push.","noPresets":"Aucun préréglage de notification push enregistré."},"status":{"online":"En ligne","offline":"Hors ligne","queued":"En file","running":"En cours","succeeded":"Réussie","failed":"Échouée","cancelled":"Annulée","timed_out":"Délai dépassé"}}')}];
1
+ module.exports=[800675,(a,b,c)=>{b.exports=JSON.parse('{"metadata":{"title":"AI Development Environment","description":"Un environnement de développement axé sur l’intelligence artificielle."},"common":{"cancel":"Annuler","continue":"Continuer","cannotBeUndone":"Cette action est irréversible."},"shell":{"productName":"AI Development Environment","welcome":"Bienvenue","dashboard":"Tableau de bord","navigation":"Navigation","navigationDescription":"Navigation principale d’AI Development Environment.","notifications":"Notifications","notificationsDescription":"Mises à jour et alertes de notification.","showNavigation":"Afficher la navigation","hideNavigation":"Masquer la navigation","closeNavigation":"Fermer la navigation","showNotifications":"Afficher les notifications","hideNotifications":"Masquer les notifications","closeNotifications":"Fermer les notifications","codebases":"Bases de code","worktrees":"Arbres de travail","buildData":"Données de build","builds":"Builds","provisioningProfiles":"Profils de provisionnement","devices":"Appareils","pushNotifications":"Notifications push","agents":"Agents","usage":"Utilisation","github":"GitHub","pullRequests":"Demandes de tirage","actions":"Actions","comments":"Commentaires","actionsCache":"Cache des Actions","jira":"Jira","tickets":"Tickets","cache":"Cache","system":"Système","skills":"Compétences","tools":"Outils","debugging":"Débogage","consoleLogs":"Journaux de console","analyticsEvents":"Événements analytiques","unifiedEvents":"Vue unifiée","credentials":"Identifiants","settings":"Paramètres"},"notifications":{"title":"Notifications","description":"Consultez l’historique et choisissez comment recevoir chaque événement.","deliverySetup":"Diffusion dans le navigateur","deliverySetupDescription":"L’autorisation du navigateur et l’abonnement Web Push sont configurés séparément pour ce navigateur.","browserAlerts":"Alertes du navigateur","browserUnsupported":"Les alertes du navigateur ne sont pas prises en charge ici.","enabled":"Activé","enable":"Activer","webPush":"Push web","pushUnsupported":"Web Push nécessite un navigateur compatible et un contexte HTTPS sécurisé.","pushSubscribed":"Ce navigateur est abonné.","pushNotSubscribed":"Ce navigateur n’est pas abonné.","subscriptionCount":"{count, plural, one {# navigateur abonné} other {# navigateurs abonnés}}","subscribedBrowsers":"Navigateurs abonnés","subscribedBrowsersDescription":"Envoyez une notification de test ou retirez les navigateurs qui ne doivent plus recevoir de Push web.","browser":"Navigateur","pushService":"Service push","locale":"Paramètres régionaux","lastSeen":"Dernière activité","actions":"Actions","noSubscribedBrowsers":"Aucun navigateur n’est abonné au Push web.","current":"Actuel","test":"Tester","testSent":"Envoyée","remove":"Retirer","removeBrowser":"Retirer {browser}","removeBrowserTitle":"Retirer ce navigateur abonné ?","removeBrowserDescription":"Ce navigateur ne recevra plus de notifications Push web. Il pourra s’abonner à nouveau plus tard.","unknownBrowser":"Navigateur inconnu","subscribe":"S’abonner","unsubscribe":"Se désabonner","permissionRequired":"L’autorisation des notifications est requise pour Web Push.","pushKeyUnavailable":"La clé publique Web Push n’est pas disponible.","pushSubscriptionInvalid":"Le navigateur a renvoyé un abonnement push non valide.","iosInstallHelp":"Sur iPhone ou iPad, installez cette app via Partager → Sur l’écran d’accueil avant de vous abonner à Web Push.","preferences":"Types de notification","preferencesDescription":"Les canaux sont indépendants. Navigateur et Web Push peuvent produire les deux alertes.","notificationType":"Type","sidebarChannel":"Barre latérale","browserChannel":"Navigateur","pushChannel":"Push web","toggleChannel":"Basculer {channel} pour {type}","history":"Historique","historyCount":"{count, plural, one {# notification} other {# notifications}}","historyEmpty":"Aucune notification pour le moment.","notification":"Notification","channels":"Canaux","received":"Reçue","edit":"Modifier","done":"Terminé","deleteSelected":"Supprimer la sélection","deleteAll":"Tout supprimer","deleteAllTitle":"Supprimer tout l’historique des notifications ?","deleteAllDescription":"Cette action supprime définitivement toutes les notifications de la base de données.","selectedCount":"{count} sélectionnées","allSelected":"Toutes les notifications sont sélectionnées","selectAll":"Sélectionner toutes les notifications","selectDay":"Sélectionner les notifications du {day}","selectNotification":"Sélectionner {title}","dismiss":"Masquer","dismissOne":"Masquer {title} de la barre latérale","openBuild":"Ouvrir le build","openWorktree":"Ouvrir le worktree","delete":"Supprimer","confirmDelete":"Confirmer la suppression","mute":"Couper les sons de notification","unmute":"Activer les sons de notification","clearAll":"Tout effacer","clearSidebar":"Effacer la barre latérale","clearSidebarTitle":"Effacer la barre de notifications ?","clearSidebarDescription":"Les notifications seront retirées de la barre latérale mais resteront dans l’historique.","sidebarEmpty":"Aucune nouvelle notification.","cancel":"Annuler","permissions":{"default":"L’autorisation n’a pas encore été demandée.","granted":"Autorisation accordée pour ce navigateur.","denied":"L’autorisation est bloquée dans les paramètres du navigateur."},"types":{"IOS_BUILD_SUCCEEDED":{"title":"Build iOS réussi","description":"Un build iOS se termine avec succès."},"IOS_BUILD_FAILED":{"title":"Échec du build iOS","description":"Un build iOS se termine avec une erreur."}},"categories":{"BUILDS":"Builds"}},"credentialEncryption":{"title":"Les identifiants de la base de données ne sont pas chiffrés","description":"Les secrets stockés dans la base de données de l’application sont actuellement en clair. Générez une clé de 32 octets avec cette commande :","instructionsPrefix":"Définissez la valeur générée comme","instructionsSuffix":"dans l’environnement du serveur, puis redémarrez-le. Les identifiants existants en clair seront chiffrés ensemble après le redémarrage.","backup":"Sauvegardez cette clé de manière sécurisée et conservez-la pendant toute la durée de vie des lignes chiffrées. Sa perte ou sa modification rend ces identifiants illisibles."},"credentials":{"title":"Identifiants","description":"Consultez le backend actif, l’état de protection et un inventaire limité aux métadonnées. Les valeurs secrètes ne sont jamais affichées ici.","refresh":"Actualiser","loading":"Chargement de l’inventaire des identifiants…","loadFailed":"Impossible de charger l’inventaire des identifiants","storageTitle":"Stockage des identifiants","storageDescription":"Configuration d’exécution et détails d’emplacement sûrs pour le backend sélectionné.","backend":"Système de stockage","protection":"Protection","itemCount":"Éléments stockés","mismatchCount":"Incompatibilités de backend","inventoryTitle":"Identifiants stockés","inventoryDescription":"Ce tableau contient uniquement des identifiants et des métadonnées de protection. Gérez chaque valeur dans ses paramètres propriétaires.","feature":"Fonction propriétaire","kind":"Type d’identifiant","updated":"Mis à jour","emptyTitle":"Aucun identifiant stocké","emptyDescription":"Les identifiants apparaissent ici après leur enregistrement depuis le formulaire de paramètres associé.","states":{"READY":"Prêt","WARNING":"Avertissement","ERROR":"Erreur"},"backends":{"DATABASE":"Base de données","VAULT":"Coffre HashiCorp Vault","KEYCHAIN":"Trousseau macOS","UNKNOWN":"Inconnu"},"encryptionStates":{"ENCRYPTED":"Chiffré","PLAINTEXT":"En clair","EXTERNAL":"Backend externe","ERROR":"Indisponible"},"protections":{"ENCRYPTED":"Chiffrement AES-256-GCM","PLAINTEXT":"En clair","VAULT":"Stockage Vault KV v2","KEYCHAIN":"Trousseau"},"features":{"jira":"Intégration Jira","github":"Intégration GitHub","cache":"Cache Actions","mcp":"Serveur MCP externe","ios":"Appareils iOS","push":"Notifications push","notifications":"Notifications"},"kinds":{"jira-api-token":"Jeton d’API","github-personal-access-token":"Jeton d’accès personnel","github-app-private-key":"Clé privée GitHub App","cache-server-api-key":"Clé d’API","cache-server-headers":"Ensemble d’en-têtes personnalisés","external-mcp-server-headers":"Ensemble d’en-têtes","ios-profile-signer-private-key":"Clé privée de signature de profil","app-store-connect-private-key":"Clé privée App Store Connect","apns-token-private-key":"Clé privée du jeton APNs","apns-certificate-bundle":"Ensemble de certificat APNs","web-push-vapid-private-key":"Clé privée VAPID de push web"},"details":{"configuredValue":"Valeur configurée","location":"Emplacement","encryptionKey":"Clé de chiffrement","service":"Service","hostPlatform":"Plateforme hôte","address":"Adresse","mount":"Montage KV v2","pathPrefix":"Préfixe de chemin","namespace":"Espace de noms","authenticationToken":"Jeton d’authentification","additionalHeaders":"Noms d’en-têtes supplémentaires","customCa":"AC personnalisée","tlsServerName":"Nom du serveur TLS"},"detailValues":{"configured":"Configuré","notConfigured":"Non configuré","none":"Aucun","invalid":"Invalide","applicationDatabase":"Base de données de l’application"},"warningTitles":{"DATABASE_UNENCRYPTED":"Le chiffrement de la base de données est désactivé","CREDENTIAL_ENCRYPTION_KEY_INVALID":"La clé de chiffrement est invalide","CREDENTIAL_ENCRYPTION_KEY_MISSING":"La clé de chiffrement est absente","CREDENTIAL_ENCRYPTION_KEY_MISMATCH":"La clé de chiffrement ne correspond pas","CREDENTIAL_DATA_INVALID":"Les données d’identification sont invalides","CREDENTIAL_STORAGE_TYPE_INVALID":"Le type de stockage est invalide","CREDENTIAL_STORE_UNAVAILABLE":"Le stockage des identifiants est indisponible","VAULT_CONFIGURATION_INVALID":"La configuration de Vault est invalide","VAULT_INSECURE_HTTP":"Vault utilise HTTP en clair","VAULT_TLS_VERIFICATION_DISABLED":"La vérification du certificat Vault est désactivée","KEYCHAIN_UNSUPPORTED_PLATFORM":"Le trousseau n’est pas pris en charge sur cet hôte","BACKEND_MISMATCH":"Des identifiants utilisent un autre backend"},"warnings":{"DATABASE_UNENCRYPTED":"Les identifiants de la base de données sont stockés en clair jusqu’à la configuration d’une clé de chiffrement.","CREDENTIAL_ENCRYPTION_KEY_INVALID":"CREDENTIAL_ENCRYPTION_KEY doit être un encodage Base64 strict de 32 octets exactement. Corrigez-la et redémarrez le serveur ; aucune solution de repli en clair n’est utilisée avec une clé invalide.","CREDENTIAL_ENCRYPTION_KEY_MISSING":"Des identifiants chiffrés existent, mais la clé est absente. Restaurez la clé d’origine et redémarrez le serveur.","CREDENTIAL_ENCRYPTION_KEY_MISMATCH":"La clé configurée ne correspond pas aux identifiants existants. Restaurez la clé d’origine et redémarrez le serveur.","CREDENTIAL_DATA_INVALID":"Un ou plusieurs enregistrements d’identifiants contiennent des métadonnées invalides et ne peuvent pas être utilisés.","CREDENTIAL_STORAGE_TYPE_INVALID":"CREDENTIAL_STORAGE_TYPE doit être database, vault ou keychain.","CREDENTIAL_STORE_UNAVAILABLE":"Le stockage des identifiants n’a pas pu être initialisé. Vérifiez la configuration et les journaux du serveur.","VAULT_CONFIGURATION_INVALID":"Vault ne peut pas être initialisé avec les variables d’environnement actuelles. Vérifiez l’adresse, les en-têtes, le chemin et les réglages TLS.","VAULT_INSECURE_HTTP":"Le trafic Vault, les secrets et les en-têtes d’authentification ne sont pas protégés en transit sur HTTP.","VAULT_TLS_VERIFICATION_DISABLED":"VAULT_SKIP_VERIFY autorise les certificats non approuvés et expose le trafic Vault à l’interception.","KEYCHAIN_UNSUPPORTED_PLATFORM":"Le trousseau macOS n’est disponible que si l’hôte Next.js s’exécute sur macOS. Le serveur reste disponible, mais les opérations sur les identifiants échoueront.","BACKEND_MISMATCH":"{count} élément(s) d’identification ont été enregistrés avec un autre backend. Saisissez-les à nouveau dans leurs paramètres propriétaires ; les valeurs ne sont ni déplacées ni supprimées automatiquement."}},"agents":{"title":"Agents","description":"Gérez les Macs inscrits et les tâches durables depuis un plan de contrôle unique.","refresh":"Actualiser","enroll":"Inscrire un agent","enrollmentTitle":"Commande d’inscription à usage unique","enrollmentDescription":"Exécutez cette commande sur le Mac après avoir installé control-agent. Le Mac établit une connexion sortante ; il n’ouvre aucun port d’écoute.","serverAddress":"Adresse du serveur","copy":"Copier la commande","copyFailed":"Impossible de copier la commande. Sélectionnez-la et copiez-la manuellement.","expires":"Le jeton expire le {date}","loading":"Chargement des agents…","emptyTitle":"Aucun agent inscrit","emptyDescription":"Créez une commande d’inscription pour associer votre premier Mac.","version":"Version","platform":"Plateforme","lastSeen":"Dernière activité","never":"Jamais"},"usage":{"title":"Utilisation","description":"Consultez l’utilisation des jetons et les coûts de tous les Macs inscrits.","refresh":"Actualiser l’utilisation","rangeLabel":"Période d’utilisation","allData":"Toutes les données","last7Days":"7 jours","last30Days":"30 jours","loading":"Chargement des agents…","noAgents":"Aucun agent inscrit","noAgentsDescription":"Inscrivez un Mac avant de collecter l’utilisation.","noCompatible":"Aucun agent compatible en ligne","noCompatibleDescription":"Mettez à jour control-agent sur un Mac en ligne pour ajouter la capacité ccusage.","noOnline":"Aucun agent en ligne","noOnlineDescription":"Connectez un Mac inscrit avant de collecter l’utilisation.","collectionFailed":"Échec de la collecte d’utilisation","collectionFailedDescription":"Aucun agent n’a renvoyé de rapport ccusage valide. Consultez les erreurs ci-dessus et réessayez.","zeroUsage":"Aucune utilisation trouvée","zeroUsageDescription":"Les agents ont répondu correctement, mais ccusage n’a trouvé aucune utilisation quotidienne.","noUsageInRange":"Aucune utilisation sur cette période","noUsageInRangeDescription":"Choisissez une période plus longue pour afficher l’utilisation antérieure.","progress":"{complete} agents compatibles sur {total} ont répondu","offlineAgents":"Hors ligne : {agents}","unsupportedAgents":"Mise à jour requise : {agents}","failedAgents":"Échec : {agents}","costChartTitle":"Coût quotidien par modèle","costChartDescription":"Utilisation quotidienne cumulée en USD sur la période sélectionnée.","totalCost":"Coût total","totalTokens":"Total des jetons","inputTokens":"Jetons d’entrée","outputTokens":"Jetons de sortie","cacheCreationTokens":"Jetons de création du cache","cacheReadTokens":"Jetons de lecture du cache","usage":"Utilisation","input":"Entrée","output":"Sortie","cacheCreation":"Création du cache","cacheRead":"Lecture du cache","total":"Total","cost":"Coût","grandTotal":"Total général","unattributedTokens":"Jetons non attribués","modelCount":"{count} modèles","agentCount":"{count} agents","showModels":"Afficher les modèles du {date}","hideModels":"Masquer les modèles du {date}","showAgents":"Afficher les agents utilisant {model}","hideAgents":"Masquer les agents utilisant {model}"},"agentDetail":{"back":"Agents","loading":"Chargement de l’agent…","notFound":"Agent introuvable.","version":"Version","lastSeen":"Dernière activité","never":"Jamais","generalInformation":"Informations générales","generalInformationDescription":"Le matériel et l’utilisation des ressources sont actualisés à chaque signal de l’agent.","cpuModel":"Modèle du processeur","operatingSystem":"Système d’exploitation","architecture":"Architecture","ipAddress":"Adresse IP","memory":"Mémoire","disk":"Espace disque","used":"Utilisé","free":"Libre","unavailable":"Indisponible","capabilities":"Fonctionnalités","capabilitiesDescription":"Recherchez les capacités annoncées par cet agent, exécutez-en une et inspectez sa réponse en direct.","searchCapabilities":"Rechercher des capacités","searchCapabilitiesPlaceholder":"Rechercher des noms de capacités…","noMatchingCapabilities":"Aucune capacité ne correspond à cette recherche.","capability":"Capacité","kind":"Type","event":"Événement","job":"Tâche","expandCapability":"Développer {capability}","collapseCapability":"Réduire {capability}","eventCapabilityDescription":"Cet événement demande une réconciliation immédiate des bases de code et n’accepte aucune donnée.","payload":"Données (objet JSON)","invoke":"Exécuter la capacité","invokeOffline":"Connectez cet agent avant d’exécuter une capacité.","noCapabilityResponse":"Exécutez la capacité pour voir sa réponse.","codebases":"Bases de code","codebasesDescription":"Bases de code enregistrées sur cet agent.","noCodebases":"Aucune base de code n’est enregistrée sur cet agent.","repository":"Dépôt","status":"État","created":"Créée","finished":"Terminée","selectJob":"Sélectionner {kind}","runTitle":"Exécuter un tunnel Cloudflared","runDescription":"Démarre le gestionnaire cloudflared autorisé sur ce Mac. Il continue de s’exécuter dans le service de l’agent lorsque vous quittez cette page.","tunnelName":"Nom du tunnel","tunnelPlaceholder":"tunnel-developpement","queuing":"Mise en file…","run":"Exécuter","history":"Historique des tâches","noJobs":"Aucune tâche n’a été exécutée sur cet agent.","baseRepoDirectory":"Répertoire de base des dépôts","baseRepoDirectoryDescription":"Choisissez le dossier de cet agent qui contient ses dépôts. Les chemins des worktrees qui s’y trouvent seront affichés relativement à ce dossier.","currentDirectory":"Répertoire actuel","notConfigured":"Non configuré","useDirectory":"Utiliser ce répertoire","clearDirectory":"Effacer le répertoire","directoryBrowsingUnavailable":"Connectez cet agent et mettez-le à jour si nécessaire pour parcourir les répertoires.","derivedDataLocation":"Derived Data Xcode","derivedDataLocationDescription":"Choisissez où cet agent stocke le DerivedData Xcode.","derivedDataMode":"Mode d’emplacement","derivedDataDefault":"Emplacement Xcode par défaut","derivedDataAbsolute":"Répertoire absolu personnalisé","derivedDataRelative":"Relatif à chaque arbre de travail","derivedDataAbsolutePath":"Répertoire absolu","derivedDataRelativePath":"Chemin de dossier relatif","derivedDataAbsoluteHelp":"Saisissez un chemin absolu sur cet agent ou choisissez un répertoire existant.","derivedDataRelativeHelp":"Ce dossier est recherché sous chaque arbre de travail actif suivi.","saveDerivedDataSettings":"Enregistrer les paramètres Derived Data","buildsDirectory":"Répertoire des builds","buildsDirectoryDescription":"Les journaux, produits copiés, archives et exports sont stockés dans un dossier par build. Par défaut, /Builds est ajouté au répertoire de base des dépôts, sauf remplacement ici.","browseBuildsDirectory":"Parcourir le répertoire des builds","effectiveDirectory":"Répertoire effectif","agentDefault":"Valeur par défaut du dépôt de base","customBuildsDirectory":"Répertoire absolu personnalisé","saveBuildsDirectory":"Enregistrer le répertoire des builds","useAgentDefault":"Utiliser la valeur par défaut du dépôt de base","deleteAgent":"Supprimer l’agent","deleteAgentTitle":"Supprimer cet agent ?","deleteAgentDescription":"Supprimer définitivement {name} ainsi que tous ses jobs et enregistrements de bases de code. Cette action est irréversible."},"buildData":{"title":"Données de build","description":"Inspectez et nettoyez le DerivedData Xcode sur les agents inscrits.","derivedDataTitle":"Données dérivées","derivedDataDescription":"Produits de build, index, journaux et caches Xcode par projet.","deviceSupportTitle":"Prise en charge des appareils iOS","deviceSupportDescription":"Symboles et fichiers conservés pour les versions iOS connectées à chaque agent.","deviceSupportVersion":"Version iOS","selectAllDeviceSupport":"Sélectionner toute la prise en charge iOS","noDeviceSupport":"Aucun dossier de prise en charge iOS trouvé.","deleteDeviceSupportTitle":"Supprimer la prise en charge iOS ?","deleteDeviceSupportDescription":"Supprimer définitivement {count} dossiers ? Xcode peut les recréer à la connexion d’un appareil compatible.","refresh":"Actualiser","calculateSizes":"Calculer les tailles","loading":"Analyse de Derived Data…","emptyTitle":"Aucune Derived Data trouvée","emptyDescription":"Les répertoires DerivedData configurés ne contiennent aucune entrée.","progress":"{complete} agents analysés sur {total} éligibles","selected":"{count} sélectionnés","deleteSelected":"Supprimer la sélection","selectAll":"Sélectionner toutes les entrées Derived Data","selectEntry":"Sélectionner {name}","folder":"Dossier","worktree":"Chemin de l’arbre de travail","size":"Espace disque","agent":"Agent","actions":"Actions","entryActions":"Actions pour {name}","deleteEntry":"Supprimer {name}","confirmDeleteEntry":"Confirmer la suppression de {name}","confirmDelete":"Confirmer","delete":"Supprimer","deleteTitle":"Supprimer Derived Data ?","deleteDescription":"Supprimer définitivement {count} entrées sélectionnées ? Cette action est irréversible.","history":"Historique des suppressions","historyDescription":"Derived Data supprimées des agents inscrits au cours des 90 derniers jours.","clearHistory":"Effacer l’historique","clearHistoryTitle":"Effacer l’historique ?","clearHistoryDescription":"Supprimer tous les enregistrements conservés ? Cela n’affecte pas les fichiers des agents.","loadingHistory":"Chargement de l’historique…","noHistory":"Aucune Derived Data n’a encore été supprimée.","deleted":"Supprimé","sourceLabel":"Source","loadMore":"Charger plus","status":{"UNLINKED":"Non lié","PENDING":"Build en démarrage","SHARED_CACHE":"Cache partagé"},"source":{"USER":"Utilisateur","AUTOMATIC":"Automatique"},"agentStatus":{"QUEUING":"mise en file","QUEUED":"en attente","RUNNING":"analyse","SUCCEEDED":"terminé","FAILED":"échec","CANCELLED":"annulé","TIMED_OUT":"délai dépassé","OFFLINE":"hors ligne","UNSUPPORTED":"mise à jour de l’agent requise","INVALID":"réponse invalide"}},"cacheServerSettings":{"title":"Serveur de cache Actions","description":"Connectez-vous à un serveur de cache GitHub Actions pour gérer ses entrées de cache.","configured":"Configuré","notConfigured":"Non configuré","loading":"Chargement des paramètres…","saved":"Paramètres du serveur de cache enregistrés.","connectionSucceeded":"Connexion au serveur de cache réussie.","removed":"Paramètres du serveur de cache supprimés.","baseUrl":"URL de base","baseUrlHelp":"L\'URL de base de l\'API de gestion, y compris tout préfixe de chemin.","apiKey":"Clé d\'API","apiKeyPlaceholder":"Saisissez la clé d\'API du serveur de cache","apiKeyPlaceholderConfigured":"Laissez vide pour conserver la clé actuelle","apiKeyHelp":"Envoyée comme en-tête x-api-key à chaque requête.","apiKeyKeepHelp":"Une clé est enregistrée. Saisissez une nouvelle valeur pour la remplacer.","headers":"En-têtes personnalisés","addHeader":"Ajouter un en-tête","headersHelp":"Les valeurs des en-têtes sont enregistrées localement, envoyées à chaque requête au serveur de cache et ne sont jamais renvoyées au navigateur.","noHeaders":"Aucun en-tête personnalisé configuré.","headerName":"Nom","headerValue":"Valeur","headerValuePlaceholderConfigured":"Laissez vide pour conserver la valeur actuelle","removeHeader":"Supprimer l\'en-tête","remove":"Supprimer","confirmRemove":"Supprimer les paramètres du serveur de cache ?","confirmRemoveDescription":"Les informations de connexion et la clé d\'API seront supprimées. La page Cache des Actions sera masquée jusqu\'à sa reconfiguration.","test":"Tester","save":"Enregistrer"},"cacheServer":{"title":"Cache des Actions","description":"Parcourez et gérez les entrées du serveur de cache GitHub Actions.","matchLookup":"Recherche de correspondance","refresh":"Actualiser","close":"Fermer","filtersTitle":"Filtres","filtersDescription":"Filtrez les entrées de cache par clé, version, portée ou dépôt.","key":"Clé","keyPlaceholder":"Clé de cache","version":"Version","versionPlaceholder":"Version du cache","scope":"Portée","scopePlaceholder":"Référence ou portée","repoId":"ID de dépôt","repoIdPlaceholder":"ID du dépôt","itemsPerPage":"Par page","deleteMatching":"Supprimer les correspondances","confirmDeleteMatching":"Supprimer toutes les entrées correspondantes ?","confirmDeleteMatchingDescription":"Toutes les entrées de cache correspondant aux filtres appliqués seront supprimées. Cette action est irréversible.","reset":"Réinitialiser","applyFilters":"Appliquer","entriesTitle":"Entrées de cache","entriesDescription":"Entrées de cache stockées sur le serveur.","loading":"Chargement des entrées de cache…","noEntries":"Aucune entrée de cache ne correspond aux filtres actuels.","updatedAt":"Mis à jour","actions":"Actions","viewDetails":"Voir les détails","delete":"Supprimer","confirmDeleteEntry":"Supprimer cette entrée de cache ?","edit":"Modifier","doneEditing":"Terminé","selected":"{count} sélectionnés","selectAll":"Sélectionner toutes les entrées de cache","selectEntry":"Sélectionner {name}","deleteSelected":"Supprimer la sélection","confirmDeleteSelected":"Supprimer {count} entrées de cache ?","showing":"Affichage de {start} à {end} sur {total}","previous":"Précédent","next":"Suivant","notConfiguredTitle":"Serveur de cache non configuré","notConfiguredDescription":"Configurez le serveur de cache GitHub Actions sur la page Paramètres pour gérer ses entrées.","goToSettings":"Aller aux paramètres","detailTitle":"Entrée de cache","detailDescription":"L\'entrée de cache complète et l\'emplacement de stockage qui la sous-tend.","entryNotFound":"Cette entrée de cache n\'existe plus.","entrySection":"Entrée","id":"Identifiant","locationId":"ID d\'emplacement","locationSection":"Emplacement de stockage","deleteLocation":"Supprimer l\'emplacement","confirmDeleteLocation":"Supprimer cet emplacement de stockage ?","confirmDeleteLocationDescription":"Le dossier de stockage et ses données seront supprimés. Cette action est irréversible.","folderName":"Nom du dossier","partCount":"Nombre de parties","sizeBytes":"Taille","mergeStartedAt":"Fusion démarrée","mergedAt":"Fusionné","partsDeletedAt":"Parties supprimées","lastDownloadedAt":"Dernier téléchargement","noLocation":"Aucun emplacement de stockage n\'est lié à cette entrée.","matchTitle":"Faire correspondre l\'entrée de cache","matchDescription":"Trouvez l\'entrée que le serveur de cache restaurerait pour un ensemble de clés.","primaryKey":"Clé principale","restoreKeys":"Clés de restauration","commaSeparated":"Séparé par des virgules","scopes":"Portées","matchFound":"Correspondance trouvée","matchTypes":{"EXACT_PRIMARY":"Principale exacte","PREFIXED_PRIMARY":"Principale préfixée","EXACT_RESTORE":"Restauration exacte","PREFIXED_RESTORE":"Restauration préfixée"},"noMatch":"Aucune entrée de cache ne correspond aux clés fournies.","runMatch":"Lancer la correspondance"},"jobs":{"back":"Agents","open":"Ouvrir la tâche","cancel":"Annuler","loading":"Chargement de la tâche…","notFound":"Tâche introuvable.","waiting":"En attente de sortie…"},"jiraTickets":{"title":"Tickets Jira","description":"Parcourez par statut les projets, tableaux et requêtes JQL enregistrés.","refresh":"Actualiser","manage":"Gérer","showBoardLayout":"Vue tableau Kanban","showTableLayout":"Vue tabulaire","collapseStatus":"Réduire {status}","expandStatus":"Développer {status}","issueType":"Type de ticket","priority":"Priorité","loading":"Chargement des projets Jira…","loadingTickets":"Chargement des tickets…","loadingTicket":"Chargement des détails du ticket…","emptyProjects":"Aucun projet Jira pour le moment","emptyProjectsDescription":"Configurez Jira, puis ajoutez un projet et sa première source.","emptySources":"Ce projet n’a aucune source","emptySourcesDescription":"Ajoutez une requête JQL nommée ou l’URL d’un tableau Jira.","emptyTickets":"Aucun ticket ne correspond à cette source.","addProject":"Ajouter un projet","addSource":"Ajouter une source","projectTabs":"Projets Jira","sourceTabs":"Sources des tickets","staleWarning":"Jira est inaccessible ; des données expirées du cache sont affichées.","truncatedWarning":"Cette source dépasse 1 000 tickets. Affinez-la pour voir les autres résultats.","issue":"Demande","unassigned":"Non attribué","manageTitle":"Gérer les projets et sources Jira","manageDescription":"Les projets viennent de Jira et chaque source est validée avant l’enregistrement.","projects":"Projets","availableProjects":"Projets Jira disponibles","selectProject":"Sélectionner un projet","sourceCount":"{count} sources","removeProject":"Retirer le projet","confirmRemoveProject":"Retirer ce projet et toutes ses sources enregistrées ?","sourcesFor":"Sources de {project}","displaySettings":"Paramètres d’affichage","displaySettingsDescription":"Ces paramètres s’appliquent uniquement à ce projet.","ticketsToShow":"Tickets à afficher","allTickets":"Tous les tickets","unassignedOrSelfAssigned":"Non assignés ou assignés à moi","selfAssignedInProgress":"Mes tickets en cours","hideCompletedTickets":"Masquer les tickets terminés","hideCompletedTicketsDescription":"Choisissez les statuts du projet considérés comme terminés.","completedStatuses":"Statuts terminés","loadingStatuses":"Chargement des statuts…","selectCompletedStatuses":"Sélectionner les statuts terminés","saveDisplaySettings":"Enregistrer les paramètres d’affichage","branchNaming":"Nommage des branches","branchNamingDescription":"Cette fonction est utilisée lors de la création d’une branche de worktree depuis un ticket de ce projet.","branchNamingFunction":"Fonction JavaScript de nommage des branches","branchNamingFunctionHelp":"Reçoit ticketKey, type, title et alreadyTaken. Retournez un nom de branche Git valide ; alreadyTaken est omis au premier appel.","saveBranchNaming":"Enregistrer le nommage des branches","sourceName":"Nom de la source","sourceType":"Type de source","boardUrl":"URL du tableau","editSource":"Modifier la source","deleteSource":"Supprimer la source","confirmDeleteSource":"Supprimer cette source et les entrées de cache associées ?","saveSource":"Enregistrer la source","cancel":"Annuler","done":"Terminé","ticket":"Ticket","staleTicket":"Certaines données sont expirées car Jira n’a pas répondu.","openInJira":"Ouvrir dans Jira","worktreeAction":"Créer un worktree","ticketWorktreeTitle":"Créer depuis {issueKey}","ticketWorktreeDescription":"Créez un nouveau worktree sur un agent, ou créez la branche du ticket et basculez-y un worktree existant.","newWorktree":"Nouveau worktree","existingWorktree":"Worktree existant","agentAndCodebase":"Agent et base de code","selectWorktreeDestination":"Sélectionner une destination","searchWorktreeDestinations":"Rechercher des worktrees, agents et bases de code","noWorktreeDestinations":"Aucune destination compatible et en ligne n’est disponible.","chooseWorktreeDestination":"Choisissez où créer la branche du ticket.","loadingWorktreeDestinations":"Chargement des destinations de worktree…","ticketWorktreeCreated":"Le worktree du ticket a été créé.","ticketBranchChanged":"La branche du ticket a été créée et le worktree y a été basculé.","createTicketWorktree":"Créer le worktree du ticket","createAndSwitchBranch":"Créer et changer de branche","ticketStashRetryHelp":"Git n’a pas pu changer de branche avec les modifications actuelles. Stashez les modifications suivies et non suivies, puis réessayez.","stashAndRetry":"Stasher et réessayer","detachedBranch":"HEAD détaché","descriptionTitle":"Description","classification":"Classement","labels":"Étiquettes","components":"Composants","fixVersions":"Versions correctives","sprints":"Itérations","relatedIssues":"Tickets associés","attachments":"Pièces jointes","comments":"Commentaires ({count})","noComments":"Ce ticket ne contient aucun commentaire.","unknownUser":"Utilisateur inconnu","assignee":"Responsable","reporter":"Rapporteur","created":"Créé","updated":"Mis à jour","due":"Échéance","resolved":"Résolu","affectedVersions":"Versions affectées","openFullDetails":"Ouvrir tous les détails","renderFormat":"Format d’affichage","markdown":"Format Markdown","jiraWiki":"Wiki Jira","viewRendered":"Voir le rendu","viewRaw":"Voir la source","rendered":"Rendu","raw":"Source","copied":"Copié","copy":"Copier","commentActions":"Actions du commentaire","copyRaw":"Copier le contenu source","copyFailed":"Impossible de copier le contenu.","authoringFormat":"Format de rédaction","preview":"Aperçu","hidePreview":"Masquer l’aperçu","commentBody":"Commentaire","commentPlaceholder":"Écrivez un commentaire…","saving":"Enregistrement…","addComment":"Ajouter un commentaire","changeAssignee":"Changer le responsable","searchAssignees":"Rechercher des utilisateurs assignables","loadingAssignees":"Chargement des utilisateurs…","noAssignees":"Aucun utilisateur assignable trouvé.","status":"Statut","changeStatus":"Changer le statut","requiresJira":"Nécessite Jira"},"jiraTicketDetail":{"loading":"Chargement du ticket Jira…","notFound":"Ticket introuvable","notFoundDescription":"Le ticket Jira n’a pas pu être chargé.","back":"Retour aux tickets Jira","summary":"Résumé","save":"Enregistrer","editSummary":"Modifier le résumé","refresh":"Actualiser","edit":"Modifier","saveDescription":"Enregistrer la description","descriptionHistory":"Historique de la description","descriptionHistoryDescription":"Sélectionnez deux versions de l’activité Jira pour comparer leur texte.","currentVersion":"Version actuelle","beforeChange":"Avant le {date}","afterChange":"Après le {date}","loadingHistory":"Chargement de l’historique…","noDescriptionHistory":"Aucune version antérieure de la description n’est disponible.","compareFrom":"Comparer depuis","compareTo":"Comparer vers","compareVersions":"Comparer les versions","descriptionComparison":"Comparaison de la description","selectVersions":"Sélectionnez deux versions différentes à comparer.","activity":"Activité","comments":"Commentaires","history":"Historique","worklogs":"Journaux de travail","unknownUser":"Utilisateur inconnu","noHistory":"Aucun historique disponible.","loadMore":"Charger plus","started":"Commencé {date}","noWorklogs":"Aucun journal de travail disponible.","allFields":"Tous les champs Jira","expandFields":"Afficher les champs","collapseFields":"Masquer les champs","searchFields":"Rechercher des champs","field":"Champ","value":"Valeur","custom":"Personnalisé","details":"Détails","editDetails":"Modifier les détails du ticket","editDetailsDescription":"Seuls les champs modifiables dans Jira sont affichés.","none":"Aucun","commaSeparated":"Valeurs séparées par des virgules","pickDate":"Choisir une date","clearDate":"Effacer la date","saving":"Enregistrement…"},"jiraCache":{"title":"Cache Jira","description":"Inspectez les données en cache, l’usage de l’API, la latence et les erreurs.","ttl":"Durée du cache en minutes","saveTtl":"Enregistrer la durée","clearCache":"Vider le cache","confirmClear":"Vider les réponses et tickets Jira ? L’historique des appels sera conservé.","loading":"Chargement de l’activité du cache…","average":"Moyenne de {ms} ms","live":"Direct","cache":"Cache","errors":"Erreurs","operationsTitle":"Opérations API","operationsDescription":"Comptages par opération et origine pour chaque fenêtre glissante.","noMetrics":"Aucune activité de l’API Jira au cours des dernières 24 heures.","operation":"Opération","recentTitle":"Appels API récents","recentDescription":"Chaque opération Jira mise en cache, de la plus récente à la plus ancienne.","noCalls":"Aucun appel à l’API Jira n’a été enregistré.","time":"Heure","fetched":"Éléments récupérés","source":"Origine","sources":{"LIVE":"Direct","CACHE":"Cache","ERROR":"Erreur"},"duration":"Durée","error":"Erreur","stale":"Expiré","ticketsTitle":"Tickets en cache","ticketsDescription":"Couverture des résumés, détails et commentaires des tickets Jira.","noTickets":"Aucun ticket Jira n’est en cache.","ticket":"Ticket","status":"Statut","coverage":"Couverture","freshness":"Fraîcheur","fresh":"À jour","lastFetched":"Dernière récupération","actions":"Actions","open":"Ouvrir","refresh":"Actualiser","delete":"Supprimer","confirmDeleteTicket":"Supprimer {issueKey} et toutes les entrées qui le référencent ?","showing":"Affichage de {start} à {end} sur {total}","previous":"Précédent","next":"Suivant"},"jiraCacheDetail":{"back":"Cache Jira","description":"Données Jira du ticket en cache","refresh":"Actualiser le ticket","delete":"Supprimer du cache","confirmDelete":"Supprimer {issueKey} et ses entrées de cache associées ?","loading":"Chargement du ticket en cache…","notFound":"Ce ticket ne figure pas dans le cache Jira.","coverage":"Couverture","freshness":"Fraîcheur","fresh":"À jour","stale":"Expiré","detailFetched":"Détail récupéré","commentsFetched":"Commentaires récupérés","summaryData":"Réponse de résumé","detailData":"Réponse détaillée complète","commentsData":"Réponse complète des commentaires","notFetched":"Ce niveau de données n’a pas encore été récupéré.","relatedEntries":"Entrées de cache associées","noEntries":"Aucune entrée de cache ne référence ce ticket.","operation":"Opération","fetchedAt":"Récupéré le","entryId":"Identifiant de cache"},"jiraSettings":{"title":"Paramètres","description":"Configurez le compte Jira Cloud utilisé par cette application.","loading":"Chargement des paramètres Jira…","credentials":"Identifiants Jira","configured":"Jeton configuré","notConfigured":"Jeton non configuré","siteUrl":"URL du site Jira Cloud","siteUrlHelp":"Utilisez l’URL racine *.atlassian.net de votre site Jira.","email":"Adresse du compte Jira","apiToken":"Jeton d’API Jira","tokenPlaceholder":"Collez un jeton d’API Atlassian","tokenPlaceholderConfigured":"Laissez vide pour conserver le jeton","tokenHelp":"Le jeton est stocké dans SQLite local et n’est jamais renvoyé au navigateur.","tokenKeepHelp":"Laissez ce champ vide sauf pour remplacer le jeton enregistré.","save":"Enregistrer les paramètres","test":"Tester la connexion","remove":"Retirer les identifiants","saved":"Paramètres Jira enregistrés.","connectionSucceeded":"Connexion à Jira réussie.","removed":"Identifiants retirés et données Jira en cache supprimées.","confirmSiteChange":"Changer de site supprime projets, sources et cache Jira. Continuer ?","confirmRemove":"Retirer l’adresse et le jeton enregistrés puis vider le cache Jira ?"},"settings":{"title":"Paramètres","description":"Configurez les outils de développement, les services Apple et les intégrations externes.","developmentGroup":"Développement","developmentGroupDescription":"Choisissez les outils utilisés avec les extractions locales et les worktrees.","appleGroup":"Services Apple","appleGroupDescription":"Gérez l’inscription iOS et les identifiants App Store Connect et APNs.","integrationsGroup":"Intégrations","integrationsGroupDescription":"Connectez les comptes Jira et GitHub utilisés dans toute l’application."},"editorSettings":{"title":"Éditeur des worktrees","description":"Choisissez l’édition de VS Code qui ouvre les worktrees ou masquez ces actions.","loading":"Chargement des réglages de l’éditeur…","label":"Éditeur","code":"Visual Studio Code (version stable)","insiders":"Visual Studio Code (canal Insiders)","none":"Aucun (masquer les boutons)","save":"Enregistrer l’éditeur","saved":"Réglage de l’éditeur enregistré."},"githubSettings":{"title":"Identifiants GitHub","description":"Connectez le compte utilisé pour charger les demandes de tirage et GitHub Actions.","loading":"Chargement des paramètres GitHub…","configured":"Jeton configuré","notConfigured":"Jeton non configuré","apiToken":"Jeton d’accès personnel GitHub","tokenPlaceholder":"Collez un jeton d’accès personnel GitHub","tokenPlaceholderConfigured":"Laissez vide pour conserver le jeton enregistré","tokenHelp":"Accordez un accès en lecture et écriture aux demandes de tirage ainsi qu’un accès en lecture à Actions dans les dépôts utilisés. Le jeton sert aux vues, aux fils de révision et aux détails des exécutions.","tokenKeepHelp":"Laissez ce champ vide sauf si vous souhaitez remplacer le jeton enregistré.","save":"Enregistrer les paramètres","test":"Tester la connexion","remove":"Supprimer les identifiants","saved":"Paramètres GitHub enregistrés.","connectionSucceeded":"Connexion à GitHub réussie.","removed":"Identifiants GitHub supprimés. Les dépôts gérés ont été conservés.","confirmRemove":"Supprimer les identifiants GitHub ?","confirmRemoveDescription":"Le jeton enregistré sera supprimé. Les dépôts gérés et leurs expressions Jira seront conservés."},"githubAppSettings":{"title":"Relance des pipelines par GitHub App","description":"Utilisez votre propre GitHub App pour relancer les workflows GitHub Actions.","loading":"Chargement des paramètres de la GitHub App…","verified":"Vérifiée","notConfigured":"Non configurée","setupTitle":"Configurer votre propre GitHub App","stepRegister":"Enregistrez une GitHub App au nom unique, par exemple « Relance IA Environnement », depuis","registerLink":"Créer une GitHub App","stepHomepage":"Utilisez","stepHomepageSuffix":" comme URL de page d’accueil. Laissez l’URL de rappel vide et désactivez les webhooks.","stepPermissions":"Réglez Repository permissions → Actions sur Read and write. Metadata reste automatiquement en lecture seule ; aucun droit Checks n’est nécessaire.","stepInstall":"Créez l’app, générez une clé privée, puis installez-la uniquement sur les dépôts que ce déploiement doit contrôler.","stepInstallationId":"Après l’installation, ouvrez la page Configure de l’app. L’identifiant d’installation est le dernier nombre de l’URL, par exemple","stepInstallationIdSuffix":". Remplacez Organization-name par votre organisation et copiez la valeur finale de l’ID.","stepCredentials":"Copiez l’identifiant de l’app et celui de l’installation, puis collez-les avec le fichier PEM téléchargé.","appId":"Identifiant de la GitHub App","appIdPlaceholder":"Saisissez l’identifiant numérique de l’app","installationId":"Identifiant d’installation","installationIdPlaceholder":"Saisissez l’identifiant numérique d’installation","privateKey":"Clé privée au format PEM","privateKeyDropZone":"Zone de dépôt de la clé privée PEM","pemDropHint":"Déposez un fichier .pem ici ou collez la clé ci-dessous.","pemFileLoaded":"{filename} a été chargé. Enregistrez et vérifiez pour utiliser cette clé.","pemFileInvalid":"Déposez un fichier .pem valide contenant une clé privée RSA.","pemFileReadError":"Le fichier PEM déposé n’a pas pu être lu.","privateKeyPlaceholder":"Collez le PEM téléchargé de la GitHub App","privateKeyPlaceholderConfigured":"Laissez vide pour conserver la clé configurée","privateKeyHelp":"La clé est envoyée uniquement au serveur Next.js et n’est jamais renvoyée au navigateur.","privateKeyKeepHelp":"Une clé privée est configurée. Collez un nouveau PEM uniquement pour la renouveler.","connectedAs":"Connexion à {app} sur {account}","connectionDetails":"Actions : {permission} ; dépôts : {selection}","lastVerified":"Dernière vérification : {date}","save":"Enregistrer et vérifier","rotate":"Renouveler la clé et vérifier","test":"Tester la connexion","remove":"Supprimer la GitHub App","saved":"La GitHub App a été enregistrée et vérifiée.","rotated":"La clé privée de la GitHub App a été renouvelée et vérifiée.","connectionSucceeded":"La connexion à la GitHub App a été vérifiée.","removed":"Les identifiants de la GitHub App ont été supprimés. Le jeton personnel et les dépôts gérés sont conservés.","confirmRemove":"Supprimer les identifiants de la GitHub App ?","confirmRemoveDescription":"L’identifiant de l’app, celui de l’installation et la clé privée seront supprimés. Les identifiants des demandes et les dépôts gérés seront conservés."},"pullRequests":{"title":"Demandes de tirage","description":"Consultez vos demandes GitHub et les dépôts surveillés au même endroit.","refresh":"Actualiser","manage":"Gérer","loading":"Chargement de la configuration GitHub…","credentialsRequired":"Connectez GitHub pour afficher les demandes","credentialsRequiredDescription":"Ajoutez un jeton d’accès personnel dans les Paramètres avant de charger les données GitHub.","openSettings":"Ouvrir les Paramètres","tabsLabel":"Vues des demandes de tirage","mine":"Les miennes","reviewRequests":"Demandes de révision","repositories":"Dépôts","stateFilter":"État de la demande de tirage","repositoryFilter":"Dépôt","selectRepository":"Sélectionner un dépôt","searchRepositories":"Rechercher des dépôts","searchAvailableRepositories":"Rechercher les dépôts disponibles","noRepositoryMatches":"Aucun dépôt ne correspond à la recherche.","truncated":"La recherche GitHub renvoie au maximum 1 000 résultats. Affinez votre charge de travail sur GitHub pour voir les éléments au-delà de cette limite.","loadingPullRequests":"Chargement des demandes de tirage…","loadingMore":"Chargement…","retryLoad":"Réessayer","empty":"Aucune demande de tirage","emptyDescription":"Aucune demande de tirage ne correspond actuellement à cette vue.","repository":"Dépôt","number":"Numéro","pullRequest":"Demande de tirage","pullRequestAndRepository":"Demande de tirage / Dépôt","labels":"Étiquettes","ticket":"Ticket","pipeline":"Pipeline","approval":"Approbation","openComments":"Commentaires ouverts","viewOpenComments":"Voir {count} commentaires ouverts","age":"Ancienneté","actions":"Actions","details":"Détails","openInGitHub":"Ouvrir dans GitHub","merge":"Fusionner","mergePullRequest":"Fusionner la pull request","mergePullRequestDescription":"Fusionnez {repository} #{number} après avoir vérifié les détails du commit.","loadingMergeOptions":"Vérification des conditions de fusion…","mergeType":"Type de fusion","selectMergeType":"Sélectionner un type de fusion","mergeTypes":{"SQUASH":"Squash et fusion","MERGE":"Créer un commit de fusion","REBASE":"Rebase et fusion"},"commitMessage":"Message du commit","commitDescription":"Description du commit","commitEmail":"E-mail du commit","githubDefaultEmail":"Utiliser la valeur par défaut du compte GitHub","cancelMerge":"Annuler","merging":"Fusion en cours…","pipelineStates":{"ACTION_REQUIRED":"Action requise","CANCELLED":"Annulé","ERROR":"Erreur","EXPECTED":"Attendu","FAILURE":"Échec","IN_PROGRESS":"En cours","NEUTRAL":"Neutre","PENDING":"En attente","QUEUED":"En file","SKIPPED":"Ignoré","STALE":"Obsolète","STARTUP_FAILURE":"Échec au démarrage","SUCCESS":"Réussi","TIMED_OUT":"Délai dépassé","NONE":"Aucune vérification"},"pipelineMenuTitle":"État des pipelines","noPipelines":"Aucune vérification de pipeline n’a été signalée.","retry":"Relancer","retrying":"Relance…","retryUnavailable":{"GITHUB_APP_NOT_CONFIGURED":"Configurez et vérifiez une GitHub App dans les Paramètres pour relancer ce workflow.","NOT_COMPLETED":"Seuls les workflows terminés peuvent être relancés.","NOT_GITHUB_ACTIONS":"Seules les exécutions GitHub Actions peuvent être relancées.","WORKFLOW_RUN_UNAVAILABLE":"GitHub n’a fourni aucune exécution de workflow pour cette suite de vérifications.","HISTORICAL_ATTEMPT":"Les anciennes tentatives sont en lecture seule."},"reviewStates":{"APPROVED":"Approuvée","CHANGES_REQUESTED":"Modifications demandées","REVIEW_REQUIRED":"Révision requise","NONE":"Aucune décision"},"pullRequestStates":{"ALL":"Toutes","OPEN":"Ouverte","CLOSED":"Fermée","MERGED":"Fusionnée"},"mergeableStates":{"CONFLICTING":"Conflits","MERGEABLE":"Fusionnable","UNKNOWN":"Calcul en cours"},"manageTitle":"Gérer les dépôts GitHub","manageDescription":"Choisissez les onglets de dépôt et configurez l’extraction des clés Jira depuis les titres.","manageCredentialsRequired":"Configurez les identifiants GitHub avant d’ajouter des dépôts.","managedRepositories":"Dépôts gérés","noManagedRepositories":"Aucun dépôt n’est encore géré.","addRepository":"Ajouter un dépôt","browse":"Parcourir","enterManually":"Saisir manuellement","privateRepository":"Dépôt privé","managed":"Géré","add":"Ajouter","loadingRepositories":"Chargement des dépôts…","loadMore":"Charger plus","repositoryName":"Propriétaire/nom du dépôt","jiraKeyRegex":"Expression régulière de clé Jira","jiraKeyRegexHelp":"Le premier groupe capturé est utilisé s’il existe, sinon la correspondance complète. Effacez le champ pour désactiver l’analyse.","defaultJiraKeyRegex":"Expression par défaut de clé de ticket","defaultJiraKeyRegexHelp":"Utilisée pour chaque dépôt géré sans remplacement propre. Le premier groupe capturé est utilisé s’il existe.","jiraKeyRegexOverrideHelp":"Laissez vide pour hériter de l’expression par défaut.","saveDefaultRegex":"Enregistrer l’expression par défaut","invalidRegex":"Saisissez une expression régulière de clé Jira valide.","done":"Terminé","removeRepository":"Supprimer le dépôt","confirmRemoveRepository":"Supprimer ce dépôt géré ?","confirmRemoveRepositoryDescription":"Son onglet de demandes et sa configuration d’expression Jira seront supprimés.","saveRegex":"Enregistrer l’expression Jira"},"githubComments":{"title":"Commentaires","description":"Consultez et répondez aux fils de révision GitHub de vos demandes ouvertes.","refresh":"Actualiser","layout":"Disposition des commentaires","cards":"Disposition en cartes","table":"Disposition en tableau","loadingConfiguration":"Chargement de la configuration GitHub…","credentialsRequired":"Connectez GitHub pour voir les commentaires","credentialsDescription":"Ajoutez dans Paramètres un jeton personnel autorisé à lire et modifier les demandes.","openSettings":"Ouvrir les paramètres","allPullRequests":"Toutes les demandes ouvertes","searchPullRequests":"Rechercher des demandes ouvertes","noPullRequestMatches":"Aucune demande ouverte ne correspond à la recherche.","currentUser":"Utilisateur actuel","otherUsers":"Autres utilisateurs","unresolved":"Non résolus","truncated":"La recherche GitHub renvoie au maximum 1 000 demandes. Certains fils peuvent manquer.","loading":"Chargement des commentaires de révision…","empty":"Aucun commentaire de révision","emptyDescription":"Aucun fil ne correspond à la demande et aux filtres sélectionnés.","reviewThreads":"Commentaires de révision","reviewThreadsDescription":"{count, plural, =0 {Aucun fil de révision ne correspond aux filtres actuels.} one {# fil de révision correspond aux filtres actuels.} other {# fils de révision correspondent aux filtres actuels.}}","author":"Auteur","pullRequest":"Demande de tirage","comment":"Commentaire","date":"Date du commentaire","replies":"Réponses","github":"Plateforme GitHub","rendered":"Aperçu rendu","markdown":"Source Markdown","viewRaw":"Source","viewRendered":"Rendu","copy":"Copier","copied":"Copié","copyFailed":"Impossible de copier le Markdown.","unknownAuthor":"Auteur inconnu","fileComment":"Commentaire de fichier","outdated":"Obsolète","resolved":"Résolu","openInGitHub":"Ouvrir dans GitHub","openReplyInGitHub":"Ouvrir la réponse dans GitHub","reply":"Répondre","replyPlaceholder":"Répondre en Markdown…","replyUnavailable":"GitHub n’autorise pas ce compte à répondre à ce fil.","reopen":"Rouvrir le fil","resolve":"Résoudre le fil","replying":"Envoi en cours…","sendReply":"Envoyer la réponse"},"pullRequestDetail":{"back":"Demandes de tirage","loading":"Chargement des détails de la demande…","notFound":"Demande de tirage introuvable","notFoundDescription":"Cette demande est indisponible ou le jeton GitHub configuré ne permet pas d’y accéder.","refresh":"Actualiser","openInGitHub":"Ouvrir dans GitHub","viewWorktree":"Voir le worktree","draft":"Brouillon","description":"Description","noDescription":"Aucune description n’a été fournie.","comments":"Commentaires","noComments":"Aucun commentaire de révision","noCommentsDescription":"Cette demande de tirage ne contient aucun fil de révision.","pipelines":"Chaînes d’intégration","pipelineCount":"{count} pipelines et contextes d’état","viewAll":"Tout afficher","pipelineName":"Pipeline","pipelineStatus":"État","pipelineDetails":"Détails","viewPipeline":"Voir","jobCount":"{count} tâches","noJobs":"Aucune tâche n’a été signalée pour cette exécution.","viewJob":"Voir {job} sur GitHub","retryJob":"Relancer {job}","showJobSteps":"Afficher les étapes de {job}","hideJobSteps":"Masquer les étapes de {job}","steps":"Étapes","noSteps":"Aucune étape n’a encore été signalée pour cette tâche.","details":"Détails de la demande","branches":"Branches","changes":"Modifications","files":"Fichiers modifiés","commits":"Commits","mergeable":"Possibilité de fusion","openComments":"Commentaires ouverts","created":"Créée","updated":"Mise à jour","merged":"Fusionnée","people":"Personnes","author":"Auteur","assignees":"Assignés","unassigned":"Non assignée","unknown":"Inconnu"},"actionsPage":{"title":"Actions GitHub","description":"Surveillez les exécutions de workflows dans les bases de code GitHub enregistrées.","refresh":"Actualiser","loadingConfiguration":"Chargement de la configuration GitHub…","credentialsRequired":"Connectez GitHub pour afficher Actions","credentialsRequiredDescription":"Ajoutez dans les Paramètres un jeton d’accès personnel autorisé à lire Actions.","openSettings":"Ouvrir les Paramètres","repositoryFilter":"Dépôt","allRepositories":"Tous les dépôts","searchRepositories":"Rechercher des dépôts","noRepositoryMatches":"Aucun dépôt ne correspond à la recherche.","branchFilter":"Branche","branchFilterPlaceholder":"Saisir le nom exact de la branche","applyBranchFilter":"Appliquer","clearBranchFilter":"Effacer le filtre de branche","pipelineFilter":"Flux de travail","allPipelines":"Tous les pipelines","searchPipelines":"Rechercher des pipelines","noPipelineMatches":"Aucun pipeline ne correspond à la recherche.","loadingRuns":"Chargement des exécutions…","noCodebases":"Aucune base de code GitHub","noCodebasesDescription":"Enregistrez une base de code dont l’origine est github.com pour afficher ses exécutions.","empty":"Aucune exécution","emptyDescription":"GitHub n’a renvoyé aucune exécution pour cette sélection de dépôts.","expand":"Développer","repository":"Dépôt","workflowRun":"Exécution du workflow","trigger":"Déclencheur","status":"État","pullRequest":"Demande de tirage","ticket":"Ticket","worktree":"Arbre de travail","started":"Démarrée","duration":"Durée : {duration}","actions":"Actions","runNumber":"Exécution n° {number}","autoRetry":"Relance automatique","attempt":"Tentative {attempt}","view":"Voir","viewWorktree":"Voir","cancel":"Annuler","cancelling":"Annulation…","forceCancel":"Forcer l’annulation","forceCancelling":"Annulation forcée…","forceCancelTitle":"Forcer l’annulation de cette exécution ?","forceCancelDescription":"L’annulation forcée contourne les conditions qui empêchent normalement GitHub d’arrêter cette exécution. Utilisez-la uniquement si l’annulation normale est bloquée.","keepRunning":"Laisser s’exécuter","showJobs":"Afficher les tâches de {run}","hideJobs":"Masquer les tâches de {run}","jobs":"Tâches","jobCount":"{count} tâches","loadingJobs":"Chargement des tâches…","retryLoad":"Réessayer","noJobs":"Aucune tâche n’a été signalée pour cette exécution.","showJobSteps":"Afficher les étapes de {job}","hideJobSteps":"Masquer les étapes de {job}","retryJob":"Relancer {job}","steps":"Étapes","noSteps":"Aucune étape n’a encore été signalée pour cette tâche.","loadMore":"Charger plus","loadingMore":"Chargement…"},"githubAutomation":{"autoRetry":"Relance automatique","title":"Configurer la relance automatique","description":"Relance automatiquement les workflows ou tâches GitHub Actions sélectionnés.","loading":"Chargement des workflows et règles enregistrées…","credentialsRequired":"Configurez un jeton d’accès personnel et vérifiez une GitHub App avec un accès en écriture à Actions avant de créer des règles.","scope":"S’applique à","currentRuns":"Exécutions actuelles","futureRuns":"Exécutions futures","targets":"Pipelines et tâches","allWorkflows":"Tous les workflows, y compris ceux ajoutés ultérieurement","noWorkflows":"Aucun workflow GitHub Actions trouvé.","mode":"Mode de relance","failureMode":"Relancer les échecs","countMode":"Relancer les réussites par nombre","retryLimit":"Limite de relances","unlimited":"Illimité","failureStrategy":"Lors d’un échec","failedJobs":"Relancer uniquement les tâches échouées","allJobs":"Relancer toutes les tâches","savedRules":"Règles enregistrées","edit":"Modifier la règle","ruleProgress":"{retries} relances automatiques sur {executions} exécutions","pause":"Suspendre la règle","resume":"Reprendre la règle","delete":"Supprimer la règle","close":"Fermer","save":"Enregistrer la règle","limitError":"Saisissez une limite comprise entre 1 et 100.","targetRequired":"Sélectionnez au moins un workflow ou une tâche.","attemptSelector":"Tentative du workflow","latestAttempt":"Dernière — Tentative {attempt}","attempt":"Tentative {attempt}","attemptStartedBy":"Lancée par @{actor}","pipelines":"Pipelines","pipelineCount":"{count} pipelines GitHub Actions","pipeline":"Chaîne","status":"État","actions":"Actions","view":"Voir","noJobs":"Aucune tâche signalée pour cette tentative.","statuses":{"ACTIVE":"Active","PAUSED":"Suspendue","COMPLETED":"Terminée","EXHAUSTED":"Épuisée","ERROR":"Erreur"},"scopes":{"WORKFLOW_RUN":"Exécution actuelle","WORKTREE_BRANCH":"Branche du worktree","PULL_REQUEST":"Pull request","REPOSITORY":"Dépôt"}},"codebases":{"title":"Bases de code","description":"Suivez les dépôts Git et leurs copies de travail sur tous les agents inscrits.","refreshAll":"Tout actualiser","fetchAll":"Tout récupérer","add":"Ajouter une base de code","groupBy":"Regrouper les bases de code par","agents":"Agents","repositories":"Dépôts","loading":"Chargement des bases de code…","emptyTitle":"Aucune base de code","emptyDescription":"Ajoutez un dépôt Git existant depuis un agent en ligne.","skipped":"{count} bases de code hors ligne, incompatibles ou indisponibles ont été ignorées.","fetchQueued":"La récupération a démarré pour les bases de code admissibles.","refreshQueued":"L’actualisation a démarré pour les bases de code admissibles.","online":"En ligne","offline":"Hors ligne","edit":"Modifier","view":"Afficher","folder":"Dossier","origin":"Origine","branch":"Branche","upstream":"Branche suivie","lastChecked":"Dernière vérification","lastFetched":"Dernière récupération","never":"Jamais","unknown":"Inconnu","none":"Aucune","ahead":"En avance de {count}","behind":"En retard de {count}","sync":{"IN_SYNC":"Synchronisée","AHEAD":"En avance","BEHIND":"En retard","DIVERGED":"Divergente","NO_UPSTREAM":"Sans branche suivie","DETACHED":"Détachée","UNKNOWN":"Inconnu"},"availability":{"AVAILABLE":"Disponible","MISSING":"Dossier introuvable","NOT_REPOSITORY":"Ce n’est pas un dépôt Git","ORIGIN_MISMATCH":"L’origine a changé","ERROR":"Indisponible"},"operationRunning":"Opération Git en cours…","fetch":"Récupérer","addTitle":"Ajouter une base de code","addDescription":"Parcourez un agent, inspectez un dépôt Git et confirmez son origine avant l’enregistrement.","agent":"Agent","selectAgent":"Sélectionnez un agent en ligne","browseHome":"Parcourir le dossier personnel","home":"Accueil","showHidden":"Afficher les dossiers cachés","truncated":"Seuls les 1 000 premiers dossiers sont affichés.","addFolder":"Ajouter ce dossier","detached":"HEAD détachée","existingOrigin":"Cette origine utilise déjà le nom partagé « {name} ».","name":"Nom du dépôt","repositoryDescription":"Description du dépôt","cancel":"Annuler","confirm":"Confirmer la base de code","editTitle":"Modifier les détails du dépôt","loadingRepository":"Chargement du dépôt…","repositoryNotFound":"Dépôt introuvable","repositoryNotFoundDescription":"Ce dépôt logique n’a peut-être plus de copie de travail enregistrée.","backToCodebases":"Retour aux bases de code","repositorySharedDescription":"Ces détails, configurations de build et scripts autorisés appartiennent au dépôt logique et s’appliquent à toutes les copies d’agent et tous les worktrees.","repositoryDetails":"Détails du dépôt","repositoryDetailsDescription":"Gérez les réglages partagés par toutes les copies enregistrées de ce dépôt.","repositorySaved":"Détails du dépôt enregistrés.","autoRetry":"Relance automatique","autoRetryDescription":"Configurez des règles de relance durables pour les workflows GitHub Actions de ce dépôt.","autoRetryGitHubOnly":"La relance automatique est disponible uniquement pour les dépôts hébergés sur GitHub.","skillGroups":"Groupes de compétences","skillGroupsHelp":"Choisissez les groupes synchronisés dans tous les checkouts et worktrees de ce dépôt.","noSkillGroups":"Aucun groupe disponible.","keepBaseBranchUpToDate":"Maintenir la branche de base à jour","keepBaseBranchUpToDateHelp":"Après une récupération réussie, la branche de base est avancée en mode fast-forward lorsqu’aucune modification n’est indexée. Ce réglage du dépôt s’applique à tous les agents.","save":"Enregistrer","remove":"Supprimer","confirmRemoveTitle":"Supprimer l’enregistrement de la base de code ?","confirmRemoveDescription":"L’enregistrement de {folder} sera supprimé. Le dossier et tous ses fichiers resteront intacts sur l’agent.","removed":"L’enregistrement de la base de code a été supprimé.","settings":"Paramètres","settingsTitle":"Paramètres d’état des bases de code","settingsDescription":"Définissez la fréquence à laquelle les agents à jour inspectent les dossiers enregistrés et signalent l’état Git.","refreshInterval":"Intervalle d’actualisation de l’agent (secondes)","refreshIntervalHelp":"Choisissez un entier compris entre {min} et {max}. Chaque agent attend cette durée après la fin d’une analyse. Aucun serveur Git distant n’est contacté.","fetchInterval":"Intervalle de récupération automatique (secondes)","fetchIntervalHelp":"Choisissez un entier de {min} à {max}. L’agent récupère origin lorsque cet intervalle est écoulé.","defaultJiraBranchRegex":"Expression Jira par défaut pour les branches","jiraBranchRegex":"Expression Jira propre à cette origine","jiraBranchRegexHelp":"Le premier groupe capturé est utilisé, sinon la correspondance complète du nom de branche.","inheritDefaultRegex":"Hériter de l’expression par défaut","settingsSaved":"Réglages des bases de code enregistrés."},"codebaseDetail":{"iosApp":"App iOS","loading":"Chargement de la base de code…","notFound":"Base de code introuvable","notFoundDescription":"Cet enregistrement de base de code a peut-être été supprimé.","back":"Retour aux bases de code","operationQueued":"Opération Git mise en attente.","operationSucceeded":"Opération Git terminée.","operationFailed":"L’opération Git a échoué.","offlineReadOnly":"Cet agent est hors ligne. Les informations de branches enregistrées restent disponibles en lecture seule jusqu’à sa reconnexion.","unsupportedReadOnly":"Mettez cet agent à jour pour inspecter et gérer les branches et les stashes. Les informations enregistrées sont affichées en lecture seule.","dirty":"Modifications non validées","refresh":"Actualiser","fetch":"Récupérer origin","repositorySettings":"Réglages du dépôt","origin":"Origine","currentBranch":"Branche actuelle","upstream":"Branche suivie","lastFetched":"Dernière récupération","activeOperation":"{kind} est en cours…","branches":"Branches ({count})","stashes":"Réserves Git ({count})","branchesTruncated":"Seules les 1 000 premières branches sont affichées.","localBranches":"Branches locales","remoteBranches":"Branches distantes d’origin","noLocalBranches":"Aucune branche locale trouvée.","noRemoteBranches":"Aucune branche d’origin trouvée. Récupérez origin puis réessayez.","branchName":"Branche","branchStatus":"État","actions":"Actions","current":"Actuelle","default":"Par défaut","protected":"Protégée","otherWorktree":"Autre worktree","localAvailable":"Branche locale existante","switch":"Changer","stashAndSwitch":"Mettre de côté et changer","confirmDirtySwitchTitle":"Mettre les modifications de côté et changer de branche ?","confirmDirtySwitchDescription":"Les modifications indexées, non indexées et non suivies seront enregistrées dans un nouveau stash avant le passage à {branch}. Le stash sera conservé.","checkout":"Extraire","stashAndCheckout":"Mettre de côté et extraire","confirmDirtyCheckoutTitle":"Mettre les modifications de côté et extraire cette branche ?","confirmDirtyCheckoutDescription":"Les modifications indexées, non indexées et non suivies seront enregistrées dans un nouveau stash avant l’extraction de {branch}. Le stash sera conservé.","pull":"Tirer","deleteRemote":"Supprimer la distante","confirmDeleteRemoteBranchTitle":"Supprimer la branche distante ?","confirmDeleteRemoteBranchDescription":"origin/{branch} sera définitivement supprimée. Les branches locales et worktrees du même nom resteront intacts.","delete":"Supprimer","cancel":"Annuler","confirmDeleteBranchTitle":"Supprimer la branche locale ?","confirmDeleteBranchDescription":"Git ne supprimera {branch} que si ses commits ont déjà été fusionnés. La branche actuelle, celle par défaut ou celle d’un autre worktree ne peut pas être supprimée.","noStashes":"Aucun stash","noStashesDescription":"Ce checkout ne contient actuellement aucun stash Git.","preview":"Aperçu","hidePreview":"Masquer l’aperçu","loadingPreview":"Chargement du patch du stash…","emptyPatch":"Ce stash ne contient aucun patch texte à afficher.","copyPatch":"Copier le patch","patchCopied":"Patch copié","copyPatchFailed":"Impossible de copier le patch.","patchTruncated":"Ce patch a été tronqué à 256 Kio.","stashesTruncated":"Seuls les 200 premiers stashes sont affichés.","apply":"Appliquer","confirmDeleteStashTitle":"Supprimer le stash ?","confirmDeleteStashDescription":"{stash} sera définitivement supprimé. Appliquez-le d’abord si vous devez conserver ses modifications.","stashesTitle":"Remises","stashMessage":"Remise","searchBranches":"Rechercher des branches","searchBranchesPlaceholder":"Filtrer par nom de branche","noMatchingBranches":"Aucune branche ne correspond à votre recherche.","sortBranches":"Trier les branches","sortByName":"Nom","sortByNewestCommit":"Commit le plus récent","searchStashes":"Rechercher des remises","searchStashesPlaceholder":"Filtrer par message ou sélecteur","noMatchingStashes":"Aucune remise ne correspond à votre recherche."},"worktrees":{"title":"Arbres de travail","description":"Gérez les worktrees Git principaux et liés sur tous les agents inscrits.","agentOffline":"L’agent est hors ligne.","worktreeUnavailable":"Ce worktree n’est pas disponible.","agentUnsupported":"Mettez à jour l’agent pour activer les builds iOS.","iosBuildNotConfigured":"Ajoutez d’abord un projet d’app iOS et une configuration de build dans les réglages du dépôt.","filters":"Filtres des worktrees","searchWorktrees":"Rechercher des worktrees","searchWorktreesPlaceholder":"Rechercher des branches, agents, dépôts, tickets ou bases de code…","filterByAgent":"Filtrer par agent","allAgents":"Tous les agents","filterByRepository":"Filtrer par dépôt","allRepositories":"Tous les dépôts","noMatchingWorktrees":"Aucun worktree correspondant","noMatchingWorktreesDescription":"Essayez une autre recherche ou un autre filtre.","refresh":"Actualiser","fetchNow":"Récupérer maintenant","fetchStarted":"Récupération lancée pour les bases de code disponibles.","createWorktree":"Créer un worktree","worktreeCreated":"Worktree créé.","repositoryCheckout":"Checkout du dépôt","selectCodebase":"Sélectionner un agent et un dépôt","selectCodebaseHelp":"Choisissez le checkout de l’agent qui possédera ce worktree.","searchCodebases":"Rechercher des dépôts et des agents","noEligibleCodebases":"Aucun checkout de dépôt compatible et en ligne n’est disponible.","newBranch":"Nouvelle branche","existingBranch":"Branche existante","fromTicket":"Depuis un ticket","branchName":"Nom de branche","ticketKey":"Clé du ticket","loadingTicketBranch":"Chargement du ticket et du nom de branche…","selectExistingBranch":"Sélectionner une branche existante","selectBaseBranch":"Sélectionner une branche de base","searchBranches":"Rechercher des branches","noMatchingBranches":"Aucune branche correspondante.","localBranch":"Locale","originBranch":"Branche distante","localAndOrigin":"Locale et origin","remoteDefault":"Branche distante par défaut","changeBranch":"Changer de branche","moveToAgent":"Déplacer vers un agent","moveWorktree":"Déplacer l’arbre de travail","moveDescription":"Pousser {branch} et l’extraire sur un autre agent.","destinationAgent":"Agent et copie de destination","selectDestinationAgent":"Sélectionner un agent de destination","searchDestinationAgents":"Rechercher des agents et des copies","noMoveDestinations":"Aucune copie de destination compatible n’est disponible.","destinationWorktree":"Arbre de travail de destination","createDestinationWorktree":"Créer un nouvel arbre de travail","dirtyDestinationWarning":"Cette destination contient des modifications non validées. Git les conservera sur la branche entrante lorsque possible.","deleteOldWorktree":"Supprimer l’ancien arbre après le déplacement","deleteOldWorktreeDisabled":"Les arbres de travail principaux ne peuvent pas être supprimés.","moveFailed":"Le déplacement de l’arbre de travail a échoué.","moveCompleted":"Arbre de travail déplacé.","moveCompletedWithWarning":"La destination est prête, mais le nettoyage de la source nécessite une intervention.","moveCancelled":"Déplacement annulé. La branche source reste poussée et l’arbre source a été conservé.","moveNeedsStash":"Les modifications de destination empêchent le changement de branche.","moveStashHelp":"Mettre de côté les modifications suivies et non suivies, continuer et conserver le stash pour une restauration manuelle.","moveProgress":"Déplacement de {branch}","stashAndContinue":"Mettre de côté et continuer","cancelMove":"Annuler le déplacement","cancel":"Annuler","moveStatus":{"PUSHING":"Envoi de la branche source…","CHECKING_OUT":"Extraction de la destination…","AWAITING_STASH":"En attente d’une décision de stash…","CLEANING_UP":"Suppression de l’ancien arbre…","SUCCEEDED":"Déplacement terminé.","SUCCEEDED_WITH_WARNING":"Déplacement terminé avec un avertissement de nettoyage.","FAILED":"Échec du déplacement.","CANCELLED":"Déplacement annulé."},"moveBlocked":{"agent":"L’agent source est hors ligne ou doit être mis à jour.","busy":"Une autre opération est active pour ce dépôt.","detached":"Une branche source nommée est requise.","dirty":"Validez ou abandonnez les modifications source avant le déplacement.","behind":"Récupérez les modifications d’origin avant le déplacement.","diverged":"Résolvez la divergence avec origin avant le déplacement.","unknown":"La branche ne peut pas être confirmée comme pouvant être poussée en toute sécurité.","destination":"Aucun agent de destination compatible n’est disponible."},"deleteWorktree":"Supprimer l’arbre de travail","deleteWorktreeDescription":"Supprimer définitivement {path} et sa branche locale.","deleteWorktreeWarning":"Toutes les modifications indexées, non indexées et non suivies de cet arbre seront définitivement perdues.","deleteRemoteBranch":"Supprimer également origin/{branch}","defaultRemoteProtected":"La branche par défaut du dépôt ne peut pas être supprimée d’origin.","stashAndRetry":"Stasher et réessayer","stashRetryHelp":"Git n’a pas pu changer de branche avec les modifications actuelles. Stashez les fichiers suivis et non suivis, réessayez et conservez le stash pour une restauration manuelle.","hidden":"Masqués ({count})","cards":"Vue en cartes","table":"Vue en tableau","loading":"Chargement des worktrees…","emptyTitle":"Aucun worktree trouvé","emptyDescription":"Ajoutez une base de code et connectez son agent pour découvrir ses worktrees.","online":"En ligne","offline":"Hors ligne","lastFetched":"Dernière récupération : {value}","neverFetched":"jamais","secondsAgo":"il y a {count} s","branch":"Branche","path":"Chemin","baseBranch":"Branche de base","editBase":"Modifier la branche de base","saveBase":"Enregistrer la branche de base","inheritBase":"Hériter de la valeur distante","baseUnavailable":"Branche distante par défaut indisponible","upstreamStatus":"État amont","baseStatus":"Actualité de la base","baseCurrent":"À jour · {count} en avance","baseBehind":"{count} derrière la base","yes":"Oui","notUpToDate":"Non · {count} commits derrière la base","ahead":"{count} en avance","behind":"{count} en retard","diverged":"Divergée","upToDate":"À jour","origin":"Origine","inSync":"Synchronisée","dirty":"Modifié","branchCommits":"Commits : {count}","unpublished":"Non publiée","detached":"HEAD détachée","unknown":"Inconnu","primary":"Principal","tags":"Étiquettes","manageTags":"Gérer les étiquettes","manageTagsDescription":"Créez des étiquettes globales réutilisables et choisissez leurs couleurs.","highlight":"Surlignage","clearHighlight":"Effacer le surlignage","customize":"Personnaliser le worktree","edit":"Modifier","editTag":"Modifier l’étiquette","createTag":"Créer une étiquette","saveTag":"Enregistrer l’étiquette","openCode":"Ouvrir dans VS Code","openInsiders":"Ouvrir dans VS Code Insiders","forcePush":"Forcer le push","sync":"Synchroniser","push":"Pousser","publish":"Publier","reset":"Réinitialiser","stashAll":"Remiser tout","stageAll":"Indexer tout","unstageAll":"Désindexer tout","confirmAction":"Confirmer","operationRunning":"Opération en cours…","loadingDetails":"Chargement des commits et modifications…","commits":"Validations ({count})","changes":"Modifications ({count})","noCommits":"Aucun commit ne diffère de la branche de base.","noChanges":"Le worktree est propre.","conflicted":"En conflit","staged":"Indexé","unstaged":"Non indexé","untracked":"Non suivi","truncated":"Seuls les premiers résultats pris en charge sont affichés.","status":"État","pullRequest":"Pull request","latestBuild":"Dernier build","openInGitHub":"Ouvrir dans GitHub","openDetails":"Ouvrir les détails","openWorktreeDetails":"Ouvrir les détails de {branch}","hiddenTitle":"Worktrees masqués","hiddenDescription":"Les worktrees absents sont conservés sept jours. Une redécouverte restaure leurs métadonnées.","noHidden":"Aucun worktree masqué.","purge":"Purger","purgeAll":"Tout purger","review":{"APPROVED":"Approuvée","CHANGES_REQUESTED":"Modifications demandées","REVIEW_REQUIRED":"Révision requise","NONE":"Aucune décision"},"comments":"Commentaires : {count}"},"worktreeDetail":{"loading":"Chargement des détails du worktree…","notFound":"Worktree introuvable","notFoundDescription":"Ce worktree est absent, masqué ou n’est plus disponible.","back":"Retour aux worktrees","linked":"Lié","refresh":"Actualiser","inspectionOffline":"L’agent est hors ligne. Les métadonnées enregistrées restent disponibles, mais les commits et modifications ne peuvent pas être inspectés.","inspectionUnavailable":"Ce worktree n’est pas disponible pour une inspection en direct.","inspectionBusy":"Les commits et modifications seront actualisés à la fin de l’opération en cours.","inspectionUnsupported":"Mettez l’agent à jour pour inspecter les commits et modifications.","inspectionFailed":"Impossible de charger les commits et modifications.","actions":"Actions","workingTree":"Arbre de travail","overview":"Vue d’ensemble","repository":"Dépôt","origin":"Origine","agent":"Agent","folder":"Dossier","head":"Commit HEAD","upstream":"Branche amont","originStatus":"État de l’origine","baseStatus":"Actualité de la base","lastChecked":"Dernière vérification","lastFetched":"Dernière récupération","management":"Gestion","branchChanges":"Modifications de la branche","noBranchChanges":"Aucune modification validée dans la branche","diffTruncated":"Certains fichiers modifiés ne sont pas affichés car le résultat a été tronqué.","codeCoverage":"Couverture du code","noCoverageReports":"Aucun rapport de couverture n’a été généré pour cet arbre de travail.","coverageBuild":"Compilation","coverageStatus":"État du rapport","coverageStatuses":{"PENDING":"En attente","READY":"Prêt","FAILED":"Échoué"},"overallCoverage":"Couverture globale","changedCoverage":"Couverture des modifications","generated":"Généré","viewReport":"Voir le rapport","loadingDiff":"Chargement des modifications…","binaryFileChanged":"Fichier binaire modifié","noTextChanges":"Aucune modification textuelle","diffTooLarge":"Le diff dépasse la limite d’affichage de 2 Mio","diffLimit":"Diff tronqué à 2 Mio.","sideBySide":"Côte à côte","overlap":"Superposer","imageTransparency":"Transparence de l’image","before":"Avant","after":"Après","noImageSide":"Aucune image de ce côté"},"tools":{"title":"Outils","description":"Parcourez, configurez et exécutez les outils MCP intégrés et externes.","addServer":"Ajouter un serveur MCP","search":"Rechercher des outils","searchPlaceholder":"Rechercher des noms, descriptions ou serveurs…","serversTitle":"Serveurs MCP externes","serversDescription":"Gérez les fournisseurs HTTP en flux et SSE historiques.","loadingServers":"Chargement des serveurs MCP…","noServers":"Aucun serveur MCP externe n’est configuré.","name":"Nom","url":"Adresse URL","transport":"Mode de transport","prefix":"Préfixe du nom d’outil","actions":"Commandes","http":"HTTP (flux)","sse":"SSE (historique)","editServer":"Modifier {name}","delete":"Supprimer","deleteServer":"Supprimer {name}","confirmDelete":"Supprimer le serveur MCP ?","confirmDeleteDescription":"Supprimer {name} et ses en-têtes personnalisés enregistrés ?","catalogTitle":"Catalogue d’outils","catalogDescription":"Dépliez un outil, saisissez ses paramètres et examinez la réponse complète.","refresh":"Actualiser les outils","loadingTools":"Chargement des outils…","noMatchingTools":"Aucun outil ne correspond à cette recherche.","addServerTitle":"Ajouter un serveur MCP externe","editServerTitle":"Modifier le serveur MCP externe","serverDialogDescription":"Les données de connexion sont utilisées uniquement par le client MCP côté serveur.","prefixHelp":"Le préfixe est appliqué tel quel à l’affichage et à l’appel des outils.","headers":"En-têtes personnalisés","headersHelp":"Les valeurs sont stockées localement et ne sont jamais renvoyées au navigateur.","addHeader":"Ajouter un en-tête","noHeaders":"Aucun en-tête personnalisé.","headerName":"Nom de l’en-tête","headerValue":"Valeur de l’en-tête","keepHeaderValue":"Laisser vide pour conserver la valeur enregistrée","removeHeader":"Retirer l’en-tête","saveServer":"Enregistrer le serveur","toolCount":"{count} outils","tool":"Outil","toolDescription":"Présentation","expandTool":"Déplier {name}","collapseTool":"Replier {name}","noDescription":"Aucune description n’a été fournie.","parameters":"Paramètres","noParameters":"Cet outil n’a aucun paramètre.","run":"Exécuter l’outil","running":"Exécution…","response":"Résultat","copyResponse":"Copier la réponse","copied":"Réponse copiée","copyFailed":"Impossible de copier la réponse.","noResponse":"Exécutez l’outil pour afficher sa réponse.","selectValue":"Choisir une valeur","unset":"Non défini","true":"Vrai","false":"Faux","jsonArguments":"Arguments (objet JSON)","invalidJson":"Saisissez un JSON valide.","invalidJsonObject":"Saisissez un objet JSON.","jsonObjectPlaceholder":"Saisissez des paires clé-valeur dans un objet JSON","jsonPlaceholder":"Saisissez du JSON, par exemple []"},"skills":{"title":"Compétences","description":"Gérez des paquets de compétences IA réutilisables dans la base, les clients, les agents et les dépôts.","manageGroups":"Gérer les groupes","settings":"Paramètres","addSkill":"Ajouter une compétence","syncAll":"Tout synchroniser","search":"Rechercher des compétences","searchPlaceholder":"Rechercher noms, descriptions, groupes, dépôts, agents ou chemins…","database":"Base de données","skillSource":"Source des compétences","databaseSkills":"Compétences de la base de données","databaseSkillsDescription":"Paquets de compétences canoniques stockés dans le plan de contrôle.","clientSkills":"Compétences du client","clientSkillsDescription":"Paquets de compétences détectés dans le client d’IA sélectionné.","loading":"Chargement des compétences…","name":"Nom","skillDescription":"Description","scope":"Portée","groups":"Groupes","files":"Fichiers","updated":"Mis à jour","global":"Global","project":"Projet","groupOnly":"Groupe uniquement","noSkills":"Aucune compétence ne correspond à la recherche.","agent":"Agent","location":"Emplacement","status":"État","tracked":"Suivi","inSync":"Synchronisé","toDatabase":"Vers la base","conflict":"Conflit","noClientSkills":"Aucune compétence trouvée pour ce client.","settingsTitle":"Paramètres des compétences","settingsDescription":"Choisissez les clients participants et la synchronisation automatique des groupes.","autoSync":"Synchroniser automatiquement les groupes projet","autoSyncHelp":"Maintient les groupes attribués dans tous les checkouts et worktrees.","enabledTools":"Clients IA activés","configured":"Configuré","configuredAgents":"{count} agents configurés","notDetected":"Non détecté","saveSettings":"Enregistrer les paramètres","skillNotFound":"Compétence introuvable.","loadingSkill":"Chargement de la compétence…","backToSkills":"Retour aux compétences","newSkill":"Nouvelle compétence","editorDescription":"Modifiez les métadonnées et tous les fichiers du paquet.","delete":"Supprimer","cancel":"Annuler","deleteSkillDescription":"Supprimer {name} de la base et ses copies gérées lors de la synchronisation ?","deleteSkill":"Supprimer la compétence ?","saveSkill":"Enregistrer la compétence","syncGlobally":"Synchroniser globalement","syncGloballyHelp":"Inclure cette compétence dans la synchronisation personnelle/globale.","noGroups":"Aucun groupe de compétences.","packageFiles":"Fichiers du paquet","addFiles":"Ajouter ou remplacer des fichiers","download":"Télécharger","removeFile":"Supprimer","rename":"Renommer","executable":"Exécutable","binaryFile":"Fichier binaire. Téléchargez-le ou remplacez-le pour le modifier.","selectFile":"Sélectionnez un fichier","duplicateFile":"Un fichier avec ce chemin existe déjà.","skillGroups":"Groupes de compétences","groupsDescription":"Regroupez les compétences projet et attribuez-les aux dépôts.","groupsTableDescription":"Groupes de compétences du projet, avec leurs compétences et dépôts associés.","addGroup":"Ajouter un groupe","loadingGroups":"Chargement des groupes…","skillsCount":"Compétences","repositoriesCount":"Dépôts","newGroup":"Nouveau groupe","newGroupDescription":"Créez le groupe, puis choisissez ses compétences et dépôts.","createGroup":"Créer le groupe","groupNotFound":"Groupe introuvable.","loadingGroup":"Chargement du groupe…","backToGroups":"Retour aux groupes","groupSettingsDescription":"Gérez les membres, les dépôts et le déploiement.","deleteGroupDescription":"Supprimer {name} et les copies inutiles aux autres groupes ?","deleteGroup":"Supprimer le groupe ?","syncGroup":"Synchroniser le groupe","saveGroup":"Enregistrer le groupe","groupSkills":"Compétences du groupe","searchSkills":"Rechercher des compétences…","groupRepositories":"Dépôts utilisant ce groupe","searchRepositories":"Rechercher des dépôts…","syncRunNotFound":"Synchronisation introuvable.","loadingSync":"Chargement de la synchronisation…","syncTitle":"Synchronisation des compétences","syncGroupName":"Synchronisation du groupe {name} dans ses dépôts.","syncAllDescription":"Rapprochement des compétences de base, personnelles et projet.","applySync":"Appliquer la synchronisation","skipPendingClients":"Ignorer les clients en attente","unknownAgent":"Agent inconnu","syncAgents":"État de synchronisation des agents","syncAgentsDescription":"État de connexion et de synchronisation de chaque agent participant.","connection":"Connexion","operation":"Opération","syncStatus":"État de synchronisation","syncChanges":"Modifications proposées","syncChangesDescription":"Vérifiez les modifications et résolvez les conflits avant d’appliquer cette synchronisation.","change":"Modification","resolution":"Résolution","newSharedLocation":"Nouvel emplacement partagé","chooseGroup":"Choisir un groupe","useDatabase":"Utiliser la base","useTarget":"Utiliser la copie client","deleteClientCopy":"Supprimer la copie client","editManually":"Modifier manuellement","compareAndResolve":"Comparer et résoudre","skip":"Ignorer","scanningAgents":"Analyse des clients activés…","noSyncChanges":"Aucune modification requise.","manualResolution":"Résolution manuelle","manualResolutionDescription":"Comparez les paquets complets et modifiez le résultat canonique, y compris les fichiers texte, binaires et exécutables.","startFromDatabase":"Partir de la base de données","startFromTarget":"Partir de la copie du client","databaseVersion":"Version de la base de données","targetVersion":"Version du client","resultVersion":"Résultat canonique","binaryPreview":"Fichier binaire ; comparez la taille et les métadonnées d’exécution.","missingFile":"Cette version ne contient pas le fichier sélectionné.","filePath":"Chemin du fichier","missingResultFile":"Ajoutez ce fichier au résultat ou sélectionnez un autre fichier du paquet.","useManualVersion":"Utiliser la version modifiée"},"builds":{"title":"Builds","description":"Configurez, lancez, inspectez, déployez et exportez les builds iOS des bases de code et worktrees.","build":"Builder","history":"Historique","buildScripts":"Scripts de build","status":"État","destination":"Destination","duration":"Durée","durationValue":"Durée {duration}","actionsLabel":"Actions","selectBuilds":"Sélectionner les builds","selectBuild":"Sélectionner le build {id}","selectDate":"Sélectionner tous les builds du {date}","deleteSelected":"Supprimer la sélection ({count})","deleteBuilds":"Supprimer les builds","deleteBuildsTitle":"Supprimer {count, plural, one {le build} other {les # builds}} ?","deleteBuildsDescription":"Les enregistrements et dossiers de build sélectionnés seront définitivement supprimés.","filterStatus":"Filtrer les builds par état","allStatuses":"Tous les états","loading":"Chargement des builds…","emptyTitle":"Aucun build","emptyDescription":"Lancez un build depuis un worktree pour créer le premier enregistrement immuable.","durationSeconds":"{count} secondes","artifactCount":"{count, plural, one {# artefact} other {# artefacts}}","viewBuild":"Afficher le build","loadMore":"Charger plus","newScript":"Nouveau script de build","noScripts":"Aucun script de build","noScriptsDescription":"Créez des hooks JavaScript réutilisables, puis autorisez-les pour certains dépôts.","defaultEnabled":"Activé par défaut","preBuild":"Avant le build","postBuild":"Après le build","timeoutSeconds":"Délai de {count} secondes","edit":"Modifier","deleteScript":"Supprimer le script de build","editScript":"Modifier le script de build","scriptDescription":"Les hooks ESM Node.js approuvés s’exécutent à la racine du worktree sélectionné avec un environnement minimal.","name":"Nom","preBuildScript":"JavaScript avant le build","postBuildScript":"JavaScript après le build","preBuildScriptHelp":"Exportez par défaut une fonction qui reçoit buildId, branch, destination, action et l’instantané des URL de télémétrie.","postBuildScriptHelp":"Exportez par défaut une fonction qui reçoit aussi buildFolder, failed, cancelled, errorCode, error et le même instantané des URL de télémétrie.","timeout":"Délai en secondes","failureBehavior":"Comportement en cas d’échec","enabledByDefault":"Présélectionner ce script pour les builds","save":"Enregistrer","cancel":"Annuler","startBuild":"Lancer le build","startBuildDescription":"Choisissez une configuration enregistrée et une destination. La commande s’exécute à la racine de ce worktree.","configuration":"Configuration","configurationInvalid":"La source, le schéma ou la configuration enregistrés ne sont pas disponibles dans ce worktree.","noConfigurations":"Créez une configuration de build iOS valide dans les réglages du dépôt avant de lancer un build.","reparse":"Analyser à nouveau","action":"Action","destinationType":"Type de destination","simulator":"Simulateur","physicalDevice":"Appareil physique","device":"Appareil","selectDevice":"Sélectionner un appareil","anySimulator":"N’importe quel simulateur iOS","anyPhysicalDevice":"N’importe quel appareil iOS physique","scripts":"Scripts de build","advancedSettings":"Réglages avancés","priorBuildForTesting":"Build précédent pour les tests","selectPriorBuildForTesting":"Sélectionner un build pour les tests compatible","noPriorBuildForTesting":"Exécutez d’abord un build pour les tests réussi avec cette configuration.","priorBuildSummary":"utilise le build pour les tests {id}","developmentTeam":"Équipe de développement","testPlan":"Plan de test","schemeDefaultTestPlan":"Valeur par défaut du schéma","packageResolution":"Résolution des paquets","disablePackageRepositoryCache":"Désactiver le cache du dépôt de paquets","signingStyle":"Style de signature","codeSignIdentity":"Identité de signature du code","provisioningProfileSpecifier":"Profil de provisionnement","productBundleIdentifier":"Identifiant du paquet produit","codeCoverage":"Activer la couverture du code","parseTestResults":"Analyser les résultats des tests après la compilation","allowProvisioningDeviceRegistration":"Autoriser l’enregistrement des appareils de provisionnement","parallelTesting":"Tests en parallèle","parallelTestingWorkers":"Workers de tests en parallèle","onlyTesting":"Tester uniquement","skipTesting":"Ignorer les tests","priorTestProductsPath":"Chemin des produits de test précédents","priorXctestrunPath":"Chemin xctestrun précédent","settingsEnabled":"Activé","settingsDisabled":"Désactivé","advancedSettingsNotCaptured":"Les réglages avancés n’ont pas été enregistrés pour ce build.","generateWorktreeCoverage":"Générer la couverture du code","startWorktreeCoverage":"Exécuter la couverture de l’arbre de travail","startWorktreeCoverageDescription":"Exécute les tests avec couverture et mesure les lignes exécutables modifiées dans la branche et l’arbre de travail.","startBuildFailed":"La compilation n’a pas pu être lancée.","parseTestResultsAction":"Analyser les résultats des tests","retryParseTestResults":"Réessayer l’analyse des tests","generateCoverageReport":"Générer le rapport de couverture","retryCoverageReport":"Réessayer le rapport de couverture","viewCoverageReport":"Voir le rapport de couverture","testResults":"Résultats des tests","testResultsFailed":"Les résultats des tests n’ont pas pu être analysés.","testTotal":"{count} tests","testPassed":"{count} réussis","testFailed":"{count} échoués","testSkipped":"{count} ignorés","testResultFilters":"Filtres de résultats des tests","testFilterAll":"Tous ({count})","testFilterPassed":"Réussis ({count})","testFilterFailed":"Échoués ({count})","testFilterSkipped":"Ignorés ({count})","testsWithoutSuite":"Tests sans suite","testsWithoutFile":"Tests sans fichier","expandTestSuite":"Développer la suite de tests {suite}","collapseTestSuite":"Réduire la suite de tests {suite}","expandTestFile":"Développer le fichier de tests {file}","collapseTestFile":"Réduire le fichier de tests {file}","testSuitePassed":"{passed} sur {total} réussis ({percent})","testStatus":"Résultat","testName":"Test","testSuite":"Suite de tests","testBundle":"Paquet","testDuration":"Durée","coverageReport":"Rapport de couverture du code","loadingCoverageReport":"Chargement du rapport de couverture…","coverageReportNotFound":"Rapport de couverture introuvable","coverageReportNotFoundDescription":"Générez d’abord un rapport de couverture depuis la page de détails de la compilation.","backToBuild":"Retour à la compilation","overallCoverage":"Couverture globale","changedCoverage":"Couverture des modifications","coveredLines":"Lignes couvertes","executableLines":"Lignes exécutables","uncoveredLines":"Lignes non couvertes","changedFilesCoverage":"Couverture des fichiers modifiés","allCoverageFiles":"Tous les fichiers de couverture","expandCoverageFiles":"Développer tous les fichiers de couverture","collapseCoverageFiles":"Réduire tous les fichiers de couverture","searchCoverageFiles":"Rechercher des cibles, fichiers ou chemins","searchChangedCoverageFiles":"Rechercher des fichiers modifiés ou des chemins","sortCoverageFiles":"Trier les fichiers de couverture par {column}","coverageTarget":"Cible","coverageFile":"Fichier","coverage":"Couverture","changeType":"Modification","allowProvisioningUpdates":"Autoriser les mises à jour du provisionnement","buildSettingOverrides":"Remplacements de réglages de build autorisés (JSON)","commandPreview":"Aperçu de la commande","overridesInvalid":"Les remplacements de réglages de build doivent former un objet JSON.","advancedJsonInvalid":"Les réglages avancés doivent être au format JSON valide.","buildNotFound":"Build introuvable","buildNotFoundDescription":"Cet enregistrement de build n’existe pas ou n’est plus disponible.","backToBuilds":"Retour aux builds","buildId":"ID du build","deleteBuild":"Supprimer le build","deleteBuildTitle":"Supprimer ce build ?","deleteBuildDescription":"L’enregistrement et son dossier de build seront définitivement supprimés.","downloadArtifact":"Télécharger","downloadIpa":"Télécharger l’IPA","installOnDevice":"Installer sur l’appareil","installPreparing":"Préparation du téléchargement…","installRequiresHttps":"L’installation sans fil nécessite une adresse HTTPS publique. Ouvrez cette page en HTTPS ou définissez PUBLIC_BASE_URL.","installNotSupportedForAppStore":"Les builds App Store Connect ne peuvent pas être installés sans fil. Exportez plutôt avec Debugging, Release Testing ou Enterprise.","installMissingBundleIdentifier":"L’identifiant du bundle n’est pas disponible. Exportez à nouveau l’archive pour activer l’installation.","installOpenOnDevice":"Ouvrez cette page sur un iPhone ou un iPad pour installer.","installFailed":"Impossible de démarrer l’installation.","copyInstallLink":"Copier le lien d’installation","installLinkCopied":"Lien d’installation copié","ipaBundleIdentifier":"Identifiant du bundle","ipaBundleVersion":"Version","cancelBuild":"Annuler le build","rebuild":"Reconstruire","outOfDate":"Obsolète","configureBuilds":"Accédez aux réglages du dépôt pour configurer les builds","selectedDevices":"{count} appareils","selectRunDevices":"Appareils d’exécution","noCompatibleDevices":"Aucune destination connectée compatible n’est disponible.","run":"Exécuter","exportArchive":"Exporter l’archive","logs":"Journaux","expandLogs":"Développer les journaux","collapseLogs":"Réduire les journaux","noLogs":"Aucun événement de journal n’a été signalé.","scrollLogsToTop":"Aller au début des journaux","scrollLogsToBottom":"Aller à la fin des journaux","commandSummary":"Résumé de la commande","copyCommand":"Copier le résumé de la commande","commandCopied":"Résumé de la commande copié","copyFailed":"Impossible de copier dans le presse-papiers.","noScriptExecutions":"Aucun script de build n’a été sélectionné.","overview":"Vue d’ensemble","scheme":"Schéma","head":"Révision","startedAt":"Début","finishedAt":"Fin","artifactDirectory":"Dossier du build","artifacts":"Artefacts","noArtifacts":"Aucun artefact n’a été capturé.","runsAndExports":"Exécutions et exports","archiveExport":"Export de l’archive","noRunsOrExports":"Ce build n’a pas encore été exécuté ni exporté.","exportArchiveDescription":"Exportez localement le fichier .xcarchive capturé sans le téléverser.","distributionMethod":"Méthode de distribution","exportMethod":{"DEBUGGING":"Débogage","RELEASE_TESTING":"Test de version","ENTERPRISE":"Entreprise","APP_STORE_CONNECT":"App Store Connect"},"selectTeam":"Sélectionnez une équipe","noTeams":"Aucune équipe de développement trouvée sur l’agent de compilation.","signingCertificate":"Certificat de signature","certificateAutomatic":"Choisi automatiquement","certificateMayNotMatch":"Peut ne pas correspondre aux profils sélectionnés","provisioningProfiles":"Profils de provisionnement","parseProvisioningProfiles":"Analyser le projet","reparseProvisioningProfiles":"Analyser à nouveau","parseProvisioningProfilesHelp":"Lisez les cibles signables du schéma sélectionné et associez les profils installés.","parseProvisioningProfilesEmpty":"Analysez le projet pour remplacer le JSON par un sélecteur de profil pour chaque app et extension.","noSigningRequirements":"Aucune cible d’app ou d’extension à signer n’a été trouvée.","selectSigningSourceFirst":"Sélectionnez d’abord une source Xcode, un schéma et une configuration.","selectProfile":"Sélectionnez un profil","profileMayNotMatch":"Peut ne pas correspondre à cet identifiant","manualBundleIdentifier":"Identifiant de bundle à ajouter","manualBundleIdentifierPlaceholder":"com.exemple.app.extension","manualBundleIdentifierHelp":"Ajoutez tout identifiant non détecté, puis choisissez parmi tous les profils disponibles.","addBundleIdentifier":"Ajouter l’identifiant","removeBundleIdentifier":"Supprimer {bundleId}","showAllProfiles":"Tout afficher","showMatching":"Afficher les correspondances","noMatchingProfiles":"Aucun profil installé ne correspond à ce bundle pour la méthode sélectionnée.","noArchiveBundles":"Aucun bundle signable trouvé dans l’archive.","profileExpired":"expiré","signingOptionsFailed":"Impossible de lire les options de signature depuis l’agent.","automatic":"Automatique","manual":"Manuel","autoExport":"Exporter automatiquement les archives réussies","exportWhenComplete":"Exporter à la fin","uploadSymbols":"Téléverser les symboles","manageBuildNumber":"Gérer la version et le numéro de build","internalTestFlightOnly":"TestFlight interne uniquement","stripSwiftSymbols":"Retirer les symboles Swift","thinning":"Allègement de l’app","iCloudEnvironment":"Environnement du conteneur iCloud","distributionBundleIdentifier":"Identifiant de bundle de distribution","localExportOnly":"Les exports sont enregistrés localement en IPA et ne sont jamais envoyés à App Store Connect.","signingAssetCoverageWarning":"Cette identité est installée sur {installed} des {total} agents compatibles. Les builds affectés ailleurs peuvent échouer à l’export.","iosApp":"App iOS","parseCheckout":"Copie utilisée pour l’analyse","parseCheckoutDescription":"Les configurations enregistrées sont partagées dans tout le dépôt. La découverte, la validation et l’état d’analyse utilisent la copie d’agent sélectionnée.","checkoutUnavailable":"indisponible","addIosProject":"Ajouter un projet d’app iOS","addIosProjectDescription":"Activez des configurations de build Xcode réutilisables pour chaque checkout et worktree de ce dépôt.","sharedProjectDescription":"Les définitions de projet et les scripts autorisés sont partagés par le dépôt. L’état d’analyse ci-dessous provient de ce checkout d’agent.","buildConfigurations":"Configurations de build","newConfiguration":"Nouvelle configuration","lastParsed":"Analysé : {value}","neverParsed":"Jamais analysé","stale":"métadonnées obsolètes","savedValueUnavailable":"valeur enregistrée indisponible","deleteConfiguration":"Supprimer la configuration de build","allowedScripts":"Scripts de build autorisés","createScriptsOnBuildsPage":"Créez des scripts réutilisables sur la page Builds, puis revenez ici pour les autoriser.","editConfiguration":"Modifier la configuration de build","configurationDescription":"Sélectionnez une source Xcode relative au dépôt et enregistrez son schéma, sa configuration, son action et ses réglages avancés facultatifs.","icon":"Icône","configurationIcons":{"none":"Aucune icône","apple":"Plateforme Apple","app-window":"Fenêtre d’app","archive":"Archive","beaker":"Expérience","box":"Boîte","bug":"Bogue","code":"Code","gauge":"Performances","hammer":"Compilation","layers":"Calques","package":"Paquet","play":"Exécution","rocket":"Publication","shield":"Sécurité","smartphone":"App mobile","sparkles":"Fonctionnalité","terminal":"Ligne de commande","test-tube":"Tests","wrench":"Outils"},"source":"Source Xcode","selectSource":"Sélectionner un projet, workspace ou Package.swift à la racine","loadingSources":"Recherche des sources…","defaultAction":"Action par défaut","advancedJson":"Réglages avancés normalisés (JSON)","statuses":{"QUEUED":"En attente","PREPARING":"Préparation","RUNNING":"En cours","SUCCEEDED":"Réussi","FAILED":"Échoué","CANCELLED":"Annulé"},"parseStatuses":{"UNPARSED":"Non analysé","PARSING":"Analyse en cours","VALID":"Valide","INVALID":"Non valide","ERROR":"Erreur"},"actions":{"BUILD":"Builder","TEST":"Tester","ANALYZE":"Analyser","ARCHIVE":"Archiver","BUILD_FOR_TESTING":"Builder pour les tests","TEST_WITHOUT_BUILDING":"Tester sans builder"},"failureBehaviors":{"FAIL_BUILD":"Faire échouer le build","CONTINUE":"Continuer avec un avertissement"}},"devices":{"title":"Appareils","description":"Enrôlez des iPhone et iPad, consultez leur historique de connexion et enregistrez les appareils approuvés auprès d’Apple.","export":"Exporter le TSV Apple","addDevice":"Ajouter un appareil","filterStatus":"Filtrer les appareils par état","allStatuses":"Tous les états","sort":"Trier les appareils","sortOption":{"NEWEST":"Enrôlement le plus récent","NAME":"Nom de l’appareil","LAST_SEEN":"Dernière activité"},"loading":"Chargement des appareils…","emptyTitle":"Aucun appareil enrôlé","emptyDescription":"Créez un profil d’enrôlement sur un iPhone ou un iPad pour recueillir son identifiant.","device":"Appareil","statusLabel":"État","hardware":"Produit","lastIp":"Dernière IP","enrolled":"Enrôlé","registered":"Enregistrement Apple","lastSeen":"Dernière activité","viewDevice":"Voir {name}","unavailable":"Indisponible","status":{"PENDING":"En attente","REGISTERING":"Enregistrement en cours","REGISTERED":"Enregistré","REGISTRATION_FAILED":"Échec de l’enregistrement","REJECTED":"Refusé"},"back":"Retour aux appareils","enrollTitle":"Enrôler un appareil iOS","enrollDescription":"Installez un profil signé temporaire pour transmettre en toute sécurité l’identifiant de développement de cet appareil.","httpsRequired":"L’enrôlement est désactivé car cette adresse n’utilise pas un HTTPS public. Utilisez un proxy inverse HTTPS publiquement approuvé ou configurez PUBLIC_BASE_URL.","collectedTitle":"Informations recueillies","collectUdid":"L’UDID de l’appareil utilisé pour l’enregistrement de développement Apple.","collectProduct":"Le modèle de produit Apple communiqué par iOS.","collectVersion":"La version d’iOS ou d’iPadOS installée.","collectIp":"L’adresse IP observée lors du téléchargement et de la réponse du profil, avec l’en-tête proxy qui l’a fournie.","deviceLabel":"Libellé de l’appareil","deviceLabelPlaceholder":"Par exemple, iPhone","deviceLabelHelp":"Choisissez un libellé reconnaissable. Le service de profils Apple ne peut pas lire le nom attribué dans Réglages.","consent":"J’accepte la collecte et la conservation de l’identifiant, du produit, de la version logicielle et des adresses IP observées à des fins de gestion de l’appareil.","downloadProfile":"Télécharger le profil d’enrôlement","notFound":"Cet appareil est introuvable.","rebuildWarning":"Cet appareil est enregistré auprès d’Apple. Les IPA existants ne l’autorisent pas automatiquement ; créez un nouveau profil d’approvisionnement et exportez un nouvel IPA.","openBuilds":"Ouvrir les Builds","configureAppleFirst":"Configurez et vérifiez les identifiants App Store Connect avant d’enregistrer cet appareil.","openSettings":"Ouvrir les réglages","generalInformation":"Informations générales","deviceModel":"Modèle de l’appareil","saveName":"Enregistrer le libellé","udid":"UDID de l’appareil","hideUdid":"Masquer l’UDID de l’appareil","revealUdid":"Afficher l’UDID de l’appareil","copyUdid":"Copier l’UDID de l’appareil","osVersion":"Version logicielle","appleDeviceId":"ID de ressource Apple","retryRegistration":"Réessayer l’enregistrement","registerWithApple":"Enregistrer auprès d’Apple","reject":"Refuser","delete":"Supprimer","ipHistory":"Historique IP","ipAddress":"Adresse IP","source":"Étape d’enrôlement","forwardedBy":"En-tête d’adresse","observed":"Observée","noIpHistory":"Aucune observation IP n’est conservée pour cet appareil.","ipSource":{"PROFILE_DOWNLOAD":"Téléchargement du profil","PROFILE_RESPONSE":"Réponse du profil"},"ipHeaderSource":{"CLOUDFLARE":"Cloudflare (en-tête CF-Connecting-IP)","FORWARDED":"Proxy (en-tête X-Forwarded-For)","REAL_IP":"Proxy d’origine (en-tête X-Real-IP)"},"enrollmentHistory":"Historique des enrôlements","noEnrollmentHistory":"Aucune tentative d’enrôlement n’est conservée pour cet appareil.","firmwareTitle":"Firmware iOS","firmwareDescription":"Versions du firmware et état actuel de signature fournis par IPSW.me.","firmwareLoading":"Chargement des informations du firmware…","firmwareLoadFailed":"Impossible de charger les informations du firmware : {error}","signingStatus":"État de signature","firmwareVersion":"Version","releaseDate":"Date de sortie","fileSize":"Taille","firmwareDownload":"Téléchargement","signed":"Signé","unsigned":"Non signé","downloadFirmware":"Télécharger","copyFirmwareUrl":"Copier l’URL de téléchargement pour iOS {version}","noFirmware":"Aucune information de firmware n’est disponible pour cet appareil.","created":"Créé","completed":"Terminé","failure":"Échec","enrollmentStatus":{"ISSUED":"Émis","DOWNLOADED":"Téléchargé","COMPLETED":"Terminé","EXPIRED":"Expiré","FAILED":"Échoué"},"registerTitle":"Enregistrer cet appareil auprès d’Apple ?","registerDescription":"L’appareil sera rapproché par UDID puis ajouté à votre compte Apple Developer si nécessaire. Cette action ne reconstruit pas d’IPA.","confirmRegister":"Enregistrer l’appareil","rejectTitle":"Refuser cet appareil ?","rejectDescription":"L’appareil reste dans l’historique local et ne peut pas être enregistré. Supprimez-le localement puis enrôlez-le à nouveau pour le reconsidérer.","confirmReject":"Refuser l’appareil","deleteTitle":"Supprimer cet appareil ?","deleteDescription":"Cette action supprime l’appareil local, les tentatives d’enrôlement et l’historique IP. L’enregistrement annuel d’Apple n’est pas supprimé.","confirmDelete":"Supprimer l’appareil"},"iosDeviceSettings":{"title":"Enrôlement des appareils iOS","description":"Configurez des profils d’enrôlement signés et l’enregistrement facultatif des appareils auprès d’Apple.","loading":"Chargement des réglages des appareils iOS…","unavailable":"Indisponible","profileTitle":"Profil d’enrôlement","profileDescription":"Ces valeurs identifient le profil temporaire affiché dans les Réglages iOS.","signerReady":"Signataire prêt","signerNotGenerated":"Signataire non généré","organizationName":"Nom de l’organisation","profileIdentifier":"Identifiant du profil","signerCreated":"Créé le {date}","signerExpires":"Expire le {date}","unverifiedWarning":"Le certificat généré est autosigné ; iOS affiche donc le profil comme Non vérifié. Contrôlez l’organisation affichée avant de l’installer.","regenerateSigner":"Régénérer le signataire","regenerateTitle":"Régénérer le signataire du profil ?","regenerateDescription":"Les nouveaux profils utiliseront une autre clé privée et un autre certificat. Les profils déjà téléchargés pourront encore répondre jusqu’à l’expiration de leur jeton.","saveProfile":"Enregistrer le profil","profileSaved":"Les réglages du profil d’enrôlement ont été enregistrés.","signerRegenerated":"Un nouveau signataire de profil a été généré.","appleTitle":"API Appareils d’App Store Connect","appleDescription":"Utilisez une clé API ayant accès aux certificats, identifiants et profils. La clé privée reste sur le serveur et n’est jamais renvoyée au navigateur.","verified":"Vérifié","notVerified":"Non vérifié","issuerId":"Identifiant d’émetteur","keyId":"Identifiant de clé","privateKey":"Clé privée .p8 App Store Connect","p8DropZone":"Zone de dépôt de la clé privée App Store Connect","p8DropHint":"Collez la clé ci-dessous, déposez un fichier .p8 ici ou choisissez un fichier.","chooseP8":"Choisir un fichier .p8 App Store Connect","privateKeyPlaceholder":"Collez ici la clé privée PKCS#8","privateKeyConfiguredPlaceholder":"Une clé privée est conservée. Laissez vide pour la garder.","privateKeyHelp":"Seules les clés ES256 PKCS#8 téléchargées depuis App Store Connect sont acceptées.","privateKeyKeepHelp":"Laissez ce champ vide pour garder la clé existante, ou fournissez une nouvelle clé .p8 pour la remplacer.","lastVerified":"Identifiants vérifiés le {date}","lastTestFailed":"Échec du test des identifiants le {date}","clear":"Effacer les identifiants","clearTitle":"Effacer les identifiants App Store Connect ?","clearDescription":"L’enregistrement des appareils sera désactivé jusqu’à l’enregistrement et la vérification d’une autre clé API.","retest":"Tester à nouveau","saveAndVerify":"Enregistrer et vérifier","appleSaved":"Les identifiants App Store Connect ont été enregistrés et vérifiés.","appleTestSucceeded":"Les identifiants App Store Connect ont été vérifiés avec succès.","appleCleared":"Les identifiants App Store Connect ont été effacés.","p8Invalid":"Choisissez un fichier .p8 valide contenant une clé privée PKCS#8.","p8ReadError":"Impossible de lire le fichier .p8 sélectionné.","p8Loaded":"{filename} a été chargé. Enregistrez et vérifiez pour utiliser cette clé."},"telemetry":{"consoleTitle":"Journaux de console","consoleDescription":"Consultez les sorties de console recueillies auprès des builds et des appareils.","analyticsTitle":"Événements analytiques","analyticsDescription":"Consultez les événements analytiques du produit et leurs paramètres dès leur arrivée.","unifiedTitle":"Vue unifiée","unifiedDescription":"Consultez les journaux et événements analytiques dans une seule chronologie en direct.","separator":"Séparateur","deleteSeparator":"Supprimer le séparateur {name}","settings":"Réglages","refresh":"Actualiser","search":"Rechercher dans la télémétrie","searchPlaceholder":"Rechercher du texte, un motif glob ou une expression régulière","searchMode":"Mode de recherche","searchModes":{"text":"Texte","glob":"Motif glob","regex":"Expression régulière"},"caseSensitive":"Respecter la casse","filters":"Filtres","columnsAction":"Colonnes","removeColumn":"Retirer la colonne {column}","export":"Exporter","edit":"Modifier","done":"Terminé","on":"activé","off":"désactivé","allCollection":"Tout","consoleCollection":"Journaux","analyticsCollection":"Analytique","count":"{matching} sur {total}","allResultsSelected":"Toutes les lignes correspondantes sont sélectionnées","selectedCount":"{count} sélectionnées","clearSelected":"Effacer la sélection","clearAll":"Tout effacer","confirmClearRecords":"Effacer les enregistrements","confirmClearWithSeparators":"Effacer avec les séparateurs","clearBeforeSeparator":"Effacer avant le dernier séparateur","confirmClearBefore":"Confirmer l’effacement avant le séparateur","cancel":"Annuler","selectAll":"Sélectionner toutes les lignes correspondantes","expand":"Développer la ligne","collapse":"Réduire la ligne","selectRow":"Sélectionner la ligne","selectDay":"Sélectionner toutes les lignes du {day}","selectSeparator":"Sélectionner les lignes au-dessus de {name}","loading":"Chargement de la télémétrie…","empty":"Aucune télémétrie correspondante.","loadMore":"Charger davantage","highlight":"Surligner","clearHighlight":"Retirer le surlignage","advancedFilters":"Filtres avancés","advancedFiltersDescription":"Combinez des conditions réutilisables entre les champs standard et les chemins de paramètres.","match":"Correspondance","allConditions":"Toutes les conditions","anyCondition":"N’importe quelle condition","filterField":"Champ de filtre","operator":"Opérateur de comparaison","removeCondition":"Retirer la condition","filterValue":"Valeur","appliesTo":"S’applique à","console":"Journaux","analytics":"Analytique","addCondition":"Ajouter une condition","savedFilters":"Filtres enregistrés","noSavedFilters":"Aucun filtre enregistré.","load":"Charger","delete":"Supprimer","filterName":"Nom du filtre","saveFilter":"Enregistrer le filtre","updateFilter":"Mettre à jour le filtre","editSavedFilter":"Modifier {name}","applyFilters":"Appliquer les filtres","clearFilters":"Effacer les filtres","manageColumns":"Gérer les colonnes","manageColumnsDescription":"Choisissez, ordonnez, réinitialisez et enregistrez les colonnes utilisées par cette vue.","availableColumns":"Colonnes disponibles","resetColumns":"Réinitialiser les colonnes","columnPresets":"Préréglages de colonnes","noColumnPresets":"Aucun préréglage de colonnes.","default":"Par défaut","setDefault":"Définir par défaut","presetName":"Nom du préréglage","setAsDefault":"Définir par défaut","savePreset":"Enregistrer le préréglage","updatePreset":"Mettre à jour le préréglage","editPreset":"Modifier {name}","saveAs":"Enregistrer sous","applyColumns":"Appliquer les colonnes","telemetrySettings":"Réglages d’observabilité","apiHelp":"Aide sur l’API","consoleApiHelpTitle":"Envoyer des journaux de console","analyticsApiHelpTitle":"Envoyer des événements analytiques","apiHelpDescription":"Consultez le contrat d’ingestion REST et copiez une référence Markdown prête à l’emploi.","copyMarkdownDocs":"Copier la documentation Markdown","markdownDocsCopied":"Markdown copié","settingsDescription":"Configurez les origines d’ingestion détectées et remplacées, communes à toutes les vues.","localBaseUrl":"URL de base locale","remoteBaseUrl":"URL de base distante","override":"Remplacement","detected":"Détectée : {value}","effective":"Effective : {value}","localConsoleEndpoint":"Point d’entrée local des journaux","localAnalyticsEndpoint":"Point d’entrée local de l’analytique","remoteConsoleEndpoint":"Point d’entrée distant des journaux","remoteAnalyticsEndpoint":"Point d’entrée distant de l’analytique","copyEndpoint":"Copier {label}","clearValues":"Effacer les valeurs","noValues":"Aucune valeur","copyColumnValue":"Copier {label} : valeur","copyValue":"Copier la valeur","filterByValue":"Filtrer par valeur","copyJsonDictionary":"Copier le dictionnaire JSON","copyPathValues":"Copier les paires chemin-valeur","copyParameterValue":"Copier {key} : valeur","addColumn":"Ajouter la colonne {key}","filterParameter":"Filtrer par {key}","saveSettings":"Enregistrer les réglages","addSeparator":"Ajouter un séparateur","addSeparatorDescription":"Insérez une limite partagée dans la chronologie. Le nom est facultatif.","optionalName":"Nom facultatif","exportTitle":"Exporter la télémétrie","exportSelectedDescription":"Exportez les {count} lignes sélectionnées.","exportAllDescription":"Exportez toutes les lignes correspondant à la recherche et aux filtres actuels.","format":"Format du fichier","exportFields":"Champs","exportFailed":"L’exportation a échoué. Réessayez.","columns":{"time":"Heure","source":"Provenance","level":"Niveau","category":"Catégorie","message":"Contenu","buildId":"ID du build","sessionId":"ID de session","deviceIp":"IP de l’appareil","receivedAt":"Reçu","attributes":"Attributs","kind":"Type","levelKind":"Niveau / Type","name":"Nom de l’événement","screenName":"Nom de l’écran","parameters":"Paramètres","defaultParameters":"Paramètres par défaut","additionalParameters":"Paramètres supplémentaires","detail":"Détails","attribute":"Attribut","defaultParameter":"Valeur par défaut","additionalParameter":"Valeur supplémentaire"},"operators":{"CONTAINS":"contient","DOES_NOT_CONTAIN":"ne contient pas","IS":"est égal à","IS_NOT":"n’est pas égal à","MATCHES_GLOB":"correspond au motif glob","MATCHES_REGEX":"correspond à l’expression régulière","NO_REGEX_MATCH":"ne correspond pas à l’expression régulière","IS_EMPTY":"est vide","IS_NOT_EMPTY":"n’est pas vide"}},"provisioningProfiles":{"title":"Profils de provisionnement","description":"Inspectez, synchronisez, importez et supprimez les ressources de signature Apple sur les agents et le portail Apple Developer.","refresh":"Actualiser l’inventaire","refreshProgress":"Actualisation de l’inventaire : {complete} sur {total} agents terminés.","noRefreshAgents":"Aucun agent compatible avec la signature n’est disponible pour l’actualisation.","refreshStatus":{"QUEUED":"En attente","RUNNING":"Analyse","SUCCEEDED":"Terminé","FAILED":"Échec","CANCELLED":"Annulé","TIMED_OUT":"Délai dépassé"},"agents":"Agents cibles","agentsDescription":"Les anciens agents restent visibles, mais doivent être mis à jour pour recevoir des opérations de signature.","unsupported":"Non pris en charge","uploadProfile":"Installer un profil","uploadProfileDescription":"Installe un fichier .mobileprovision sur tous les agents sélectionnés.","chooseMobileprovision":"Choisir .mobileprovision","importIdentity":"Importer une identité de signature","importIdentityDescription":"Transmet un .p12 chiffré via des autorisations à usage unique et l’importe pour codesign.","passphrase":"Mot de passe du .p12","chooseP12":"Choisir le .p12 chiffré","localProfiles":"Profils locaux","localCertificates":"Identités locales","applePortal":"Portail Apple","profilesDescription":"Les profils sont regroupés entre agents par UUID et empreinte de contenu.","deleteExpired":"Supprimer les expirés","deleteExpiredDescription":"Supprimer tous les profils locaux expirés des agents sélectionnés ?","name":"Nom","bundleId":"ID du bundle","type":"Type","team":"Équipe","devices":"Appareils","expires":"Expiration","installedAgents":"Agents installés","expired":"Expiré","syncMissing":"Synchroniser les manquants","viewProfile":"Voir les détails de {name}","download":"Télécharger le profil","delete":"Supprimer","deleteProfile":"Supprimer le profil ?","deleteProfileDescription":"Supprime ce profil de tous les agents indiqués. Xcode peut retélécharger les profils gérés.","fingerprints":"Empreintes","privateKey":"Clé privée","available":"Disponible","missing":"Manquante","deleteIdentity":"Supprimer l’identité ?","deleteIdentityDescription":"Supprime cette identité et sa clé privée du trousseau de connexion de chaque agent.","portalProfiles":"Profils du portail","portalCertificates":"Certificats du portail","createPortalProfile":"Créer un profil du portail","createPortalProfileDescription":"Crée un profil avec un ID de bundle, un certificat et les appareils inscrits applicables. Aucune clé privée n’est générée.","profileName":"Nom du profil","selectBundleId":"Choisir l’ID du bundle","selectCertificate":"Choisir le certificat","create":"Créer","confirmPortalDelete":"Confirmer la modification Apple","portalDeleteDescription":"Cette action modifie immédiatement le compte Apple Developer et peut interrompre la signature sur d’autres machines.","none":"Aucun élément.","operations":"Opérations récentes","certificatesDescription":"Identités de signature regroupées par empreinte de certificat sur les agents.","noLocalProfiles":"Aucun profil de provisionnement local trouvé.","noLocalCertificates":"Aucune identité de signature locale trouvée.","loadingPortal":"Chargement des ressources Apple Developer…","loadingProfile":"Chargement du profil de provisionnement…","backToProfiles":"Retour aux profils de provisionnement","profileNotFound":"Ce profil de provisionnement n’est plus installé sur un agent.","profileDetails":"Détails du profil","platforms":"Plateformes","created":"Créé","acceptedCertificates":"Empreintes de certificats acceptées","provisionedDevices":"Appareils provisionnés","provisionedDevicesDescription":"Ce profil contient {count} identifiants d’appareil.","deviceListPendingRefresh":"Actualisez l’inventaire de signature pour charger les identifiants stockés dans ce profil.","noProvisionedDevices":"Ce profil de distribution n’est pas limité à des appareils individuels.","device":"Appareil","udid":"UDID de l’appareil","status":"État","unknownDevice":"Non inscrit dans cette application"},"apnsDevices":{"title":"Appareils APNs","description":"Inscriptions de jetons d’apps et MDM disponibles pour le ciblage.","loading":"Chargement des appareils APNs…","empty":"Aucune app n’a encore inscrit de jeton APNs.","device":"Appareil / app","topic":"Sujet","environment":"Environnement","pushTypes":"Types push","token":"Jeton masqué","status":"État","lastRegistration":"Dernière inscription","lastSend":"Dernier envoi","rename":"Renommer","renameDescription":"Choisissez un libellé facile à reconnaître.","displayName":"Nom affiché","save":"Enregistrer","activate":"Activer","deactivate":"Désactiver","delete":"Supprimer","deleteTitle":"Supprimer l’inscription APNs ?","deleteDescription":"Supprimer ce jeton et le détacher de l’historique conservé ?","apiHelp":"Aide API","apiHelpTitle":"Inscrire un appareil APNs","apiHelpDescription":"Envoyez du JSON strict au point public. Les jetons peuvent être HEX ou Base64 ; MDM exige aussi pushMagic."},"pushSettings":{"title":"Notifications push","tokenAuthentication":"Authentification par jeton (.p8)","tokenDescription":"Recommandée pour les apps, Live Activities, VoIP et les types hors MDM.","configured":"Configuré","notConfigured":"Non configuré","teamId":"ID d’équipe","keyId":"ID de clé","chooseP8":"Déposer ou choisir la clé APNs .p8","replaceP8":"Déposer un nouveau .p8 pour renouveler la clé","p8Ready":".p8 prêt à enregistrer","remove":"Supprimer","removeToken":"Supprimer la clé APNs ?","removeTokenDescription":"Les envois par jeton s’arrêteront jusqu’à la configuration d’un nouveau .p8.","save":"Enregistrer","certificateAuthentication":"Authentification par certificat (.p12)","certificateDescription":"Plusieurs certificats liés à un sujet sont acceptés et sont requis pour MDM.","name":"Nom de l’accès","topic":"Sujet","environment":"Environnement","chooseP12":"Choisir le .p12 chiffré","p12Ready":".p12 prêt à enregistrer","passphrase":"Mot de passe du .p12","addCertificate":"Ajouter le certificat","expires":"Expire le {date}","lastTested":"Dernier test le {date}","retest":"Tester à nouveau","removeCertificate":"Supprimer le certificat APNs ?","removeCertificateDescription":"Les envois utilisant ce certificat échoueront après sa suppression."},"pushNotifications":{"title":"Notifications push","description":"Composez, validez, ciblez, mettez en file et inspectez les notifications Apple.","editor":"Éditeur de notification","editorDescription":"La forme du payload, les en-têtes, les limites et les appareils éligibles évoluent avec le type push.","presetName":"Nom du préréglage","savePreset":"Enregistrer l’actuel","presetSaved":"Préréglage enregistré.","content":"Contenu","headers":"En-têtes","advanced":"aps avancé","specialized":"Spécialisé","pushType":"Type push","titleField":"Titre","subtitle":"Sous-titre","body":"Corps","badge":"Badge","sound":"Son","category":"Catégorie","threadId":"ID du fil","contentAvailable":"Contenu disponible","mutableContent":"Contenu modifiable","criticalSound":"Son critique","soundVolume":"Volume","topic":"Sujet APNs","priority":"Priorité","apnsId":"ID APNs","expiration":"Expiration","collapseId":"ID de regroupement","certificateCredential":"Certificat","selectCredential":"Choisir un certificat","titleLocKey":"Clé locale du titre","titleLocArgs":"Arguments du titre","subtitleLocKey":"Clé locale du sous-titre","subtitleLocArgs":"Arguments du sous-titre","bodyLocKey":"Clé locale du corps","bodyLocArgs":"Arguments du corps","launchImage":"Image de lancement","summaryArg":"Argument de résumé","summaryArgCount":"Nombre d’arguments","targetContentId":"ID du contenu cible","interruptionLevel":"Niveau d’interruption","relevanceScore":"Score de pertinence","customJson":"JSON racine personnalisé","timestamp":"Horodatage","event":"Événement","attributesType":"Type d’attributs","contentState":"JSON de l’état","attributes":"JSON des attributs","staleDate":"Date d’obsolescence","dismissalDate":"Date de retrait","inputPushToken":"Demander un jeton push d’entrée","mdmHelp":"MDM utilise le certificat choisi et le PushMagic de chaque inscription. Son payload contient uniquement mdm, sans dictionnaire aps.","specializedHelp":"Utilisez le JSON racine personnalisé pour le payload {type} ; les en-têtes et limites APNs restent validés.","payloadPreview":"Aperçu JSON en direct","recipients":"Destinataires","directDevices":"Jetons directs","directToken":"Jeton Live Activity ponctuel","liveActivityToken":"Jeton push Live Activity","allEligibleDevices":"Tous les appareils éligibles ({count})","selectedDevices":"{count} appareils sélectionnés","searchDevices":"Rechercher des appareils…","noEligibleDevices":"Aucune inscription active compatible.","saveDraft":"Enregistrer le brouillon","draftSaved":"Brouillon enregistré dans l’historique.","send":"Envoyer","queued":"Lot push mis en file.","broadcastChannels":"Canaux de diffusion Live Activity","broadcastDescription":"La politique de stockage est immuable après création.","bundleId":"ID du bundle","noStorage":"Sans stockage","mostRecent":"Message le plus récent","createChannel":"Créer le canal","deleteChannel":"Supprimer le canal ?","deleteChannelDescription":"Supprime ce canal ; les préréglages et l’historique conservent seulement son identifiant.","delete":"Supprimer","history":"Historique","presets":"Préréglages","created":"Créé","deliveryMode":"Livraison","result":"Réussites / échecs","status":"État","payload":"Charge utile","attempts":"tentatives","load":"Charger dans l’éditeur","saveAsPreset":"Enregistrer comme préréglage","presetFromHistory":"Historique","resend":"Renvoyer","deleteHistory":"Supprimer l’élément ?","deleteHistoryDescription":"Supprime ce lot, son payload et les résultats.","clearHistory":"Effacer l’historique","clearHistoryDescription":"Supprimer tous les envois terminés et brouillons ? Les lots actifs sont conservés.","name":"Nom","updated":"Mis à jour","loadEdit":"Charger / modifier","deletePreset":"Supprimer le préréglage ?","deletePresetDescription":"Supprime ce payload réutilisable et ses en-têtes.","historyDescription":"Lots envoyés, brouillons et résultats APNs par destinataire.","presetsDescription":"Contenu et en-têtes réutilisables ; les destinataires sont choisis à l’envoi.","noHistory":"Aucun historique de notification push.","noPresets":"Aucun préréglage de notification push enregistré."},"status":{"online":"En ligne","offline":"Hors ligne","queued":"En file","running":"En cours","succeeded":"Réussie","failed":"Échouée","cancelled":"Annulée","timed_out":"Délai dépassé"}}')}];
2
2
 
3
3
  //# sourceMappingURL=messages_fr_json_%5Bjson%5D_cjs_0j6-w0i._.js.map