@ai-development-environment/server 0.0.30 → 0.0.32
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.
- package/package.json +1 -1
- package/standalone/.next/BUILD_ID +1 -1
- package/standalone/.next/app-path-routes-manifest.json +1 -0
- package/standalone/.next/build-manifest.json +3 -3
- package/standalone/.next/prerender-manifest.json +3 -3
- package/standalone/.next/routes-manifest.json +9 -0
- package/standalone/.next/server/app/[locale]/actions/page.js +2 -1
- package/standalone/.next/server/app/[locale]/actions/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/actions/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/agents/[id]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/agents/[id]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/agents/page.js +2 -1
- package/standalone/.next/server/app/[locale]/agents/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/agents/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/build-data/page.js +2 -1
- package/standalone/.next/server/app/[locale]/build-data/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/build-data/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page.js +2 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/coverage/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/builds/page.js +2 -1
- package/standalone/.next/server/app/[locale]/builds/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/builds/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/page.js +2 -1
- package/standalone/.next/server/app/[locale]/codebases/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/codebases/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/comments/page.js +2 -1
- package/standalone/.next/server/app/[locale]/comments/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/comments/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/cache/page.js +2 -1
- package/standalone/.next/server/app/[locale]/jira/cache/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/jira/cache/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/page.js +2 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jobs/[jobId]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/jobs/[jobId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/jobs/[jobId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/page.js +2 -1
- package/standalone/.next/server/app/[locale]/pull-requests/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/settings/page.js +2 -1
- package/standalone/.next/server/app/[locale]/settings/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/settings/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/[skillId]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/skills/[skillId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/groups/page.js +2 -1
- package/standalone/.next/server/app/[locale]/skills/groups/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/skills/groups/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/page.js +2 -1
- package/standalone/.next/server/app/[locale]/skills/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/skills/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/tools/page.js +2 -1
- package/standalone/.next/server/app/[locale]/tools/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/tools/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/usage/page.js +2 -1
- package/standalone/.next/server/app/[locale]/usage/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/usage/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page.js +2 -1
- package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/page.js +2 -1
- package/standalone/.next/server/app/[locale]/worktrees/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/_global-error.html +1 -1
- package/standalone/.next/server/app/_global-error.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.html +1 -1
- package/standalone/.next/server/app/_not-found.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js +1 -1
- package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route/app-paths-manifest.json +3 -0
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route/build-manifest.json +9 -0
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route/server-reference-manifest.json +4 -0
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route.js +11 -0
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route.js.map +5 -0
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route.js.nft.json +1 -0
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/manifest.plist/route_client-reference-manifest.js +3 -0
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/route.js +4 -3
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/codebases/by-path/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/codebases/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/graphql/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/tools/call/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/tools/catalog/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js +1 -1
- package/standalone/.next/server/app/api/worktrees/[worktreeId]/diff-image/route.js.nft.json +1 -1
- package/standalone/.next/server/app-paths-manifest.json +1 -0
- package/standalone/.next/server/chunks/07_e_builds_[buildId]_artifacts_[artifactId]_manifest_plist_route_actions_18mzaf3.js +3 -0
- package/standalone/.next/server/chunks/[root-of-the-server]__08mnmfs._.js +3 -0
- package/standalone/.next/server/chunks/[root-of-the-server]__0906ea6._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__09skp6r._.js → [root-of-the-server]__0cz4ap5._.js} +1 -1
- package/standalone/.next/server/chunks/[root-of-the-server]__0nvcazp._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__1wtng3p._.js → [root-of-the-server]__12807ia._.js} +1 -1
- package/standalone/.next/server/chunks/[root-of-the-server]__1csx222._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__0zyqmd4._.js → [root-of-the-server]__1ix62p0._.js} +3 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__1j-hk6b._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__15aat79._.js → [root-of-the-server]__1j0u03u._.js} +1 -1
- package/standalone/.next/server/chunks/[root-of-the-server]__1qmvsu_._.js +3 -0
- package/standalone/.next/server/chunks/[root-of-the-server]__1w59u6o._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__0-ypkf7._.js → [root-of-the-server]__1z-3x8k._.js} +1 -1
- package/standalone/.next/server/chunks/_0exkna-._.js +51 -1
- package/standalone/.next/server/chunks/_0jurkow._.js +1 -1
- package/standalone/.next/server/chunks/_0rx5rfm._.js +1 -1
- package/standalone/.next/server/chunks/_0tufgj0._.js +111 -61
- package/standalone/.next/server/chunks/_0w2eghf._.js +51 -1
- package/standalone/.next/server/chunks/_152rnkf._.js +3 -3
- package/standalone/.next/server/chunks/_16x77b_._.js +1 -1
- package/standalone/.next/server/chunks/_1dbqy8c._.js +3 -3
- package/standalone/.next/server/chunks/_1vrixpc._.js +3 -3
- package/standalone/.next/server/chunks/_1yfz-9u._.js +3 -3
- package/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_08x37wy.js +6 -0
- package/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0eghv0a.js +3 -0
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__08bbv6z._.js +1 -1
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ckj6wg._.js +1 -1
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qy28ku._.js +3 -0
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1potsqg._.js +1 -1
- package/standalone/.next/server/chunks/ssr/_0a1ligo._.js +1 -1
- package/standalone/.next/server/chunks/ssr/{_1n9rteq._.js → _1f5k6bj._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/messages_de_json_[json]_cjs_1uig1ud._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_es_json_[json]_cjs_082yukd._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_fr_json_[json]_cjs_0j6-w0i._.js +1 -1
- package/standalone/.next/server/chunks/ssr/node_modules_0obs0k7._.js +5 -0
- package/standalone/.next/server/chunks/ssr/node_modules_next_1ep9xf4._.js +3 -0
- package/standalone/.next/server/chunks/ssr/src_components_builds_build-detail-page_tsx_0q1lvps._.js +20 -10
- package/standalone/.next/server/functions-config-manifest.json +5 -2
- package/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/standalone/.next/server/pages/404.html +1 -1
- package/standalone/.next/server/pages/500.html +1 -1
- package/standalone/.next/server/server-reference-manifest.js +1 -1
- package/standalone/.next/server/server-reference-manifest.json +1 -1
- package/standalone/.next/static/chunks/{1ut0xkaqsykm4.js → 0mq066ue0yufb.js} +1 -1
- package/standalone/.next/static/chunks/{041g9raf1naqv.js → 175269y15-grc.js} +1 -1
- package/standalone/.next/static/chunks/17t4ft9o1tqw3.js +35 -0
- package/standalone/.next/static/chunks/{3q0q6_ntq8aa5.js → 208k3moxxd_53.js} +1 -1
- package/standalone/.next/static/chunks/2zwijj9t6y7gn.js +7 -0
- package/standalone/.next/static/chunks/398uw5_4-ciaz.css +1 -0
- package/standalone/.next/static/chunks/{29zl8lgsa28tb.js → 3l2g83119oyl0.js} +1 -1
- package/standalone/src/services/builds/artifact-cache.test.ts +271 -0
- package/standalone/src/services/builds/artifact-cache.ts +272 -0
- package/standalone/src/services/builds/artifact-transfer.ts +2 -1
- package/standalone/src/services/builds/builds.service.ts +139 -56
- package/standalone/.next/server/chunks/[root-of-the-server]__02vqwey._.js +0 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__0rwpsai._.js +0 -3
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__10-ftkj._.js +0 -3
- package/standalone/.next/server/chunks/ssr/node_modules_1n5939e._.js +0 -5
- package/standalone/.next/static/chunks/3p7wbgo7qd6_m.css +0 -1
- package/standalone/.next/static/chunks/3vg6y29m047x9.js +0 -31
- /package/standalone/.next/static/{ePu377E66yy0icQx3ykQJ → qUqJkVkzos1XoXFl7PSxx}/_buildManifest.js +0 -0
- /package/standalone/.next/static/{ePu377E66yy0icQx3ykQJ → qUqJkVkzos1XoXFl7PSxx}/_clientMiddlewareManifest.js +0 -0
- /package/standalone/.next/static/{ePu377E66yy0icQx3ykQJ → qUqJkVkzos1XoXFl7PSxx}/_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","agents":"Agents","usage":"Utilisation","github":"GitHub","pullRequests":"Demandes de tirage","actions":"Actions","comments":"Commentaires","jira":"Jira","tickets":"Tickets","cache":"Cache","system":"Système","skills":"Compétences","tools":"Outils","settings":"Paramètres"},"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.","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"}},"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 intégrations utilisées par cette 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."},"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","pullRequestFilter":"Demande de tirage ouverte","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.","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":"Pipelines","pipelineCount":"{count} pipelines et contextes d’état","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.","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}","attempt":"Tentative {attempt}","view":"Voir","viewWorktree":"Voir","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…"},"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.","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","projectOnly":"Projet 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 et action.","postBuildScriptHelp":"Exportez par défaut une fonction qui reçoit aussi buildFolder, failed, cancelled, errorCode et error.","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","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","automatic":"Automatique","manual":"Manuel","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","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é"},"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"}},"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","agents":"Agents","usage":"Utilisation","github":"GitHub","pullRequests":"Demandes de tirage","actions":"Actions","comments":"Commentaires","jira":"Jira","tickets":"Tickets","cache":"Cache","system":"Système","skills":"Compétences","tools":"Outils","settings":"Paramètres"},"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.","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"}},"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 intégrations utilisées par cette 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."},"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","pullRequestFilter":"Demande de tirage ouverte","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.","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":"Pipelines","pipelineCount":"{count} pipelines et contextes d’état","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.","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}","attempt":"Tentative {attempt}","view":"Voir","viewWorktree":"Voir","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…"},"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.","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","projectOnly":"Projet 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 et action.","postBuildScriptHelp":"Exportez par défaut une fonction qui reçoit aussi buildFolder, failed, cancelled, errorCode et error.","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","provisioningProfiles":"Profils de provisionnement","selectProfile":"Sélectionnez un profil","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","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","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é"},"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"}},"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
|