@runfusion/fusion 0.41.0 → 0.42.0
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/dist/bin.js +44240 -41922
- package/dist/client/.vite/manifest.json +72 -72
- package/dist/client/assets/AgentDetailView-C5Lb3fd3.js +18 -0
- package/dist/client/assets/AgentDetailView-DiWELtb1.css +1 -0
- package/dist/client/assets/{AgentPermissionPolicyEditor-VDXL4XQc.js → AgentPermissionPolicyEditor-DtRcvE6M.js} +2 -2
- package/dist/client/assets/{AgentsView-ChXccELt.js → AgentsView-BVW-NOYD.js} +3 -3
- package/dist/client/assets/ChatView-Dy-oIkrK.js +6 -0
- package/dist/client/assets/{DevServerView-DGOahw1o.js → DevServerView-DLsFSP4s.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-DgqHlxyh.js → DirectoryPicker-_QawX-uL.js} +1 -1
- package/dist/client/assets/{DocumentsView-CbbZwzbH.js → DocumentsView-DierUJsj.js} +1 -1
- package/dist/client/assets/{EvalsView-BL_ue7fJ.js → EvalsView-B83lYKQl.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-8H4XAu4O.js → ExperimentalAgentOnboardingModal-CTctYTPU.js} +1 -1
- package/dist/client/assets/{GoalsView-CO4FVL3E.js → GoalsView-CKn8i0i0.js} +1 -1
- package/dist/client/assets/{InsightsView-C5vLvWVE.js → InsightsView-EpRHCD8G.js} +1 -1
- package/dist/client/assets/{MemoryView-BL3W3yOv.js → MemoryView-Df_ocTc5.js} +2 -2
- package/dist/client/assets/NodesView-DF7xJ_3z.js +14 -0
- package/dist/client/assets/{PiExtensionsManager-HvSiVeDN.js → PiExtensionsManager-BOooOEDx.js} +2 -2
- package/dist/client/assets/{PluginManager-DIjrlhnU.js → PluginManager-CHrDAzK6.js} +1 -1
- package/dist/client/assets/{PullRequestView-C2jQX8xZ.js → PullRequestView-CJU21OZ6.js} +2 -2
- package/dist/client/assets/{ReliabilityView-DbqEwoRs.js → ReliabilityView-uHkW1Qeu.js} +1 -1
- package/dist/client/assets/{ResearchView-C1QghmLI.js → ResearchView-oZ2-vbjL.js} +1 -1
- package/dist/client/assets/{SecretsView-Y2MQ-9n5.js → SecretsView-BpkqSV_E.js} +1 -1
- package/dist/client/assets/SessionTerminal-D9IW4cDj.js +2 -0
- package/dist/client/assets/{SettingsModal-DabcZZ6S.js → SettingsModal-BmB5l2bA.js} +1 -1
- package/dist/client/assets/SettingsModal-C8gsAazm.js +31 -0
- package/dist/client/assets/{SetupWizardModal-Db-Rxinm.js → SetupWizardModal-BYLEU_7o.js} +1 -1
- package/dist/client/assets/{SkillsView-CIEY1-DE.js → SkillsView-8GgQ8Z_Z.js} +1 -1
- package/dist/client/assets/{StashRecoveryView-B6iDu5tI.js → StashRecoveryView-CT1t1Uf2.js} +1 -1
- package/dist/client/assets/{TodoView-B8IK_BPM.js → TodoView-BUj6ITAb.js} +2 -2
- package/dist/client/assets/WorkflowNodeEditor-CN7GPmvV.js +8 -0
- package/dist/client/assets/WorkflowNodeEditor-aPj8cv81.css +1 -0
- package/dist/client/assets/app-B2ZxMfJT.js +13 -0
- package/dist/client/assets/app-BffGU_HQ.js +13 -0
- package/dist/client/assets/app-C8AHhs5N.js +13 -0
- package/dist/client/assets/app-DCot4oXA.js +13 -0
- package/dist/client/assets/app-Ri9Te2Dv.js +13 -0
- package/dist/client/assets/app-sEkTyT-w.js +13 -0
- package/dist/client/assets/{dashboard-view-O5j3PSGY.js → dashboard-view-C3SsjXo1.js} +1621 -1621
- package/dist/client/assets/{dashboard-view-Dn4CztR6.js → dashboard-view-CrYwb0oQ.js} +1 -1
- package/dist/client/assets/dashboard-view-Du53JbmQ.css +1 -0
- package/dist/client/assets/{folder-open-C9XAaduE.js → folder-open-CREXTATY.js} +1 -1
- package/dist/client/assets/index-2kYpdJrx.js +793 -0
- package/dist/client/assets/index-CJUfvGdC.css +1 -0
- package/dist/client/assets/{upload-BRAEugYV.js → upload-BvLUlwaH.js} +1 -1
- package/dist/client/assets/{users-BlflbMZ3.js → users-CjhbU-sF.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +43622 -41519
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +59 -8
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +2 -1
- package/skill/fusion/references/extension-tools.md +3 -3
- package/skill/fusion/references/fusion-capabilities.md +2 -2
- package/dist/client/assets/AgentDetailView-CY-O6VkV.css +0 -1
- package/dist/client/assets/AgentDetailView-krC0B2O0.js +0 -18
- package/dist/client/assets/ChatView-Dz_xBKit.js +0 -6
- package/dist/client/assets/NodesView-DfBNNm9c.js +0 -14
- package/dist/client/assets/SessionTerminal-DaTXNT3A.js +0 -2
- package/dist/client/assets/SettingsModal-BAzm2kYd.js +0 -31
- package/dist/client/assets/WorkflowNodeEditor-DaPyvD_R.js +0 -8
- package/dist/client/assets/WorkflowNodeEditor-Po5uv_dN.css +0 -1
- package/dist/client/assets/app-CTRT_hQh.js +0 -13
- package/dist/client/assets/app-CVg6W-HU.js +0 -13
- package/dist/client/assets/app-CY3pQXOr.js +0 -13
- package/dist/client/assets/app-DNh04p5I.js +0 -13
- package/dist/client/assets/app-DhHgtB9j.js +0 -13
- package/dist/client/assets/app-NL_hPGDS.js +0 -13
- package/dist/client/assets/dashboard-view-BgiLoG1G.css +0 -1
- package/dist/client/assets/index-BHGM5W8a.css +0 -1
- package/dist/client/assets/index-CgfrecpF.js +0 -793
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const e={add:"Ajouter",apply:"Appliquer",back:"Retour",cancel:"Annuler",close:"Fermer",closeInsightsView:"Fermer la vue des insights",closeModal:"Fermer la fenêtre modale d'utilisation",confirm:"Confirmer",continue:"Continuer",create:"Créer",delete:"Supprimer",discard:"Abandonner",dismiss:"Ignorer",dismissOAuth:"Ignorer la bannière de reconnexion OAuth",done:"Terminé",edit:"Modifier",no:"Non",openSettings:"Ouvrir les paramètres",pull:"Récupérer",refresh:"Actualiser",refreshInsights:"Actualiser les insights",retry:"Réessayer",run:"Exécuter",save:"Enregistrer",search:"Rechercher",send:"Envoyer",showLess:"Afficher moins",showMore:"Afficher plus",update:"Mettre à jour",yes:"Oui"},t={activeFilters:"Filtres actifs :",allEvents:"Tous les événements",allProjects:"Tous les projets",clearFilters:"Tout effacer",clearFiltersBtnLabel:"Effacer les filtres",clearLog:"Effacer le journal",confirmClear:"Effacer le journal d'activité ?",confirmClearButton:"Effacer le journal",confirmClearMessage:"Cela supprimera définitivement toutes les entrées du journal d'activité. Cette action ne peut pas être annulée.",eventType:{autoArchivedDeterministicDuplicate:"Tâche archivée automatiquement (doublon déterministe)",autoArchivedDuplicate:"Tâche archivée automatiquement (doublon)",autoArchivedGhostBug:"Tâche archivée automatiquement (bogue fantôme)",autoArchivedNearDuplicate:"Tâche archivée automatiquement (quasi-doublon)",duplicateWarningOverridden:"Avertissement de doublon ignoré",mergeWorktreeReacquired:"Arbre de travail de fusion réacquis",nearDuplicateFlagged:"Quasi-doublon signalé",projectIsolationTransition:"Transition d'isolation de projet",settingsUpdated:"Paramètres mis à jour",taskCreated:"Tâche créée",taskDeleted:"Tâche supprimée",taskFailed:"Tâche échouée",taskMerged:"Tâche fusionnée",taskMoved:"Tâche déplacée",taskUpdated:"Tâche mise à jour"},loadMore:"Charger plus",merged:"Fusionné",noActivityRecorded:"Aucune activité enregistrée",noMatchingActivity:"Aucune activité ne correspond aux filtres actuels",notMerged:"Non fusionné",refresh:"Actualiser",time:{daysAgo_one:"",daysAgo_other:"",hoursAgo_one:"",hoursAgo_other:"",justNow:"À l'instant",minutesAgo_one:"",minutesAgo_other:""},title:"Journal d'activité"},i={copied:"Copié",copiedLabel:"Erreur copiée dans le presse-papiers",copy:"Copier",copyLabel:"Copier l'erreur dans le presse-papiers",dialogLabel:"Détails de l'erreur de l'agent",openDetails:"Ouvrir les détails de l'erreur",reportOnGithub:"Signaler sur GitHub",title:"Détails de l'erreur de l'agent"},r={agentNameTriage:"Plan",collapseModelDetails:"Réduire les détails du modèle",empty:"Pas de sortie d'agent pour l'instant.",executor:"Exécuteur",exitFullscreen:"Quitter le plein écran",expandFullscreen:"Développer le journal d'agent en plein écran",expandModelDetails:"Développer les détails du modèle",hideOutput:"Masquer la sortie",hideToolCallsResults:"Masquer les appels d'outil et les résultats",hideToolOutput:"Masquer la sortie de l'outil",live:"En direct",loading:"Chargement des journaux d'agent…",loadingMore:"Chargement…",loadMore:"Charger plus",markdown:"Markdown",plain:"Brut",planning:"Planification",reviewer:"Réviseur",showFormattedMarkdown:"Afficher le markdown formaté",showing:"Affichage de {{visible}} sur {{total}} entrées",showOutput:"Afficher la sortie",showRawText:"Afficher le texte brut",showToolCallsResults:"Afficher les appels d'outil et les résultats",showToolOutput:"Afficher la sortie de l'outil",switchMarkdown:"Passer au mode markdown",switchPlainText:"Passer au mode texte brut",timeDaysAgo_one:"",timeDaysAgo_other:"",timeHoursAgo_one:"",timeHoursAgo_other:"",timeJustNow:"à l'instant",timeMinutesAgo_one:"",timeMinutesAgo_other:"",toolEntriesHidden_one:"",toolEntriesHidden_other:"",toolsOff:"Outils : Désactivé",toolsOn:"Outils : Activé",usingDefault:"Utilisant la valeur par défaut"},n={membersOf:"Membres de #{{roomName}}",noAgentsFound:"Aucun agent trouvé",otherAgents:"Autres agents",roomMemberBadge:"Membre de la salle",roomMembers:"Membres de la salle",suggestionsLabel:"Suggestions de mention d'agent",typeToSearch:"Tapez pour rechercher d'autres agents"},a={allow:"Autoriser",approvalRequired:"Approbation requise",ariaLabel:"Catégories de politique de permissions",block:"Bloquer",category:{commandExecution:{description:"Exécute des commandes shell et des scripts.",label:"Exécution de commandes"},fileWriteDelete:{description:"Créer, modifier ou supprimer des fichiers dans l'espace de travail.",label:"Écritures/suppressions de fichiers"},gitWrite:{description:"Commits, mises à jour de branches et modifications git affectant les fusions.",label:"Écritures Git"},networkApi:{description:"Accès réseau sortant ou API.",label:"Réseau/API"},taskAgentMutation:{description:"Changements d'état des tâches, délégations ou actions du cycle de vie des agents.",label:"Mutation tâche/agent"}},categoryExamples:"Exemples {{label}}",custom:"Personnalisé",exemptTools:"Outils exonérés de la politique d'approbation",exemptToolsDescription:"Ces outils de coordination contournent la politique d'approbation afin que les pulsations cardiaques et les messages inter-agents ne puissent pas faire de deadlock. Ils ne sont pas configurables par l'utilisateur.",fromProjectDefault:"à partir de la valeur par défaut du projet",inherit:"Hériter",inheritDefault:"Hériter du défaut du projet",lockedDown:"Verrouillé",preset:"Présélection",requireApproval:"Exiger l'approbation",unrestricted:"Sans restriction"},s={actions:{addCustomTemplate:"Ajouter un modèle personnalisé",cancel:"Annuler",collapse:"Réduire",create:"Créer",delete:"Supprimer",reset:"Réinitialiser",save:"Enregistrer"},ariaLabels:{collapse:"Réduire",deleteTemplate:"Supprimer {{name}}",editTemplate:"Modifier {{name}}",expand:"Développer",expandPrompt:"Agrandir l'invite en plein écran",expandToFullscreen:"Agrandir en plein écran",promptOverride:"Remplacement d'invite {{name}} ({{key}})",promptOverrideFullscreen:"Remplacement d'invite {{name}} ({{key}}) - plein écran",templatePromptFullscreen:"Invite de modèle - plein écran",viewFullPromptFor:"Afficher l'invite complète pour {{name}}"},badges:{builtin:"Intégré",custom:"Personnalisé",customized:"personnalisé",overridesBuiltin:"Remplace le modèle intégré"},confirmations:{deleteTemplate:'Supprimer "{{name}}" ?'},descriptions:{assignmentNote:"Les affectations de rôles sont stockées dans la configuration agentPrompts. Les modèles personnalisés remplacent les modèles intégrés par ID.",assignments:"Attribuez des modèles spécifiques aux rôles d'agent. Lorsqu'un rôle a une affectation, ce modèle sera utilisé à la place du modèle intégré par défaut.",builtinTemplates:"Ces modèles sont fournis par Fusion et ne peuvent pas être modifiés.",customTemplates:"Créez des modèles personnalisés pour remplacer les invites intégrées pour des rôles spécifiques.",overrides:"Personnalisez des segments spécifiques des invites d'agent IA. Les modifications remplacent les paramètres par défaut intégrés. Utilisez le bouton Réinitialiser pour restaurer la valeur par défaut d'origine pour toute invite."},editor:{editTemplate:"Modifier le modèle personnalisé",newTemplate:"Nouveau modèle personnalisé"},emptyStates:{noCustomTemplates:"Aucun modèle personnalisé pour le moment. Créez-en un pour commencer."},errors:{idConflict:`L'ID de modèle "{{templateId}}" entre en conflit avec un modèle intégré. Veuillez utiliser un nom différent.`,nameRequired:"Le nom du modèle est obligatoire"},hints:{customOverrideActive:"Remplacement personnalisé actif. Cliquez sur Réinitialiser pour restaurer la valeur par défaut.",noOverrideSet:"Aucun remplacement défini. Utilisation de la valeur par défaut intégrée ({{chars}} caractères)."},labels:{builtIn:"intégré",custom:"Personnalisé",description:"Description",name:"Nom",note:"Remarque",overridesDefault:"remplace la valeur par défaut",prompt:"Invite",role:"Rôle"},options:{useDefault:"Utiliser la valeur par défaut"},placeholders:{description:"Description brève de ce modèle",prompt:"Entrez l'invite système pour ce modèle...",promptDefault:"Défaut : {{preview}}",templateName:"Par exemple Mon exécuteur personnalisé"},sections:{builtinTemplates:"Modèles intégrés",customTemplates:"Modèles personnalisés"},tabs:{assignments:"Affectations",overrides:"Remplacements",templates:"Modèles"},titles:{delete:"Supprimer",edit:"Modifier",editPrompt:"Modifier l'invite",viewFullPrompt:"Afficher l'invite complète"}},o={always:"Toujours exiger l'approbation",alwaysApproveDelete:"Toujours exiger l'approbation pour fn_agent_delete",alwaysDesc:"Toutes les demandes fn_agent_create/fn_agent_delete doivent être approuvées sauf si l'appelant est de confiance.",approvalMode:"Mode d'approbation",helpText:"Ces paramètres régissent uniquement les outils de provisionnement durables : <code>fn_agent_create</code> et <code>fn_agent_delete</code>. Les requêtes éphémères <code2>fn_spawn_agent</code2> restent sous la porte d'approbation des mutations de tâche/agent (FN-3973).",never:"Ne jamais exiger l'approbation",neverDesc:"Autoriser l'approvisionnement sans approbation pour les appelants non privilégiés.",trustedAgentIds:"ID d'agent de confiance",trustedAgentIdsPlaceholder:"agent-abc123",trustedOnly:"De confiance uniquement",trustedOnlyDesc:"Les rôles/IDs d'agent de confiance contournent l'approbation ; les autres appelants doivent être approuvés.",trustedRoles:"Rôles de confiance",trustedRolesPlaceholder:"reviewer, ceo"},l=JSON.parse(`{"activate":"Activer","activeAgents_one":"","activeAgents_other":"","activePrefix":"Actif : ","advancedSettingsDesc":"Options de configuration avancées pour cet agent.","advancedSettingsTitle":"Paramètres avancés","agent":"Agent","agentControls":"Contrôles des agents","agentLogs":"Journaux de l'agent","agentMail":"Courrier de l'agent","agentModelLabel":"Modèle de l'agent","agentPlural":"agents","agentsFound_one":"","agentsFound_other":"","agentSingular":"agent","agentsLabel":"Agents","agentSoulLabel":"Âme de l'agent","aiInterview":"Entretien IA","allChangesSaved":"Toutes les modifications enregistrées","allowParallelExecution":"Autoriser l'exécution parallèle","allowParallelExecutionHint":"Autoriser cet agent à exécuter plusieurs heartbeats simultanément.","allTime":"Tout le temps","alreadyOnDefault":"Déjà par défaut","applyPreset":"Appliquer le préréglage","assignedSkills":"Compétences assignées","auto":"Auto","autoClaimHint":"L'agent revendique automatiquement les tâches correspondant à ses compétences.","autoClaimRelevantTasks":"Revendiquer automatiquement les tâches pertinentes","avatarLabel":"Avatar","avatarRemoved":"Avatar supprimé","avatarUploaded":"Avatar téléchargé","back":"Retour","backToAgents":"Retour aux agents","backToInbox":"Retour à la boîte de réception","backToOrgChart":"Retour à l'organigramme","backToOutbox":"Retour à la boîte d'envoi","boardView":"Vue tableau","browseCatalog":"Parcourir le catalogue","budgetExhaustedBody":"Cet agent a épuisé son budget de tokens et ne s'exécutera pas avant la réinitialisation.","budgetExhaustedTitle":"Budget épuisé","budgetPeriodHint":"Fréquence de réinitialisation du budget de tokens.","budgetPeriodLabel":"Période de budget","budgetResetFailed":"Échec de la réinitialisation du budget","budgetResetSuccess":"Budget réinitialisé avec succès","budgetSettingsDesc":"Contrôlez les limites d'utilisation des tokens et le planning de réinitialisation.","budgetSettingsTitle":"Paramètres de budget","budgetUsageDisplay":"{{used}} / {{limit}} tokens utilisés","builtInModel":"Modèle intégré","bulkActionFailed":"L'action groupée a échoué","bulkActions":"Actions groupées","bulkActionsLoadFailed":"Échec du chargement des actions groupées : {{error}}","bulkAgentActions":"Actions groupées sur les agents","bulkConfirmMessage_one":"","bulkConfirmMessage_other":"","bulkNoEligible":"Aucun agent éligible","bulkResult_one":"{{action}} {{successCount}} {{agentWord}} ; ignoré {{skippedCount}}","bulkResult_other":"{{action}} {{successCount}} {{agentWord}} ; ignoré {{skippedCount}}","bulkResultWithFailures":"{{action}} {{count}} agent(s), {{failed}} échec(s)","bundleDescription":"Configurez comment le bundle de code de cet agent est géré.","bundleEntryFileHint":"Le fichier d'entrée du bundle géré.","bundleEntryFileLabel":"Fichier d'entrée","bundleExternal":"Externe","bundleExternalHint":"Pointez vers un chemin de bundle géré en externe.","bundleExternalPathHint":"Chemin absolu vers le fichier de bundle externe.","bundleExternalPathLabel":"Chemin du bundle externe","bundleExternalPathPlaceholder":"/chemin/vers/bundle.js","bundleFilesHint":"Fichiers sources inclus dans le bundle de cet agent.","bundleFilesLabel":"Fichiers du bundle","bundleManaged":"Géré","bundleManagedHint":"Fusion gère le bundle automatiquement.","bundleModeLabel":"Mode de bundle","bundleNone":"Aucun","bundleSelectMode":"Sélectionner un mode de bundle","bundleTitle":"Bundle","cacheHitRatio":"Taux de cache","cacheReadTokens":"Lecture cache","cacheWriteTokens":"Écriture cache","cancel":"Annuler","cancelCustomInterval":"Annuler l'intervalle personnalisé","center":"Centrer","chainOfCommand":"Chaîne de commandement","change":"Modifier","changeRole":"Cliquer pour changer le rôle","chooseFile":"Choisir un fichier","clearAgents":"Effacer les agents","clearSkills":"Effacer les compétences","clickToChangeRole":"Cliquer pour changer le rôle","close":"Fermer","closeAriaLabel":"Fermer","combinedTokens":"Jetons combinés","company":"Entreprise","configDescription":"Configurez l'identité, le modèle et les paramètres de comportement de cet agent.","configTitle":"Configuration","connecting":"Connexion...","connectingStream":"Connexion au flux de journal...","connectionLost":"Connexion perdue. Nouvelle tentative...","context":"Contexte","controls":"Contrôles","coordinationOnlyAgent":"Agent de coordination uniquement","coordinationOnlyHint":"Cet agent coordonne le travail mais n'exécute pas directement les tâches.","copyId":"Copier l'ID","create":"Créer","createAgent":"Créer l'agent","created":"Agent « {{name}} » créé","createError":"Échec de la création de l'agent","createSuccess":"Agent « {{name}} » créé","creating":"Création en cours…","creatingAgent":"Création de l'agent...","currentAgent":"Agent actuel","currentInput":"Entrée actuelle: {{method}}","currentPath":"Chemin actuel","currentUsage":"Utilisation actuelle","currentWork":"Travail en cours","customHeartbeatAria":"Intervalle de pulsation personnalisé en minutes pour {{name}}","customHeartbeatOption":"Personnalisé…","customizeForAgent":"Personnaliser pour cet agent","daily":"Quotidien","dangerZone":"Zone dangereuse","dangerZoneDesc":"Actions irréversibles — procédez avec précaution.","delete":"Supprimer","deleteAgent":"Supprimer l'agent","deleteConfirm":"Supprimer l'agent « {{name}} » ? Cette action est irréversible.","deleted":"Agent « {{name}} » supprimé","deleteError":"Échec de la suppression de l'agent : {{error}}","deleteFailed":"Échec de la suppression de l'agent : {{error}}","deleteMessage":"Supprimer l'agent « {{name}} » ? Cette action est irréversible.","deleteSuccess":"Agent « {{name}} » supprimé","deleteTitle":"Supprimer l'agent","deletionNotAvailable":"La suppression n'est pas disponible pendant l'exécution de l'agent.","deletionPermanent":"Cela supprimera définitivement l'agent et toutes les données associées.","details":"Détails","dialogAriaLabel":"Créer un nouvel agent","dialogTitle":"Nouvel agent","employeesTitle":"Employés","emptySubtitle":"Créez un agent pour commencer","emptyTitle":"Aucun agent trouvé","errors":"Erreurs","executionPrompt":"Invite d'exécution","executionPromptNotCaptured":"Invite d'exécution non capturée","failedToImport":"Échec de l'importation des agents","failedToLoadCompanies":"Échec du chargement des entreprises","failedToParseDirectory":"Impossible d'analyser les fichiers AGENTS.md du répertoire sélectionné","failedToParseManifest":"Impossible d'analyser le manifeste","failedToReadFile":"Impossible de lire le fichier","fieldHeartbeatPath":"Chemin de la procédure de heartbeat","fieldIcon":"Icône","fieldInstructionsPath":"Chemin des instructions","fieldInstructionsText":"Instructions intégrées","fieldMaxTurns":"Tours maximum","fieldMemory":"Mémoire de l'agent","fieldName":"Nom","fieldReportsTo":"Rapporte à","fieldRole":"Rôle","fieldSkills":"Compétences","fieldSoul":"Âme","fieldThinking":"Réflexion","fieldThinkingLevel":"Niveau de réflexion","fieldTitle":"Titre","fileContentHint":"Modifiez le contenu du fichier directement.","fileContentLabel":"Contenu du fichier","fileContentPlaceholder":"Le contenu du fichier apparaîtra ici...","fileHint":"Fichiers .md et .txt pris en charge","fileLoadError":"Échec du chargement du fichier","fileSaved":"Fichier enregistré","filterAll":"Tous les états","filterByState":"Filtrer les agents par état","fit":"Ajuster","fixValidationErrors":"Corrigez les erreurs de validation avant d'enregistrer","fixValidationToSave":"Corrigez les erreurs de validation pour enregistrer","from":"De","generateHint":"Décrivez le rôle de votre agent et laissez l'IA générer une spécification","generateWithAI":"Générer avec l'IA","generation":{"collapse":"Réduire","expand":"Développer","generate":"Générer","info":"Décrivez le rôle de votre agent et l'IA générera une spécification complète incluant l'invite système, la configuration suggérée, etc.","loading":"Génération de la spécification de l'agent…","previewDescription":"Description","previewMaxTurns":"Nombre maximum de tours","previewRole":"Rôle","previewThinking":"Réflexion","previewTitle":"Titre","rateLimited":"Trop de demandes. Veuillez attendre un moment et réessayer.","regenerate":"Régénérer","roleHint":"Décrivez ce que votre agent devrait faire","roleLabel":"Description du rôle","rolePlaceholder":"par ex. \\"Réviseur de code frontal senior spécialisé dans l'accessibilité React\\"","systemPrompt":"Invite système","title":"Générer un agent","useThis":"Utiliser ceci"},"healthError":"Erreur","heartbeat":"Pulsation :","heartbeatAndHealth":"Heartbeat & Santé","heartbeatClampedToMin_one":"","heartbeatClampedToMin_other":"","heartbeatCustom":"Exécution heartbeat personnalisée","heartbeatEnabled":"Heartbeat activé","heartbeatEnabledHint":"Autorisez cet agent à s'exécuter sur un heartbeat planifié.","heartbeatEnterMinutes":"Veuillez saisir un intervalle de pulsation en minutes","heartbeatFileEditMode":"Mode édition","heartbeatFileEditorHint":"Modifiez directement le fichier de procédure heartbeat.","heartbeatFileEmptyPreview":"Fichier vide — passez en mode édition pour ajouter du contenu.","heartbeatFileLoadFailed":"Échec du chargement du fichier heartbeat","heartbeatFilePlaceholder":"Contenu de la procédure heartbeat...","heartbeatFilePreviewMode":"Mode aperçu","heartbeatFileSaved":"Fichier heartbeat enregistré","heartbeatFileSaveFailed":"Échec de l'enregistrement du fichier heartbeat","heartbeatIntervalHint":"Fréquence d'exécution du heartbeat, en secondes.","heartbeatIntervalLabel":"Intervalle heartbeat (s)","heartbeatIntervalUpdated":"Intervalle de pulsation de {{name}} mis à jour : {{interval}}","heartbeatIntervalUpdateFailed":"Échec de la mise à jour de l'intervalle de pulsation : {{error}}","heartbeatMustBeNumber":"L'intervalle de pulsation doit être un nombre valide","heartbeatMustBePositive":"L'intervalle de pulsation doit être supérieur à 0","heartbeatOverdue":"Battement de cœur en retard {{elapsed}}","heartbeatPathHint":"Chemin de la procédure de heartbeat de l'agent, généralement .fusion/agents/ceo-agent2736/HEARTBEAT.md. Les anciens chemins par défaut avec identifiant uniquement fonctionnent toujours.","heartbeatPathPlaceholder":"ex. .fusion/agents/ceo-agent2736/HEARTBEAT.md","heartbeatProcedureDesc":"La procédure heartbeat guide ce que fait cet agent à chaque exécution planifiée.","heartbeatProcedureDescSuffix":"Vous pouvez le personnaliser ici ou laisser la valeur par défaut intégrée.","heartbeatProcedureFileLabel":"Fichier de procédure heartbeat","heartbeatProcedureFileReady":"Fichier de procédure heartbeat prêt","heartbeatProcedurePathSet":"Chemin de procédure heartbeat défini","heartbeatProcedureTitle":"Procédure heartbeat","heartbeatPromptTemplate":"Modèle d'invite heartbeat","heartbeatRunFailed":"Échec du démarrage de l'exécution de pulsation : {{error}}","heartbeatRunStarted":"Exécution de pulsation démarrée pour {{name}}","heartbeatRunsWillAppear":"Les exécutions heartbeat apparaîtront ici.","heartbeatScopeDiscipline":"Discipline de portée heartbeat","heartbeatSettingsDesc":"Contrôlez la planification et le comportement du heartbeat de cet agent.","heartbeatSettingsTitle":"Paramètres heartbeat","heartbeatSpeed":"Vitesse de la pulsation","heartbeatSpeedHint":"Multiplie tous les intervalles de pulsation des agents. ×0.5 = deux fois plus vite, ×2.0 = deux fois plus lent. Défaut : ×1.0","heartbeatSpeedPreset":"Préréglage de vitesse de pulsation","heartbeatSpeedSaveFailed":"Échec de l'enregistrement du multiplicateur de pulsation : {{error}}","heartbeatSpeedSet":"Vitesse de pulsation définie à ×{{value}}","heartbeatStarted":"Heartbeat démarré","heartbeatStartFailed":"Échec du démarrage du heartbeat","heartbeatTimeoutHint":"Temps maximum en secondes qu'une exécution heartbeat peut prendre avant d'être interrompue.","heartbeatTimeoutLabel":"Délai d'expiration heartbeat (s)","heartbeatUpgradeFailed":"Échec de la mise à niveau de la procédure heartbeat","iconLabel":"Icône","iconPlaceholder":"ex. 🤖","idCopied":"ID copié dans le presse-papiers","idleNoTask":"Inactif — aucune tâche assignée","immediate":"Immédiat","import":"Importer","importAgents":"Importer des agents","importButton":"Importer {{label}}","importComplete":"Importation terminée","importDescription":"Importez des agents à partir d'un package Agent Companies. Parcourez le catalogue companies.sh pour découvrir des agents publiés, téléchargez un fichier AGENTS.md, sélectionnez un répertoire ou collez le contenu du manifeste.","importingAgents_one":"","importingAgents_other":"","importingAgentsAndSkills":"Importation de {{agentCount}} agent{{agentPlural}} et {{skillCount}} compétence{{skillPlural}}...","importingSkills_one":"","importingSkills_other":"","inbox":"Boîte de réception","inheritingProjectDefault":"Héritant du défaut du projet","inheritProjectDefault":"Hériter du défaut du projet","inlineMemoryFieldHint":"Cette mémoire est intégrée directement dans le contexte de l'agent.","inlineMemoryHint":"Mémoire courte injectée à chaque heartbeat.","inlineMemoryLabel":"Mémoire inline","inProgress":"En cours","input":"Entrée","inputTokens":"Jetons d'entrée","installs":"installations","instructionsDescription":"Instructions persistantes qui guident le comportement de cet agent.","instructionsEmptyPreview":"Aucune instruction — passez en mode édition pour en ajouter.","instructionsFileEditorDesc":"Modifiez directement le fichier d'instructions lié.","instructionsFileEditorTitle":"Fichier d'instructions","instructionsFileSaved":"Fichier d'instructions enregistré","instructionsFileSaveFailed":"Échec de l'enregistrement du fichier d'instructions","instructionsHint":"Ces instructions sont ajoutées au début de chaque invite reçue par cet agent.","instructionsPathHint":"Chemin vers un fichier markdown contenant les instructions de cet agent.","instructionsPathLabel":"Chemin du fichier d'instructions","instructionsPathPlaceholder":"ex. .fusion/agents/reviewer.md","instructionsPlaceholder":"Entrez les instructions pour cet agent...","instructionsSaved":"Instructions enregistrées","instructionsSaveFailed":"Échec de l'enregistrement des instructions","instructionsTextPlaceholder":"Ajouter des instructions de comportement personnalisées…","instructionsTitle":"Instructions","intentPrompt":"Que voulez-vous que cet agent fasse?","interval":"Intervalle","interviewDraftApplied":"Brouillon d'entretien appliqué","last24h":"Dernières 24h","last7d":"7 derniers jours","lastHeartbeat":"Dernière : {{time}}","lastHeartbeatAt":"Dernière : {{time}}","latestRunLabel":"Dernière exécution","layoutAuto":"Auto","layoutAutoAria":"Disposition automatique","layoutHorizontal":"Horizontal","layoutHorizontalAria":"Disposition horizontale","layoutVertical":"Vertical","layoutVerticalAria":"Disposition verticale","listView":"Vue liste","lite":"Lite","live":"En direct","liveLogs":"Journaux en direct","liveRun":"Exécution en direct","loadError":"Échec du chargement des agents : {{error}}","loading":"Chargement de l'agent...","loadingAgents":"Chargement des agents…","loadingCompanies":"Chargement des entreprises…","loadingDetails":"Chargement des détails d'exécution...","loadingEligibility":"Chargement des critères…","loadingEligible":"Chargement des agents éligibles...","loadingEmployees":"Chargement des employés...","loadingFile":"Chargement du fichier...","loadingFileContent":"Chargement du contenu du fichier...","loadingLogs":"Chargement des journaux...","loadingMailbox":"Chargement de la boîte aux lettres...","loadingMemoryFiles":"Chargement des fichiers mémoire...","loadingModels":"Chargement des modèles…","loadingOrgChart":"Chargement de l'organigramme…","loadingReportingChain":"Chargement de la chaîne hiérarchique...","loadingRuns":"Chargement des exécutions...","loadingRuntimes":"Chargement des environnements d'exécution…","loadingSkillContent":"Chargement du contenu de la compétence...","loadingTasks":"Chargement des tâches...","loadTasksFailed":"Échec du chargement des tâches","logEntries_one":"","logEntries_other":"","logsWillAppear":"Les journaux apparaîtront ici une fois l'agent démarré.","logsWillAppearActive":"Les journaux apparaîtront ici.","mailboxLoadFailed":"Échec du chargement de la boîte aux lettres","mailFrom":"De","mailSent":"Envoyé","mailTo":"À","mailToLabel":"À","mailType":"Type","manifestContent":"Contenu du manifeste","manifestPlaceholder":"---\\nname: PDG\\ntitle: Directeur Général\\nreportsTo: null\\nskills:\\n - review\\n---\\nInstructions de l'agent ici...","maxConcurrentRunsHint":"Nombre maximum de heartbeats pouvant s'exécuter simultanément.","maxConcurrentRunsLabel":"Exécutions simultanées max.","maxTurns":"Nombre maximum de tours","memoryDescription":"Gérez la mémoire à long terme et de travail de cet agent.","memoryEmptyPreview":"Aucune mémoire inline — passez en mode édition pour en ajouter.","memoryFileEditMode":"Mode édition","memoryFileEmptyPreview":"Fichier vide — passez en mode édition pour ajouter du contenu.","memoryFileLoadFailed":"Échec du chargement du fichier mémoire","memoryFileMeta":"{{size}} octets · mis à jour {{date}}","memoryFilePlaceholder":"Contenu du fichier mémoire...","memoryFilePreviewMode":"Mode aperçu","memoryFileSaved":"Fichier mémoire enregistré","memoryFileSaveFailed":"Échec de l'enregistrement du fichier mémoire","memoryFilesHint":"Fichiers stockés dans les couches mémoire de l'agent.","memoryFilesHintSuffix":"Sélectionnez un fichier pour afficher ou modifier son contenu.","memoryFilesLabel":"Fichiers mémoire","memoryFilesLoadFailed":"Échec du chargement des fichiers mémoire","memoryLayerDaily":"Quotidien","memoryLayerDailyDesc":"Notes à court terme rafraîchies chaque jour.","memoryLayerDreams":"Rêves","memoryLayerDreamsDesc":"Réflexions synthétisées à partir de l'activité récente.","memoryLayerLongTerm":"Long terme","memoryLayerLongTermDesc":"Faits et connaissances persistants conservés entre les sessions.","memoryPlaceholder":"Privé pour cet agent — préférences durables, habitudes de travail et contexte à conserver d'une tâche à l'autre…","memoryReadOnly":"Lecture seule","memorySaved":"Mémoire enregistrée","memorySaveFailed":"Échec de l'enregistrement de la mémoire","memoryTitle":"Mémoire","memoryTooLong":"Le contenu de la mémoire est trop long","messageResponseModeHint":"Quand cet agent répond aux messages entrants.","messageResponseModeLabel":"Mode de réponse aux messages","minutesUnit":"min","modalTitle":"Agents","model":"Modèle","modelDefault":"par défaut","modelDescription":"Choisissez le modèle d'IA que cet agent utilise pour l'inférence.","modelPlaceholder":"Sélectionner un modèle…","modelTitle":"Modèle","monthly":"Mensuel","name":"Nom","nameLabel":"Nom","namePlaceholder":"ex. Relecteur frontend","never":"Jamais","newAgent":"Nouvel agent","next":"Suivant","nextExpected":"Prochain attendu","nextHeartbeat":"","nextHeartbeatAt":"Prochaine : {{time}}","noActiveAssignment":"Aucune assignation active","noActiveEligible":"Aucun agent actif éligible à la pause","noActivityYet":"Aucune activité pour l'instant","noAgentsFound":"Aucun agent trouvé dans le manifeste.","noAgentsMdFiles":"Le répertoire sélectionné n'a pas de fichiers AGENTS.md","noAgentsToPause":"Aucun agent à mettre en pause","noAgentsToPauseHint":"Aucun agent de projet actif ou en cours à mettre en pause","noAgentsToResume":"Aucun agent à reprendre","noAgentsToResumeHint":"Aucun agent de projet en pause à reprendre","noCompaniesAvailable":"Aucune entreprise disponible","noCompaniesMatch":"Aucune entreprise ne correspond à votre recherche","noEmployees":"Aucun employé","noEmployeesDesc":"Cet agent n'a pas de subordonnés directs.","noInboxMessages":"Aucun message dans la boîte de réception","noInstructionsPath":"Aucun chemin de fichier d'instructions défini","noLimit":"Sans limite","noLogEntriesYet":"Aucune entrée de journal pour l'instant","noLogsForRun":"Aucun journal pour cette exécution","noManager":"Aucun responsable","noMemoryFiles":"Aucun fichier mémoire","noneUsingBuiltIn":"Aucun (utilisant l'intégré)","noOutboxMessages":"Aucun message dans la boîte d'envoi","noOutputCaptured":"Aucune sortie capturée","noPausedEligible":"Aucun agent en pause éligible à la reprise","noReportingChain":"Aucune chaîne hiérarchique","noReset":"Pas de réinitialisation","noRunsYet":"Aucune exécution pour l'instant","noRuntimes":"Aucun environnement disponible","noSkillContent":"Aucun contenu de compétence disponible","noSkillMd":"Aucune documentation de compétence trouvée","noSkillsInPackage":"Aucune compétence dans le package","noTasksAssigned":"Aucune tâche assignée","noTokenUsageYet":"Aucune utilisation de jetons enregistrée pour le moment. Les totaux des jetons s'afficheront ici une fois que les agents s'exécutent.","notScheduled":"Non planifié","notSelected":"Non sélectionné","off":"Désactivé","onboarding":{"applyDraftAgent":"Appliquer le brouillon au formulaire d'agent","applyDraftSettings":"Appliquer le brouillon au formulaire de paramètres","continue":"Continuer","dialogLabel":"Entretien IA","draftIntro":"Révisez ce brouillon généré. Rien n'est appliqué avant confirmation.","draftReady":"Brouillon prêt à réviser","fieldAgentMemory":"Mémoire de l'agent","fieldHeartbeatEnabled":"Pulsation activée","fieldHeartbeatInterval":"Intervalle de pulsation","fieldHeartbeatPath":"Chemin de la procédure de pulsation","fieldIcon":"Icône","fieldInlineInstructions":"Instructions intégrées","fieldMaxTurns":"Tours maximum","fieldModelHint":"Indicateur de modèle","fieldName":"Nom","fieldPatternAgent":"Agent modèle","fieldReportsTo":"Rapporte à","fieldRole":"Rôle","fieldRuntimeHint":"Indicateur d'exécution","fieldSkills":"Compétences","fieldSoul":"Âme","fieldTemplate":"Modèle","fieldThinkingLevel":"Niveau de réflexion","fieldTitle":"Titre","intentLabelCreate":"De quoi ce nouvel agent sera-t-il responsable ?","intentLabelEdit":"Que doit changer ou améliorer cet agent ?","no":"non","notSet":"Non défini","sectionConfiguration":"Configuration","sectionIdentity":"Identité","sectionRationale":"Justification","sectionRuntimeHints":"Indicateurs d'exécution","startInterview":"Démarrer l'entretien","startOnboarding":"Démarrer l'intégration","thinking":"Réflexion en cours…","title":"Entretien IA","updatedDraftReady":"Brouillon mis à jour prêt à réviser","yes":"oui"},"onHeartbeat":"Sur heartbeat","openDetails":"Ouvrir les détails de {{name}}","optional":"(facultatif)","orgChartCanvas":"Canevas de l'organigramme","orgChartCenter":"Centrer l'organigramme","orgChartEmployees":"Employés de {{name}}","orgChartFit":"Ajuster l'organigramme","orgChartLoadFailed":"Échec du chargement de l'organigramme : {{error}}","orgChartView":"Vue organigramme","orgChartZoomIn":"Zoomer l'organigramme","orgChartZoomOut":"Dézoomer l'organigramme","orPasteManifest":"ou collez le contenu du manifeste","outbox":"Boîte d'envoi","output":"Sortie","outputTokens":"Jetons de sortie","overview":"Aperçu","parsing":"Analyse en cours…","pause":"Pause","pauseAction":"Mettre en pause","pauseAgentsFailed":"Échec de la mise en pause des agents : {{error}}","pauseAll":"Tout mettre en pause","pauseAllAgents":"Mettre tous les agents en pause","pauseAllConfirm_one":"","pauseAllConfirm_other":"","pauseAllTitle":"Mettre tous les agents en pause","pauseCountHint_one":"Mettre en pause {{count}} agent actif/en cours","pauseCountHint_other":"Mettre en pause {{count}} agents actifs/en cours","pauseCountHint_one_one":"","pauseCountHint_one_other":"","pauseCountHint_other_one":"","pauseCountHint_other_other":"","pausedPast":"mis en pause","pausedSummary_one":"","pausedSummary_other":"","pendingApprovals":"Approbations en attente","pendingApprovalsCount_one":"","pendingApprovalsCount_other":"","performance":{"avgDuration":"Durée moyenne","noData":"Aucune donnée de performance pour l'instant","reflections":"Réflexions","successRate":"Taux de réussite","tasksCompleted":"Tâches terminées","tasksFailed":"Tâches échouées"},"permissionPolicyFailed":"Échec de la mise à jour de la politique de permissions","permissionPolicyUpdated":"Politique de permissions mise à jour","permissionsDescription":"Contrôlez ce que cet agent est autorisé à faire.","permissionsTitle":"Permissions","pluginRuntime":"Environnement de plugin","presetsHeader":"Choisissez un persona prédéfini pour préremplir le rôle, l'identité, l'âme et les instructions","preview":"Aperçu","promptSize":"Taille de l'invite","promptSizeChart":"Graphique de taille d'invite","provideManifest":"","ratings":{"addError":"Impossible d'ajouter l'évaluation : {{error}}","addRating":"Ajouter une évaluation","addSuccess":"Évaluation ajoutée","categoryAverages":"Moyennes par catégorie","categoryCommunication":"Communication","categoryOther":"Autre","categoryQuality":"Qualité","categoryReliability":"Fiabilité","categorySelect":"Sélectionner une catégorie...","categorySpeed":"Rapidité","commentPlaceholder":"Commentaire facultatif...","count_one":"","count_other":"","deleteError":"Impossible de supprimer l'évaluation : {{error}}","deleteRating":"Supprimer l'évaluation","deleteSuccess":"Évaluation supprimée","historyTitle":"Historique des évaluations","loadError":"Impossible de charger les évaluations : {{error}}","loading":"Chargement des évaluations...","noRatings":"Aucune évaluation pour l'instant","starCount_one":"","starCount_other":"","submitRating":"Soumettre l'évaluation","submitting":"Envoi en cours...","title":"Évaluations des utilisateurs"},"recentRuns":"Exécutions récentes","reflections":{"agentNotFound":"Cet agent n'est plus disponible. Il a peut-être été supprimé.","generateError":"Impossible de générer la réflexion : {{error}}","generateSuccess":"Réflexion générée avec succès","getStarted":"Déclenchez une réflexion pour commencer","historyTitle":"Historique des réflexions","insights":"Observations","insufficientHistory":"Pas assez d'historique pour générer une réflexion","loadError":"Impossible de charger les réflexions : {{error}}","loading":"Chargement des réflexions...","loadingEvaluation":"Chargement de l'évaluation...","metricAvgDuration":"Durée moyenne :","metricErrors":"Erreurs :","metricFailed":"Échouées :","metrics":"Métriques","metricTasks":"Tâches :","noReflections":"Aucune réflexion pour l'instant","reflecting":"Réflexion en cours...","reflectNow":"Réfléchir maintenant","reflectNowTitle":"Générer une réflexion manuelle","sectionTitle":"Performance, réflexions et évaluations","suggestedImprovements":"Améliorations suggérées"},"refresh":"Actualiser","removeAvatar":"Supprimer l'avatar","replyingTo":"En réponse à","reportsToLabel":"Rapporte à","resetBudgetUsage":"Réinitialiser l'utilisation du budget","resetDayHint":"Le jour de la semaine ou du mois où le budget se réinitialise.","resetDayLabel":"Jour de réinitialisation","resetDayMonthly":"Jour du mois (1–28)","resetDayWeekly":"Jour de la semaine (0=Dim)","resetting":"Réinitialisation...","result":"Résultat","resultCreated_one":"","resultCreated_other":"","resultErrors_one":"","resultErrors_other":"","resultSkipped_one":"","resultSkipped_other":"","resume":"Reprendre","resumeAction":"Reprendre","resumeAgentsFailed":"Échec de la reprise des agents : {{error}}","resumeAll":"Tout reprendre","resumeAllAgents":"Reprendre tous les agents","resumeAllConfirm_one":"","resumeAllConfirm_other":"","resumeAllTitle":"Reprendre tous les agents","resumeCountHint_one":"Reprendre {{count}} agent mis en pause","resumeCountHint_other":"Reprendre {{count}} agents mis en pause","resumeCountHint_one_one":"","resumeCountHint_one_other":"","resumeCountHint_other_one":"","resumeCountHint_other_other":"","resumedPast":"repris","resumedSummary_one":"","resumedSummary_other":"","retry":"Réessayer","reviewConfiguration":"Vérifier la configuration générée","reviewHint":"Vérifiez la configuration de votre agent avant de créer.","role":"Rôle","roleCustom":"Personnalisé","roleEngineer":"Ingénieur","roleExecutor":"Exécuteur","roleLabel":"Rôle","roleLabel2":"Rôle","roleMerger":"Fusionneur","roleReviewer":"Réviseur","roleScheduler":"Planificateur","roleTriage":"Triage","roleUpdated":"Rôle de l'agent mis à jour : {{role}}","roleUpdateError":"Échec de la mise à jour du rôle : {{error}}","roleUpdateFailed":"Échec de la mise à jour du rôle : {{error}}","roleUpdateSuccess":"Rôle de l'agent mis à jour : {{role}}","runAriaLabel":"Exécution {{id}}","runDetailsFailed":"Échec du chargement des détails d'exécution","runMissedHeartbeat":"Exécuter le heartbeat manqué","runMissedHeartbeatHint":"Déclencher une exécution si l'agent rate un heartbeat planifié.","running":"En cours","runNow":"Exécuter maintenant","runNowAria":"Exécuter maintenant pour {{name}}","runNowFor":"Exécuter maintenant pour {{name}}","runs":{"empty":"Aucune exécution pour le moment","loading":"Chargement des exécutions…","stop":"Arrêter","stopAriaLabel":"Arrêter l'exécution","stopMessage":"Arrêter cette exécution?","stopTitle":"Arrêter l'exécution"},"runsCount_one":"","runsCount_other":"","runsSuccessRate":"{{rate}}% de taux de réussite","runStarted":"Exécution démarrée","runsToday":"Exécutions aujourd'hui","runStopped":"Exécution arrêtée","runtime":"Exécution","runtimeEmpty":"Aucun environnement d'exécution de plugin disponible","runtimeLabel":"Environnement","runtimeMode":"Mode d'exécution","runtimePlaceholder":"Sélectionner un environnement d'exécution de plugin…","runtimeSource":"Source d'exécution","runtimeSourceBuiltIn":"Modèle intégré","runtimeSourcePlugin":"Environnement d'exécution du plugin","save":"Enregistrer","saveBeforeSwitch":"Enregistrez les modifications avant de changer de fichier","saveCustomInterval":"Enregistrer l'intervalle personnalisé","saveFailed":"Échec de l'enregistrement","saveFile":"Enregistrer le fichier","saveHeartbeatFile":"Enregistrer le fichier heartbeat","saveInstructions":"Enregistrer les instructions","saveMemory":"Enregistrer la mémoire","saveMemoryFile":"Enregistrer le fichier mémoire","saveSettings":"Enregistrer les paramètres","saveSoul":"Enregistrer l'âme","saving":"Enregistrement…","savingChanges":"Enregistrement des modifications...","savingFile":"Enregistrement du fichier...","scopeDisciplineHint":"Contrôle la rigueur avec laquelle l'agent suit son périmètre lors des heartbeats.","searchCompanies":"Rechercher des entreprises…","sectionConfiguration":"Configuration","sectionIdentity":"Identité","sectionRuntime":"Environnement d'exécution","selectAgent":"Sélectionner l'agent {{name}}","selectAgentHint":"Choisissez un agent dans la barre latérale pour voir les détails","selectAllAgents":"Sélectionner tous les agents","selectAllSkills":"Sélectionner toutes les compétences","selectAnAgent":"Sélectionner un agent","selectCompany":"","selectDirectory":"Sélectionner un répertoire","selected":"Sélectionné:","selectedAgentLabel_one":"","selectedAgentLabel_other":"","selectedSkillLabel_one":"","selectedSkillLabel_other":"","selectMemoryFile":"Sélectionner un fichier mémoire","selectModel":"Modèle","selectModelPlaceholder":"Sélectionnez un modèle…","selectRuntime":"Sélectionner un environnement","selectSkill":"Sélectionner la compétence {{name}}","setHeartbeatAria":"Définir l'intervalle de pulsation pour {{name}}","settingsSaved":"Paramètres enregistrés","settingsSaveFailed":"Échec de l'enregistrement des paramètres","setupModeAriaLabel":"Mode de configuration de l'agent","showSystemAgents":"Afficher les agents système","skills":"Compétences","skillsDescription":"Gérez les compétences disponibles pour cet agent.","skillsErrors_one":"","skillsErrors_other":"","skillsFound_one":"","skillsFound_other":"","skillsHint":"Compétences facultatives à attribuer à cet agent","skillsImported_one":"","skillsImported_other":"","skillsNone":"Aucune compétence assignée","skillsSelected_one":"","skillsSelected_other":"","skillsSkipped_one":"","skillsSkipped_other":"","skillsTitle":"Compétences","skipHeartbeatWhenIdle":"Ignorer le heartbeat en inactivité","skipHeartbeatWhenIdleHint":"Éviter d'exécuter des heartbeats quand l'agent n'a rien à faire.","soulDescription":"L'âme définit la personnalité, les valeurs et le style de communication de cet agent.","soulEmptyPreview":"Aucune âme — passez en mode édition pour en ajouter une.","soulHint":"Décrivez qui est cet agent — son caractère, son ton et ses valeurs.","soulPlaceholder":"Décrivez la personnalité et le style de communication de l'agent…","soulSaved":"Âme enregistrée","soulSaveFailed":"Échec de l'enregistrement de l'âme","soulTitle":"Âme","soulTooLong":"Le contenu de l'âme est trop long","start":"Démarrer","starting":"Démarrage...","startOnboarding":"Commencer l'onboarding","stateActive":"Actif","stateAll":"Tous les états","stateError":"Erreur","stateIdle":"Inactif","statePaused":"En pause","stateRunning":"En cours","stateUpdated":"État de l'agent mis à jour : {{state}}","stateUpdateError":"Échec de la mise à jour de l'état : {{error}}","stateUpdateFailed":"Échec de la mise à jour de l'état : {{error}}","stateUpdateSuccess":"État de l'agent mis à jour : {{state}}","status":"Statut","statusCount":"{{activeCount}} actif · {{runningCount}} en cours d'exécution","step":"Étape {{number}}{{total}}: {{name}}","stepAriaLabel":"Étape {{step}}","stop":"Arrêter","stopActiveRun":"Arrêter l'exécution active","stopActiveRunFor":"Arrêter l'exécution active pour {{name}}","stopRun":"Arrêter l'exécution","stopRunConfirm":"Êtes-vous sûr de vouloir arrêter cette exécution ?","stopRunFailed":"Échec de l'arrêt de l'exécution","stopRunTitle":"Arrêter l'exécution","strict":"Strict","successRate":"Taux de réussite","systemDefault":"Défaut système","systemDefaultOnHeartbeat":"Défaut système (sur heartbeat)","systemPrompt":"Invite système","systemPromptNotCaptured":"Invite système non capturée","tabConfig":"Config","tabCustom":"Agent personnalisé","tabDashboard":"Tableau de bord","tabEmployees":"Employés","tabInstructions":"Instructions","tabLogs":"Journaux","tabMail":"Courrier","tabMemory":"Mémoire","tabPresets":"Personas prédéfinis","tabReflections":"Réflexions","tabRuns":"Exécutions","tabSoul":"Âme","tabTasks":"Tâches","taskUpdated":"Tâche mise à jour","templateCompact":"Compact","templateDefault":"Défaut","thinkingHigh":"Élevé","thinkingLevel":"Niveau de réflexion","thinkingLow":"Faible","thinkingMedium":"Moyen","thinkingMinimal":"Minimal","thinkingOff":"Désactivé","throughput":"Débit","title":"Agents","titleLabel":"Titre","titlePlaceholder":"ex. Relecteur de code senior","tokenBudgetHint":"Tokens maximum que cet agent peut utiliser par période de budget.","tokenBudgetLabel":"Budget de tokens","tokenStatistics":"Statistiques d'utilisation des jetons des agents","tokenUsage":"Utilisation des tokens","tokenUsageByAgent":"Utilisation des jetons par agent","tokenUsageTotals":"Totaux d'utilisation des jetons","total":"Total","totalRuns":"Exécutions totales","unknownManager":"Responsable inconnu","unreadMessage":"Non lu","upgradeHint":"Mettre à niveau depuis","upgradeHintSuffix":"vers la dernière version par défaut.","upgradeHintTo":"vers","upgradeToDefault":"Mettre à niveau vers le défaut","upgradeToDefaultAriaLabel":"Mettre à niveau la procédure heartbeat vers le défaut","upgrading":"Mise à niveau...","uploadAvatar":"Télécharger un avatar","usageThresholdHint":"Envoyer un avertissement quand l'utilisation atteint ce pourcentage du budget.","usageThresholdLabel":"Seuil d'avertissement d'utilisation (%)","useGlobalDefault":"Utiliser le défaut global","viewAgent":"Voir l'agent","viewDetailsFor":"Voir les détails de {{name}}","viewHeartbeatMarkdown":"Voir le markdown heartbeat","viewLiveLogs":"Afficher les journaux d'exécution en direct","viewLiveRun":"Voir les détails de l'exécution en cours","viewLiveRunAria":"Voir les détails de l'exécution en cours pour {{name}}","viewLogsFor":"Afficher les journaux en direct pour {{taskId}}","viewSkillDetails":"Voir les détails de la compétence","viewTask":"Voir la tâche","waitingForActivity":"En attente d'activité...","waitingForQuestion":"En attente de la question de l'IA...","waitingOutput":"En attente de sortie...","weekly":"Hebdomadaire","workingOn":"En cours :","zoomIn":"Zoomer","zoomOut":"Dézoomer"}`),u={backendError:{failedFetch:"Impossible de récupérer les projets"},testMode:"Mode test — pas d'appels IA réels"},c={dismissBanner:"Ignorer la bannière de notification d'approbation",needAttention_one:"",needAttention_other:"",openMailbox:"Ouvrir la boîte aux lettres",requestPlural:"demandes",requests:"Demandes d'approbation",requestSingular:"demande"},d={clearAndRetry:"Effacer le jeton et réessayer",pasteToken:"Coller le jeton",relogin:"Reconnecter",reloginRequired:"Reconnexion requise: {{provider}}. Votre session {{provider}} a expiré — reconnectez-vous pour garder les agents en cours d'exécution.",reloginRequiredMultiple:"Reconnexion requise: {{providers}}",replacementToken:"Jeton de remplacement",setAndReload:"Définir le jeton et recharger",tokenRecoveryDescription:"Cette session de tableau de bord ne peut pas s'authentifier auprès du démon. Définissez un jeton de remplacement ou effacez le jeton actuel et réessayez.",tokenRequired:"Jeton d'authentification requis"},p={changeLaunchMode:"Changer le mode de lancement…",connectionError:"Impossible d'atteindre le backend Fusion",couldNotLoad:"Fusion n'a pas pu charger vos projets pour le moment. Veuillez vérifier que le backend fonctionne et réessayez.",error:"Erreur: {{error}}",manageConnection:"Gérer la connexion",retryConnection:"Réessayer la connexion",retrying:"Nouvelle tentative…"},m={confirmMessage:"Cette session est active dans un autre onglet. Ouvrir quand même ?",confirmTitle:"Ouvrir une session active",dismissButton:"Rejeter",pillLabel_one:"",pillLabel_other:"",pillTitle_one:"",pillTitle_other:"",pillTitleWithInput_one:"",pillTitleWithInput_other:"",popoverHeader:"Tâches de fond",status:{activeElsewhere:"actif dans un autre onglet",failed:"Échec",generating:"génération...",needsInput:"nécessite une entrée"},typeLabel:{milestoneInterview:"Entretien Jalon",missionInterview:"Entretien de mission",planning:"Planification",sliceInterview:"Entrevue de tranche",subtask:"Décomposition des sous-tâches"}},h={archived:"Archivé",done:"Terminé",inProgress:"En cours",inReview:"En révision",rejection:{capacityExhausted:"",guardRejected:"",mergeBlocked:"",promoteRejected:"",unknownColumn:"",workflowMismatch:""},todo:"À faire",triage:"Triage"},g={abandonGroup:"",autoMergeEnabled:"Fusion automatique activée",collapseLabel:"Réduire le groupe de branches",completionText:"{{landed}} sur {{total}} membres terminés",expandLabel:"Développer le groupe de branches",groupLabel:"Groupe {{id}}",loadError:"Impossible de charger le groupe de branches",loading:"Chargement du groupe de branches…",mergeIntoMain:"Fusionner le groupe dans main",openPr:"Ouvrir PR",unavailable:"Groupe de branches indisponible"},v={dismiss:"Ignorer l'avertissement de capacité",risk:"Risque de capacité :",status:"À faire {{todoCount}} (seuil {{threshold}}) · En cours {{inProgress}} · En révision {{inReview}} · Agents inactifs {{idleAgents}}"},f={disableWrap:"Désactiver le retour à la ligne automatique",enableWrap:"Activer le retour à la ligne automatique",merged:"Fusionné {{date}}",nextFile:"Fichier suivant (Ctrl+↓)",nextFileAria:"Fichier suivant",noDiff:"Aucun diff disponible pour ce fichier.",previousFile:"Fichier précédent (Ctrl+↑)",previousFileAria:"Fichier précédent",selectFile:"Sélectionnez un fichier pour afficher son diff",title:"Modifications",toggleWrap:"Basculer le retour à la ligne automatique"},b={archive:"Archiver",attachFiles:"Joindre des fichiers",cancel:"Annuler",cancelButton:"Annuler",clearConversationFailed:"Échec de l'effacement de la conversation",closeQuickChat:"Fermer le chat rapide",connectingStatus:"Connexion en cours…",conversationArchived:"Conversation archivée",conversationDeleted:"Conversation supprimée",copyFailed:"Échec de la copie",copyResponse:"Copier la réponse",create:"Créer",createButton:"Créer",createRoom:"Créer un salon",delete:"Supprimer",deleteConversation:"Supprimer la conversation",deleteConversationBody:"Cette action est irréversible. Tous les messages de cette conversation seront définitivement supprimés.",deleteConversationTitle:"Supprimer la conversation ?",deleteRoom:"Supprimer le salon {{name}}",deleteRoomBody:"Cette action est irréversible. Ce salon et tous ses messages seront définitivement supprimés.",deleteRoomTitle:"Supprimer le salon ?",dismissQueuedMessage:"Ignorer le message en file d'attente",failedToArchiveConversation:"Impossible d'archiver la conversation",failedToClearConversation:"Impossible d'effacer la conversation",failedToClearRoomConversation:"Impossible d'effacer la conversation du salon",failedToCreateSession:"Impossible de créer la session de discussion",failedToDeleteConversation:"Impossible de supprimer la conversation",failedToDeleteRoom:"Impossible de supprimer le salon",failedToSendRoomMessage:"Impossible d'envoyer le message dans le salon",failureDetails:"Détails de l'échec",helpMessageContent:"Commandes disponibles :\n- `/new` ou `/clear` — Effacer la conversation et recommencer\n- `/skill:{name}` — Utiliser une compétence spécifique\n- `/help` — Afficher cette aide",jumpToLatest:"Dernier",latest:"Derniers",loadingAgents:"Chargement des agents…",loadingConversation:"Chargement de la conversation…",loadingConversations:"Chargement…",loadingMessages:"Chargement des messages…",loadingModels:"Chargement des modèles…",loadingOlderMessages:"Chargement des messages plus anciens…",loadingSessions:"Chargement des sessions…",loadingSkills:"Chargement des compétences…",mentionNonMember:"Pas membre de {{roomName}}",messageAgentPlaceholder:"Message à {{name}}",messageModelPlaceholder:"Message à {{name}}",messageRoomPlaceholder:"Message #{{name}}",messageSentButReplyFailed:"Message envoyé, mais la réponse de l'assistant a échoué",messageSentButReplyFailedDetail:"Message envoyé, mais la réponse de l'assistant a échoué : {{detail}}",modeAgent:"Agent",modeModel:"Modèle",newChat:"Nouvelle discussion",newChatModeAgent:"Agent",newChatModeModel:"Modèle",newChatTitle:"Nouvelle discussion",noAgentsAvailable:"Aucun agent disponible",noConversationsYet:"Aucune conversation",noMessages:"Aucun message",noMessagesYet:"Aucun message pour l'instant. Démarrez la conversation !",noRoomsYet:"Aucun salon pour l'instant.",noSkillsAvailable:"Aucune compétence disponible",noSkillsFound:"Aucune compétence trouvée",openQuickChat:"Ouvrir le chat rapide",queuedMessage:"En file d'attente : {{preview}}",quickChatTitle:"Chat rapide",relativeTimeDays_one:"",relativeTimeDays_other:"",relativeTimeHours_one:"",relativeTimeHours_other:"",relativeTimeJustNow:"à l'instant",relativeTimeMinutes_one:"",relativeTimeMinutes_other:"",removeAttachment:"Supprimer {{name}}",resizePanelBottom:"Redimensionner le panneau depuis le bas",resizePanelBottomLeft:"Redimensionner le panneau depuis le coin inférieur gauche",resizePanelBottomRight:"Redimensionner le panneau depuis le coin inférieur droit",resizePanelLeft:"Redimensionner le panneau depuis la gauche",resizePanelRight:"Redimensionner le panneau depuis la droite",resizePanelTop:"Redimensionner le panneau depuis le haut",resizePanelTopLeft:"Redimensionner le panneau depuis le coin supérieur gauche",resizePanelTopRight:"Redimensionner le panneau depuis le coin supérieur droit",resizeSidebar:"Redimensionner la barre latérale",responseCopied:"Réponse copiée",responseFailed:"Échec de la réponse",roomMemberCount_one:"",roomMemberCount_other:"",roomsGroupLabel:"Canaux",scopeDirect:"Direct",scopeRooms:"Salons",scrollMessageToTop:"Faire défiler le message vers le haut",searchConversations:"Rechercher des conversations…",selectAgentForNewChat:"Sélectionner un agent pour le nouveau chat",selectAgentPlaceholder:"Sélectionnez un agent pour commencer à discuter",selectModel:"Choisir un modèle",selectModelOverrideLabel:"Sélectionner le modèle de remplacement",selectModelPlaceholder:"Sélectionnez un modèle pour commencer à discuter",selectModelPlaceholder2:"Sélectionner un modèle",selectRoomOrCreate:"Sélectionnez un salon ou créez-en un",selectSession:"Sélectionner une session",selectSessionLabel:"Sélectionner une session",sendMessageFailed:"Échec de l'envoi du message",sendRoomMessageFailed:"Échec de l'envoi du message dans le canal",sessionsGroupLabel:"Sessions",showPlainText:"Afficher le texte brut",showRenderedMarkdown:"Afficher le markdown rendu",skillSuggestions:"Suggestions de compétences",startNewChat:"Démarrer une nouvelle conversation",startNewConversation:"Commencer une nouvelle conversation",stopGeneration:"Arrêter la génération",thinking:"Réflexion",thinkingLabel:"Réflexion",thinkingStatus:"Réflexion en cours…",toolCalls:"Appels d'outils",toolCallsCount_one:"",toolCallsCount_other:"",typeMessage:"Tapez un message…",unreadMessages:"Messages non lus",untitledSession:"Sans titre",you:"Vous"},A={error:{deliveredButRefreshFailed:"Message envoyé, mais impossible d'actualiser les réponses",failedToLoad:"Impossible de charger les salons de discussion",failedToUpload:"Échec du téléversement de la pièce jointe : {{filename}}",selectRoomFirst:"Sélectionnez une salle avant d'envoyer un message"}},C={installBody:"Obtenez les commandes {{fn}} et {{fusion}} sur votre terminal pour pouvoir piloter Fusion de n'importe où. Un clic ci-dessous ou copiez la commande dans votre shell.",installButton:"Installer avec npm",installing:"Installation en cours…",installTitle:"Installer la CLI Fusion",openSettings:"Ouvrir les paramètres",updateButton:"Mettre à jour avec npm",updateTitle:"Mettre à jour la CLI Fusion",updating:"Mise à jour en cours…",versionMismatchInfix:"mais ce tableau de bord s'attend à",versionMismatchPrefix:"Votre",versionMismatchSuffix:"Mettez à jour pour rester synchronisé."},S={checking:"Vérification…",copied:"Copié",copy:"Copier",failedExit:"Installation échouée (code de sortie {{code}})",heading:"Binaire CLI",help:"L'installation du CLI global vous permet d'exécuter fn et fusion depuis n'importe quel terminal. Les automatisations et les scripts fonctionnent sans cela via npx, mais une installation globale est plus rapide et plus pratique.",installing:"Installation…",installWithNpm:"Installer avec npm",notOnPath:"Ni fn ni fusion n'ont été trouvés sur PATH.",orCopyLabel:"Ou copiez et exécutez vous-même :",refresh:"Actualiser",reinstall:"Réinstaller",stateCheckDisabled:"Vérification désactivée",stateInstalled:"Installé",stateMissing:"Non installé",stateVersionMismatch:"Incohérence de version",succeededDuration:"Installation réussie en {{duration}} s"},T={actionsAriaLabel:"Actions de colonne {{columnLabel}}",actionsTitle:"Actions de colonne",archiveAllDoneAriaLabel:"Archiver toutes les tâches terminées",archiveAllDoneTitle:"Archiver toutes les tâches terminées",archiveAllMessage_one:"",archiveAllMessage_other:"",archiveAllTitle:"Archiver tout ce qui est terminé",archivedTasks_one:"",archivedTasks_other:"",autoMerge:"Fusion automatique",autoMergeDisabled:"Fusion automatique désactivée",autoMergeEnabled:"Fusion automatique activée",cancelMove:"Annuler le déplacement",collapseArchivedLabel:"Réduire les tâches archivées",collapseArchivedTitle:"Réduire les tâches archivées",expandArchivedLabel:"Développer les tâches archivées",expandArchivedTitle:"Développer les tâches archivées",failedToArchive:"Échec de l'archivage des tâches",keepProgress:"Conserver la progression",loadMore_one:"",loadMore_other:"",moveAllToTodo:"Déplacer tout vers À faire",moveAllToTodoMessage_one:"",moveAllToTodoMessage_other:"",moveAllToTodoTitle:"Déplacer tout vers À faire",movedToPlanning_one:"",movedToPlanning_other:"",movedToTodo_one:"",movedToTodo_other:"",movePartialFailure:"{{moved}} tâche(s) sur {{total}} déplacée(s) ; {{failed}} échouée(s)",moveToTodoHint_one:"",moveToTodoHint_other:"",moveToTodoPartialFailure:"{{moved}} tâche(s) sur {{total}} déplacée(s) vers À faire ; {{failed}} échouée(s)",newTask:"Nouvelle tâche",noManuallyPausableTasks:"Aucune tâche pouvant être mise en pause manuellement",noTasks:"Aucune tâche",noTasksInColumn:"Aucune tâche dans cette colonne",pauseHint_one:"",pauseHint_other:"",preserveProgressMessage:"Cette tâche a des étapes terminées. Conserver la progression avant de déplacer ?",preserveProgressMoveTodoMessage:"Certaines tâches ont des étapes terminées. Conserver la progression avant de déplacer vers À faire ?",preserveProgressTitle:"Conserver la progression ?",promote:"",promoting:"",replanAll:"Replanifier tout",replanAllHint_one:"",replanAllHint_other:"",replanAllMessage_one:"",replanAllMessage_other:"",replanAllTitle:"Replanifier toutes les tâches",resetProgress:"Réinitialiser la progression",resetProgressConfirm:"Réinitialiser la progression",resetProgressMessage:"Réinitialiser la progression de toutes les étapes avant de déplacer cette tâche ?",resetProgressMoveTodoMessage:"Réinitialiser la progression des étapes des tâches avant de déplacer vers À faire ?",resetProgressTitle:"Réinitialiser la progression ?",stopAll:"Arrêter tout",stopAllMessage_one:"",stopAllMessage_other:"",stopAllTitle:"Arrêter toutes les tâches",stopPartialFailure:"{{paused}} tâche(s) sur {{total}} arrêtée(s) ; {{failed}} échouée(s)",stoppedTasks_one:"",stoppedTasks_other:""},k={addButton:"Ajouter un commentaire",addedSuccess:"Commentaire ajouté",deletedSuccess:"Commentaire supprimé",deletingButton:"Suppression en cours…",editedSuffix:"(modifié)",emptyState:"Pas encore de commentaires.",heading:"Commentaires",placeholder:"Ajouter un commentaire",postingButton:"Publication en cours…",updatedSuccess:"Commentaire mis à jour"},L={filesChanged_one:"",filesChanged_other:""},P={error:"Erreur lors du chargement du diff de commit : {{error}}",loadError:"Échec du chargement du diff de commit",loading:"Chargement du diff de commit...",mergedOnly:"Le diff de commit n'est disponible que pour les tâches fusionnées.",noFiles:"Aucun fichier modifié dans ce commit.",noSha:"Aucun SHA de commit disponible."},y={archive:"",back:"Retour",cancel:"Annuler",close:"Fermer",closeAriaLabel:"Fermer",continue:"Continuer",create:"Créer",delete:"Supprimer",edit:"Modifier",editMode:"Modifier",learnMore:"En savoir plus →",loading:"Chargement",no:"Non",noDataAvailable:"Aucune donnée disponible",nothingToShow:"Il n'y a rien à afficher pour le moment.",preview:"Aperçu",previewMode:"Aperçu",refresh:"Actualiser",retry:"Réessayer",save:"Enregistrer",saveAndTest:"Enregistrer et tester",saving:"Enregistrement…",skip:"",somethingWentWrong:"Une erreur s'est produite lors du chargement de cette vue.",stop:"Arrêter",test:"Tester",testing:"Test en cours…",total:"total",tryAgain:"",unableToLoadData:"Impossible de charger les données",unknown:"Inconnu",unsavedChanges:"Modifications non enregistrées",yes:"Oui",dismiss:"Rejeter"},x={loadingAgents:"Chargement des agents…",messageId:"Message {{id}}",messageLabel:"Message :",messagePlaceholder:"Saisissez votre message…",newMessageTitle:"Nouveau message",noAgentsAvailable:"Aucun agent disponible",replyingToLabel:"Répondre à :",replyTitle:"Répondre",selectAgent:"Sélectionnez un agent…",sendingButton:"Envoi en cours…",toLabel:"À :",wakeAgentCheckbox:"Réveiller l'agent immédiatement",wakeAlwaysImmediate:"(l'agent est déjà en mode de réponse immédiate)",wakeOneOff:"(remplacement ponctuel pour ce message uniquement)"},D={cancel:"Annuler",closeDialog:"Fermer la boîte de dialogue de confirmation",confirm:"Confirmer"},R={aiReasoning:"Raisonnement IA",aiThinking:"réflexion IA",confirm:{no:"Non",yes:"Oui"},hide:"Masquer {{type}}",show:"Afficher {{type}}",yourResponse:"Votre réponse"},I={create:"Créer une salle",creating:"Création en cours...",failedCreate:"Échec de la création de la salle.",failedLoadAgents:"Échec du chargement des agents.",loadingAgents:"Chargement des agents...",members:"Membres",nameLabel:"Nom de la salle",noAgents:"Aucun agent dans ce projet pour le moment.",noMatch:"Aucun agent ne correspond à votre recherche.",searchAgents:"Rechercher des agents",selectMember:"Sélectionnez au moins un membre.",title:"Créer une salle"},M={initializingDashboard:"Initialisation du tableau de bord...",loadingMessage:"Chargement du tableau de bord Fusion",loadingProgress:"Progression du chargement du tableau de bord",updatingMessage:"Mise à jour du tableau de bord Fusion",updatingVersion:"Mise à jour vers une nouvelle version de l'interface..."},F={body:"La vérification d'intégrité SQLite en arrière-plan de Fusion a signalé une corruption. Veuillez examiner les objets défaillants ci-dessous avant de continuer les opérations critiques.",instructions:"Sauvegardez le projet, essayez {{cmd}} si la base de données s'ouvre toujours correctement, et restaurez à partir d'une sauvegarde connue bonne si la corruption persiste. Consultez {{link}} pour la disposition du stockage et les conseils de récupération.",lastChecked:"Dernier contrôle : {{checkedAtLabel}}",refreshHealth:"Actualiser la santé",refreshing:"Actualisation…",title:"Corruption de base de données détectée",whatToDo:"Que faire :"},w={projectNotFound:"Projet '{{id}}' introuvable",taskNotFound:"Tâche {{id}} introuvable"},q={chooseMode:"Comment voulez-vous exécuter Fusion ?",chooseModeDescription:"Exécutez Fusion localement dans cette application ou connectez-vous à un serveur Fusion que vous exécutez déjà ailleurs.",connectRemoteButton:"Se connecter à Fusion distant",couldNotStart:"Impossible de démarrer Fusion local",loading:"Chargement de Fusion…",opening:"Ouverture…",retry:"Réessayer",runLocalButton:"Exécuter Fusion localement",settingUpRemote:"Configuration de la connexion distante…",starting:"Démarrage…",startingLocalRuntime:"Démarrage du runtime Fusion local…"},j={allSeverities:"Tous les niveaux de sévérité",auto:"Auto",autoDetected:"Détecté automatiquement : {{url}}",change:"Modifier",clear:"Effacer",command:"Commande",configuration:"Configuration",embedded:"Intégré",embeddedPreviewDisabled:"L'aperçu intégré est désactivé. Ouvrez votre application dans un onglet de navigateur séparé.",enterFullscreen:"Passer en mode plein écran pour les journaux",errBadge:"ERR",error:"Erreur",exitFullscreen:"Quitter le mode plein écran des journaux",externalOnly:"Externe uniquement",filterBySeverity:"Filtrer les journaux par sévérité",info:"Info",lines:"lignes",lines_one:"",lines_other:"",loading:"Chargement...",loadingConfig:"Chargement de la configuration du serveur de développement...",loadingLogs:"Chargement des journaux…",loadingOlderLogs:"Chargement des anciens journaux…",loadOlderLogs:"Charger les anciens journaux",logs:"Journaux",lostConnection:"Connexion au flux de journaux perdue.",manual:"Manuel",matchCount_one:"",matchCount_other:"",newLogs:"Nouveaux journaux",noLogsYet:"Aucun journal pour le moment. Démarrez le serveur de développement pour voir la sortie.",noMatchesSearch:"Aucune ligne de journal ne correspond à votre recherche.",noMatchesSeverity:"Aucune ligne de journal ne correspond à la sévérité sélectionnée.",noPreviewDetected:"Aucune URL d'aperçu détectée. Démarrez le serveur de développement ou définissez une URL manuelle pour prévisualiser votre application.",noPreviewUrl:"Pas d'URL d'aperçu",noScriptsDetected:"Aucun script de serveur de développement détecté. Vérifiez que votre projet a un package.json avec un script dev, start ou similaire.",notAvailable:" · Non disponible",openInNewTab:"Ouvrir dans un nouvel onglet",openPreviewInNewTab:"Ouvrir l'aperçu dans un nouvel onglet",openPreviewOrRetry:"Ouvrez l'aperçu dans un nouvel onglet, ou réessayez le mode intégré après vérification de vos paramètres de serveur.",preview:"Aperçu",previewBlocked:"Aperçu bloqué",previewFailed:"Aperçu échoué",previewUrlOverride:"Remplacer l'URL d'aperçu",refreshPreview:"Actualiser l'aperçu",restart:"Redémarrer",restarting:"Redémarrage...",retry:"Réessayer",retryEmbeddedPreview:"Réessayer l'aperçu intégré",runningCommand:"Commande en cours d'exécution",save:"Enregistrer",scriptSelection:"Sélection du script",searchLogs:"Rechercher dans les journaux",start:"Démarrer",startDevServer:"Démarrez un serveur de développement pour voir un aperçu en direct ici.",starting:"Démarrage...",status:{failed:"Échoué",running:"En cours d'exécution",starting:"Démarrage...",stopped:"Arrêté",stopping:"Arrêt..."},stop:"Arrêter",stopping:"Arrêt...",title:"Serveur de développement",toast:{clearedScript:"Script du serveur de développement sélectionné effacé.",enterCommand:"Entrez une commande avant de démarrer le serveur de développement.",previewCleared:"Remplacement de l'URL de prévisualisation effacé.",previewUpdated:"URL de prévisualisation mise à jour.",restarted:"Serveur de développement redémarré.",selectedScript:"Script {{name}} sélectionné.",started:"Serveur de développement démarré.",stopped:"Serveur de développement arrêté."},warn:"Avertissement"},E={ariaLabel:"Navigateur de répertoires",browse:"Parcourir",cancel:"Annuler",closeBrowser:"Fermer le navigateur de répertoires",createFolder:"Nouveau dossier",createFolderAria:"Créer un nouveau dossier",createFolderConfirm:"Créer",createFolderError:"Le nom du dossier ne peut pas contenir de séparateurs de chemin ou '..'",createFolderTitle:"Créer un dossier",defaultPlaceholder:"/chemin/vers/votre/projet",hideHidden:"Masquer les fichiers cachés",hideHiddenAria:"Masquer les répertoires cachés",hideHiddenTitle:"Masquer les fichiers cachés",loading:"Chargement…",newFolderPlaceholder:"Nom du dossier",noSubdirs:"Aucun sous-répertoire",openBrowser:"Parcourir les répertoires",parentDir:"Aller au répertoire parent",parentDirTitle:"Répertoire parent",select:"Sélectionner",showHidden:"Afficher les fichiers cachés",showHiddenAria:"Afficher les répertoires cachés",showHiddenTitle:"Afficher les fichiers cachés",up:"Haut"},H={actions:{addMount:"Ajouter un montage",addVariable:"Ajouter une variable",cancel:"Annuler",createNode:"Créer un nœud Docker"},ariaLabels:{closeModal:"Fermer la fenêtre modale d'intégration",modal:"Intégration des nœuds Docker",removeMount:"Supprimer le montage du volume",removeVariable:"Supprimer la variable d'environnement"},available:"Docker est disponible{{version}}",caPath:"Chemin du certificat CA",certPath:"Chemin du certificat client",connected:"Connecté{{version}}",connectionFailed:"Connexion échouée",container:"Conteneur :",context:"Contexte Docker",creatingNode:"Création du nœud Docker...",errors:{cpusMinimum:"Les processeurs doivent être au moins 0,5",memoryMinimum:"La mémoire doit être d'au moins 512 Mo",nameRequired:"Le nom est requis et ne doit pas dépasser 64 caractères",urlRequired:"L'URL est obligatoire"},failedAt:"Échec à : {{stage}}",failedMessage:"Approvisionnement échoué",host:"Hôte Docker",hostPlaceholder:"tcp://host:2376",keyPath:"Chemin de la clé client",labels:{apiKey:"Clé API",cpus:"Processeurs",image:"Image",memory:"Mémoire (MB)",nodeName:"Nom du nœud",reachableUrl:"URL accessible",tag:"Étiquette"},local:"Docker local",notFound:"Docker introuvable{{error}}",notFoundError:"Docker introuvable : {{message}}",options:{autoGenerate:"Générer automatiquement",claudeCli:"Claude CLI",droidCli:"Droid CLI",persistentStorage:"Conserver les données entre les recréations de conteneurs",provideManually:"Fournir manuellement"},placeholders:{apiKey:"Entrez la clé API",containerPath:"Chemin du conteneur",envVarKey:"CLÉ",envVarValue:"Valeur",hostPath:"Chemin d'accès à l'hôte",image:"runfusion/fusion",nodeName:"my-docker-node",tag:"latest"},provisionedIn:"Provisionné en {{durationSec}}s",refreshContexts:"Actualiser les contextes",remote:"Hôte distant",retry:"Réessayer",sections:{advanced:"Avancé",environmentVariables:"Variables d'environnement",requiredSettings:"Paramètres requis",volumeMounts:"Montages de volumes"},selectContext:"Sélectionner le contexte",stage:{creatingContainer:"Création du conteneur...",pullingImage:"Téléchargement de l'image...",registeringNode:"Enregistrement du nœud...",startingContainer:"Démarrage du conteneur..."},states:{creating:"Création en cours..."},successMessage:"Nœud créé avec succès !",targetMode:"Mode cible Docker",testConnection:"Tester la connexion",testing:"Test en cours...",titles:{provisionNode:"Provisionner un nœud Docker"},useTls:"Utiliser TLS",verifyTls:"Vérifier le certificat TLS",viewNode:"Afficher le nœud"},z={backToFiles:"Retour aux fichiers",backToFilesList:"Retour à la liste des fichiers du projet",clearSearch:"Effacer la recherche",collapse:"Réduire",collapseContent:"Réduire le contenu",docCount_one:"",docCount_other:"",documentsCreatedIn:"Les documents sont créés dans les onglets de détail des tâches.",expand:"Développer",expandContent:"Développer le contenu",failedToLoad:"Erreur lors du chargement {{type}}: {{error}}",hideHidden:"Masquer les fichiers projet cachés",hideHiddenFiles:"Masquer les fichiers cachés",hideHiddenLabel:"Masquer les éléments cachés",loadingFileContent:"Chargement du contenu du fichier…",loadingProjectFiles:"Chargement des fichiers markdown du projet…",loadingTaskDocuments:"Chargement des documents des tâches…",markdown:"Markdown",noMarkdownFiles:"Aucun fichier markdown trouvé dans ce projet.",noMatchProject:"Aucun fichier markdown du projet ne correspond à « {{query}} ».",noMatchTask:"Aucun document de tâche ne correspond à « {{query}} ».",noTaskDocuments:"Aucun document de tâche pour le moment.",openTask:"Ouvrir la tâche",plain:"Brut",projectFiles:"fichiers du projet",projectFilesTab:"Fichiers du projet",resultCount_one:"",resultCount_other:"",retry:"Réessayer",retryLoading:"Réessayer de charger les documents",searchProjectFiles:"Rechercher les fichiers markdown du projet…",searchTaskDocuments:"Rechercher les documents des tâches…",selectFile:"Sélectionnez un fichier markdown pour voir son contenu.",showHidden:"Afficher les fichiers projet cachés",showHiddenFiles:"Afficher les fichiers cachés",showHiddenLabel:"Afficher les éléments cachés",showProjectFiles:"Afficher les fichiers markdown du projet",showTaskDocuments:"Afficher les documents des tâches",switchToMarkdown:"Passer en markdown",switchToPlainText:"Passer en texte brut",taskDocuments:"documents des tâches",taskDocumentsTab:"Documents des tâches",title:"Documents",untitled:"Sans titre"},_={active:"Actif",cardTitle:"Factory AI — via Droid CLI",connectedVersion:"Connecté{{version}}",description:"Acheminez les appels d'IA via votre CLI droid installé localement. Utilise votre abonnement/quota Factory AI existant au lieu d'une clé API.",details:"Détails",detected:"droid {{version}} détecté{{path}}. Cliquez sur Activer pour acheminer les appels d'IA via celui-ci.",disable:"Désactiver",disabling:"Désactivation…",droidNotFound:"droid introuvable sur PATH",enable:"Activer",enabledValidating:"Activé. Validation…",enabling:"Activation…",extensionFailed:"Échec du chargement de l'extension : {{reason}}",modelsHidden:"Les modèles Factory AI (via Droid CLI) sont masqués dans le sélecteur de modèles.",modelsNowVisible:"Les modèles Factory AI (via Droid CLI) sont maintenant visibles dans le sélecteur de modèles.",notConnected:"Non connecté",notInstalled:"Non installé",notOnPath:"Binaire droid non détecté sur PATH — installez d'abord Droid CLI.",probingCli:"Sonde CLI locale…",restartRequired:"Redémarrage requis : redémarrez votre session CLI/chat active pour que les modifications de routage prennent effet.",test:"Test",testing:"Test…",toastDisabled:"Désactivé",toastEnabled:"Activé"},N={cancel:"Annuler",createAnyway:"Créer quand même",message:"Nous avons trouvé des tâches actives similaires. Ouvrez une tâche existante ou créez celle-ci quand même.",open:"Ouvrir",title:"Doublons possibles",untitledTask:"Tâche sans titre"},B={failedLoadFile:"Impossible de charger le fichier",failedSaveFile:"Impossible d'enregistrer le fichier",failedToLoadFile:"Échec du chargement du fichier",failedToSaveFile:"Échec de l'enregistrement du fichier"},O={allRuns:"Toutes les exécutions",disabledTitle:"Les évaluations programmées sont désactivées",empty:"Aucune évaluation pour le moment. Les évaluations programmées examinent les tâches complétées depuis la dernière exécution.",enablePrompt:"Activez les évaluations programmées pour examiner les tâches notées, les preuves et les recommandations de suivi.",evidenceHeading:"Preuves",loading:"Chargement des évaluations…",maxScorePlaceholder:"Score max",minScorePlaceholder:"Score min",naPlaceholder:"s/o",noFollowups:"Aucun",noRationale:"Aucune justification enregistrée.",openSettings:"Ouvrir les paramètres des évaluations programmées",overallScore:"Score global : {{score}}",refreshAria:"Actualiser les évaluations",searchPlaceholder:"Rechercher une tâche ou une justification",selectPrompt:"Sélectionnez une évaluation pour inspcter les scores, la justification et les preuves.",suggestedFollowupsHeading:"Tâches de suivi suggérées"},U={blocked:"Bloqué",daysAgo_one:"",daysAgo_other:"",escalated:"Escaladé",escalatedSuffix:" (escaladé)",hideProjectDir:"Masquer le répertoire du projet",hoursAgo_one:"",hoursAgo_other:"",inReview:"En révision",justNow:"à l'instant",loading:"Chargement...",minutesAgo_one:"",minutesAgo_other:"",noActivity:"aucune activité",overlapBottleneck_one:"",overlapBottleneck_other:"",overlapQueue:"File de chevauchement",queued:"En attente",running:"En cours",secondsAgo_one:"",secondsAgo_other:"",showProjectDir:"Afficher le répertoire du projet",stateIdle:"Inactif",statePaused:"En pause",stateRunning:"En cours d'exécution",status:"État de l'exécuteur",stuck:"Bloqué",temporary:"Temporaire"},G={back:"Retour à la liste des fichiers",binaryReadOnly:"Fichier binaire — lecture seule",contextCopy:"Copier",contextDelete:"Supprimer",contextDownload:"Télécharger",contextDownloadZip:"Télécharger au format ZIP",contextMenuLabel:"Opérations sur les fichiers",contextMove:"Déplacer",contextRename:"Renommer",copy:"Copier",copyPlaceholder:"Chemin de destination",copyTitle:"Copier",delete:"Supprimer",deleteConfirm:"Êtes-vous sûr de vouloir supprimer {{name}} ?",deleteRecursive:"Cela supprimera récursivement tout le contenu.",deleteTitle:"Supprimer {{type}}",deleting:"Suppression en cours...",emptyDirectory:"(répertoire vide)",error:"Erreur : {{message}}",loading:"Chargement…",loadingFiles:"Chargement des fichiers...",modalTitle:"Fichiers — {{workspace}}",modified:"Modifié : {{date}}",move:"Déplacer",movePlaceholder:"Chemin de destination",moveTitle:"Déplacer",operationFailed:"L'opération a échoué",operationSuffix:"ing...",rename:"Renommer",renamePlaceholder:"Nouveau nom",renameTitle:"Renommer",resizeSidebar:"Redimensionner la barre latérale",root:"Racine",saving:"Enregistrement…",selectFileToEdit:"Sélectionner un fichier à modifier",toggleEditorOptions:"Basculer les options de l'éditeur",typeFile:"Fichier",typeFolder:"Dossier",unsavedChanges:"Modifications non enregistrées",upOneLevel:"Remonter d'un niveau",workspaceProject:"Projet"},V={edit:"Modifier",editMode:"Mode édition",editorFor:"Éditeur pour {{filePath}}",fileEditor:"Éditeur de fichier",lineNumber:"Ligne #",preview:"Aperçu",previewMode:"Mode aperçu",toggleLineNumbers:"Basculer les numéros de ligne",toggleOptions:"Basculer les options de l'éditeur",toggleWordWrap:"Basculer le retour à la ligne automatique",wrap:"Retour"},W={empty:"Aucune tâche ou fichier trouvé",fileHeader:"Fichiers",fileMatches:"Fichiers correspondants",taskHeader:"Tâches",taskMatches:"Tâches correspondantes"},J=JSON.parse(`{"add":"Ajouter","addRemote":"Ajouter un distant","advancesHelpFix":"<strong>Correctif :</strong> Fusion n'affiche <em>Synchroniser l'arbre de travail</em> que lorsqu'au moins une avance est réellement <code>pending</code> et que HEAD n'est pas aligné sur la pointe d'intégration. Si les entrées sont déjà traitées (subsumed/orphaned/reachable/superseded), aucune action de synchronisation n'est proposée.","advancesHelpIntro":"Chaque entrée est une tâche Fusion dont le commit squash a fait avancer la référence de la branche d'intégration (<branchCode>{{integrationBranch}}</branchCode>). Le <em>résultat de la synchronisation automatique</em> indique si votre arbre de travail a également été fast-forwardé vers cette nouvelle pointe.","advancesHelpItem1":"<c1>clean-sync</c1> / <c2>synced-with-edits-restored</c2> — l'arbre de travail est synchronisé ; rien à faire.","advancesHelpItem2":"<c1>reachable</c1> / <c2>subsumed</c2> / <c3>orphaned</c3> / <c4>superseded</c4> — déjà traité (y compris les réécritures d'historique où un contenu équivalent a déjà atterri, les SHAs originaux ont disparu, ou HEAD est déjà aligné sur la pointe d'intégration réécrite).","advancesHelpItem3":"<c1>pending</c1> + <c2>off / not run</c2> — la synchronisation automatique est désactivée dans les Paramètres ; la référence de branche a bougé mais votre arbre de travail n'a pas suivi.","advancesHelpItem4":"<c1>pending</c1> + <c2>stash-failed</c2> / <c3>would-conflict</c3> / similaire — la synchronisation automatique a tenté mais n'a pas pu réconcilier (généralement les modifications locales entrent en conflit avec le nouveau commit).","advancesNeedAction_one":"","advancesNeedAction_other":"","aheadOfUpstream_one":"","aheadOfUpstream_other":"","aligned":"Aligné","apply":"Appliquer","applyStashKeep":"Appliquer la remise (conserver)","autoMergeDisabled":"Fusion automatique désactivée","autoMergeEnabled":"Fusion automatique activée","autoMergeUpdateFailed":"Échec de la mise à jour de la fusion automatique","autoMergeWhenGreen":"Fusion automatique si vert","autoMergeWillHandle":"La fusion automatique gérera cette tâche automatiquement.","autoMovedToTodo":"Déplacé automatiquement vers À faire — retours du relecteur disponibles","autoSyncOffNotRun":"sync auto : désactivée / non exécutée","autoSyncOutcome":"sync auto : {{outcome}}","awaitingPrChecks":"En attente des vérifications requises ou des retours de revue avant la fusion automatique.","backToIssuesList":"Retour à la liste des tickets","backToPullsList":"Retour à la liste des pull requests","baseHead":"Base : HEAD","behindUpstream_one":"","behindUpstream_other":"","branchLabel":"Branche :","cancel":"Annuler","capturedAt":"Capturé :","changesStashed":"Modifications remisées","checkout":"Basculer","chooseAnotherRepo":"Choisissez un autre dépôt.","clickToViewDiff":"Cliquer pour voir le diff","close":"Fermer","closeModalAriaLabel":"Fermer la fenêtre d'importation","commentLast":"Dernier :","commit":"Commiter","commitMessagePlaceholder":"Message de commit…","commitsOnBranch":"Commits sur {{name}}","commitStagedChanges":"Commiter les modifications indexées","commitsToPull_one":"","commitsToPull_other":"","commitsToPush_one":"","commitsToPush_other":"","commitsToPushHeader_one":"","commitsToPushHeader_other":"","committedHash":"Commit effectué : {{hash}}","conflictedCount_one":"","conflictedCount_other":"","conflictReclaimFailed":"Échec de la mise en file d'attente de la récupération du conflit","conflictReclaimQueued":"Récupération du conflit mise en file d'attente","conflictReclaimUnavailable":"Récupération du conflit indisponible","conflictsButton":"Conflits","copiedButton":"Copié","copiedLabel":"Copié : {{label}}","copiedToClipboard":"Copié dans le presse-papiers","copyButton":"Copier","copyCommitHashLabel":"hash du commit","copyFetchUrl":"Copier l'URL de fetch","copyFullCommitHashLabel":"hash complet du commit","copyFullHash":"Copier le hash complet","copyFullShaTitle":"Copier le SHA complet (40 caractères)","copyPushUrl":"Copier l'URL de push","copyShortHashTitle":"Copier le hash court du commit","copyShortHashTitleWithFull":"Copier le hash court du commit (utiliser le SHA complet ci-dessous pour les opérations git)","couldNotLoadIssues":"Impossible de charger les tickets","couldNotLoadPulls":"Impossible de charger les pull requests","create":"Créer","createdBranch":"Branche {{name}} créée","createPrButton":"Créer une PR","createPrTitle":"Créer une PR pour cette tâche","defaultBadge":"défaut","deleteBranch":"Supprimer","deleteBranchMessage":"Supprimer la branche « {{name}} » ?","deleteBranchTitle":"Supprimer la branche","deletedBranch":"Branche {{name}} supprimée","detectingRemotes":"Détection en cours…","diffColon":"diff :","discardChangesMessage_one":"","discardChangesMessage_other":"","discardChangesTitle":"Supprimer les modifications","discardedFiles_one":"","discardedFiles_other":"","discardSelected":"Supprimer la sélection","dismiss":"Ignorer","dismissPrError":"Ignorer l'erreur de PR","dropStash":"Supprimer le stash","dropStashMessage":"Supprimer stash@{{{index}}} ? Cette action est irréversible.","dropStashTitle":"Supprimer la remise","editRemoteName":"Modifier le nom du distant","editRemoteUrl":"Modifier l'URL du distant","failedToAddRemote":"Échec de l'ajout du distant","failedToApplyStash":"Échec de l'application de la remise","failedToCheckoutBranch":"Échec du basculement de branche","failedToCommit":"Échec du commit","failedToCopy":"Échec de la copie","failedToCreateBranch":"Échec de la création de la branche","failedToDeleteBranch":"Échec de la suppression de la branche","failedToDiscardChanges":"Échec de la suppression des modifications","failedToDropStash":"Échec de la suppression de la remise","failedToFetchData":"Échec de la récupération des données git","failedToFetchIssues":"Impossible de récupérer les tickets","failedToFetchPulls":"Impossible de récupérer les pull requests","failedToImportIssue":"Impossible d'importer le ticket","failedToImportPull":"Impossible d'importer la pull request","failedToLoadDiff":"Échec du chargement du diff","failedToLoadFileDiff":"Échec du chargement du diff de fichier","failedToLoadRemoteCommits":"Échec du chargement des commits distants","failedToLoadRemotes":"Échec du chargement des distants","failedToLoadStashDiff":"Échec du chargement du diff de remise","failedToRemoveRemote":"Échec de la suppression du distant","failedToRenameRemote":"Échec du renommage du distant","failedToStageFiles":"Échec de l'indexation des fichiers","failedToStashChanges":"Échec de la remise des modifications","failedToUnstageFiles":"Échec du retrait de l'index","failedToUpdateRemoteUrl":"Échec de la mise à jour de l'URL du distant","fetch":"Récupérer","fetchCompleted":"Récupération terminée","fetchFailed":"Échec de la récupération","fetchingFromGitHub":"Récupération de la dernière liste depuis GitHub.","fetchLabel":"Fetch :","fetchUrlLabel":"URL de fetch","filterBranches":"Filtrer les branches…","filterByLabelsLabel":"Filtrer par étiquettes","filterByLabelsPlaceholder":"Filtrer : bug,enhancement…","filterIssuesByLabels":"Filtrer les tickets par étiquettes","fnCreatingPr":"fn crée automatiquement une pull request pour cette tâche.","fnMergingPr":"fn fusionne automatiquement cette pull request.","forceDeleteBranchMessage":"La branche contient des commits non fusionnés. Forcer la suppression ?","forceDeleteBranchTitle":"Forcer la suppression de la branche","forceDeletedBranch":"Branche {{name}} supprimée de force","fullShaAbbrev":"complet","ghAuthLoginHint":"Exécutez {{code}} pour activer la création de PR.","headAheadOfIntegration_one":"","headAheadOfIntegration_other":"","headAheadOfOriginIntegration_one":"","headAheadOfOriginIntegration_other":"","headVsIntegration":"HEAD vs {{branch}}","headVsOriginIntegration":"HEAD vs origin/{{branch}}","hide":"Masquer","hideExplanation":"Masquer l'explication","import":"Importer","imported":"Importé","importedCount_one":"","importedCount_other":"","importFromGitHub":"Importer depuis GitHub","importSubtitle":"Choisissez un dépôt distant détecté, chargez les tickets ou pull requests ouverts, et importez-en un dans le tableau.","importTypeAriaLabel":"Type d'importation","integrationAheadOfHead_one":"","integrationAheadOfHead_other":"","issueCount_one":"","issueCount_other":"","load":"Charger","loadFromRepoAriaLabel":"Charger {{tab}} depuis le dépôt","loading":"Chargement…","loadingAriaLabel":"Chargement de {{tab}}","loadingCommits":"Chargement des commits…","loadingDiff":"Chargement du diff…","loadingIssues":"Chargement des tickets ouverts…","loadingPulls":"Chargement des pull requests ouvertes…","loadingStashDiff":"Chargement du diff de remise…","loadingTitle":"Chargement…","loadMoreCommits":"Charger plus de commits","loadTabTitle":"Charger {{tab}}","localAheadOfOriginIntegration_one":"","localAheadOfOriginIntegration_other":"","localBehindOriginIntegration_one":"","localBehindOriginIntegration_other":"","localVsOrigin":"{{branch}} local vs origin","manualPrFlowHint":"Utilisez l'action du pied de page pour effectuer la complétion PR-first pour cette tâche.","mergeBadge":"fusion","mergeConflictDetected":"Conflit de fusion détecté. Résolvez-le manuellement.","mergedTaskDone":"Fusionné — tâche déplacée vers Terminé","mergeLabel":"Fusion","mergePrButton":"Fusionner la pull request","mergeStrategyMerge":"fusionner","mergeStrategyRebase":"rebaser","mergeStrategySquash":"écraser","mergingPrHint":"Fusion de la pull request en cours…","mergingStatus":"Fusion en cours…","modalTitle":"Gestionnaire Git","modified":"Modifié","modifiedCount_one":"","modifiedCount_other":"","newBranchName":"Nom de la nouvelle branche","noAheadCommitsFound":"Aucun commit en avance trouvé (une récupération est peut-être nécessaire)","noBranchesFound":"Aucune branche trouvée","noCommitsFound":"Aucun commit trouvé","noCommitsOnRemote":"Aucun commit trouvé sur {{remote}}. Essayez de récupérer d'abord.","noDescription":"(aucune description)","noIssueSelected":"Aucun ticket sélectionné","noIssueSelectedHint":"Choisissez un ticket dans la liste pour inspecter son titre et sa description.","noLocalRefTitle":"Aucun refs/heads/<branch> local n'existe ; rien à comparer avec origin.","noLocalTracking":"pas de suivi local","noMatchingBranches":"Aucune branche correspondante","noMatchingCommits":"Aucun commit correspondant","noOpenIssues":"Aucun ticket ouvert trouvé","noOpenPulls":"Aucune pull request ouverte trouvée","noOriginTracking":"pas de suivi origin","noPullSelected":"Aucune pull request sélectionnée","noPullSelectedHint":"Choisissez une pull request dans la liste pour inspecter ses détails.","noRefFound":"aucune référence trouvée pour {{branch}}","noRefFoundTitle":"Ni refs/heads ni refs/remotes/origin ne contient cette branche","noRemotes":"Aucun distant","noRemotesDetected":"Aucun dépôt distant GitHub détecté","noRemotesInstructions":"Ajoutez un dépôt distant GitHub à ce dépôt, puis rouvrez la fenêtre.","noReviewComments":"Aucun commentaire de revue synchronisé","noReviewsYet":"Aucune revue pour l'instant","noStagedChanges":"Aucune modification indexée","noStagedChangesToCommit":"Aucune modification indexée à commiter","noStashes":"Aucune remise","nothingLoadedInstructions":"Sélectionnez un dépôt et cliquez sur Charger pour commencer à examiner les candidats à l'importation.","nothingLoadedYet":"Rien de chargé pour l'instant","notOnIntegrationBranch":"(pas sur {{branch}})","notOnIntegrationBranchBtn":"Pas sur la branche d'intégration ({{branch}})","notOnIntegrationBranchTitle":"Actuellement sur une branche non intégrée","noUnstagedChanges":"Aucune modification non indexée","openPullsFrom":"Pull requests ouvertes de {{remote}}","originIntegrationAheadOfHead_one":"","originIntegrationAheadOfHead_other":"","pop":"Dépiler","popStashTitle":"Dépiler la remise (appliquer et supprimer)","prAuthUnavailable":"Authentification PR indisponible — exécutez « gh auth login »","prChecks":{"empty":"Aucune vérification signalée pour le moment","refreshAriaLabel":"Actualiser les vérifications","required":"Requis","retry":"Réessayer","summary":"{{passing}} réussis, {{failing}} échoués, {{pending}} en attente","viewDetails":"Afficher les détails"},"previewHeading":"Aperçu","previewIssueMeta":"Ticket #{{number}}","previewPullMeta":"Pull request #{{number}}","prMerged":"Pull request fusionnée","prMergeFailed":"Échec de la fusion de la pull request","projectRootNotAvailable":"Chemin racine du projet non disponible","prRefreshFailed":"Échec du rafraîchissement de la PR","prStatusRefreshed":"Statut de la PR mis à jour","prUnlinkConfirm":"Délier la PR #{{number}} de cette tâche ? La PR ne sera pas fermée.","prUnlinked":"PR #{{number}} déliée","pull":"Pull","pullCompleted":"Pull terminé","pullCount_one":"","pullCount_other":"","pullFailed":"Échec du pull","pullOptions":"Options de pull","pullOptionsMenu":"Menu d'options de pull","pullRebase":"Pull --rebase","pullRebaseCompleted":"Pull --rebase terminé","pullRequestHeading":"Pull request","pullRequestsCount_one":"","pullRequestsCount_other":"","push":"Push","pushCompleted":"Push terminé","pushFailed":"Échec du push","pushLabel":"Push :","pushUrlLabel":"URL de push","recentCommitsOnRemote":"Commits récents sur {{remote}}","recentIntegrationAdvances":"Avancées récentes de la branche d'intégration","reCheckConflicts":"Revérifier les conflits","refresh":"Actualiser","refreshPrStatus":"Rafraîchir le statut de la PR","refreshToCheckMerge":"Rafraîchir le statut de la PR pour vérifier si la fusion est prête","remoteAdded":"Distant « {{name}} » ajouté avec succès","remoteName":"Nom du distant","remoteOnlyIntegrationTipTitle":"Aucun refs/heads/<branch> local ; utilisation de refs/remotes/origin/<branch> comme pointe d'intégration.","remoteOnlyTrackLocally":"(distant seulement — exécutez git switch {{branch}} pour suivre localement)","remoteRemoved":"Distant « {{name}} » supprimé","remoteRenamed":"Distant renommé en « {{name}} »","remoteUrlUpdated":"URL du distant mise à jour","removeRemote":"Supprimer le distant","removeRemoteMessage":"Êtes-vous sûr de vouloir supprimer le distant « {{name}} » ?","removeRemoteTitle":"Supprimer le distant","repoMustBeSelected":"Un dépôt doit être sélectionné","repositoryLabel":"Dépôt","repositoryStatus":"État du dépôt","repositoryUrl":"URL du dépôt","resizeIssuesList":"Redimensionner la liste des tickets","resolvedFrom":"Résolu depuis {{source}}","retry":"Réessayer","retryButton":"Réessayer","retryConflictReclaim":"Réessayer la récupération du conflit","reviewLabel":"Revue","reviewsLabel":"Revues","searchCommits":"Rechercher des commits…","sectionBranches":"Branches","sectionChanges":"Modifications","sectionCommits":"Commits","sectionRemotes":"Distants","sectionStashes":"Remises","sectionStatus":"État","sectionWorktrees":"Worktrees","selectedRemote":"dépôt distant sélectionné","selectFileToViewDiff":"Sélectionnez un fichier pour afficher son diff","selectIssueAriaLabel":"Sélectionner le ticket #{{number}}","selectPullAriaLabel":"Sélectionner la pull request #{{number}}","selectRemoteAriaLabel":"Sélectionner le dépôt distant Git","selectRemotePlaceholder":"Sélectionner un dépôt distant…","selectRemoteToViewDetails":"Sélectionnez un distant pour voir les détails","sidebarAriaLabel":"Sections du gestionnaire Git","stageAll":"Tout indexer","stageAllAndCommit":"Tout indexer et commiter","stageAllAndCommitTitle":"Tout indexer et commiter","stageCount_one":"","stageCount_other":"","staged":"Indexé","stagedChanges_one":"","stagedChanges_other":"","stagedCount_one":"","stagedCount_other":"","stagedFiles_one":"","stagedFiles_other":"","stageFile":"Indexer le fichier","stageSelected":"Indexer la sélection","staleIndexWarning":"<strong>Index obsolète détecté.</strong> HEAD a avancé (généralement parce que le merger de Fusion a mis à jour la référence de la branche d'intégration) mais l'index reflète toujours l'ancienne pointe — \`git status\` signalera les nouveaux commits inversés comme « modifications indexées ». Activez <mergeCode>mergeAdvanceAutoSync</mergeCode> dans les Paramètres pour que le merger réconcilie automatiquement, ou exécutez <resetCode>git reset --hard HEAD</resetCode> pour avancer manuellement.","stash":"Remiser","stashApplied":"Remise appliquée","stashConflict":{"copied":"SHA de la stash copié.","copyFailed":"Impossible de copier le SHA de la stash.","dropStash":"Abandonner la stash","failedWarning":"La restauration automatique a échoué. Vos modifications sont conservées dans la stash ci-dessus ; utilisez git stash apply <ref> pour récupérer manuellement, ou utilisez Réessayer ci-dessous.","keepIncoming":"Garder l'entrant","keepMine":"Garder le mien","openInEditor":"Ouvrir dans l'éditeur","retryRestore":"Réessayer la restauration","summary":"{{branch}} extrait, mais la restauration des modifications locales depuis la stash a produit des conflits.","title":"Résoudre les conflits d'auto-stash"},"stashDropped":"Remise supprimée","stashMessagePlaceholder":"Message de remise (facultatif)","stashPopped":"Remise dépilée","statusLabelBranch":"Branche","statusLabelCommit":"Commit","statusLabelIntegrationBranch":"Branche d'intégration","statusLabelStashes":"Remises","statusLabelVsOrigin":"vs origin","statusLabelWorkingTree":"Arbre de travail","switchedToBranch":"Basculé sur {{name}}","sync":"Synchroniser","synced":"Synchronisé","syncedWithOrigin":"Synchronisé avec origin (pull --rebase + push)","syncedWorktreeToIntegrationTip":"Arbre de travail synchronisé avec la pointe d'intégration locale","syncFailed":"Échec de la synchronisation","syncing":"Synchronisation…","syncLocalTip":"Sync pointe locale","syncLocalTipTitle":"Synchroniser l'arbre de travail avec la pointe d'intégration locale (identique au Pull de la bannière)","syncOriginTitle":"Pull --rebase depuis origin, puis pousser la branche courante","syncWithOriginFailed":"Échec de la synchronisation avec origin","syncWorkingTree":"Synchroniser l'arbre de travail","syncWorkingTreeTitle":"Tirer la branche d'intégration dans votre arbre de travail (remise automatique des modifications non commitées puis restauration)","tabIssues":"Tickets","tabPullRequests":"Pull requests","tip":"pointe","toolbarAriaLabel":"Contrôles d'importation GitHub","tryDifferentFilter":"Essayez un filtre d'étiquettes différent ou choisissez un autre dépôt.","unlinkButton":"Délier","unresolvedMergeConflicts":"Conflits de fusion non résolus","unstageAll":"Tout désindexer","unstageCount_one":"","unstageCount_other":"","unstaged":"Non indexé","unstagedChanges_one":"","unstagedChanges_other":"","unstagedFiles_one":"","unstagedFiles_other":"","unstageFile":"Désindexer le fichier","unstageSelected":"Désindexer la sélection","untracked":"Non suivi","untrackedCount_one":"","untrackedCount_other":"","upToDate":"À jour","view":"Voir","viewOnGithub":"Voir sur GitHub","waitingFor":"En attente de : {{reasons}}","whatDoesThisMean":"Qu'est-ce que cela signifie ?","workingTreeClean":"Propre","workingTreeModified":"Modifié","worktreeBadgeBare":"nu","worktreeBadgeMain":"principale","worktreesInUse_one":"","worktreesInUse_other":"","worktreesTotal_one":"","worktreesTotal_other":""}`),Q={activeCount_one:"",activeCount_other:"",addGoal:"Ajouter un objectif",archive:"Archiver",capError:"Impossible d'activer plus de 5 objectifs. Résolvez un objectif actif avant d'en activer un autre.",capWarning:"Approche du plafond de 5 objectifs actifs. Gardez les objectifs actifs concentrés.",createError:"Impossible de créer l'objectif pour le moment. Veuillez réessayer.",drafting:"Rédaction en cours…",draftWithAi:"Rédiger avec l'IA",emptyState:"Aucun objectif pour le moment. Ajoutez-en un pour commencer à suivre les résultats stratégiques.",labelDescription:"Description",labelTitle:"Titre",loadError:"Impossible de charger les objectifs pour le moment. Veuillez réessayer.",loading:"Chargement des objectifs…",saveError:"Impossible d'enregistrer l'objectif pour le moment. Veuillez réessayer.",status:"Statut",title:"Objectifs",titleRequired:"Le titre est requis.",unarchive:"Désarchiver",updateError:"Impossible de mettre à jour le statut de l'objectif pour le moment. Veuillez réessayer."},K={abandonGroup:"",ariaLabel:"Détails du groupe de branches",autoMergeEnabled:"Fusion automatique activée",completionText:"{{landed}} sur {{total}} membres terminés",errorLoading:"Impossible de charger le groupe de branches",loading:"Chargement du groupe de branches…",members:"Membres",mergeIntoMain:"Fusionner le groupe dans main",openPR:"Ouvrir RP",openTask:"Ouvrir la tâche",prClosed:"",prMerged:"",sharedBranch:"Branche partagée",status:"Statut",title:"Groupe de branches {{id}}",unavailable:"Groupe de branches indisponible"},Y={activePlanningSessions_one:"",activePlanningSessions_other:"",addFirstScript:"Ajouter votre premier script",additionalHeaderActions:"Actions supplémentaires dans l'en-tête",agentsView:"Vue agents",allBaseBranches:"Toutes les branches de base",allWorkingBranches:"Toutes les branches de travail",automation:"Automatisation",baseBranch:"Branche de base",boardView:"Vue tableau",browseFiles:"Parcourir les fichiers",chatView:"Vue chat",closeSearch:"Fermer la recherche",createTaskWithPlanning:"Créer une tâche avec la planification IA",devServerView:"Serveur de développement",documentsView:"Vue documents",engineOptions:"Options du moteur",evalsView:"Évaluations",gitManager:"Gestionnaire Git",goalsView:"Objectifs",importFromGitHub:"Importer depuis GitHub",insightsView:"Insights",listView:"Vue liste",loadingScripts:"Chargement des scripts…",localNode:"Local",mailbox:"Boîte de réception",mailboxView:"Vue boîte de réception",mailboxWithCount_one:"",mailboxWithCount_other:"",manageProjects:"Gérer les projets",manageScripts:"Gérer les scripts…",memoryView:"Mémoire",missionsView:"Vue missions",moreActions:"Plus d'actions",moreHeaderActions:"Plus d'actions dans l'en-tête",moreViews:"Plus de vues",noBaseBranch:"Aucune branche de base",nodes:"Nœuds",noScriptsAddOne:"Aucun script — en ajouter un…",noScriptsConfigured:"Aucun script configuré",noWorkingBranch:"Aucune branche de travail",openSearch:"Ouvrir la recherche",openTerminal:"Ouvrir le terminal",pauseTriage:"Mettre en pause le triage",pendingApprovals:"Approbations en attente",projects:"Projets",quickScripts:"Scripts rapides",reliabilityView:"Fiabilité",researchView:"Recherche",resumePlanningSession:"Reprendre la session de planification",resumePlanningSessionCount_one:"",resumePlanningSessionCount_other:"",resumeScheduling:"Reprendre la planification",scripts:"Scripts",scriptsSubmenu:"Sous-menu des scripts",searchTasks:"Rechercher des tâches…",secretsView:"Secrets",selectNode:"Sélectionner un nœud",selectProject:"Sélectionner un projet",settings:"Paramètres",showScripts:"Afficher les scripts",skillsView:"Compétences",startAiEngine:"Démarrer le moteur IA",stashRecoveryView:"Récupération de stash",stopAiEngine:"Arrêter le moteur IA",switchNode:"Changer de nœud",switchProject:"Changer de projet",switchProjectCurrent:"Changer de projet (actuel : {{name}})",systemStats:"Statistiques système",terminal:"Terminal",todosView:"Tâches",unreadChatResponse:"Réponse de chat non lue",unreadMessages_one:"",unreadMessages_other:"",viewActivityLog:"Voir le journal d'activité",viewProjects:"Voir les projets",viewUsage:"Voir l'utilisation",workingBranch:"Branche de travail",workflows:"Workflows"},Z={activeTasks:"Tâches actives",anomalyBody:"Fusion a détecté un état d'allocateur pouvant entraîner la réutilisation d'ID de tâche ou le remplacement de records de tâche actifs.",anomalyDetected:"Anomalie d'intégrité détectée pour les ID de tâche",completed:"Complété",failed:"Échoué",inFlightAgents:"Agents en vol",lastError:"Dernière erreur",metricsTitle:"Mesures de santé",recheck:"Vérifier",rechecking:"Vérification en cours…",refreshFailed:"Échec de l'actualisation du statut d'intégrité."},X={autoProfile:"Auto / utiliser Hermes par défaut",binaryPathHelp:"Laissez vide pour résoudre {{cmd}} depuis votre PATH.",binaryPathLabel:"Chemin binaire",binaryPathPlaceholder:"hermes (par défaut à PATH)",defaultProfile:" (par défaut)",description:"Exécute l'interface CLI {{cmd}} locale en tant que sous-processus. Chaque invite Fusion est envoyée en tant que {{chatCmd}} ; les invites suivantes reprennent la même session hermes via {{resumeFlag}}. Le fournisseur, le modèle et les compétences sont configurés dans hermes lui-même ; cette carte ne choisit que les remplacements.",detected:"✓ hermes détecté{{version}}{{path}}.",gitHubLink:"Hermes sur GitHub",maxTurnsHelp:"Limite par tour Hermes. La valeur par défaut d'Hermes est 90 ; nous utilisons une limite plus basse.",maxTurnsLabel:"Max tours",modelControlled:"Contrôlé par le profil : {{profile}}",modelHelp:"Optionnel — remplace le modèle par défaut configuré d'Hermes.",modelLabel:"Remplacement de modèle",modelPlaceholder:"ex. claude-sonnet-4-5, MiniMax-M3",notDetected:"{{cmd}} non détecté. Installez l'agent en amont :",notFound:"✗ {{reason}}",probing:"Sondage du binaire hermes local…",profileHelp:"Sélectionnez un profil Hermes à utiliser. Active le profil en définissant {{env}} sur le répertoire du profil lors de l'appel de {{cmd}}.",profileLabel:"Profil (optionnel)",profileModelSeparator:" — {{model}}",providerControlled:"Contrôlé par le profil : {{profile}}",providerHelp:"Fournisseur d'inférence par lequel Hermes achemine les appels (par défaut : {{default}}).",providerLabel:"Fournisseur",savedDetected:"Enregistré · ✓ hermes détecté{{version}}.",savedNotFound:"Enregistré · ✗ {{reason}}",savedProbeFailed:"Enregistré, mais la sonde a échoué.",settingsSaved:"Paramètres enregistrés.",statusDetected:"✓ Détecté{{version}}{{path}}",statusNotDetected:"✗ {{reason}}",subname:"par Nous Research",testFailed:"Le test a échoué — voir le statut ci-dessus.",timeoutHelp:"Limite supérieure stricte côté Fusion. 5 min par défaut.",timeoutLabel:"Délai d'expiration CLI hard-kill (ms)",yoloHelp:"Requis pour les sessions non interactives qui déclenchent des outils de style shell.",yoloLabel:"Approuver automatiquement les appels d'outils dangereux ({{flag}})"},$={agent:"Agent",breakDownSubtasks:"Décomposer en sous-tâches générées par l'IA",clearSelection:"Effacer la sélection",collapse:"Réduire",collapseDescription:"Décrire la description",collapseTaskOptions:"Réduire les options de tâche avancées",creating:"Création...",custom:"Personnalisé",deps:"Dépendances",editingDescription:"Description d'édition",enterDescriptionFirst:"Entrez d'abord une description",expand:"Développer",expandDescription:"Développer la description",expandTaskOptions:"Développer les options de tâche avancées",hintEnterEsc:"Entrée pour créer · Échap pour annuler",loadingAgents:"Chargement des agents...",model_one:"",model_other:"",models:"Modèles",noAgentsAvailable:"Aucun agent disponible",node:"Nœud",noExistingTasks:"Aucune tâche existante",openPlanningMode:"Ouvrir le mode de planification avec la description actuelle",plan:"Planifier",preset:"Préréglage",priority:"Priorité",priorityLabel:"Priorité : {{level}}",projectDefaultLocal:"Défaut du projet / local",removeImage:"Supprimer l'image",save:"Enregistrer",searchTasks:"Tâches de recherche…",selectAgent:"Sélectionner un agent",selectExecutionNode:"Sélectionner le nœud d'exécution",subtask:"Sous-tâche",useDefault:"Utiliser par défaut",whatNeedsToBeDone:"Qu'est-ce qui doit être fait?"},ee={allInsights:"Tous les Insights",alreadyRunning:"La génération d'informations est déjà en cours. Affichage de l'exécution active.",alreadyRunningShort:"La génération d'informations est déjà en cours",archived:'"{{title}}" archivé',archivedMsg:"Information archivée : {{title}}",archiveLabel:"Archiver cet insight",archiveTitle:"Archiver cet insight",archiving:'Archivage de "{{title}}"...',backlogHealth:"Santé du backlog",configureModel:"Configurer le modèle de génération d'insights",configureModelTitle:"Configurer le modèle",createTaskLabel:"Créer une tâche à partir de cet insight",createTaskTitle:"Créer une tâche à partir de cet insight",creatingTask:`Création d'une tâche à partir de "{{title}}"...`,dismissed:'"{{title}}" fermé',dismissedMsg:"Information fermée : {{title}}",dismissing:'Fermeture de "{{title}}"...',dismissLabel:"Fermer cet insight",dismissTitle:"Fermer cet insight",failedToArchive:"Échec de l'archivage de l'information",failedToCreateTask:"Échec de la création de la tâche",failedToDismiss:"Échec de la fermeture de l'information",failedToPreparePayload:"Échec de la préparation de la charge utile de la tâche à partir de l'information",failedToStart:"Échec du démarrage de la génération",failedToUnarchive:"Échec de la désarchivation de l'information",generateDescription:"Générez des insights pour obtenir des recommandations alimentées par l'IA pour votre projet.",generateFirst:"Générer les premiers Insights",generateInsights:"",generateInsightsBtn:"Générer des Insights",generating:"Génération en cours...",generatingInsights:"Génération d'informations...",generationModel:"Modèle de génération d'insights",generationStarted:"La génération d'informations a commencé",hideArchived:"Masquer les insights archivés",hideArchivedLabel:"Masquer l'archive",latestRun:"Dernière exécution :",loading:"Chargement des insights...",model:"Modèle",modelConfigured:"Modèle : {{model}}",noInsightsYet:"Pas d'insights pour le moment",runCompleted:"{{created}} créé(s), {{updated}} mis à jour",showAllInsights:"Afficher tous les insights",showArchived:"Afficher les insights archivés",showArchivedLabel_one:"",showArchivedLabel_other:"",showBacklogHealth:"Afficher uniquement les insights de santé des backlogs",taskCreated:'Tâche créée à partir de "{{title}}"',taskCreatedMsg:"Tâche créée : {{title}}",taskCreationUnavailable:"La création de tâches n'est pas disponible dans cette vue",title:"Insights",unarchived:'"{{title}}" désarchivé',unarchivedMsg:"Information désarchivée : {{title}}",unarchiveLabel:"Désarchiver cet insight",unarchiveTitle:"Désarchiver cet insight",unarchiving:'Désarchivage de "{{title}}"...',usePlanningDefault:"Utiliser la valeur par défaut de planification"},te={addContextDirection:"Ajouter du contexte ou des directives supplémentaires...",additionalComments:"Commentaires supplémentaires (optionnel)",aiThinking:"L'IA réfléchit...",appliedMessage:"La portée et la vérification {{targetType}} ont été appliquées.",description:"Description",error:{failedToApply:"Impossible d'appliquer les résultats de l'entretien",failedToRestoreQuestion:"Impossible de restaurer la question de session.",failedToRestoreResult:"Impossible de restaurer le résultat de la session.",failedToResume:"Impossible de reprendre la session.",failedToSkip:"Impossible d'ignorer l'entretien {{targetLabel}}",failedToStart:"Impossible de démarrer l'entretien {{targetLabel}}",failedToSubmit:"Impossible de soumettre la réponse",sessionEncounteredError:"La session a rencontré une erreur.",sessionFailed:"La session a échoué lors du contact avec l'IA."},hideThinking:"Masquer la réflexion",interviewDescription:"L'IA vous fera passer une entrevue pour affiner la portée {{targetType}}, les critères d'acceptation et les méthodes de vérification. Chaque {{targetType}} peut avoir son propre plan affiné ou hériter du contexte au niveau de la mission.",missionContext:"Contexte de mission :",no:"Non",noAdditionalDetails:"Aucun détail supplémentaire n'a été généré pour cet élément.",planningNotes:"Notes de planification",preparingQuestion:"Préparation de la prochaine question...",progressText:"Question {{progress}} sur ~6",reconnecting:"Reconnexion…",refinedScope:"Portée affinée",refineScope:"Affiner la portée {{label}} avec l'IA",sendToBackground:"Envoyer en arrière-plan",sessionActiveAnotherTab:"La session est active dans un autre onglet.",showThinking:"Afficher la réflexion",startInterview:"Commencer l'entrevue",targetLabel:{milestone:"Jalon",slice:"Tranche"},typeAnswerHere:"Tapez votre réponse ici...",updated:"{{label}} mis à jour",useMissionContext:"Utiliser le contexte de mission",verificationCriteria:"Critères de vérification",yes:"Oui"},ie={collapse:"",expand:""},re={apply:"Appliquer",applying:"Application en cours…",archiveSelected:"Archiver",archiveSelectedTitle:"Archiver les tâches sélectionnées qui sont terminées",archiveUnavailable:"L'action Archiver est indisponible",archiveViaButton:"Les tâches ne peuvent être archivées qu'via le bouton d'archivage",bulkArchiveDone_one:"",bulkArchiveDone_other:"",bulkArchiveMessage_one:"",bulkArchiveMessage_other:"",bulkArchiveNoTasks:"Aucune tâche sélectionnée ne peut être archivée (uniquement les tâches terminées)",bulkArchiveSummary:"{{archived}} archivée(s) · {{skipped}} ignoré(s) · {{failed}} échoué(s)",bulkArchiveTitle:"Archiver les tâches sélectionnées",bulkDeleteAll:"Tout supprimer",bulkDeleteArchiveSummary:"Archivé {{archived}}, supprimé {{deleted}}, échoué {{failed}}",bulkDeleteMessage_one:"",bulkDeleteMessage_other:"",bulkDeleteNoTasks:"Aucune tâche sélectionnée ne peut être supprimée (les tâches archivées sont exclues)",bulkDeleteSummary_one:"{{count}} tâche supprimée · {{skipped}} archivées ignorées · {{failed}} échouées",bulkDeleteSummary_other:"{{count}} tâches supprimées · {{skipped}} archivées ignorées · {{failed}} échouées",bulkDeleteTitle:"Supprimer les tâches sélectionnées",bulkDeleteWithDoneMessage:"Supprimer {{deletable}} tâche(s), ou archiver les {{done}} tâche(s) terminée(s) et supprimer le reste ?",bulkEdit:"Édition en masse",bulkEditModelsLabel:"Modification en masse des modèles et nœuds :",bulkNoChanges:"Aucune modification à appliquer",bulkPauseNoTasks:"Aucune tâche sélectionnée ne peut être mise en pause",bulkPauseSummary:"{{paused}} mis en pause · {{skipped}} ignoré(s) · {{failed}} échoué(s)",bulkUnpauseNoTasks:"Aucune tâche sélectionnée ne peut être reprise",bulkUnpauseSummary:"{{unpaused}} reprise(s) · {{skipped}} ignoré(s) · {{failed}} échoué(s)",bulkUpdateFailed:"Échec de la mise à jour des modèles",bulkUpdateNoTasks:"Aucune tâche valide à mettre à jour (les tâches archivées ne peuvent pas être modifiées)",bulkUpdateSuccess_one:"",bulkUpdateSuccess_other:"",cancelMove:"Annuler le déplacement",clear:"Effacer",clearColumnFilter:"Effacer le filtre de colonne",colColumn:"Colonne",colDependencies:"Dépendances",colProgress:"Progression",colRetries:"Tentatives",colStatus:"Statut",colTitle:"Titre",deleteSelected:"Supprimer",deleteSelectedTitle:"Supprimer les tâches sélectionnées",dependentsDeleteMessage:"La tâche {{taskId}} a des dépendants : {{dependents}}. Supprimer les références de dépendances et forcer la suppression ?",doneEditing:"Terminer l'édition",doneHiddenChip:"Terminées masquées",executorModel:"Modèle d'exécution",fastMode:"Mode rapide",filterChip:"Filtre : {{column}}",forceDelete:"Forcer la suppression",forceDeleteTitle:"Forcer la suppression de la tâche",hidden_one:"",hidden_other:"",hideDone:"Masquer terminées",hideDoneTitle:"Masquer les tâches terminées",keepProgress:"Conserver",lastColumnWarning:"Au moins une colonne doit être visible",lineageArchiveMessage:`{{taskId}} a des tâches enfants de lignée ({{children}}) qui le référencent comme source parente.
|
|
2
|
+
|
|
3
|
+
Archiver quand même en supprimant d'abord ces références ?`,lineageDeleteMessage:`{{taskId}} a des tâches enfants de lignée ({{children}}) qui le référencent comme source parente.
|
|
4
|
+
|
|
5
|
+
Supprimer quand même en supprimant d'abord ces références ?`,listControlsLabel:"Contrôles de liste",newTask:"+ Nouvelle tâche",noChange:"Aucun changement",nodeOverrideLabel:"Nœud de substitution",nodeStatusConnecting:"Connexion en cours",nodeStatusError:"Erreur",nodeStatusOffline:"Hors ligne",nodeStatusOnline:"En ligne",noTasks:"Aucune tâche",noTasksMatch:"Aucune tâche ne correspond à votre filtre",noTasksYet:"Aucune tâche pour l'instant",pausedByAgent:"mis en pause par l'agent",pauseSelected:"Mettre en pause",pauseSelectedTitle:"Mettre en pause toutes les tâches sélectionnées qui ne sont pas encore en pause",pauseUnavailable:"L'action Pause est indisponible",preserveProgressMessage:"Cette tâche a des étapes complétées. Conserver la progression avant de déplacer ?",preserveProgressTitle:"Conserver la progression ?",resetProgress:"Réinitialiser",resetProgressMessage:"Réinitialiser toute la progression des étapes avant de déplacer cette tâche ?",resetProgressTitle:"Réinitialiser la progression ?",resizeSidebar:"Redimensionner la barre latérale de la liste de tâches",reviewerModel:"Modèle de révision",selectAll:"Sélectionner toutes les tâches visibles",selectedCount_one:"",selectedCount_other:"",selectTask:"Sélectionner {{taskId}}",selectTaskPrompt:"Sélectionnez une tâche pour voir les détails",showAll:"Tout afficher",showAllTitle:"Afficher toutes les tâches",showDone:"Afficher terminées",showDoneTitle:"Afficher les tâches terminées",staleOnly:"Obsolètes uniquement",staleOnlyTitle:"Afficher uniquement les tâches obsolètes",stalePausedReview:"Révision en pause obsolète",stalePausedReviewTitle:"Afficher uniquement les tâches de révision en pause obsolètes",stats_one:"",stats_other:"",statsInColumn_one:"",statsInColumn_other:"",statusMergingFix:"Fusion des correctifs…",stuck:"Bloquée",taskCreationUnavailable:"Création de tâche indisponible",unpauseSelected:"Reprendre",unpauseSelectedTitle:"Reprendre les tâches sélectionnées actuellement en pause",unpauseUnavailable:"L'action Reprendre est indisponible",useProjectDefault:"Utiliser le défaut du projet",viewOptions:"Options d'affichage"},ne={agent:"Agent",agents:"Agents",agentsTab:"Agents",ago:"il y a",allAgents:"Tous les agents",allAgentsOption:"Tous les agents",approvalApprove:"Approuver",approvalCommentPlaceholder:"Commentaire optionnel",approvalDeny:"Refuser",approvalRequested:"Demandé",approvalRequester:"Demandeur",approvals:"Approbations",approvalTask:"Tâche",back:"Retour",backButton:"← Retour",closeAriaLabel:"Fermer",closeTitle:"Fermer",compose:"Composer",composeButton:"Composer",composeMessageTitle:"Composer un message",composeTitle:"Composer un message",conversation:"Conversation",conversationLabel:"Conversation",delete:"Supprimer",deleteButton:"Supprimer",deleteFailed:"Impossible de supprimer le message",from:"De",fromLabel:"De :",fromPrefix:"De : {{participant}}",history:"Historique",inbox:"Boîte de réception",inboxTab:"Boîte de réception",justNow:"À l'instant",labelAgent:"Agent : {{id}}",labelAgentNamed:"Agent : {{name}}",labelSystem:"Système",labelUser:"Utilisateur : {{id}}",labelYou:"Vous",markAllRead:"Tout marquer comme lu",markAllReadButton:"Marquer tout comme lu",markAllReadTitle:"Marquer tout comme lu",markedAsRead_one:"",markedAsRead_other:"",markReadFailed:"Impossible de marquer les messages comme lus",messageDeleted:"Message supprimé",messageSent:"Message envoyé",noAgentMessages:"Aucun message agent à agent",noAgents:"Aucun agent trouvé",noAgentsFound:"Aucun agent trouvé",noHistoricalApprovals:"Aucune approbation historique",noInbox:"Aucun message dans votre boîte de réception",noMessagesInbox:"Aucun message dans votre boîte de réception",noOutbox:"Aucun message envoyé",noPendingApprovals:"Aucune approbation en attente",noReceivedMessages:"Aucun message reçu pour cet agent",noSentMessages:"Aucun message envoyé pour cet agent",noSentMessagesAgent:"Aucun message envoyé pour cet agent",outbox:"Boîte d'envoi",outboxTab:"Boîte d'envoi",pending:"En attente",refreshTitle:"Actualiser",reply:"Répondre",replyButton:"Répondre",replyingTo:"Répondre à {{preview}}",replyingToMessage:"Répondre au message",replyLoadFailed:"Échec du chargement du message de réponse. Cliquez pour réessayer.",selectMessageToRead:"Sélectionnez un message à lire",system:"Système",timeDaysAgo_one:"",timeDaysAgo_other:"",timeHoursAgo_one:"",timeHoursAgo_other:"",timeJustNow:"À l'instant",timeMinsAgo_one:"",timeMinsAgo_other:"",title:"Boîte aux lettres",to:"À",toLabel:"À :",toPrefix:"À : {{recipient}}",typeAgentToAgent:"Agent ↔ Agent",typeAgentToUser:"Agent → Vous",typeSystem:"Système",typeUserToAgent:"Vous → Agent",user:"Utilisateur",you:"Vous"},ae={auditChecksTitle:"Vérifications d'audit",autoSummarizeHint:"Compacte automatiquement la mémoire selon un calendrier lorsqu'elle dépasse le seuil",autoSummarizeLabel:"Résumé automatique de la mémoire",autoSummarizeScheduleHint:"Expression cron pour la planification du résumé automatique (défaut : quotidien à 3 h)",autoSummarizeScheduleLabel:"Planification (cron)",backendFile:"Fichier (.fusion/memory/, agent/<agent-name>/memory/)",backendQmd:"QMD (distillation de mémoire quantifiée)",backendReadonly:"Lecture seule",cancel:"Annuler",capAtomicWrites:"Écritures atomiques",capPersistent:"Persistant",capReadable:"Lisible",capWritable:"Modifiable",categories:"Catégories",charCount_one:"",charCount_other:"",compactFailed:"Échec de la compaction de la mémoire",compacting:"Compaction en cours…",compactionThresholdHint:"La mémoire sera compactée lorsqu'elle dépassera ce nombre de caractères",compactionThresholdLabel:"Seuil de compaction (caractères)",compactSelectedFile:"Compacter le fichier sélectionné",currentBackendTitle:"Backend actuel",description:"Mémoire de travail, insights à long terme et état des moteurs",disabledMessage:"La mémoire est actuellement désactivée. Activez les outils de mémoire dans les paramètres pour modifier ces automatisations.",dreaming:"Traitement des rêves…",dreamNow:"Traiter maintenant",dreamNowHint:"Déclencher manuellement le traitement des rêves maintenant.",dreamProcessingComplete:"Traitement des rêves terminé",dreamProcessingFailed:"Échec du traitement des rêves",dreamsEnabledHint:"Transforme les notes quotidiennes en DREAMS.md et promeut les leçons réutilisables dans MEMORY.md.",dreamsEnabledLabel:"Traiter les rêves depuis la mémoire quotidienne",dreamsScheduleHint:"Expression cron pour le traitement des rêves.",dreamsScheduleLabel:"Planification des rêves",editorDefaultDescription:"Modifie le fichier mémoire sélectionné.",editorLabel:"Éditeur de mémoire",editRaw:"Modifier le brut",extracting:"Extraction en cours…",extractInsightsFailed:"Échec de l'extraction des insights",extractionFailed:"Échec",extractionSuccess:"Succès",extractNow:"Extraire maintenant",fileCompacted:"Fichier mémoire compacté",fileLabel:"Fichier mémoire",fileSummary:"{{size}} octets · mis à jour le {{updatedAt}}",fileSwitchDirtyHint:"Enregistrez ou abandonnez les modifications actuelles avant de changer de fichier.",fileSwitchHint:"Choisissez un fichier mémoire du projet à afficher ou modifier.",healthHealthy:"En bonne santé",healthIssues:"Problèmes détectés",healthStatusTitle:"État de santé",healthWarning:"Avertissement",insightCount_one:"",insightCount_other:"",insightsExtracted_one:"",insightsExtracted_other:"",insightsMemoryLabel:"Mémoire des insights",insightsSaved:"Insights enregistrés",installing:"Installation…",installQmd:"Installer qmd",installQmdFailed:"Échec de l'installation de qmd",lastExtractionLabel:"Dernière extraction",lastUpdated:"Dernière mise à jour",layerDaily:"Quotidien",layerDescDaily:"Observations quotidiennes brutes, boucles ouvertes et contexte en cours pour le traitement des rêves.",layerDescDreams:"Patterns synthétisés et boucles ouvertes issus de la mémoire quotidienne.",layerDescLongTerm:"Décisions durables, conventions, contraintes et pièges sélectionnés depuis les rêves.",layerDreams:"Rêves",layerLongTerm:"Long terme",loadFileFailed:"Échec du chargement du fichier mémoire",loadingEngineStatus:"Chargement de l'état des moteurs…",loadingFile:"Chargement du fichier mémoire…",loadingInsights:"Chargement des insights…",localFallbackUsed:"repli local utilisé",memorySaved:"Mémoire enregistrée",noInsights:"Aucun insight extrait pour l'instant.",noInsightsHint:"Les insights sont automatiquement extraits de la mémoire de travail. Cliquez sur « Extraire maintenant » pour déclencher l'extraction manuellement.",noMatchingMemory:"Aucune mémoire correspondante trouvée.",pruningApplied:"Appliqué",pruningLabel:"Élagage",pruningNotNeeded:"Non nécessaire",qmdAvailableOnPath:"qmd est disponible dans le PATH.",qmdChecking:"Vérification",qmdCheckingAvailability:"Vérification de la disponibilité de qmd…",qmdInstalled:"Installé",qmdInstallSuccess:"qmd installé avec succès",qmdInstallUnavailable:"L'installation de qmd est terminée, mais qmd n'est toujours pas disponible",qmdIntegrationTitle:"Intégration QMD",qmdNotInstalled:"qmd n'est pas installé. La recherche utilisera les fichiers locaux. Installez la récupération indexée :",qmdPathUsed:"chemin qmd utilisé",qmdStatusAvailable:"disponible",qmdStatusMissing:"absent",readOnlyBanner:"Ce backend de mémoire est en lecture seule. Les modifications ne peuvent pas être enregistrées.",retrievalTestComplete:"Test de récupération de mémoire terminé",retrievalTestFailed:"Échec du test de récupération de mémoire",retrievalTestFallback:"qmd n'est pas installé ; le repli local a été utilisé",runAudit:"Lancer l'audit",save:"Enregistrer",saveInsights:"Enregistrer les insights",saveInsightsFailed:"Échec de l'enregistrement des insights",saveMemoryFailed:"Échec de l'enregistrement de la mémoire",saveSettings:"Enregistrer les paramètres",saveSettingsFailed:"Échec de l'enregistrement des paramètres de mémoire",saving:"Enregistrement…",searchPlaceholder:"Rechercher dans la mémoire avec qmd",sectionCount_one:"",sectionCount_other:"",settingsNote:"Remarque : modifier le type de backend dans",settingsNoteLink:"Paramètres → Mémoire",settingsNoteToast:"Ouvrez Paramètres → Mémoire pour changer le type de backend",settingsSaved:"Paramètres de mémoire enregistrés",sizeChars:"{{size}} caractères",tabEngines:"Moteurs",tabInsights:"Insights",tabWorking:"Mémoire de travail",testing:"Test en cours…",testMemorySearchTitle:"Tester la recherche en mémoire",testResultCount_one:"",testResultCount_other:"",testResultStatus:"qmd {{qmdStatus}} · {{fallbackStatus}}",testRetrieval:"Tester la récupération",testSearchHint:"Exécute le même chemin memory_search basé sur qmd qu'utilisent les agents.",title:"Mémoire",totalInsights:"Total des insights",workingMemoryLabel:"Mémoire de travail"},se={advanced:"Avancé",advancedTo:"{{branch}} avancé à {{sha}}.",changesWillAutoStash:" (les modifications locales seront automatiquement cachées et restaurées)",checkedOutBehind:"Votre copie extraite à {{path}} est en arrière.",commit:"Commit",disabledMergeLocked:"Push suspendu — une fusion Fusion est en cours.",disabledNoRemote:"Aucun remote `origin` configuré.",disabledNoUpstream:"La branche n'a pas d'upstream sur origin.",dismissNotice:"Ignorer l'avis d'avancement de fusion",filesChanged:"Fichiers dans le commit de fusion",forceWithLeaseLabel:"Autoriser force-with-lease (utiliser uniquement si vous savez que origin a divergé intentionnellement)",insertionsDeletions:"Insertions/suppressions de commit de fusion",mergedAt:"Fusionné à",mergedSuccess:"Fusion réussie",message:"Message",pr:"PR",pulling:"Récupération en cours…",pushForceWithLease:"Envoyer (force-with-lease)",pushHeading_one:"",pushHeading_other:"",pushing:"Envoi en cours…",pushSuccess:"Envoyé à origin/{{branch}} @ {{sha}}.",pushToOrigin:"Envoyer à origin",recordedNoConfirm:"Enregistré sans confirmation de fusion locale",shortstatTitle:"Statistiques courtes finales du commit ; pour voir le diff complet de tous les commits de tâches, consultez l'onglet Modifications.",smartPull:"Pull intelligent",status:"État",title:"Détails de la fusion"},oe={ariaLabel:"Visualisation de la topologie du maillage de nœuds",connecting:"Connexion en cours",error:"Erreur",failedToFetchMeshState:"Échec de la récupération de l'état du maillage",noNodes:"Aucun nœud à afficher",noPeers:"Données de découverte pair-à-pair non disponibles.",offline:"Hors ligne",online:"En ligne"},le=JSON.parse(`{"acceptance":"Critères d'acceptation :","acceptanceCriteriaOptional":"Critères d'acceptation (facultatifs)","actionGenerating":"Génération…","actionResume":"Reprendre","actionRetry":"Réessayer","actionReview":"Réviser","activateSlice":"Activer le découpage","activityTime":"Activité {{time}}","actual":"Réel : {{value}}","addAssertion":"Ajouter une assertion","addContext":"Ajoutez un contexte ou une direction supplémentaires...","addFeature":"Ajouter une fonctionnalité","additionalComments":"Commentaires supplémentaires (optionnel)","addMilestone":"Ajouter un jalon","addSlice":"Ajouter un découpage","aiThinking":"L'IA réfléchit...","aiValidatedAtRuntime":"Validé par IA à l'exécution","aiValidatedMissionGate":"Porte de mission validée par IA","allFeaturesLinked":"Toutes les fonctionnalités sont déjà liées","approvePlan":"Approuver le plan","assertionCreated":"Assertion créée","assertionCreateFailed":"Échec de la création de l'assertion","assertionFieldsRequired":"Le titre et le texte de l'assertion sont requis","assertionTextEditPlaceholder":"Texte de l'assertion","assertionTextPlaceholder":"Texte de l'assertion (ce qui doit être vrai à la fin)","assertionTitlePlaceholder":"Titre de l'assertion","assertionUpdated":"Assertion mise à jour","assertionUpdateFailed":"Échec de la mise à jour de l'assertion","attemptRetries_one":"","attemptRetries_other":"","autopilotActivatingSlice":"Activation du découpage","autopilotCompleting":"En finalisation","autopilotDescription":"Lorsqu'il est activé, Fusion active automatiquement le découpage suivant et planifie ses fonctionnalités à mesure que le travail avance.","autopilotDisabled":"Pilote automatique désactivé","autopilotEnabled":"Pilote automatique activé","autopilotEnabledLabel":"Pilote automatique activé","autopilotLabel":"Pilote automatique","autopilotLastActivation":"Dernière activation {{time}}","autopilotOff":"Désactivé","autopilotUpdateFailed":"Échec de la mise à jour du pilote automatique","autopilotWatching":"Pilote automatique en surveillance","autopilotWatchingSince":"En surveillance depuis {{time}}","autopilotWatchingState":"En surveillance","backToMissions":"Retour aux missions","backToMissionsList":"Retour à la liste des missions","blocked":"Bloqué :","blockedReason":"Raison du blocage :","branchName":"Nom de branche","branchNameAriaLabel":"Nom de branche de la mission","branchNamePlaceholder":"p. ex. feature/mission-work","branchNameRequired":"Le nom de branche est requis pour la stratégie sélectionnée","branchStrategy":"Stratégie de branche","branchStrategyAriaLabel":"Stratégie de branche de la mission","branchStrategyAutoPerTask":"Nommer automatiquement une branche par tâche (depuis les détails)","branchStrategyCustomNew":"Créer une branche personnalisée","branchStrategyExisting":"Utiliser une branche existante","branchStrategyProjectDefault":"Utiliser la branche du projet/par défaut","buildExample":"Par exemple, créer un éditeur de documents collaboratif en temps réel avec présence, commentaires et historique des versions...","cancelButton":"Annuler","clickToViewTask":"Cliquer pour voir la tâche","close":"Fermer","closeMissionManager":"Fermer le gestionnaire de missions","collapseDetails":"Réduire les détails","completedFeatures":"{{completed}}/{{total}} fonctionnalités","completedMilestones":"{{completed}}/{{total}} jalons","completedTasks":"{{completed}}/{{total}} tâches","confirmMilestonePlaceholder":"Comment confirmer que cet objectif est atteint...","confirmSlicePlaceholder":"Comment confirmer que cette tranche est terminée...","contractAssertions":"Assertions de contrat (validées par IA)","createButton":"Créer","created":"Mission créée","createdFromInterview":"Mission créée depuis l'entretien IA","createTask":"Créer une tâche","creatingMission":"Création de la mission...","defaultInterviewTitle":"Entretien de mission","deleteAssertion":"Supprimer l'assertion","deleteButton":"Supprimer","deleteConfirm":"Supprimer ce/cette {{type}} ? Cette action est irréversible.","deleted":"Mission supprimée","deleteFailed":"Échec de la suppression de la mission","deleteFeature":"Supprimer la fonctionnalité","deleteMilestone":"Supprimer le jalon","deleteMission":"Supprimer la mission","deleteSlice":"Supprimer le découpage","describeGoal":"Décrivez ce que vous voulez construire. L'IA vous posera des questions pour comprendre la portée, les contraintes et les exigences, puis produira un plan structuré avec des jalons, des tranches et des fonctionnalités.","descriptionLabel":"Description de la mission","descriptionOptional":"Description (facultative)","detailTabs":"Onglets de détails de la mission","discardButton":"Supprimer","discardDraft":"Supprimer le brouillon","discardDraftConfirm":"Supprimer ce brouillon d'entretien ? Cela supprime le brouillon enregistré et ne peut pas être annulé.","dismiss":"Ignorer","draftDiscardFailed":"Échec de la suppression du brouillon","draftOpenInAnotherTab":"Le brouillon est ouvert dans un autre onglet","draftsLabel":"Brouillons","editAssertion":"Modifier l'assertion","editFeature":"Modifier la fonctionnalité","editMilestone":"Modifier le jalon","editMission":"Modifier la mission","editSlice":"Modifier le découpage","enrichedDescPreview":"Aperçu de la description enrichie","expandRunHistory":"Développer pour afficher l'historique des exécutions","expected":"Attendu : {{value}}","failedAssertions":"Assertions échouées :","failedAssertionsTitle":"Assertions échouées :","failedLoadModels":"Échec du chargement des modèles","featureCreated":"Fonctionnalité créée","featureCriteriaAwaitingSync":"Critères de fonctionnalités en attente de synchronisation d'assertion","featureDeleted":"Fonctionnalité supprimée","featureDeleteFailed":"Échec de la suppression de la fonctionnalité","featureLinkedToAssertion":"Fonctionnalité liée à l'assertion","featureLinkedToTask":"Fonctionnalité liée à la tâche","featureLinkFailed":"Échec de la liaison de la fonctionnalité","featureLinkTaskFailed":"Échec de la liaison de la fonctionnalité à la tâche","featureSaveFailed":"Échec de l'enregistrement de la fonctionnalité","featuresCount_one":"","featuresCount_other":"","featureTitlePlaceholder":"Titre de la fonctionnalité","featureTitleRequired":"Le titre de la fonctionnalité est requis","featureTriaged":"Fonctionnalité triée — tâche créée","featureTriageFailed":"Échec du triage de la fonctionnalité","featureUnlinkedFromAssertion":"Fonctionnalité dissociée de l'assertion","featureUnlinkedFromTask":"Fonctionnalité dissociée de la tâche","featureUnlinkFailed":"Échec de la dissociation de la fonctionnalité","featureUnlinkFromAssertionFailed":"Échec de la dissociation de la fonctionnalité","featureUpdated":"Fonctionnalité mise à jour","filterAll":"Tous les événements","filterAutopilot":"Événements du pilote automatique","filterErrors":"Erreurs et avertissements","filterLabel":"Filtrer","filterSlices":"Événements de découpage et jalon","filterStateChanges":"Changements d'état","filterTasks":"Événements de tâche","generatedFixFeatures":"Fonctionnalités de correction générées :","generatedFixFeaturesTitle":"Fonctionnalités de correction générées","generatedFromFeature":"Généré depuis la fonctionnalité : {{id}}","hideDetails":"Masquer les détails","hideMetadata":"Masquer les métadonnées","hideThinking":"Masquer la réflexion","hideValidationRounds":"Masquer les tours de validation","interviewActionGenerating":"Génération du plan","interviewActionResume":"Reprendre l'entretien","interviewActionRetry":"Réessayer l'entretien","interviewActionReview":"Réviser le plan","interviewComplete":"Plan prêt — révisez et approuvez pour créer la mission.","interviewErrorDefault":"La session a échoué lors du contact avec l'IA.","interviewErrored":"L'entretien a rencontré une erreur. Réessayez depuis cet élément.","interviewGenerating":"Génération de la hiérarchie de mission à partir du contexte de l'entretien.","interviewInProgress":"Entretien en cours","interviewWaiting":"L'entretien attend votre prochaine réponse.","lastValidatorStatus":"Dernier {{status}}","linkAFeature":"Lier une fonctionnalité","linkButton":"Lier","linkedCount_one":"","linkedCount_other":"","linkedFeaturesCount_one":"","linkedFeaturesCount_other":"","linkedFeaturesLabel":"Fonctionnalités liées","linkedGoals":"Objectifs liés","linkedGoalsTitle":"Objectifs liés","linkFeatureButton":"Lier une fonctionnalité","linkFeatureToTask":"Lier la fonctionnalité à la tâche :","linkToTask":"Lier à la tâche","loadActivityFailed":"Échec du chargement de l'activité de la mission","loadDetailFailed":"Échec du chargement des détails de la mission","loadFailed":"Échec du chargement des missions","loadingActivity":"Chargement de l'activité de la mission…","loadingMissionDetails":"Chargement des détails de la mission…","loadingMissions":"Chargement des missions…","loadingModels":"Chargement des modèles…","loadMore":"Charger plus","loopState":"État de boucle : {{state}}","milestoneCreated":"Jalon créé","milestoneDeleted":"Jalon supprimé","milestoneDeleteFailed":"Échec de la suppression du jalon","milestoneDescriptionPlaceholder":"Description du jalon...","milestoneSaveFailed":"Échec de l'enregistrement du jalon","milestonesCount_one":"","milestonesCount_other":"","milestoneTitlePlaceholder":"Titre du jalon","milestoneTitleRequired":"Le titre du jalon est requis","milestoneUpdated":"Jalon mis à jour","missionHealthAriaLabel":"Santé de la mission : {{state}}","missionInterviewInProgressDesc":"L'entretien de mission est toujours en cours. Ouvrez cette mission pour continuer la planification.","missionList":"Liste des missions","missionManagerAriaLabel":"Gestionnaire de missions","missionTargetBranchAriaLabel":"Branche cible de la mission","missionTitlePlaceholder":"Titre de la mission","noAssertionFailures":"Aucun échec d'assertion","noAssertionsDefined":"Aucun critère d'acceptation de fonctionnalité ou assertion de contrat défini pour l'instant.","noAssertionsYet":"Aucune assertion de contrat liée n'est encore chargée. Les critères de fonctionnalités ci-dessous seront tout de même validés par IA lors des exécutions de validation.","noEventsYet":"Aucun événement pour l'instant.","noFeaturesLinkedYet":"Aucune fonctionnalité liée pour l'instant","noFixFeaturesGenerated":"Aucune fonctionnalité de correction générée.","noGoalsLinked":"Aucun objectif lié à cette mission","noLinkedGoals":"Aucun objectif lié.","noMilestonesYet":"Aucun jalon pour l'instant. Ajoutez-en un pour commencer.","noMissionsYetBody":"Les missions sont de grandes initiatives qui regroupent des jalons, des découpages et des fonctionnalités dans un seul plan. Planifiez une mission pour décomposer un objectif de bout en bout et laissez les agents l'exécuter en mode pilote automatique.","noMissionsYetTitle":"Aucune mission pour l'instant","none":"Aucun","noSlicesYet":"Aucun découpage pour l'instant","noValidationRunsYet":"Aucune exécution de validation pour l'instant.","openMissionAriaLabel":"Ouvrir la mission {{title}}","orSelect":"Ou sélectionner :","planMilestone":"Planifier le jalon","planNewMission":"Planifier une nouvelle mission","planningModel":"Modèle de planification","planReady":"Plan de mission prêt","planSlice":"Planifier le découpage","planStateNeedsUpdate":"Nécessite une mise à jour","planStateNotPlanned":"Non planifié","planStatePlanned":"Planifié","planTitle":"Planifier une mission avec l'IA","prepareQuestion":"Préparation de la prochaine question...","progressText_one":"","progressText_other":"","reconnecting":"Reconnexion en cours…","relativeTimeDays_one":"","relativeTimeDays_other":"","relativeTimeHours_one":"","relativeTimeHours_other":"","relativeTimeJustNow":"à l'instant","relativeTimeMinutes_one":"","relativeTimeMinutes_other":"","removeFeature":"Supprimer la fonctionnalité","removeMilestone":"Supprimer le jalon","removeSlice":"Supprimer la tranche","resizeSidebar":"Redimensionner la barre latérale des missions","resumed":"Mission reprise","resumeFailed":"Échec de la reprise de la mission","resumeInterviewAriaLabel":"Reprendre l'entretien {{title}}","resumeMission":"Reprendre la mission","retries":"réessais","retry":"réessai","retryBudgetTitle":"Tentatives d'implémentation et budget de réessai restant","retrying":"Nouvelle tentative en cours...","roadmapLabel":"Feuille de route","run":"Exécution :","runSettings":"Paramètres d'exécution de la mission","runSettingsTitle":"Paramètres d'exécution de la mission","saveButton":"Enregistrer","saveFailed":"Échec de l'enregistrement de la mission","selectMissionToView":"Sélectionnez une mission pour voir les détails","sendToBackground":"Envoyer en arrière-plan","sessionActiveAnother":"La session est active dans un autre onglet.","sessionActiveHeartbeat":"Cette session est active dans un autre onglet (pulsation en direct)","sessionActiveTab":"Cette session est active dans un autre onglet","showDetails":"Afficher les détails","showMetadata":"Afficher les métadonnées","showThinking":"Afficher la réflexion","showValidationRounds":"Afficher les tours de validation","sliceActivated":"Découpage activé","sliceActivateFailed":"Échec de l'activation du découpage","sliceCreated":"Découpage créé","sliceDeleted":"Découpage supprimé","sliceDeleteFailed":"Échec de la suppression du découpage","sliceSaveFailed":"Échec de l'enregistrement du découpage","slicesCount_one":"","slicesCount_other":"","sliceTitlePlaceholder":"Titre du découpage","sliceTitleRequired":"Le titre du découpage est requis","sliceTriaged_one":"","sliceTriaged_other":"","sliceTriageFailed":"Échec du triage des fonctionnalités du découpage","sliceUpdated":"Découpage mis à jour","sliceVerification":"Vérification de la tranche","source":"Source :","started":"Mission démarrée — premier découpage activé","startFailed":"Échec du démarrage de la mission","startInterview":"Démarrer l'interview","startMission":"Démarrer la mission","startOver":"Recommencer","statusActive":"Actif","statusArchived":"Archivé","statusBlocked":"Bloqué","statusComplete":"Terminé","statusDefined":"Défini","statusDone":"Terminé","statusFailed":"Échoué","statusInProgress":"En cours","statusPassed":"Réussi","statusPending":"En attente","statusPlanning":"Planification","statusTriaged":"Trié","stopFailed":"Échec de l'arrêt de la mission","stopMission":"Arrêter la mission","stopped_one":"","stopped_other":"","summaryStats":"{{milestones}} jalons, {{features}} fonctionnalités. Vérifiez et modifiez avant d'approuver.","tabActivity_one":"","tabActivity_other":"","tabStructure":"Structure","takeControl":"Prendre le contrôle","takingControl":"Prise de contrôle en cours...","targetBranch":"Branche cible","targetBranchPlaceholder":"p. ex. main","taskIdPlaceholder":"ID de tâche (p. ex. FN-001)","taskIdRequired":"L'ID de tâche est requis","tasksFailed_one":"","tasksFailed_other":"","title":"Missions","titleLabel":"Titre de la mission","titleRequired":"Le titre de la mission est requis","toggleDetails":"Afficher/masquer les détails","transformVision":"Transformer votre vision en une mission structurée","triageAllFeatures":"Trier toutes les fonctionnalités","triageCreateTask":"Trier — créer une tâche","tryExample":"Essayez un exemple:","typeAnswer":"Tapez votre réponse ici...","unlinkedBadge":"Non lié","unlinkFeature":"Dissocier la fonctionnalité","unlinkTask":"Dissocier la tâche","untitled":"Sans titre","updateButton":"Mettre à jour","updated":"Mission mise à jour","validateFeature":"Valider la fonctionnalité","validationRoundsCount_one":"","validationRoundsCount_other":"","validationRoundsLabel_one":"","validationRoundsLabel_other":"","validationRuns":"Exécutions de validation","validationState":"État de validation","validationStateNotStarted":"Non commencé","validationTelemetry":"Télémétrie de validation","validationTriggered":"Validation déclenchée","validationTriggerFailed":"Échec du déclenchement de la validation","verification":"Vérification :","verificationCriteria":"Critères de vérification","viewMissionFailures":"Voir les échecs de la mission","whatToBuild":"Qu'est-ce que tu veux construire?"}`),ue={createdFromPlanning:"Créé {{id}} à partir du mode planification",createdFromSubtask:"Créés {{ids}} à partir de la décomposition des sous-tâches",createdMultipleFromPlanning:"Créés {{ids}} à partir du mode planification"},ce={noChange:"Aucun changement",selectPlaceholder:"Sélectionner un modèle…"},de={addProviderToFavoritesAriaLabel:"Ajouter {{provider}} aux favoris",addToFavorites:"Ajouter aux favoris",addToFavoritesAriaLabel:"Ajouter {{name}} aux favoris",clearFilter:"Effacer le filtre",count_one:"",count_other:"",descriptions:{executor:"Le modèle d'IA utilisé pour mettre en œuvre cette tâche.",override:"Remplacez les modèles d'IA utilisés pour cette tâche. Si non spécifié, les valeurs par défaut du projet ou globales sont utilisées.",planning:"Le modèle d'IA utilisé pour la spécification des tâches (phase de triage).",reviewer:"Le modèle d'IA utilisé pour examiner le code et les plans de cette tâche.",thinkingLevel:"Contrôle l'effort de raisonnement de l'agent IA. Les niveaux supérieurs utilisent plus de jetons."},emptyStates:{noModels:"Aucun modèle disponible. Configurez l'authentification dans Paramètres pour activer la sélection de modèle."},errors:{failedSaveSettings:"Impossible d'enregistrer les paramètres du modèle",failedSaveThinking:"Impossible d'enregistrer le niveau de réflexion",failedUpdateFavorites:"Impossible de mettre à jour les favoris",failedUpdateModelFavorites:"Impossible de mettre à jour les modèles favoris"},filterPlaceholder:"Filtrer les modèles…",labels:{executorModel:"Modèle d'exécuteur",planningModel:"Modèle de planification",reviewerModel:"Modèle d'examinateur",thinkingLevel:"Niveau de réflexion"},messages:{thinkingLevelSet:"Niveau de réflexion défini sur {{level}}",thinkingLevelSetDefault:"Niveau de réflexion défini sur la valeur par défaut ({{level}})",upToDate:"Les paramètres du modèle sont à jour.",usingDefaults:"Utilisation des modèles par défaut du projet ou globaux."},noResults:"Aucun modèle ne correspond à '{{filter}}'",options:{default:"Défaut",high:"Élevé",low:"Faible",medium:"Moyen",minimal:"Minimal",off:"Désactivé"},placeholders:{selectExecutor:"Sélectionnez un modèle d'exécuteur…",selectPlanning:"Sélectionnez un modèle de planification…",selectReviewer:"Sélectionnez un modèle d'examinateur…"},removeFromFavorites:"Supprimer des favoris",removeFromFavoritesAriaLabel:"Supprimer {{name}} des favoris",removeProviderFromFavoritesAriaLabel:"Supprimer {{provider}} des favoris",states:{loading:"Chargement des modèles disponibles…",usingDefault:"Utilisation de la valeur par défaut"},titles:{configuration:"Configuration du modèle"},useDefault:"Utiliser la valeur par défaut"},pe={choose:"Choisissez les modèles pour cette tâche. Si non sélectionné, les modèles par défaut seront utilisés.",custom:"Personnalisé",executorModel:"Modèle exécuteur",executorPlaceholder:"Sélectionner le modèle exécuteur…",loading:"Chargement des modèles…",noModels:"Aucun modèle disponible. Configurez l'authentification dans Paramètres pour activer la sélection des modèles.",preset:"Préréglage",reviewerModel:"Modèle réviseur",reviewerPlaceholder:"Sélectionner le modèle réviseur…",title:"Sélectionner les modèles",useDefault:"Utiliser par défaut",usingDefault:"Par défaut"},me={activityLog:"Journal d'activité",agents:"Agents",automation:"Automatisation",chat:"Chat",chatUnreadAriaLabel:"Réponse non lue",devServer:"Serveur de dev",documents:"Documents",evals:"Évaluations",files:"Fichiers",gitManager:"Gestionnaire Git",goals:"Objectifs",importFromGitHub:"Importer depuis GitHub",insights:"Insights",loadingScripts:"Chargement des scripts…",mailbox:"Boîte de réception",mailboxPendingAriaLabel:"Approbations en attente",manageScripts:"Gérer les scripts…",memory:"Mémoire",missions:"Missions",more:"Plus",moreSheetTitle:"Naviguer",nodes:"Nœuds",noScriptsAddOne:"Aucun script — en ajouter un…",planning:"Planification",primaryNavAriaLabel:"Navigation principale",projects:"Projets",reliability:"Fiabilité",research:"Recherche",scriptsSubmenuAriaLabel:"Sous-menu des scripts",secrets:"Secrets",settings:"Paramètres",showScriptsAriaLabel:"Afficher les scripts",skills:"Compétences",stashRecovery:"Récupération de stash",systemStats:"Statistiques système",tasks:"Tâches",terminal:"Terminal",todos:"Tâches à faire",usage:"Utilisation",workflows:"Workflows"},he={addDependencies:"Ajouter des dépendances",assignAgent:"Assigner un agent",assignAgentButton:"Assigner un agent",branchRequired:"Le nom de la branche est obligatoire pour cette stratégie de branche.",clearSelection:"Effacer la sélection",createTask:"Créer une tâche",creating:"Création...",dependencies:"Dépendances",discardChanges:"Abandonner les modifications",failedToCreate:"Impossible de créer la tâche",failedToUpload:"Impossible de télécharger : {{files}}",loadingAgents:"Chargement des agents...",noAgentsAvailable:"Aucun agent disponible",noAvailableTasks:"Aucune tâche disponible",searchTasks:"Rechercher des tâches…",selectAgent:"Sélectionner un agent",selectedCount_one:"",selectedCount_other:"",taskCreated:"{{taskId}} créé",title:"Nouvelle tâche",unsavedChanges:"Vous avez des modifications non enregistrées. Les abandonner ?"},ge={actions:{connect:"Connecter",connecting:"Connexion en cours...",edit:{ariaLabel:"Modifier le nœud",label:"Modifier",title:"Modifier"},health:{ariaLabel:"Exécuter une vérification de santé du nœud",label:"Santé",title:"Vérification de santé"},remove:{ariaLabel:"Supprimer le nœud",ariaLabelConfirm:"Confirmer la suppression du nœud",label:"Supprimer",labelConfirm:"Confirmer",title:"Supprimer",titleConfirm:"Confirmer la suppression"},restart:{ariaLabel:"Redémarrer le conteneur de nœud",label:"Redémarrer",title:"Disponible après FN-3113"},start:{ariaLabel:"Démarrer le conteneur de nœud",label:"Démarrer",title:"Disponible après FN-3113"},stop:{ariaLabel:"Arrêter le conteneur de nœud",label:"Arrêter",title:"Disponible après FN-3113"}},addCliButton:"Ajouter un CLI",addDockerNode:"Ajouter un nœud Docker",addDockerNodeTitle:"Ajouter un nœud Docker géré",addFirstNode:"Ajouter le premier nœud",adding:"Ajout...",addMountButton:"Ajouter un montage",addNode:"Ajouter un nœud",addVariableButton:"Ajouter une variable",apiKey:"Clé API",apiKeyMode:"Mode de clé API",apiKeyNotConfigured:"Non configuré",apiKeyPlaceholder:"Laisser vide pour ne pas modifier",attachProjects:"Joindre les projets existants",attachProjectsHint:"Sélectionnez les projets existants à exécuter sur ce nœud et fournissez le chemin absolu spécifique au nœud pour chacun.",authSync:{differ:"identifiants diffèrent",label:"Sync auth : {{status}}",match:"identifiants correspondent",notSynced:"non synchronisé"},autoAssignment:"Auto (pas d'affectation)",autoGenerate:"Générer automatiquement",availableSoon:"Disponible après FN-3113",cancelButton:"Annuler",closeAriaLabel:"Fermer la vue des nœuds",closeButton:"Fermer",closeLogsAriaLabel:"Fermer les journaux",closeModalAriaLabel:"Fermer la fenêtre des détails du nœud",closeNodeModal:"Fermer la boîte de dialogue Ajouter un nœud",concurrencyMin:"La concurrence doit être d'au moins 1",concurrencyRange:"La concurrence doit être entre {{min}} et {{max}}",containerLogs:"Journaux du conteneur",description:"Enregistrez un nœud Fusion existant en fournissant ses détails de connexion et ses paramètres de concurrence.",discoverBeforeAdding:"Découvrez les projets distants avant d'ajouter ce nœud.",discoveredCount_one:"",discoveredCount_other:"",discovering:"Découverte...",discoverRemoteProjects:"Découvrir les projets distants",discoveryFailed:"Échec de la découverte des projets distants",dismissError:"Ignorer l'erreur",docker:"Docker",dockerBadge:"Nœud Docker géré",dockerConfigSaveFailed:"Échec de l'enregistrement de la config Docker",dockerConfigSaveSuccess:"Configuration Docker enregistrée",dockerConfiguration:"Configuration Docker",dockerContainerId:"ID du conteneur",dockerContainerPath:"Chemin conteneur",dockerContextName:"Nom du contexte",dockerCpuCount:"Nombre de CPU",dockerDefaultCpu:"CPU par défaut",dockerDefaultMemory:"Mémoire par défaut",dockerEnvVars:"Variables d'environnement",dockerExitCode:"Code de sortie :",dockerExtraClis:"CLI supplémentaires",dockerFieldImage:"Image",dockerHost:{local:"Docker local",remote:"Distant : {{host}}"},dockerHostConfig:"Config hôte",dockerHostPath:"Chemin hôte",dockerHostUrl:"URL de l'hôte Docker",dockerLabel:"Docker",dockerMemoryBytes:"Octets mémoire (2 Go = 2147483648)",dockerNeedsRecreate:"Recréation requise",dockerNodeCreated:"Nœud Docker « {{name}} » créé",dockerPersistence:"Persistance",dockerPersistentStorage:"Stockage persistant",dockerPidsLimit:"Limite de PIDs",dockerPort:"Port",dockerResourceDefault:"Par défaut",dockerResources:"Ressources",dockerResourceSizing:"Dimensionnement des ressources",dockerRetainOnDelete:"Conserver à la suppression",dockerStatusUnknown:"Inconnu",dockerTlsCaCert:"Chemin du certificat CA TLS",dockerTlsCert:"Chemin du certificat TLS",dockerTlsKey:"Chemin de la clé TLS",dockerTlsVerify:"Vérification TLS",dockerUptime:"Disponibilité :",dockerVolumeMounts:"Montages de volumes",dockerVolumeName:"Nom du volume",editButton:"Modifier",errorFetching:"Impossible de récupérer les nœuds",errorPersistMappings:"Échec de la persistance des mappages de projet",errors:{connectFailed:"Impossible de se connecter",connectToNode:"Impossible de se connecter au nœud"},errorUnregisterAfterMappingFailure:"Échec de la désinscription du nœud après l'échec du mappage",failedCreateDocker:"Impossible de créer le nœud Docker",failedRefresh:"Impossible d'actualiser les nœuds",failedRemove:"Impossible de supprimer le nœud",fetchContainerLogsFailed:"Échec de la récupération des journaux du conteneur",fetchContainerStatusFailed:"Échec de la récupération du statut du conteneur",fetchingLogs:"Récupération des journaux…",fieldApiKey:"Clé API",fieldCreated:"Créé",fieldMaxConcurrent:"Concurrence max",fieldName:"Nom",fields:{authKey:"Clé d'authentification",host:"Hôte / Adresse IP",maxConcurrent:"Concurrence max",name:"Nom du nœud",port:"Port",url:"URL"},fieldStatus:"Statut",fieldType:"Type",fieldUpdated:"Mis à jour",fieldUrl:"URL",heading:"Nœuds",healthCheckButton:"Vérification de santé",healthCheckComplete:"Vérification de santé du nœud terminée",healthCheckFailed:"Échec de la vérification de santé",healthCheckSuccess:"Vérification de santé terminée pour {{name}}",healthLastCheck:"Dernière vérification :",healthStatus:"Statut :",local:"Local",localDocker:"Docker local",localNodeName:"Local",maxConcurrent:"Concurrence maximale",maxConcurrentHint:"Nombre maximum d'agents de tâche simultanés (1–10)",meshTopology:"Topologie maillée",meshTopologyAriaLabel:"Topologie maillée",metrics:{concurrency:"Concurrence",projects:"Projets"},modal:{closeButton:"Fermer la boîte de dialogue de connexion au nœud",title:"Se connecter au nœud"},modalAriaLabel:"Détails du nœud pour {{name}}",modalTitle:"Détails du nœud",multipleMatches:"Plusieurs projets distants correspondent à ce nom. Entrez manuellement le chemin correct.",name:"Nom",namePlaceholder:"Machine de construction",nameRequired:"Le nom est obligatoire",no:"Non",nodeLabel:"{{name}} ({{type}}) — {{status}}",noLogsAvailable:"Aucun journal disponible",noMatch:"Aucune correspondance exacte du nom distant. Entrez ce chemin manuellement.",noProjects:"Aucun projet n'est actuellement enregistré.",noProjectsAssigned:"Aucun projet n'est assigné à ce nœud.",noProjectsDiscovered:"Aucun projet découvert sur le nœud distant.",noProjectsRunning:"Aucun projet n'est en cours d'exécution sur ce nœud.",noRegistered:"Aucun nœud n'est enregistré pour le moment.",offline:"Hors ligne",online:"En ligne",pathDiscovered:"Chemin faisant autorité distant découvert : {{path}}",pathInvalid:"Le chemin est invalide",pathOnNode:"Chemin sur ce nœud",placeholders:{host:"192.0.2.10 ou my-server.local",name:"Serveur de construction",optional:"Optionnel"},provideManually:"Fournir manuellement la clé",pulling:"Récupération…",pullSettings:"Récupérer les paramètres",pullSettingsFailed:"Échec de la récupération des paramètres",pullSettingsSuccess:"Paramètres récupérés avec succès",pushing:"Envoi…",pushSettings:"Envoyer les paramètres",pushSettingsFailed:"Échec de l'envoi des paramètres",pushSettingsSuccess:"Paramètres envoyés avec succès",reachableUrl:"URL accessible / Nom d'hôte",readOnly:"Lecture seule",refresh:"Actualiser",refreshing:"Actualisation…",refreshStatus:"Actualiser le statut",registered:"Nœud « {{name}} » enregistré",registeredCount_one:"",registeredCount_other:"",registerFailed:"Échec de l'enregistrement du nœud",remote:"À distance",removeButton:"Supprimer",removed:"Nœud supprimé",restartButton:"Redémarrer",runtimeNodeLabel:"Nœud d'exécution",saveButton:"Enregistrer",saveDockerConfig:"Enregistrer la config Docker",saving:"Enregistrement…",sectionAssignedProjects:"Projets assignés",sectionDockerManagement:"Gestion Docker",sectionHealth:"Santé",sectionOverview:"Aperçu",sectionProjects:"Projets",sectionSettingsSync:"Synchronisation des paramètres",sectionSyncHistory:"Historique de synchronisation",startButton:"Démarrer",statusConnecting:"Connexion en cours",statusError:"Erreur",statusOffline:"Hors ligne",statusOnline:"En ligne",statusTitle:"Statut : {{status}}",stopButton:"Arrêter",success:{connected:'Connecté à "{{name}}"'},syncAuth:"Synchroniser l'auth",syncAuthFailed:"Échec de la synchronisation de l'auth",syncAuthSuccess:"Identifiants d'authentification synchronisés avec succès",syncDifferences:"Différences :",synced:"Synchronisé",syncing:"Synchronisation…",syncLastSync:"Dernière sync :",syncNeverSynced:"Jamais synchronisé",total:"Total",type:{local:"Local",remote:"Distant"},typeLocal:"Local",typeRemote:"Distant",updateFailed:"Échec de la mise à jour du nœud",updateSuccess:"{{name}} mis à jour",urlRequired:"L'URL est obligatoire pour les nœuds distants",validation:{concurrencyRange:"La concurrence doit être entre {{min}} et {{max}}",hostRequired:"L'hôte / l'adresse IP est requis",nameRequired:"Le nom du nœud est requis",portRange:"Le port doit être entre 1 et 65535"},viewLogsButton:"Voir les journaux",yes:"Oui"},ve={local:"Local"},fe={error:{authSyncFailed:"La synchronisation d'authentification a échoué",failedToFetchStatus:"Impossible de récupérer l'état de synchronisation",pullFailed:"Échec de la récupération des paramètres",pushFailed:"Échec de l'envoi des paramètres",someRequestsFailed:"Certaines demandes de statut de synchronisation ont échoué"}},be={authToken:"Jeton d'authentification (optionnel)",continue:"Continuer",continueOnboarding:"Continuer l'intégration",continueSetup:"Continuer la configuration",defaultName:"Serveur distant",description:"Fusion vous aide à planifier, exécuter et examiner les travaux d'ingénierie assistés par l'IA.",localFusion:"Fusion local",onTheStep:"Vous êtes sur",profileName:"Nom du profil",progressText:"{{completed}} sur {{total}} étape{{pluralS}} terminée — Vous êtes sur",remoteServer:"Serveur distant",resumeOnboarding:"Reprendre l'intégration",saving:"Enregistrement…",scanning:"Numérisation…",scanQr:"Scanner QR",serverUrl:"URL du serveur",serverUrlPlaceholder:"https://votre-hote-fusion",stepContinue:"étape. Continuez où vous vous êtes arrêté pour terminer la configuration de votre tableau de bord.",welcome:"Bienvenue dans Fusion"},Ae={agentId:"ID d'agent",agentIdHint:"Définition d'agent OpenClaw à exécuter (par défaut: main).",agentIdPlaceholder:"main",binaryPath:"Chemin du binaire",binaryPathHint:"Laissez vide pour résoudre openclaw à partir de votre PATH.",binaryPathPlaceholder:"openclaw (par défaut PATH)",cliTimeout:"Délai d'expiration OpenClaw (sec)",cliTimeoutHint:"Délai d'expiration d'exécution côté OpenClaw en secondes (0 = pas de délai).",description:"Pilote le CLI local <code1>openclaw</code1> en tant que sous-processus. Chaque invite Fusion est transmise via <code2>openclaw agent --local --json</code2> ; la définition de l'agent, le modèle et le niveau de réflexion sont résolus par OpenClaw. Cette carte ne définit que les remplacements et le chemin du binaire.",detected:"✓ openclaw détecté{{version}}{{path}}.",gateway:"Acheminer via la passerelle OpenClaw (sinon intégré)",gatewayHint:"Lorsqu'activé, les appels passent par le service de passerelle OpenClaw.",githubLink:"openclaw sur GitHub",model:"Remplacement du modèle",modelHint:"Optionnel — remplace le modèle par défaut d'OpenClaw.",modelPlaceholder:"p. ex. anthropic/claude-haiku-4-5, minimax/MiniMax-M3",notDetectedInstall:"<code>openclaw</code> non détecté. Installez l'agent en amont :",notFound:"✗ openclaw non trouvé",probing:"Sondage du binaire openclaw local…",saved:"Paramètres enregistrés.",savedDetected:"Enregistré · ✓ openclaw détecté{{version}}{{path}}.",savedNotFound:"Enregistré · ✗ openclaw non trouvé",savedProbeFailed:"Enregistré, mais la sonde a échoué.",statusDetected:"✓ Détecté{{version}}{{path}}",statusNotFound:"✗ non détecté sur PATH",subprocess:"Délai d'expiration du sous-processus CLI (ms)",subprocessHint:"Limite côté Fusion avant la suppression du sous-processus CLI (par défaut: {{default}}s).",testFailed:"Test échoué — consultez le statut ci-dessus.",thinking:"Niveau de réflexion",thinkingHint:"Contrôle la quantité de réflexion approfondie que le modèle utilise."},Ce={agentHelp:"Choisissez l'agent Paperclip que ce runtime Fusion proxiera.",agentLabel:"Agent",apiKeyHelp:"Clé API de l'agent. Les déploiements de confiance locale peuvent laisser ce champ vide.",apiKeyLabel:"Clé API",apiKeyMinted:"Clé API créée via paperclipai (clé 'fusion-runtime' installée pour l'agent {{agentId}}). Cliquez sur Enregistrer pour persister.",apiKeyPlaceholder:"•••••••• (laisser vide pour conserver l'existant)",apiUrlHelp:"URL de base du serveur Paperclip.",apiUrlLabel:"URL API",cliApiKeyHelp:"Les déploiements de confiance locale ne nécessitent pas de clé.",cliApiKeyLabel:"Clé API (remplacer, optionnel)",cliApiKeyPlaceholder:"Optionnel — requis uniquement pour les modes non localement approuvés",cliBinaryHelp:"Optionnel — informatif ; l'adaptateur lit actuellement le fichier de configuration de l'instance directement.",cliBinaryLabel:"Binaire paperclipai",cliConfigLabel:"Config CLI :",cliConfigPathHelp:"Remplacez le chemin vers config.json. Laissez vide pour utiliser la valeur par défaut.",cliConfigPathLabel:"Chemin de configuration de l'instance",cliDiscoveryFailed:"Échec de la découverte CLI : {{reason}}",cliDiscoveryFailedLabel:"Échec de la découverte CLI : {{reason}}",companyHelp:"Sélectionnez une entreprise Paperclip.",companyIdRequired:"L'ID de l'entreprise est requis pour émettre une clé API Paperclip.",companyLabel:"Entreprise",connected:"Connecté.",connectedAsAgent:"Connecté en tant que {{agentName}}{{companyInfo}}.",connectionModeAriaLabel:"Mode de connexion Paperclip",connectToPopulate:"Connectez-vous pour remplir",description:"Pilotez un agent Paperclip (employé) dans une entreprise Paperclip. Chaque invite envoie une demande en forme de tâche ; la gouvernance, les budgets et les approbations sont appliqués par Paperclip. Attendez-vous à une latence de quelques secondes à quelques minutes par tour.",docsLink:"Documentation Paperclip",githubLink:"GitHub",goalIdHelp:"Associez le travail à un objectif Paperclip.",goalIdLabel:"ID de l'objectif (optionnel)",mintButton:"Créer une clé API via paperclipai",mintFailed:"Émission échouée : {{reason}}. Exécutez d'abord `paperclipai onboard` si votre CLI n'est pas authentifiée.",modeLabel:"Mode de conversation",name:"Paperclip",noAgentsDiscovered:"Aucun agent découvert",noCompaniesDiscovered:"Aucune entreprise découverte",onboardingStep1:"Assurez-vous qu'un serveur Paperclip est en cours d'exécution. Pour installer Paperclip :",optionalPlaceholder:"Optionnel",parentIssueIdHelp:"Limitez le travail sous un problème parent existant.",parentIssueIdLabel:"ID du problème parent (optionnel)",pickCompanyFirst:"Choisissez d'abord une entreprise",projectIdHelp:"Épinglez le travail sur un projet Paperclip spécifique.",projectIdLabel:"ID de projet (optionnel)",resolved:"résolu",runTimeoutHelp:"Plafond local avant que Fusion abandonne une exécution Paperclip.",runTimeoutLabel:"Délai d'exécution (ms)",savedCliDiscoveryFailed:"Enregistré · Échec de la découverte CLI : {{reason}}",savedConnected:"Enregistré · Connecté.",savedConnectedAsAgent:"Enregistré · Connecté en tant que {{agentName}}{{companyInfo}}.",savedProbeFailed:"Enregistré, mais le sondage a échoué.",savedUnreachable:"Enregistré · {{reason}}",settingsSaved:"Paramètres enregistrés.",statusCliDiscoveryFailed:"Échec de la découverte CLI : {{reason}}",statusConnected:"Connecté",statusConnectedAs:"Connecté en tant que {{agentName}}{{roleInfo}}{{companyInfo}}",statusProbing:"Sondage du serveur Paperclip…",statusUnreachable:"{{reason}}",tabApi:"API (URL + jeton)",tabCliAutoDerve:"CLI local (dérivation automatique)",testFailed:"Le test a échoué — voir le statut ci-dessus.",unreachable:"{{reason}}"},Se={addButton:"Ajouter",discoveredDescription:"Extensions installées résolues à partir de paquets et de chemins configurés.",discoveredTitle:"Extensions découvertes",enterSource:"Veuillez entrer une source de paquet",extensionDisabled:"Extension désactivée",extensionEnabled:"Extension activée",filterExtensions:"Extensions :",filterPrompts:"Invites :",filterSkills:"Compétences :",filterThemes:"Thèmes :",installFailed:"Impossible d'installer le paquet : {{error}}",installing:"Installation…",installSuccess:"Paquet installé avec succès",loadExtensionsFailed:"Impossible de charger les extensions : {{error}}",loading:"Chargement des paramètres Pi…",loadingExtensions:"Chargement des extensions…",loadingFailed:"Impossible de charger les paramètres Pi.",loadSettingsFailed:"Impossible de charger les paramètres Pi : {{error}}",noExtensions:"Aucune extension découverte.",noPackages:"Aucun paquet configuré.",noPackagesHelp:"Ajoutez une source de paquet ci-dessus pour commencer.",packagePlaceholder:"npm:pi-extension-name ou git:https://github.com/...",packageRemoved:"Paquet supprimé",refreshButton:"Actualiser",refreshExtensions:"Actualiser les extensions",reinstallButton:"Réinstaller la compétence Fusion",reinstallFailed:"Impossible de réinstaller la compétence Fusion : {{error}}",reinstalling:"Réinstallation de Fusion…",reinstallSuccess:"Compétence Fusion réinstallée avec succès",removeFailed:"Impossible de supprimer le paquet : {{error}}",removePackage:"Supprimer le package",removePackageLabel:"Supprimer le package {{label}}",removeResource:"Supprimer {{path}}",resourceRemoved:"{{resource}} supprimé",sectionExtensions:"Extensions",sectionPrompts:"Invites",sectionSkills:"Compétences",sectionThemes:"Thèmes",title:"Extensions Pi",toggleExtension:"Activer/désactiver {{name}}",updateFailed:"Impossible de mettre à jour l'extension : {{error}}",updateSettingsFailed:"Impossible de mettre à jour les paramètres : {{error}}"},Te={additionalComments:"Commentaires supplémentaires (facultatif)",additionalCommentsPlaceholder:"Ajoutez du contexte ou des précisions supplémentaires…",addSubtask:"Ajouter une sous-tâche",advancedSettings:"Paramètres de planification avancés",aiThinking:"L'IA réfléchit…",archiveSession:"Archiver la session",backToSessions:"Retour aux sessions",backToSummary:"Retour au résumé",baseBranch:"Cible de fusion / branche de base (facultatif)",baseBranchPlaceholder:"main",branchAutoNew:"Créer une branche nommée automatiquement par tâche",branchCustomNew:"Créer une nouvelle branche personnalisée",branchExisting:"Utiliser une branche existante",branchName:"Nom de la branche",branchNameRequired:"Le nom de la branche est requis pour cette stratégie.",branchProjectDefault:"Utiliser la branche par défaut du projet",branchStrategy:"Stratégie de branche",breakdownSubheading:"Vérifiez et modifiez les sous-tâches générées à partir de votre plan. Ajustez les titres, descriptions, tailles, priorités et dépendances avant de créer.",breakingDown:"Décomposition…",breakIntoTasks:"Décomposer en tâches",breakIntoTasksTitle:"Décomposer le plan en plusieurs tâches avec dépendances",collapse:"Réduire",continue:"Continuer",createSingleTask:"Créer une seule tâche",createTasks:"Créer les tâches",creating:"Création…",delete:"Supprimer",deleteSession:"Supprimer la session",dependencies:"Dépendances",dependencyCycle:"Les dépendances contiennent un cycle. Supprimez les références circulaires avant de créer les tâches.",depthBlurb:"La taille du plan définit la profondeur d'entretien par défaut. Le champ Questions permet de la remplacer par un nombre exact.",depthLarge:"Grand",depthMedium:"Moyen",depthSmall:"Petit",description:"Description",dismiss:"Ignorer",dragToReorder:"Faire glisser pour réorganiser",examplePlan1:"Créer un système d'authentification avec connexion et inscription",examplePlan2:"Ajouter le support du mode sombre au tableau de bord",examplePlan3:"Créer un point de terminaison API pour exporter les tâches en CSV",examplePlan4:"Refactoriser le composant de carte de tâche pour de meilleures performances",expand:"Développer",failedCreateTask:"Impossible de créer la tâche",failedCreateTasks:"Impossible de créer les tâches",failedDeleteSession:"Impossible de supprimer la session",failedGoBack:"Impossible de revenir à la question précédente",failedLoadModels:"Impossible de charger les modèles",failedLoadSession:"Impossible de charger la session",failedRefinePlan:"Impossible d'affiner le plan",failedStartBreakdown:"Impossible de démarrer la décomposition",failedStartSession:"Impossible de démarrer la session de planification",failedSubmitResponse:"Impossible d'envoyer la réponse",firstSubtaskNoDeps:"La première sous-tâche ne peut pas avoir de dépendances.",generatingQuestion:"Génération de la prochaine question…",generationStopped:"Génération arrêtée. Vous pouvez réessayer ou démarrer une nouvelle session.",hideArchived:"Masquer les archivées",hideThinking:"Masquer la réflexion",initialHeading:"Transformez votre idée en tâche détaillée",initialSubheading:"Décrivez ce que vous voulez construire en langage simple. L'IA posera des questions de clarification et vous aidera à structurer une tâche bien définie.",keyDeliverables:"Livrables clés",loadingModels:"Chargement des modèles…",markdown:"Markdown",moveDown:"Déplacer vers le bas",moveSubtaskDown:"Déplacer la sous-tâche vers le bas",moveSubtaskUp:"Déplacer la sous-tâche vers le haut",moveUp:"Déplacer vers le haut",newPlanningSession:"Nouvelle session de planification",newSession:"Nouvelle session",noActiveQuestion:"Aucune question active dans la session",noPreviousSubtasks:"Aucune sous-tâche précédente disponible.",noSavedSessions:"Aucune session sauvegardée. Démarrez-en une à droite pour la voir ici.",plain:"Texte brut",planningComplete:"Planification terminée !",planningCompleteSubheading:"Vérifiez et affinez votre tâche avant de la créer.",planningDepth:"Profondeur de planification",planningModel:"Modèle de planification",planningModelBlurb:"Choisit le modèle qui conduit l'entretien de planification et rédige l'ébauche finale.",planningSessions:"Sessions de planification",priority:"Priorité",questionProgress:"Question {{progress}} sur ~3",questionsAuto:"Auto",questionsLabel:"Questions",reconnecting:"Reconnexion…",refineFurther:"Affiner davantage",relativeTimeDays_one:"",relativeTimeDays_other:"",relativeTimeHours_one:"",relativeTimeHours_other:"",relativeTimeJustNow:"à l'instant",relativeTimeMinutes_one:"",relativeTimeMinutes_other:"",relativeTimeWeeks_one:"",relativeTimeWeeks_other:"",remove:"Supprimer",retryFailed:"Nouvelle tentative échouée. Veuillez réessayer.",retrying:"Nouvelle tentative…",sessionActiveOtherTab:"Cette session est active dans un autre onglet",sessionActiveOtherTabLive:"Cette session est active dans un autre onglet (signal de vie actif)",sessionFailed:"La session a échoué lors de la connexion à l'IA.",sessionFailed2:"Échec de la session",showArchived:"Afficher les archivées",showFormattedMarkdown:"Afficher le markdown formaté",showQA:"Afficher les Q&R",showRawText:"Afficher le texte brut",showThinking:"Afficher la réflexion",sizeLarge:"L (Grand)",sizeMedium:"M (Moyen)",sizeSmall:"S (Petit)",startPlanning:"Démarrer la planification",statusComplete:"Terminé",statusError:"Erreur",statusGenerating:"En cours",statusNeedsInput:"En attente",stop:"Arrêter",subtaskDescription:"Description",subtaskPriority:"Priorité",subtaskSize:"Taille",subtaskTitle:"Titre",suggestedDependencies:"Dépendances suggérées",suggestedSize:"Taille suggérée",takeControl:"Prendre le contrôle",takingControl:"Prise de contrôle…",thinkingElapsed:"Réflexion… ({{seconds}} s)",title:"Mode planification",tryAnExample:"Essayez un exemple :",typeAnswerPlaceholder:"Saisissez votre réponse ici…",unarchiveSession:"Désarchiver la session",untitled:"Sans titre",untitledSession:"Session sans titre",usingDefault:"Modèle par défaut",whatToBuild:"Que voulez-vous construire ?",whatToBuildPlaceholder:"ex : Construire un système d'authentification avec connexion, inscription et réinitialisation du mot de passe…"},ke={addItem:"Ajouter un élément",aiScanDisabled:"Analyse IA au chargement désactivée",aiScanEnabled:"Analyse IA au chargement activée",aiScanHint:"Activer cette option met uniquement à jour la configuration. Utilisez Réanalyser et recharger pour l'exécuter maintenant.",author:"Auteur :",backToList:"Retour à la liste des plugins",builtinInstalledGlobally:"{{name}} installé globalement",builtinInstallFailed:"Échec de l'installation de {{name}} : {{error}}",builtinMetadataOnly:"Métadonnées intégrées uniquement",builtinNoPackage:"{{name}} est intégré et ne possède pas encore de package installable",builtinPluginRecommendations:"Recommandations de plugins intégrés",builtinPlugins:"Plugins intégrés",builtinPluginsCatalog:"Catalogue de plugins intégrés pour les runtimes et les intégrations.",cancel:"Annuler",checkingSetup:"Vérification de la configuration…",componentUnavailable:"Composant du plugin indisponible",couldNotResolve:"Le tableau de bord n'a pas pu résoudre cette surface de plugin du registre d'hôte statique.",disabledForProject:"{{name}} désactivé pour ce projet",disableInProject:"Désactiver dans le projet",disablePlugin:"Désactiver {{name}}",disablePluginFailed:"Échec de la désactivation du plugin : {{error}}",droidOnboardingTip:"Astuce : Activez Droid CLI pour réutiliser votre abonnement Factory AI sans ajouter de clé API.",droidRecommendDesc:"Utilisez votre session Droid CLI locale comme fournisseur d'IA dans Fusion.",droidRecommendTitle:"Activer Droid CLI",enableAiScanBeforeLoad:"Activer l'analyse IA avant chargement/rechargement",enableAiSecurityScan:"Activer l'analyse de sécurité IA au chargement",enabledForProject:"{{name}} activé pour ce projet",enableFailed:"Échec de l'activation de {{name}} : {{error}}",enableInProject:"Activer dans le projet",enablePlugin:"Activer {{name}}",enablePluginFailed:"Échec de l'activation du plugin : {{error}}",experimental:"Expérimental",findings_one:"",findings_other:"",homepage:"Page d'accueil :",install:"Installer",installedGlobally:"Plugin installé globalement",installedPlugins:"Plugins installés",installFailed:"Échec de l'installation du plugin : {{error}}",installHint:"Naviguez jusqu'à la racine du package du plugin (contenant manifest.json) ou un répertoire dist compilé.",installing:"Installation…",installNamed:"Installer {{name}}",installPathPlaceholder:"Chemin absolu vers le répertoire du plugin ou le dossier dist",installPathRequired:"Veuillez saisir un chemin de plugin",installPluginGlobally:"Installer le plugin globalement",installSetup:"Installer la configuration",loadFailed:"Échec du chargement des plugins : {{error}}",loading:"Chargement…",loadingPlugins:"Chargement des plugins…",manage:"Gérer",noConfigurableSettings:"Aucun paramètre configurable.",noPluginsHint:"Installez un plugin pour commencer, ou utilisez le catalogue intégré ci-dessous.",noPluginsInstalled:"Aucun plugin installé.",noSecurityScan:"Aucune analyse de sécurité n'a encore été effectuée.",openAuthentication:"Ouvrir l'authentification",openOnboarding:"Ouvrir l'intégration",refresh:"Actualiser",refreshPluginList:"Actualiser la liste des plugins",reload:"Recharger",reloaded:"{{name}} rechargé",reloadFailed:"Échec du rechargement du plugin : {{error}}",reloading:"Rechargement…",removeItem:"Supprimer l'élément",rescanAndReload:"Réanalyser et recharger",rescanFailed:"Échec de la réanalyse du plugin : {{error}}",rescanned:"{{name}} réanalysé",saveSettings:"Enregistrer les paramètres",saveSettingsFailed:"Échec de l'enregistrement des paramètres : {{error}}",securityScan:"Analyse de sécurité",selectOption:"Sélectionner…",settings:"Paramètres",settingsSaved:"Paramètres enregistrés",settingUp:"Configuration…",setupInstalled:"Configuration de {{name}} installée",setupInstallFailed:"Échec de l'installation de la configuration de {{name}} : {{error}}",setupReady:"Configuration prête",setupRequired:"Configuration requise",startPluginToCheckSetup:"Démarrez le plugin pour vérifier la configuration",statusBuiltIn:"Intégré",statusInstalled:"Installé",statusNotInstalled:"Non installé",uninstallConfirm:"Voulez-vous vraiment désinstaller « {{name}} » globalement (tous les projets) ?",uninstalledGlobally:"{{name}} désinstallé globalement",uninstallFailed:"Échec de la désinstallation du plugin : {{error}}",uninstallGlobally:"Désinstaller globalement",uninstallGloballyTitle:"Désinstaller globalement",uninstallTitle:"Désinstaller le plugin globalement",unknownError:"erreur inconnue",updateFailed:"Échec de la mise à jour du plugin : {{error}}",version:"Version :"},Le={authFail:"Exécutez gh auth login et réessayez.",authOk:"L'authentification CLI GitHub est disponible.",baseBranch:"Branche de base",bodyLabel:"Corps",branchRemoteFail:"Poussez la branche vers le serveur distant avant de créer une RP.",branchRemoteOk:"La branche distante est disponible.",changedFilesLabel:"Fichiers modifiés",checkAuth:"Authentification GitHub disponible",checkBranch:"Branche envoyée vers le serveur distant",checkCommits:"Commits disponibles",checkConflicts:"Aucun conflit avec la base",commitsFail:"Aucun commit trouvé pour cette branche.",commitsLabel:"Commits",commitsOk:"Les commits sont prêts à être soumis.",conflictsDetected:"Conflits détectés. Résolvez les conflits ou relancez les vérifications de pré-vol.",createAsDraft:"Créer en tant que brouillon",createDraftPr:"Créer une RP de brouillon",createPr:"Créer une RP",createTitle:"Créer une demande de tirage",dismissError:"Ignorer l'erreur de RP",noConflicts:"Aucun conflit de fusion détecté.",preflightChecks:"Vérifications de pré-vol",previewTitle:"Aperçu des différences et des commits",regenerate:"Régénérer",rerunPreflight:"Relancer les vérifications de pré-vol",revertToAi:"Revenir à la version IA",titleLabel:"Titre",usingTemplate:"Utilisation de <code>.github/pull_request_template.md</code>"},Pe={blockedDescription:"Vous pouvez afficher l'aperçu dans un onglet du navigateur séparé.",blockedTitle:"L'aperçu ne peut pas être intégré",errorTitle:"Impossible de charger l'aperçu",loading:"Chargement de l'aperçu...",openInNewTab:"Ouvrir dans un nouvel onglet"},ye={activeTasks:"Tâches actives",agents:"Agents",cannotPauseWhileInitializing:"Impossible de mettre en pause lors de l'initialisation",completed:"Complétée",confirm:"Confirmer",confirmRemove:"Confirmer la suppression",confirmRemoveProject:"Confirmer la suppression du projet",daysAgo_one:"",daysAgo_other:"",hoursAgo_one:"",hoursAgo_other:"",justNow:"À l'instant",lastActivity:"Dernière activité :",minutesAgo_one:"",minutesAgo_other:"",moreItems_one:"",moreItems_other:"",never:"Jamais",nodeAvailability:"Disponibilité du nœud du projet",noHealthData:"Aucune donnée de santé disponible",open:"Ouvrir",openProject:"Ouvrir le projet",pause:"Pause",pauseProject:"Mettre le projet en pause",removeProject:"Supprimer le projet",resume:"Reprendre",resumeProject:"Reprendre le projet"},xe={editName:"Modifier le nom",empty:"Aucun projet détecté",emptyHint:"Essayez un chemin de base différent ou ajoutez un projet manuellement",noDbWarning:"Aucune base de données fn trouvée - sera initialisée",registerAll:"Enregistrer tout",registering:"Enregistrement en cours...",registerSelected_one:"",registerSelected_other:"",selectAll_one:"",selectAll_other:"",selectedCount_one:"",selectedCount_other:""},De={actions:{favoritesError:"Impossible de mettre à jour les favoris",modelFavoritesError:"Impossible de mettre à jour les modèles favoris",pauseError:"Impossible de mettre en pause le projet {{name}}",pauseSuccess:"Le projet {{name}} a été mis en pause",removeError:"Impossible de supprimer le projet {{name}}",removeSuccess:"Le projet {{name}} a été supprimé",resumeError:"Impossible de reprendre le projet {{name}}",resumeSuccess:"Le projet {{name}} a été repris"},activeTasksLabel:"Tâches actives",addFirstProject:"Ajouter votre premier projet",addProject:"Ajouter un projet",allNodes:"Tous les nœuds",completedLabel:"Complétées",emptyStateDescription:"Commencez par ajouter votre premier projet. Les projets vous permettent d'organiser et de suivre les tâches dans plusieurs référentiels.",erroredLabel:"Erreurs",filterActive:"Actifs",filterAll:"Tous",filterByNode:"Filtrer par nœud",filterErrored:"Erreurs",filterPaused:"En pause",nodesLabel:"Nœuds",noMatch:"Aucun projet ne correspond au filtre actuel",noProjectsFound:"Aucun projet trouvé",setup:{success:"Le projet {{name}} a été enregistré avec succès"},showAll:"Afficher tous les projets",sortActivityNewest:"Dernière activité (Plus récente)",sortActivityOldest:"Dernière activité (Plus ancienne)",sortNameAsc:"Nom (A-Z)",sortNameDesc:"Nom (Z-A)",sortProjects:"Trier les projets",sortStatusAsc:"Statut (Erreur → Actif)",sortStatusDesc:"Statut (Actif → Erreur)",title:"Projets",totalLabel:"Total"},Re={allProjects:"Tous les projets",ariaLabel:"Sélectionner le projet",clearSearch:"Effacer la recherche",noResults:"Aucun projet ne correspond à votre recherche",recent:"Récent",searchPlaceholder:"Rechercher des projets...",selectProject:"Sélectionner le projet",viewAll:"Voir tous les projets"},Ie={actions:{addModel:"+ Ajouter un modèle",detecting:"Détection en cours…",detectModels:"Détecter les modèles",detectModelsTitle:"Appeler le point d'accès /models du fournisseur pour découvrir les modèles disponibles",removeModel_one:"",removeModel_other:"",save:"Enregistrer le fournisseur",saving:"Enregistrement en cours..."},addCustom:"Ajouter un fournisseur personnalisé",apiKeyLabel:"Clé API",apiTypeAnthropic:"Compatible avec Anthropic",apiTypeGoogle:"Google Generative AI",apiTypeInvalid:"Le type d'API est invalide.",apiTypeLabel:"Type d'API",apiTypeOpenAi:"Compatible avec OpenAI",apiTypeOpenAiResp:"Réponses OpenAI",baseUrlLabel:"URL de base",deleteConfirm:'Supprimer le fournisseur personnalisé "{{name}}"?',deleteLabel:"Supprimer {{name}}",detectError:{allDuplicate:"Tous les modèles découverts sont déjà dans la liste.",failed:"Impossible de détecter les modèles",noModels:"Aucun modèle trouvé. Le fournisseur peut nécessiter une clé API.",urlRequired:"L'URL de base est requise pour détecter les modèles."},detecting:"Détection en cours…",detectModels:"Détecter les modèles",detectTitle:"Détection automatique des modèles à partir du point de terminaison /models du fournisseur",editLabel:"Modifier {{name}}",failedDelete:"Échec de la suppression du fournisseur.",failedDetect:"Échec de la détection des modèles",failedLoad:"Échec du chargement des fournisseurs personnalisés.",failedSave:"Échec de l'enregistrement du fournisseur.",fields:{apiKey:"Clé API",apiType:"Type d'API",baseUrl:"URL de base",contextWindow:"Fenêtre de contexte",id:"ID du fournisseur",maxTokens:"Tokens max",modelId:"ID du modèle",modelName:"Nom d'affichage",modelNameLabel:"",models:"Modèles",name:"Nom d'affichage",reasoning:"Raisonnement"},llamaCpp:{disable:"Désactiver",disabling:"Désactivation en cours…",enable:"Activer",enabling:"Activation en cours…",probing:"Sondage du serveur llama.cpp…",reachable:"Serveur accessible à {{url}}",test:"Test",testing:"Test en cours…",title:"llama.cpp — via serveur HTTP",unavailable:"Serveur indisponible: {{reason}}"},loading:"Chargement des fournisseurs personnalisés…",modelsLabel:"Modèles disponibles",nameLabel:"Nom du fournisseur",nameRequired:"Le nom du fournisseur est requis.",noModelsFound:"Aucun modèle trouvé. Le fournisseur peut nécessiter une clé API.",noneConfigured:"Aucun fournisseur personnalisé configuré.",placeholders:{apiKey:"sk-..., MY_API_KEY, ou !command"},saveChanges:"Enregistrer les modifications",saveProvider:"Enregistrer le fournisseur",saving:"Enregistrement en cours…",urlInvalid:"L'URL de base doit être une URL http/https valide.",urlRequired:"L'URL de base est requise.",urlRequiredForDetect:"L'URL de base est requise pour détecter les modèles.",validation:{apiTypeRequired:"Le type d'API est requis.",idConflict:"L'ID du fournisseur entre en conflit avec un fournisseur intégré.",idKebabCase:"L'ID du fournisseur doit être en kebab-case.",idRequired:"L'ID du fournisseur est requis.",modelId:"Chaque modèle doit avoir un ID de modèle.",modelRequired:"Au moins un modèle est requis.",urlProtocol:"L'URL de base doit utiliser http ou https.",urlRequired:"L'URL de base est requise.",urlValid:"L'URL de base doit être une URL valide."}},Me={errorAttachmentsBeforeSession:"Impossible d'envoyer des pièces jointes avant que la session de chat soit prête",errorAttachmentsWhileStreaming:"Impossible d'envoyer des pièces jointes pendant qu'une réponse est en cours de diffusion",errorGettingResponse:"Impossible d'obtenir une réponse",errorInitializingChat:"Impossible d'initialiser le chat",errorRefreshingSessions:"Impossible de rafraîchir les sessions de chat",errorStartingNewChat:"Impossible de démarrer un nouveau chat"},Fe={bouncedEntered:"{{bounced}} rejetés / {{entered}} entrés ({{days}} derniers jours)",countingSince:"Comptage depuis {{date}}",details:"Détails",duration:{heading:"Durée",moreStats:"Plus de statistiques",p50:"P50",p50Raw:"P50 brut : {{value}} ms",p95:"P95",p95Raw:"P95 brut : {{value}} ms",reason:"Raison : {{reason}}",sampleCount_one:"",sampleCount_other:"",samples_one:"",samples_other:""},failureRate:"Taux d'échec : {{rate}}",heading:"Fiabilité",hideEmptyDays:"Masquer les jours vides",inReviewFlow:"Flux en révision",insufficientData:"Données insuffisantes — {{reason}}",mergeAttempts:{heading:"Tentatives de fusion",histogramTotal_one:"",histogramTotal_other:"",max:"Max",mean:"Moyenne",moreStats:"Plus de statistiques",reason:"Raison : {{reason}}",tasksCounted_one:"",tasksCounted_other:""},reason:"Raison : {{reason}}",resetBaseline:"Réinitialiser la ligne de base : {{date}}",resetModal:{confirm:"Confirmer la réinitialisation",description:"Cela définit une nouvelle ligne de base pour les statistiques de fiabilité. Les événements historiques antérieurs à l'heure de réinitialisation sont exclus des décomptes mais ne sont pas supprimés.",failedError:"Impossible de réinitialiser les statistiques de fiabilité",title:"Réinitialiser les statistiques de fiabilité ?"},resetStats:"Réinitialiser les statistiques",showEmptyDays:"Afficher les jours vides",successRateLabel:"Taux de réussite en révision (7 derniers jours)",table:{bounced:"Rejetés",date:"Date",entered:"Entrés"},window:"Fenêtre : {{start}} → {{end}}"},we={actionFailed:"L'action a échoué",addCredentialsHint:"Ajoutez les informations d'identification du fournisseur dans les paramètres d'authentification.",alwaysOn:"Toujours activé",attachExport:"Joindre l'artefact d'exportation Markdown",createRun:"Créer une exécution",createRunFailed:"Échec de la création de l'exécution",createTask:"Créer une tâche",createTaskButton:"Créer une tâche",createTaskTitle:"Créer une tâche à partir du résultat",defaultFindingHeading:"Résultat de recherche",descriptionLabel:"Description",disabled:"La recherche est désactivée pour ce projet.",enableResearchHint:"Activez les paramètres de recherche du projet pour créer des exécutions.",enrichTask:"Enrichir la tâche",enrichTaskButton:"Enrichir la tâche",enrichTaskTitle:"Enrichir la tâche existante",enterTaskId:"Entrez l'ID de la tâche",exportedFile:"Exporté {{filename}}",exportFailed:"L'exportation a échoué",exportHtml:"Exporter en HTML",exportJson:"Exporter en JSON",exportMd:"Exporter en MD",findingLabel:"Résultat :",loadingRuns:"Chargement des exécutions…",loadingTasks:"Chargement des tâches…",missingApiKey:"Clé API manquante pour {{provider}}.",noPreview:"Aucun aperçu disponible.",noRunSelected:"Aucune exécution sélectionnée",noRunsYet:"Aucune exécution pour l'instant",noSourcesAvailable:"Aucune source de recherche activée n'est disponible pour ce projet.",noSummaryYet:"Pas de résumé pour l'instant.",openAuthSettings:"Ouvrir les paramètres d'authentification",openResearchSettings:"Ouvrir les paramètres de recherche",priorityHigh:"Élevé",priorityLabel:"Priorité",priorityLow:"Faible",priorityNormal:"Normal",priorityUrgent:"Urgent",providersLabel:"Fournisseurs",queryLabel:"Requête",runCancelled:"Exécution annulée",runCreated:"Exécution de recherche créée",runHistory:"Historique des exécutions",runLabel:"Exécution :",runRetried:"Exécution relancée",searchRunsPlaceholder:"Rechercher les exécutions",selectRunToViewDetails:"Sélectionnez une exécution pour voir les détails.",statCompleted:"Terminée",statFailed:"Échoué",statRunning:"En cours",subtitle:"Recherche et synthèse citées : rassemblez les sources, récupérez le contenu et synthétisez les résultats.",targetTaskLabel:"Tâche cible",taskCreatedFromResearch:"Tâche créée à partir de la recherche",taskEnrichedFromResearch:"Tâche enrichie par la recherche",title:"Recherche",titleLabel:"Titre",unavailable:"La recherche est indisponible pour ce projet.",viewLabel:"Affichage de la recherche"},qe={andMore_one:"",andMore_other:"",delete:"Supprimer",deleteMessage:"Supprimer la routine {{name}} ? Cette action ne peut pas être annulée.",deleteName:"Supprimer {{name}}",deleteTitle:"Supprimer la routine",disable:"Désactiver",disableName:"Désactiver {{name}}",edit:"Modifier",editName:"Modifier {{name}}",enable:"Activer",enableName:"Activer {{name}}",resultFailed:"Échoué",resultSuccess:"Succès",runHistory_one:"",runHistory_other:"",runNameNow:"Exécuter {{name}} maintenant",running:"Exécution…",runNow:"Exécuter maintenant",stepCount_one:"",stepCount_other:""},je={cannotChangeWhileActive:"La substitution du nœud ne peut pas être modifiée tant que la tâche est active.",clearOverride:"Effacer la substitution",effectiveNode:"Nœud effectif",errorLoadingNodes:"Impossible de charger les nœuds",errorUpdatingOverride:"Impossible de mettre à jour la substitution du nœud",intro:"Affichez le nœud d'exécution effectif et contrôlez la substitution de nœud par tâche.",localNoConfiguration:"Local (pas de routage configuré)",lockedWhileActive:"Le routage est verrouillé pendant que cette tâche est active. La substitution du nœud ne peut pas être modifiée tant que la tâche reste active.",nodeUnavailable:"nœud indisponible ou inconnu",overrideCleared:"Substitution du nœud effacée",overrideSection:"Substitution du nœud",overrideSetTo:"Substitution définie sur",overrideUpdated:"Substitution du nœud mise à jour",selectLabel:"Sélectionner le nœud d'exécution",source:{noRouting:"Aucun routage",override:"Substitution par tâche",projectDefault:"Défaut du projet"},summarySection:"Résumé du routage",title:"Routage des tâches",unavailablePolicy:"Politique en cas de nœud indisponible",unhealthy:"Défaillant",useProjectDefault:"Utiliser le défaut du projet"},Ee=JSON.parse(`{"actionAiPrompt":"Invite IA","actionCommand":"Commande","actionCreateTask":"Créer une tâche","actionModeAdvanced":"Multi-étapes","actionModeAdvancedHint":"Exécuter plusieurs actions séquentiellement","actionModeAriaLabel":"Mode d'action","actionModeLabel":"Mode d'action","actionModeSimple":"Simple","actionModeSimpleHint":"Exécuter une commande, une invite ou une action de création de tâche","actionTypeAiPrompt":"Invite IA","actionTypeAriaLabel":"Type d'action","actionTypeCommand":"Commande","actionTypeCreateTask":"Créer une tâche","actionTypeLabel":"Type d'action","addAiPromptStep":"Ajouter une étape d'invite IA","addCommandStep":"Ajouter une étape de commande","addCreateTaskStep":"Ajouter une étape de création de tâche","advancedMode":"Multi-étapes","advancedModeHelp":"Exécuter plusieurs étapes séquentiellement (commandes et invites IA)","aiPromptType":"Invite IA","andMore_one":"","andMore_other":"","apiEndpointHint":"Chemin du point de terminaison API qui déclenche cette routine","apiEndpointLabel":"Point de terminaison API","apiEndpointPlaceholder":"/api/routine/my-routine","automationCount_one":"","automationCount_other":"","cancelButton":"Annuler","catchUpPolicyHint":"Que faire lorsqu'une exécution planifiée est manquée","catchUpPolicyLabel":"Politique de rattrapage","catchUpPolicyRunAll":"Exécuter toutes les exécutions manquées","catchUpPolicyRunOne":"Exécuter la dernière exécution manquée","catchUpPolicySkip":"Ignorer les exécutions manquées","columnTodo":"À faire","columnTriage":"Triage","command":"Commande","commandHelp":"Commande shell à exécuter. S'exécute avec vos autorisations utilisateur.","commandHint":"Commande shell à exécuter.","commandLabel":"Commande","commandPlaceholder":"p. ex. npm test","commandRequired":"La commande est requise","commandType":"Commande","continueOnFailure":"Continuer en cas d'échec","continueOnFailureHelp":"Si cette option est activée, l'étape suivante s'exécutera même si celle-ci échoue","continuesOnFailure":"Continue en cas d'échec","createButton":"Créer un calendrier","createError":"Impossible de créer la routine","createFirst":"Créez votre première automatisation","createNew":"Créer une nouvelle automatisation","createRoutine":"Créer une routine","createTaskType":"Créer une tâche","cronAutoFilled":"Rempli automatiquement à partir du préréglage : {{cron}}","cronAutoFilledHint":"Rempli automatiquement depuis le préréglage : {{expression}}","cronCustomHint":"min heure jour mois joursemaine","cronExpressionLabel":"Expression cron","cronHelp":"min heure jour mois jour semaine — ","cronInvalid":"Format cron invalide — 5 champs attendus (par exemple '0 */6 * * *')","cronLabel":"Expression Cron","cronPresetCustom":"Expression cron personnalisée","cronPresetDaily":"Tous les jours (minuit)","cronPresetHourly":"Toutes les heures","cronPresetMonthly":"Tous les mois (1er)","cronPresetWeekly":"Toutes les semaines (lundi)","cronRequired":"L'expression cron est requise pour les calendriers personnalisés","delete":"Supprimer","deleteError":"Impossible de supprimer la routine","deleteMessage":"Supprimer l'horaire {{name}} ? Cette action ne peut pas être annulée.","deleteName":"Supprimer {{name}}","deleteStep":"Supprimer {{name}}","deleteTitle":"Supprimer l'horaire","descriptionLabel":"Description (facultatif)","descriptionPlaceholder":"Que fait ce calendrier ?","disable":"Désactiver","disableName":"Désactiver {{name}}","edit":"Modifier","editName":"Modifier {{name}}","editRoutineHeading":"Modifier la routine","editStep":"Modifier {{name}}","editTitle":"Modifier le calendrier","emptyStateDescription":"Créez une automatisation avec un calendrier, un webhook, une API ou un déclencheur manuel.","enable":"Activer","enabledHelp":"Lorsqu'il est désactivé, le calendrier ne s'exécutera pas automatiquement","enabledHint":"Lorsque désactivée, la routine ne s'exécutera pas automatiquement","enabledLabel":"Activé","enableName":"Activer {{name}}","errorApiEndpointRequired":"Le point de terminaison API est obligatoire","errorCommandRequired":"La commande est obligatoire","errorCronInvalid":"Format cron invalide — 5 champs attendus (ex. '0 */6 * * *')","errorCronRequired":"L'expression cron est obligatoire","errorLoadModels":"Échec du chargement des modèles","errorModelIncomplete":"Le fournisseur de modèle et l'ID de modèle doivent être tous les deux définis ou tous les deux vides","errorNameRequired":"Le nom est obligatoire","errorPromptRequired":"L'invite est obligatoire","errorScopeNoProject":"Les entrées spécifiques au projet nécessitent un projet actif.","errorStepCommandRequired":"Étape {{n}} : la commande est obligatoire","errorStepNameRequired":"Étape {{n}} : le nom est obligatoire","errorStepPromptRequired":"Étape {{n}} : l'invite est obligatoire","errorStepsEditing":"Veuillez enregistrer ou annuler toutes les modifications des étapes avant d'enregistrer la routine","errorStepsRequired":"Au moins une étape est requise","errorStepTaskDescRequired":"Étape {{n}} : la description de la tâche est obligatoire","errorTaskDescriptionRequired":"La description de la tâche est obligatoire","errorTimeoutMin":"Le délai d'expiration doit être d'au moins 1 seconde (1000 ms)","errorWebhookPathRequired":"Le chemin du webhook est obligatoire","executionPolicyHint":"Comment gérer les exécutions simultanées de cette routine","executionPolicyLabel":"Politique d'exécution","executionPolicyParallel":"Autoriser les exécutions simultanées","executionPolicyQueue":"File d'attente après l'actuel (une à la fois)","executionPolicyReject":"Rejeter les nouvelles exécutions en cours","executorModelDropdownLabel":"Modèle d'exécuteur","executorModelHelp":"Modèle IA pour l'exécution de la tâche créée. Utilise la valeur par défaut si elle n'est pas sélectionnée.","executorModelLabel":"Modèle d'exécuteur (facultatif)","executorModelOptional":"Modèle d'exécuteur (optionnel)","executorModelPlaceholder":"Utiliser la valeur par défaut","frequencyLabel":"Fréquence","global":"Global","globalScope":"Automatisations globales (au niveau de l'utilisateur)","globalScoped":"Ce calendrier sera créé à portée mondiale.","globalScopeTitle":"Portée mondiale","loadRoutinesError":"Impossible de charger les routines","manualTriggerInfo":"Cette routine sera déclenchée manuellement via le tableau de bord ou l'API.","modeAriaLabel":"Mode d'exécution","model":"Modèle","modeLabel":"Mode d'exécution","modelConsistency":"Le fournisseur de modèle et l'ID du modèle doivent tous deux être définis ou tous deux être vides","modelDropdownLabel":"Modèle","modelHelp":"Modèle IA pour cette étape. Utilise la valeur par défaut si elle n'est pas sélectionnée.","modelLabel":"Modèle (facultatif)","modelOptional":"Modèle (optionnel)","modelPlaceholder":"Utiliser la valeur par défaut","modelProviderRequired":"Le fournisseur de modèles et l'ID de modèle doivent être définis ensemble","moveDown":"Déplacer vers le bas","moveStepDown":"Déplacer {{name}} vers le bas","moveStepUp":"Déplacer {{name}} vers le haut","moveUp":"Déplacer vers le haut","nameLabel":"Nom","namePlaceholder":"Par exemple Mettre à jour les dépendances","nameRequired":"Le nom est requis","newAutomation":"Nouvelle automatisation","newRoutineHeading":"Nouvelle routine","newTitle":"Nouveau calendrier","noActiveProject":"Aucun projet actif. Les calendriers seront créés à portée mondiale.","noAutomations":"Pas encore d'automatisations","noStepsEmpty":"Aucune étape ajoutée pour l'instant. Ajoutez une commande ou une étape d'invite IA pour commencer.","project":"Projet","projectRequired":"Les entrées spécifiques au projet nécessitent un projet actif.","projectScope":"Automatisations limitées au projet","projectScoped":"Ce calendrier sera limité au projet actuel.","projectScopeDisabled":"Sélectionnez un projet pour activer la portée du projet","projectScopeTitle":"Portée du projet","prompt":"Invite","promptHelp":"Invite IA à exécuter. Fournir des instructions claires pour la tâche.","promptHint":"Invite IA à exécuter.","promptLabel":"Invite","promptPlaceholder":"p. ex. Résumez les résultats des tests et mettez en évidence les échecs","promptRequired":"L'invite est requise","resultFailed":"Échoué","resultSuccess":"Succès","routineCreated":"Routine créée","routineDeleted":"\\"{{name}}\\" supprimé","routineDisabled":"\\"{{name}}\\" désactivé","routineEnabled":"\\"{{name}}\\" activé","routineFailed":"\\"{{name}}\\" échoué : {{error}}","routineSuccess":"\\"{{name}}\\" terminé avec succès","routineUpdated":"Routine mise à jour","runError":"Impossible d'exécuter la routine","runHistory_one":"","runHistory_other":"","runNameNow":"Exécuter {{name}} maintenant","running":"Exécution…","runNow":"Exécuter maintenant","saveChanges":"Enregistrer les modifications","saveStep":"Enregistrer l'étape","saving":"Enregistrement…","scheduleLabel":"Calendrier","scopeAriaLabel":"Portée du calendrier","scopeGroup":"Portée de la planification","scopeHintGlobal":"Cette routine sera créée avec une portée globale.","scopeHintNoProject":"Aucun projet actif. Les routines seront créées avec une portée globale.","scopeHintProject":"Cette routine sera limitée au projet actuel.","scopeLabel":"Portée","scopeLocked":"La portée est verrouillée à {{scope}} pour les calendriers existants","scopeLockedTitle":"La portée est verrouillée sur {{scope}} pour les routines existantes","selectProjectTitle":"Sélectionnez un projet pour activer la portée projet","simpleMode":"Simplifier","simpleModeHelp":"Exécuter une commande shell unique ou une invite IA","stepCommandRequired":"Étape {{index}} : La commande est requise","stepCount_one":"","stepCount_other":"","stepName":"Nom de l'étape","stepNamePlaceholder":"p. ex. Exécuter les tests","stepNameRequired":"Le nom de l'étape est obligatoire","stepPromptRequired":"Étape {{index}} : L'invite est requise","steps":"Étapes","stepsEditing":"Veuillez enregistrer ou annuler toutes les modifications d'étapes avant d'enregistrer le calendrier","stepsRequired":"Au moins une étape est requise","stepType":"Type d'étape","targetColumn":"Colonne cible","targetColumnHelp":"Colonne dans laquelle la nouvelle tâche sera créée","targetColumnLabel":"Colonne cible","taskColumnLabel":"Colonne cible","taskColumnTodo":"À faire","taskColumnTriage":"Triage","taskDescription":"Description de la tâche *","taskDescriptionHelp":"Décrit la tâche qui sera créée.","taskDescriptionHint":"Décrit la tâche qui sera créée.","taskDescriptionLabel":"Description de la tâche (requise)","taskDescriptionPlaceholder":"p. ex. Vérifier toutes les dépendances npm pour les vulnérabilités de sécurité et mettre à jour les packages obsolètes","taskDescriptionRequired":"La description de la tâche est requise","taskTitleHelp":"Laissez vide pour un résumé automatique à partir de la description","taskTitleLabel":"Titre de la tâche (facultatif)","taskTitleOptional":"Titre de la tâche (optionnel)","taskTitlePlaceholder":"p. ex. Examiner les dépendances hebdomadaires","timeoutHelp":"Temps d'exécution maximal en millisecondes (par défaut 300000 = 5 min)","timeoutHint":"Durée maximale d'exécution en millisecondes.","timeoutLabel":"Délai d'attente (ms)","timeoutMinimum":"Le délai d'expiration doit être d'au moins 1 seconde (1000 ms)","timeoutOptional":"Délai d'expiration (ms, optionnel)","timeoutPlaceholder":"Remplacer le délai d'expiration du planning","title":"Automatisations","todoColumn":"À faire","toggleError":"Impossible de basculer la routine","triageColumn":"Triage","triggerApi":"API","triggerCron":"Cron","triggerManual":"Manuel","triggerTypeAriaLabel":"Type de déclencheur","triggerTypeLabel":"Type de déclencheur","triggerWebhook":"Webhook","typeCustom":"Expression cron personnalisée","typeDaily":"Chaque jour (minuit)","typeEvery12Hours":"Chaque 12 heures","typeEvery15Min":"Chaque 15 minutes","typeEvery2Hours":"Chaque 2 heures","typeEvery30Min":"Chaque 30 minutes","typeEvery6Hours":"Chaque 6 heures","typeHourly":"Chaque heure","typeMonthly":"Chaque mois (1er)","typeWeekdays":"Jours de semaine à 9h (lun-ven)","typeWeekly":"Chaque semaine (lundi)","unknownError":"Erreur inconnue","updateError":"Impossible de mettre à jour la routine","useDefault":"Utiliser le défaut","webhookPathHint":"Chemin URL du point de terminaison webhook","webhookPathLabel":"Chemin du webhook","webhookPathPlaceholder":"/trigger/my-routine","webhookSecretHint":"Secret HMAC pour la vérification de signature. Laisser vide pour les webhooks non authentifiés.","webhookSecretLabel":"Secret webhook (facultatif)","webhookSecretPlaceholder":"Facultatif — laisser vide pour les webhooks non authentifiés"}`),He={addScript:"Ajouter un script",addScriptsHint:"Ajoutez des scripts pour exécuter rapidement les commandes courantes depuis le tableau de bord.",cancelDelete:"Annuler la suppression",command:"Commande",commandPlaceholder:"p. ex., npm run build",confirmDelete:"Confirmer la suppression",confirmDeleteNamed:"Confirmer la suppression de {{name}}",deleteScriptNamed:"Supprimer {{name}}",editScriptNamed:"Modifier {{name}}",failedToDelete:"Impossible de supprimer le script",failedToLoadScripts:"Échec du chargement des scripts",failedToSave:"Impossible d'enregistrer le script",loadingScripts:"Chargement des scripts...",nameErrorMsg:"Le nom ne doit contenir que des lettres, des chiffres, des tirets et des traits de soulignement (pas d'espaces)",nameHint:"Lettres, chiffres, tirets et traits de soulignement uniquement",noScriptsDefined:"Aucun script défini",noScriptsYet:"Aucun script défini pour l'instant.",runScript:"Exécuter le script",runScriptNamed:"Exécuter {{name}}",saving:"Enregistrement...",scriptAlreadyExists:"Un script portant ce nom existe déjà",scriptCommandRequired:"La commande de script est requise",scriptCount_one:"",scriptCount_other:"",scriptCreated:"Script créé",scriptDeleted:"Script supprimé",scriptName:"Nom du script",scriptNamePlaceholder:"p. ex., build, test, lint",scriptNameRequired:"Le nom du script est requis",scriptUpdated:"Script mis à jour",title:"Scripts"},ze={accessPolicyAuto:"auto",accessPolicyDeny:"refuser",accessPolicyLabel:"Politique d'accès",accessPolicyPrompt:"demander",addSecret:"Ajouter un secret",addSecretModalTitle:"Ajouter un secret",cancelBtn:"Annuler",cancelDelete:"Annuler",clearSyncPassphrase:"Effacer",closeAriaLabel:"Fermer",confirmClearSyncPassphrase:"Effacer le mot de passe de synchronisation inter-nœuds ? Les paires de synchronisation existantes cesseront de fonctionner jusqu'à ce que vous en définissiez un nouveau.",confirmDelete:"Confirmer",confirmPassphraseLabel:"Confirmer le mot de passe",copied:"Copié",copyAriaLabel:"Copier",createBtn:"Créer",deleteAriaLabel:"Supprimer",descriptionLabel:"Description",editAriaLabel:"Modifier",editSecretModalTitle:"Modifier le secret",empty:"Aucun secret trouvé.",envExportableChip:"exportable env",envKeyLabel:"Clé d'environnement",errorClearSyncPassphrase:"Échec de la suppression du mot de passe de synchronisation : {{error}}",errorLoadSyncStatus:"Échec du chargement du statut du mot de passe de synchronisation : {{error}}",errorSaveSyncPassphrase:"Échec de l'enregistrement du mot de passe de synchronisation : {{error}}",exportToEnvLabel:"Exporter vers l'env",hideAriaLabel:"Masquer",hideValueAriaLabel:"Masquer la valeur",keyLabel:"Clé",loading:"Chargement…",neverRead:"Jamais lu",passphraseLabel:"Mot de passe",passphraseMustMatch:"Les mots de passe doivent correspondre.",refresh:"Actualiser",revealAriaLabel:"Révéler",revealed:"Révélé",rotateSyncPassphrase:"Renouveler",rotateSyncPassphraseModalTitle:"Renouveler le mot de passe de synchronisation",saveBtn:"Enregistrer",scopeGlobal:"Global",scopeLabel:"Portée",scopeProject:"Projet",setPassphrase:"Définir un mot de passe",setSyncPassphraseModalTitle:"Définir le mot de passe de synchronisation",showValueAriaLabel:"Afficher la valeur",syncConfigured:"Configuré",syncNotConfigured:"Non configuré",syncPassphraseCleared:"Mot de passe de synchronisation effacé",syncPassphraseDescription:"Mot de passe partagé utilisé pour encapsuler les paquets de secrets inter-nœuds. Les deux nœuds d'une paire de synchronisation doivent partager la même valeur. Stocké localement uniquement, jamais transmis.",syncPassphraseRotated:"Mot de passe de synchronisation renouvelé",syncPassphraseSet:"Mot de passe de synchronisation défini",syncPassphraseTitle:"Mot de passe de synchronisation inter-nœuds",title:"Secrets",valueLabel:"Valeur"},_e={dismissAll:"Fermer tout",dismissItem:"Fermer {{title}}",failed:"Échoué",headerAwaitingAndErrorPlural:"{{awaitingCount}} sessions IA nécessitent votre saisie, {{errorCount}} échouée(s)",headerAwaitingAndErrorSingular:"{{awaitingCount}} session IA nécessite votre saisie, {{errorCount}} échouée(s)",headerAwaitingPlural_one:"",headerAwaitingPlural_other:"",headerAwaitingSingular_one:"",headerAwaitingSingular_other:"",headerErrorPlural_one:"",headerErrorPlural_other:"",headerErrorSingular_one:"",headerErrorSingular_other:"",regionLabel:"Sessions IA nécessitant une entrée ou ayant échoué",resume:"Reprendre",retry:"Réessayer"},Ne={actions:{cancel:"Annuler",save:"Enregistrer"},appearance:{language:"Langue",languageAuto:"Auto",languageAutoHint:"Suivre la langue du navigateur",title:"Apparence"},auth:{apiKeyCleared:"Clé API effacée",apiKeySaved:"Clé API enregistrée",authCodeAlreadySubmitted:"Ce code d'autorisation a déjà été soumis. En attente de la connexion…",authCodeReceived:"Code d'autorisation reçu. Finalisation de la connexion…",clearKey:"Effacer",continueToLogin:"Continuer vers la connexion",copiedCodeToClipboard:"Code copié dans le presse-papiers",copyCode:"Copier le code",enterCodeOnGitHub:"Entrez ce code sur GitHub",failedToCopyCode:"Échec de la copie du code — copiez-le manuellement depuis la zone ci-dessus",groupAuthenticated:"Authentifié",groupAvailable:"Disponible",hint:"Les modifications d'authentification prennent effet immédiatement — pas besoin d'enregistrer.",loadingStatus:"Chargement du statut d'authentification…",loggedOut:"Déconnecté",loggingOut:"Déconnexion…",login:"Se connecter",loginAlreadyInProgress:"Une connexion est déjà en cours. Vous pouvez l'annuler et réessayer.",loginCancelled:"Connexion annulée",loginDidNotComplete:"La connexion n'a pas abouti. Veuillez réessayer.",loginSuccessful:"Connexion réussie",logout:"Se déconnecter",manualPasteMessage:"Après vous être connecté avec {{name}}, le navigateur tentera de rediriger vers une adresse localhost que ce tableau de bord ne peut pas atteindre. L'onglet de redirection semblera avoir échoué. Avant que cela se produise, copiez l'URL complète depuis la barre d'adresse du navigateur — vous devrez la coller ici pour terminer la connexion. Continuer ?",manualPasteTitle:"Attention — un collage manuel est requis",noProviders:"Aucun fournisseur disponible",openGitHub:"Ouvrir GitHub",pasteRedirectUrlFirst:"Collez d'abord l'URL de redirection complète ou le code d'autorisation.",reopenOnboarding:"Rouvrir le guide de démarrage",reopenOnboardingHint:"Relancez l'assistant de configuration pour revoir ou mettre à jour votre configuration de fournisseur et de modèle IA.",savingKey:"Enregistrement…",signInHint:"Connectez-vous à au moins un fournisseur pour commencer à utiliser les modèles IA.",statusActive:"✓ Actif",statusNotConnected:"✗ Non connecté",title:"Authentification",waitingForLogin:"En attente de connexion…"},backups:{backupCreated:"Sauvegarde créée avec succès",backupNow:"Sauvegarder maintenant",creating:"Création…"},closeModal:"Fermer la boîte de dialogue de conflit",conflictModalTitle:"Résoudre les conflits de paramètres",footer:{help:"Aide",version:"Version {{version}}"},general:{learnMore:"En savoir plus",settingsSaved:"Paramètres enregistrés",updateAvailablePrefix:"v{{version}} disponible",upToDate:"Vous êtes à jour ✓"},header:{discord:"Discord"},importExport:{confirmImport:"Confirmer l'importation",exportBtn:"Exporter",exportTitle:"Exporter les paramètres vers un fichier JSON",importBtn:"Importer",importing:"Importation…",importTitle:"Importer les paramètres",loadingFile:"Chargement…",reviewPrompt:"Vérifiez les paramètres à importer :"},jsonPlaceholder:"Entrez une valeur JSON...",keepLocal:"Garder la version locale",keepRemote:"Garder la version distante",loading:"Chargement…",memory:{compacting:"Compactage…",compactSelectedFile:"Compacter le fichier sélectionné",dreamCompleted:"Traitement des rêves terminé",dreamNow:"Rêver maintenant",installing:"Installation…",installQmd:"Installer qmd",memoryCompacted:"Fichier mémoire compacté",memorySaved:"Mémoire enregistrée",saveMemory:"Enregistrer la mémoire",testing:"Test en cours…",testRetrieval:"Tester la récupération"},mergeManually:"Fusionner manuellement",mobileNav:{label:"Section des paramètres"},models:{deletePresetMessage:"Le préréglage « {{name}} » est utilisé dans la sélection automatique. Le supprimer quand même ?",deletePresetTitle:"Supprimer le préréglage",loadingModels:"Chargement des modèles disponibles…",noModels:"Aucun modèle disponible. Configurez d'abord l'authentification.",presetNameRequired:"Le nom du préréglage est requis",savePreset:"Enregistrer le préréglage"},nav:{aria:{global:"Paramètre global",project:"Paramètre de projet"},tooltip:{global:"Partagé entre tous les projets",project:"Spécifique à ce projet"}},notifications:{sending:"Envoi…",testMessageInbox:"Tester la boîte de réception des messages",testNotification:"Tester la notification",testRoomReply:"Tester la réponse en salle"},remote:{cloudflaredInstalled:"cloudflared installé avec succès",persistentTokenRegenerated:"Jeton persistant régénéré",restarting:"Redémarrage…",shortLivedTokenGenerated:"Jeton de courte durée généré",startFresh:"Redémarrer",starting:"Démarrage…",startTunnel:"Démarrer le tunnel",stopping:"Arrêt…",stopTunnel:"Arrêter le tunnel",tunnelRestarted:"Tunnel distant redémarré",tunnelStarted:"Tunnel distant démarré",tunnelStopped:"Tunnel distant arrêté",useExisting:"Utiliser l'existant"},resolveAllLocal:"Résoudre tous : Garder la version locale",resolveAllRemote:"Résoudre tous : Garder la version distante",resolvedSuccess:"Conflits de paramètres résolus avec succès",resolveFailed:"Impossible de résoudre les conflits",resolving:"Résolution...",scheduling:{selectCurrentDir:"Sélectionner le répertoire actuel",selectIgnoredOverlapPath:"Sélectionner le chemin de chevauchement ignoré"},scope:{globalBanner:"Ces paramètres sont partagés entre tous vos projets Fusion.",projectBanner:"Ces paramètres n'affectent que ce projet."},title:"Paramètres",worktrees:{awaitingApproval:"En attente d'approbation — ouvrez les approbations pour continuer.",installWorktrunk:"Installer le binaire worktrunk",openApprovals:"Ouvrir les approbations",selectWorktreesDir:"Sélectionner le répertoire des worktrees",tryAgain:"Réessayer"}},Be=JSON.parse(`{"addCustomProvider":"Ajouter un fournisseur personnalisé","addMoreProjectsHint":"Vous pouvez ajouter d'autres projets à tout moment à partir de l'aperçu du projet.","advancedProviderSettings":"Paramètres avancés du fournisseur","advancedSettings":"Paramètres avancés","advancedSetupDetails":"Détails de configuration avancés","aiSetupDescription":"Fusion utilise des modèles IA pour planifier, écrire et réviser du code pour vous. Connectez un fournisseur IA ci-dessous pour commencer — utilisez un service hébergé ou saisissez une clé API.","allProvidersShown":"Tous les fournisseurs disponibles sont déjà affichés ci-dessus.","allSet":"Tout est prêt !","apiKeyFormatHint":"Format : {{hint}}","apiKeyHint":"Clé : {{keyHint}}","apiKeyRemoved":"Clé API supprimée","apiKeySaved":"✓ Clé API enregistrée","apiKeySavedToast":"Clé API enregistrée","ariaDismissRecommendations":"Ignorer les recommandations","ariaSetupRecommendations":"Recommandations de configuration","authCodeAlreadySubmitted":"Ce code d'autorisation a déjà été soumis. En attente de la connexion…","authCodeReceived":"Code d'autorisation reçu. Finalisation de la connexion…","authDescription":"Ce tableau de bord nécessite un jeton d'authentification pour communiquer avec le daemon Fusion. Collez le jeton ci-dessous pour continuer.","authToken":"Jeton d'authentification","authTokenOptional":"Jeton d'authentification (facultatif)","back":"← Retour","browserAuthToken":"Jeton d'authentification du navigateur","cancelLogin":"Annuler","childProcess":"Processus enfant","childProcessDesc":"Isolation forte. Les tâches s'exécutent dans des processus séparés.","childProcessLabel":"Processus enfant (isolé)","chooseModel":"Choisir un modèle","claudeCli":{"active":"✓ Actif","binaryNotFound":"Binaire \`claude\` non détecté sur PATH — installez d'abord Claude CLI.","binaryNotFoundPath":"\`claude\` non trouvé sur PATH","connected":"✓ Connecté{{version}}","description":"Acheminez les appels d'IA via votre CLI claude installé localement. Utilise votre abonnement/quota Claude existant au lieu d'une clé API.","details":"Détails","detectedPrompt":"détecté{{path}}. Cliquez sur Activer pour acheminer les appels d'IA à travers.","disable":"Désactiver","disabledMessage":"Les modèles acheminés par Claude-CLI sont masqués du sélecteur de modèles.","disabledVerb":"Désactivé","disabling":"Désactivation…","enable":"Activer","enabledMessage":"Les modèles acheminés par Claude-CLI sont maintenant visibles dans le sélecteur de modèles.","enabledVerb":"Activé","enabling":"Activation…","extensionFailed":"Échec du chargement de l'extension: {{reason}}","name":"Anthropic — via Claude CLI","notConnected":"✗ Non connecté","notInstalled":"✗ Non installé","probing":"Sonde CLI local…","test":"Tester","testing":"Test en cours…","validating":"Activé. Validation…"},"cloneGitHint":"Fusion exécutera git clone dans le répertoire de destination, puis enregistrera ce dossier cloné.","cloneGitRepository":"Cloner le référentiel Git","clonePathHint":"Sélectionnez ou entrez un chemin de destination absolu. Fusion clotera dans ce répertoire.","clonePathPlaceholder":"/chemin/pour/nouveau-clone","closeWizard":"Fermer l'assistant","compactWarning":"⚠ Configuration incomplète — Les fonctionnalités IA et/ou GitHub seront limitées.","completeSetup":"Complétez ces éléments de configuration pour tirer le meilleur parti de Fusion.","connect":"Connecter","connectAiProvider":"Connecter un fournisseur IA","connectAiProviderDesc":"Connectez un fournisseur IA pour activer les agents IA pour la planification des tâches et la génération de code","connectAnyway":"Connecter quand même","connectedProviders":"Fournisseurs connectés","connectGitHub":"Connecter GitHub","connectGitHubAnytime":"Pas de souci si vous n'êtes pas prêt — connectez GitHub à tout moment depuis Paramètres → Authentification.","connectGitHubButton":"Connecter GitHub","connectGitHubDesc":"Connectez GitHub pour importer des problèmes et suivre les demandes de tirage","connectOauthOptional":"Connecter OAuth (facultatif)","connectRemoteServer":"Connecter le serveur Fusion distant","continueToLogin":"Continuer la connexion","continueWithGhCli":"Continuer avec l'auth gh CLI →","continueWithoutGitHub":"Continuer sans GitHub →","copiedCodeToClipboard":"Code copié dans le presse-papiers","copyCode":"Copier le code","couldNotReachServer":"Impossible de joindre le serveur. Vérifiez votre connexion et réessayez.","createFirstTask":"Créer la première tâche","createNewTask":"Créer une nouvelle tâche","createNewTaskSubtitle":"Décrivez ce que vous souhaitez construire et l'IA s'en occupera","createProject":"Créer un projet","createTasksAnytimeNote":"Vous pouvez créer des tâches à tout moment depuis le tableau, ou utiliser","createTasksAnytimeNoteTerminal":"dans le terminal.","creating":"Création...","creatingTask":"Création de la tâche…","cursorCli":{"active":"✓ Actif","binaryNotFound":"\`cursor-agent\` non trouvé sur PATH","connected":"Connecté{{version}}","description":"Acheminez les appels d'IA via votre runtime d'agent Cursor local.","detectedPrompt":"Détecté. Cliquez sur Activer pour acheminer les appels via Cursor CLI.","disable":"Désactiver","disabling":"Désactivation…","enable":"Activer","enabling":"Activation…","notConnected":"✗ Non connecté","probing":"Sonde CLI local…","test":"Tester","testing":"Test en cours…"},"defaultModelDescription":"Choisissez un modèle par défaut pour les tâches IA, ou laissez vide pour choisir plus tard. Les modèles varient en vitesse, capacité et coût.","defaultModelLabel":"Modèle par défaut","defaultModelOptional":"Modèle par défaut (facultatif)","describeFirstTask":"Décrivez votre première tâche","destinationDirectory":"Répertoire de destination","directoryPath":"Chemin du répertoire","disconnect":"Déconnecter","dismissWarning":"Ignorer l'avertissement de configuration","enterApiKey":"Saisir la clé API","enterCodeOnGitHub":"Saisir ce code sur GitHub","executionMode":"Mode d'exécution","failedToCancelLogin":"Échec de l'annulation de la connexion","failedToClearApiKey":"Échec de la suppression de la clé API","failedToCopyCode":"Échec de la copie du code — copiez-le manuellement depuis la zone ci-dessus","failedToCreateCustomProvider":"Échec de la création du fournisseur personnalisé","failedToSaveApiKey":"Échec de l'enregistrement de la clé API","failedToSaveShellConnection":"Échec de l'enregistrement de la connexion shell","failedToSubmitAuthCode":"Échec de la soumission du code d'autorisation","finishSetup":"Terminer la configuration","firstTaskDescription":"Créez votre première tâche pour démarrer le tableau et lancer l'exécution IA.","firstTaskPlaceholder":"Exemple : Créer une page de connexion avec email et mot de passe","firstTaskReady":"Votre première tâche est prête !","getApiKeyLink":"Obtenir votre clé API →","getStarted":"Commencer","githubCliAlreadyAuth":"GitHub CLI est déjà authentifié — les imports de tickets et le suivi des pull requests fonctionnent dès maintenant. Tout est prêt, aucune action supplémentaire requise.","githubCliAuthNote":"GitHub CLI est déjà authentifié, les imports et le suivi des PR fonctionnent donc maintenant. L'OAuth depuis le tableau de bord est optionnel et ne contrôle que la connexion/déconnexion gérée par le tableau de bord.","githubCliAuthSuccess":"GitHub CLI est authentifié. Les imports et le suivi des pull requests sont disponibles. Connectez OAuth dans Paramètres → Authentification si vous souhaitez des contrôles de connexion gérés par le tableau de bord.","githubConnected":"GitHub est connecté — les imports de tickets et le suivi des pull requests sont disponibles. Tout est prêt, aucune action supplémentaire requise.","githubConnectionDescription":"Connecter GitHub débloque les imports de tickets et le suivi des pull requests. Vous pouvez ignorer cela — la création de tâches fonctionne sans.","githubConnectionFailed":"La connexion a échoué ou expiré.","githubOauthConnected":"GitHub OAuth est connecté. Vous pouvez importer des tickets et suivre les pull requests.","githubOauthNotConnected":"GitHub OAuth n'est pas encore connecté. Configurez-le dans Paramètres → Authentification, ou continuez maintenant et connectez-vous plus tard.","githubSkipped":"GitHub a été ignoré. Vous pouvez vous connecter à tout moment depuis Paramètres → Authentification.","goBackToStep":"Retour à {{label}}","goToDashboard":"Aller au tableau de bord","howDoesLoginWork":"Comment fonctionne la connexion ?","howDoesLoginWorkBody":"Cliquer sur Connexion ouvre le site du fournisseur dans un nouvel onglet pour vous connecter. Une fois Fusion autorisé, cette page détectera automatiquement la connexion. Vos identifiants ne sont jamais stockés dans Fusion.","howDoIChooseModel":"Comment choisir un modèle ?","howDoIChooseModelBody":"Les modèles varient en vitesse, capacité et coût. Un bon défaut est généralement le dernier modèle de votre fournisseur connecté. Vous pouvez toujours modifier cela dans les Paramètres.","importFromGitHub":"Importer depuis GitHub","importFromGitHubSubtitle":"Transformez les tickets GitHub en tâches que vous pouvez suivre ici","inProcess":"En cours","inProcessDesc":"Rapide, faible surcharge. Les tâches s'exécutent dans le processus principal.","inProcessLabel":"En processus (par défaut)","isolationMode":"Mode d'isolation","keySavedInline":"✓ Clé enregistrée","loadingProviders":"Chargement des fournisseurs…","localNode":"Nœud local","loggedOut":"Déconnecté","loggingOut":"Déconnexion…","login":"Connexion","loginAlreadyInProgress":"Une connexion est déjà en cours. Annulez-la pour réessayer.","loginCancelled":"Connexion annulée","loginDidNotComplete":"La connexion n'a pas abouti. Veuillez réessayer.","loginFailed":"Connexion échouée","loginFailedInline":"Connexion échouée. Veuillez réessayer.","loginSuccessful":"Connexion réussie","loginTimedOut":"Délai de connexion expiré. Veuillez réessayer.","loginTimedOutInline":"Délai de connexion expiré. Veuillez réessayer.","logout":"Déconnexion","logoutFailed":"Échec de la déconnexion","manualPastebackTitle":"Attention — retour collage manuel requis","nameHint":"Utilisez uniquement des lettres, chiffres, tirets et tirets bas","namePlaceholder":"mon-projet","needHelp":"Besoin d'aide?","next":"Suivant →","noAiProvider":"Aucun fournisseur d'IA connecté","noAiProviderBody":"Les fonctionnalités IA comme la planification de tâches et la génération de code ne seront pas disponibles avant que vous en connectiez un. Vous pouvez le configurer plus tard dans les Paramètres.","noAiProviderConnected":"Aucun fournisseur IA connecté","noAiProviderDesc":"Les agents IA ne pourront pas travailler sur les tâches tant que vous ne connectez pas un fournisseur. Configurez-en un dans Paramètres → Configuration IA.","noGithub":"GitHub non connecté","noGithubDesc":"Vous ne pourrez pas importer de problèmes depuis GitHub, mais vous pouvez toujours créer des tâches manuellement.","noModelsAvailable":"Aucun modèle disponible pour l'instant. Connectez un fournisseur ci-dessus pour voir les options.","noProvidersConfigured":"Aucun fournisseur IA n'est configuré. Vérifiez votre configuration Fusion.","noProvidersConnectedYet":"Aucun fournisseur connecté pour l'instant","noQuickStartProviders":"Aucun fournisseur de démarrage rapide n'est disponible dans cet environnement.","noTokenHint":"Aucun jeton stocké. Utilisez l'invite d'authentification en haut de l'assistant ou définissez-en une ici.","onlyNeedOneProvider":"Un seul fournisseur suffit pour commencer.","openGitHub":"Ouvrir GitHub","openManager":"Ouvrir le gestionnaire","optionalBadge":"Facultatif","pasteRedirectUrlFirst":"Collez d'abord l'URL de redirection complète ou le code d'autorisation.","pasteTokenForBrowserPlaceholder":"Collez le jeton d'authentification de ce navigateur","pasteTokenPlaceholder":"Collez le jeton d'authentification du daemon","pathHint":"Entrez le chemin absolu de votre répertoire de projet","pathPlaceholder":"/chemin/vers/votre/projet","pleaseEnterTaskDescription":"Veuillez saisir une description de tâche.","profileName":"Nom du profil","projectDirectory":"Répertoire du projet","projectMustBeSelected":"Un projet doit être sélectionné avant de pouvoir créer des tâches ou importer depuis GitHub.","projectName":"Nom du projet","projectNameHintClone":"Par défaut, cela suit le nom du dossier de destination sauf si vous l'éditez.","projectNameHintExisting":"Par défaut, cela suit le nom du répertoire sélectionné sauf si vous l'éditez.","projectNamePlaceholder":"mon-projet","projectPathHint":"Sélectionnez ou entrez le chemin absolu de votre projet","projectPathPlaceholder":"/chemin/vers/votre/projet","projectRegisteredSuccess":"Votre projet a été enregistré avec succès.","projectRequired":"Un projet est requis avant que les actions de première tâche soient disponibles.","projectSelected":"Projet sélectionné — la création de tâches et les imports sont disponibles.","projectSetupDescription":"Choisissez votre premier projet avant de créer ou d'importer des tâches. Vous pouvez enregistrer un répertoire local existant ou cloner une URL de dépôt GitHub via l'assistant de configuration.","providersConnectedSummary":"✓ {{connected}} fournisseur(s) sur {{total}} connecté(s)","providersSkippedSummary_one_one":"","providersSkippedSummary_one_other":"","providersSkippedSummary_other_one":"","providersSkippedSummary_other_other":"","quickStartProviders":"Fournisseurs de démarrage rapide","readinessAiProviderConnected":"{{name}} connecté — les agents IA peuvent travailler sur les tâches","readinessAiProviderLabel":"Fournisseur IA","readinessAiProviderMissing":"Connectez un fournisseur dans Paramètres → Configuration IA","readinessAiProviderSkipped":"Les agents IA ne seront pas disponibles tant que vous n'aurez pas connecté un fournisseur","readinessAllConnected":"✓ Toutes les intégrations connectées","readinessDefaultModelLabel":"Modèle par défaut","readinessGitHubConnected":"Les tickets et les PR peuvent être importés","readinessGitHubLabel":"GitHub","readinessGitHubMissing":"Connectez-vous pour importer des tickets comme tâches","readinessGitHubSkipped":"Vous pouvez vous connecter à tout moment depuis les Paramètres","readinessGitHubViaCli":"Connecté via GitHub CLI — les imports et le suivi des PR sont disponibles","readinessProjectConnected":"Projet sélectionné — la création de tâches et les imports sont disponibles","readinessProjectLabel":"Projet","readinessProjectMissing":"Enregistrez un projet pour activer la création de tâches et les imports","readinessSummaryHeader":"Résumé de la configuration","recommended":"Recommandé","recommendedNextSteps":"Étapes suivantes recommandées","registering":"Enregistrement...","registerProject":"Enregistrer le projet","remoteServerNote":"Votre shell natif nécessite un profil distant actif pour que le transfert vers le tableau de bord puisse s'effectuer.","remoteServerProfileSaved":"Profil de serveur distant enregistré","removeKey":"Supprimer la clé","removingKey":"Suppression…","replaceTokenPlaceholder":"Entrez un nouveau jeton pour remplacer celui stocké","repositoryUrl":"URL du référentiel","repositoryUrlPlaceholder":"https://github.com/proprietaire/repo.git","requiresGitHubConnection":"Nécessite une connexion GitHub","researchRunsNote":"Les recherches nécessitent des identifiants de fournisseur et une vue Recherche activée. Après l'intégration, vérifiez-les dans Paramètres → Authentification et Paramètres → Fonctionnalités expérimentales.","resetToken":"Jeton de réinitialisation","retry":"Réessayer","reviewStep":"Revoir {{label}}","runtimeNode":"Nœud d'exécution","savedProfileButFailedToActivate":"Profil enregistré mais échec de l'activation","saveKey":"Enregistrer","saveRemoteServer":"Enregistrer le serveur distant","saving":"Enregistrement…","savingKey":"Enregistrement…","savingRemoteServer":"Enregistrement…","selectDefaultModel":"Sélectionner un modèle par défaut","selectDefaultModelDesc":"Choisissez un modèle IA par défaut pour l'exécution des tâches","selectedModel":"Sélectionné :","serverUrl":"URL du serveur","serverUrlPlaceholder":"https://your-fusion-host","setAuthToken":"Définir le jeton d'authentification","setToken":"Jeton défini","setTokenContinue":"Définir le jeton et continuer","setUpAi":"Configurer l'IA","setupComplete":"Configuration terminée !","setupMode":"Mode de configuration","setUpProject":"Configurer le projet","setupWizardHint":"Dans l'assistant de configuration, choisissez un répertoire existant ou collez une URL de clone GitHub.","skip":"Sauter","skipForNow":"Ignorer pour l'instant","skipGitHub":"Ignorer GitHub →","skipOnboardingAriaLabel":"Ignorer l'intégration","skipProviderHint":"Vous pouvez ignorer cette étape — les fournisseurs peuvent être ajoutés plus tard dans les Paramètres.","skipSetup":"Ignorer la configuration →","statusConnected":"✓ Connecté","statusConnecting":"⏳ Connexion…","statusConnectionFailed":"✗ Connexion échouée","statusNotConnected":"Non connecté","statusRetry":"Réessayer","statusSkipped":"Ignoré","stepAiSetup":"Configuration IA","stepFirstTask":"Première tâche","stepGithub":"GitHub","stepProject":"Projet","submitCode":"Soumettre le code","submittingCode":"Soumission…","taskCreated":"Tâche créée","taskCreatedHint":"Votre tâche a été créée et apparaîtra sur le tableau.","taskCreationFailed":"Une erreur s'est produite lors de la création de la tâche. Veuillez réessayer.","taskErrorHint":"Votre texte a été préservé — corrigez le problème et réessayez.","titleAiSetup":"Configurer l'IA","titleAllSet":"C'est parti !","titleConnectGitHub":"Connecter GitHub","titleCreateFirstTask":"Créer votre première tâche","titleSetUpProject":"Configurer votre projet","tokenEnvVar":"Le jeton a été défini via la variable d'environnement {{env}} au démarrage du tableau de bord.","tokenStoredHint":"Un jeton est déjà stocké dans ce navigateur. Vous pouvez le mettre à jour ou le réinitialiser ci-dessous.","updateToken":"Jeton de mise à jour","useExistingDirectory":"Utiliser le répertoire existant","viewTask":"Voir la tâche","waitingForGitHubAuth":"En attente de l'autorisation GitHub…","waitingForLogin":"En attente de la connexion…","waitingForOauthLogin":"En attente de la connexion OAuth…","welcomeToFusion":"Bienvenue dans Fusion","whatAreAiProviders":"Que sont les fournisseurs IA ?","whatAreAiProvidersBody":"Des fournisseurs comme OpenAI et Anthropic alimentent les capacités IA de Fusion. Connecter un fournisseur permet aux agents de Fusion d'utiliser des modèles IA pour vous aider dans vos tâches.","whatDoesGitHubIntegrationDo":"À quoi sert l'intégration GitHub ?","whatDoesGitHubIntegrationDoBody":"Sans GitHub, vous pouvez toujours créer et gérer des tâches manuellement. L'intégration GitHub ajoute la possibilité d'importer des tickets comme tâches, de suivre le statut des pull requests et de lier automatiquement les commits aux tâches. Connectez-vous à tout moment depuis Paramètres → Authentification.","whatDoesProjectSetupDo":"À quoi sert la configuration du projet ?","whatDoesProjectSetupDoBody":"La configuration du projet enregistre un espace de travail pour que Fusion sache où lire les fichiers, exécuter les commandes et suivre les modifications de tâches.","whatHappensWhenCreateTask":"Que se passe-t-il quand je crée une tâche ?","whatHappensWhenCreateTaskBody":"Une tâche décrit ce que vous voulez réaliser. Les agents IA de Fusion liront votre description et travailleront à sa mise en œuvre. Vous pouvez suivre la progression sur le tableau et examiner les résultats.","whatIsApiKey":"Qu'est-ce qu'une clé API ?","whatIsApiKeyBody":"Une clé API est un jeton secret qui authentifie Fusion auprès du fournisseur. Vous pouvez trouver votre clé dans le tableau de bord du fournisseur sous les paramètres API. Les clés sont stockées de manière sécurisée sur votre machine.","withGitHub1":"Importer des tickets comme tâches","withGitHub2":"Synchroniser le statut des pull requests","withGitHub3":"Lier les modifications de code aux tâches","withGitHubHeading":"Avec GitHub (après connexion) :","withoutGitHub1":"Créer des tâches manuellement","withoutGitHub2":"Décrire le travail pour les agents IA","withoutGitHub3":"Suivre la progression sur le tableau","withoutGitHubHeading":"Sans GitHub (disponible maintenant) :"}`),Oe={activePill:"Actif",addConnection:"Ajouter une connexion",addServer:"Ajouter un serveur",authTokenLabel:"Jeton d'authentification (facultatif)",connectionManager:"Gestionnaire de connexion",connectionManagerLabel:"Gestionnaire de connexion",defaultProfileName:"Serveur distant",deleteConfirmLabel:"Confirmation de suppression du serveur",deleteConfirmMessage:"Supprimer {{name}} ? Cela supprimera le profil enregistré.",deleteProfile:"Supprimer {{name}}",editProfile:"Modifier {{name}}",modeLocal:"Local",modeRemote:"Distant",nameLabel:"Nom",noServersSaved:"Aucun serveur distant enregistré pour l'instant.",scanQr:"Scanner le code QR",serverUrlLabel:"URL du serveur",serverUrlProtocolError:"L'URL du serveur doit utiliser http ou https",use:"Utiliser",useProfile:"Utiliser {{name}}"},Ue={addSkill:"Ajouter une compétence…",allSkillsSelected:"Toutes les compétences sélectionnées",catalogSection:"Catalogue des compétences",catalogUnavailable:"Le catalogue n'est pas disponible pour le moment. Veuillez réessayer plus tard.",closeDetail:"Fermer le détail de la compétence",closeView:"Fermer la vue des compétences",disabled:"Compétence désactivée",disableSkill:"Désactiver {{name}}",discovered:"découvertes",discoveredCount_one:"",discoveredCount_other:"",discoveredSection:"Compétences découvertes",enabled:"Compétence activée",enableSkill:"Activer {{name}}",filesLabel:"Fichiers",install:"Installer",installError:"Impossible d'installer la compétence",installFailed:"Impossible d'installer {{name}} : {{message}}",installing:"Installation en cours…",installsCount:"{{count}} installations",installSkill:"Installer {{name}}",installSuccess:"{{name}} installé",loadCatalogError:"Impossible de charger le catalogue",loadContentError:"Impossible de charger le contenu de la compétence",loadDiscoveredError:"Impossible de charger les compétences découvertes",loading:"Chargement des compétences…",loadingCatalog:"Chargement du catalogue...",loadingContent:"Chargement du contenu de la compétence...",loadingDiscovered:"Chargement des compétences découvertes...",noCatalogAvailable:"Aucune compétence disponible dans le catalogue.",noDiscovered:"Aucune compétence découverte dans ce projet.",noMatchingDiscovered:"Aucune compétence découverte ne correspond à votre recherche.",noMatchingSearch:"Aucune compétence ne correspond à votre recherche.",noSkillMd:"(Aucun fichier SKILL.md trouvé)",noSkillsDiscovered:"Aucune compétence trouvée",removeSkill:"Supprimer {{name}}",searchLabel:"Rechercher des compétences",searchPlaceholder:"Rechercher des compétences...",title:"Compétences",toggleError:"Impossible de basculer la compétence",toggleFailed:"Impossible de basculer la compétence : {{message}}",viewDetails:"Afficher les détails de {{name}}"},Ge={edit:"Modifier",empty:"(pas de spécification)",feedbackPlaceholder:"par exemple, 'Ajouter plus de détails sur la gestion des erreurs', 'Diviser ceci en étapes plus petites', 'Inclure des tests pour les points de terminaison de l'API'...",keyboardHint:"Appuyez sur <ctrl>Ctrl</ctrl>+<enter>Entrée</enter> (ou <cmd>Cmd</cmd>+<enter2>Entrée</enter2>) pour enregistrer",placeholder:"Entrez la spécification de la tâche en Markdown...",requesting:"Demande en cours…",requestRevision:"Demander une révision de l'IA",revisionHelp:"Fournissez des commentaires à l'IA pour améliorer cette spécification. La tâche passera à la phase de planification pour une nouvelle planification.",revisionTitle:"Demander à l'IA de réviser",saving:"Enregistrement…",view:"Afficher"},Ve={applied:"Appliqué",apply:"Appliquer",applyFailed:"Échec de l'application",changedPathsLabel:"Chemins modifiés",classificationLabel:"Classification",closeDiffDialog:"Fermer la boîte de dialogue diff",diffDialogLabel:"Diff pour {{sha}}",diffHeader:"Diff pour {{sha}}",diffTruncated:"Sortie diff tronquée.",drop:"Supprimer",dropConfirm:"Supprimer",dropMessage:"Cela supprime définitivement l'entrée de sauvegarde.",dropTitle:"Supprimer la sauvegarde orpheline ?",failedToLoadDiff:"Échec du chargement du diff",failedToLoadOrphans:"Échec du chargement des orphelins",fileCount_one:"",fileCount_other:"",inspectDiff:"Inspecter diff",loadingDiff:"Chargement du diff…",noDiffOutput:"Aucune sortie diff disponible.",noOrphans:"Aucune sauvegarde automatique de fusion orpheline trouvée.",orphanCount_one:"",orphanCount_other:"",shaLabel:"SHA",title:"Récupération de stash",unknownSource:"Source inconnue"},We={aiPrompt:"Prompt IA",aiPromptStepTitle:"Étape de prompt IA",command:"Commande",commandStepTitle:"Étape de commande",createTask:"Créer une tâche",createTaskStepTitle:"Étape de création de tâche"},Je={addSubtask:"Ajouter une sous-tâche",baseBranchLabel:"Cible de fusion / branche de base (facultatif)",baseBranchPlaceholder:"main",branchAssignmentPerTask:"Branches par tâche dérivées de la branche de planification",branchAssignmentShared:"Cible de fusion partagée — les sous-tâches s'exécutent sur leurs propres branches",branchModeAutoNew:"Créer une branche nommée automatiquement par tâche",branchModeCustomNew:"Créer une nouvelle branche personnalisée",branchModeExisting:"Utiliser une branche existante",branchModeProjectDefault:"Utiliser la branche projet/défaut",branchNameLabel:"Nom de la branche",branchStrategyLabel:"Stratégie de branche",createTasks:"Créer les tâches",creating:"Création en cours...",dependenciesLabel:"Dépendances",dependencyCycleError:"Les dépendances contiennent un cycle. Supprimez les références circulaires avant de créer les tâches.",descriptionLabel:"Description",discardChangesMessage:"Fermer la décomposition des sous-tâches ? Les modifications non enregistrées seront perdues.",discardChangesTitle:"Abandonner les modifications",dragToReorder:"Faire glisser pour réorganiser",errorCreateTasks:"Impossible de créer les tâches",errorRefreshSession:"Impossible d'actualiser la session de sous-tâches.",errorResumeSession:"Impossible de reprendre la session",errorRetryFailed:"La nouvelle tentative a échoué. Veuillez réessayer.",errorSessionEncountered:"La session a rencontré une erreur",errorSessionFailed:"La session a échoué lors de la communication avec l'IA.",errorSessionNoResult:"La session de sous-tâches est terminée mais n'a aucun résultat.",errorStartBreakdown:"Impossible de démarrer la décomposition des sous-tâches",generatingSubtasks:"L'IA génère des sous-tâches...",groupedOnSharedBranch:"Regroupé sur la branche partagée",hideThinking:"Masquer la réflexion",modalTitle:"Décomposition en sous-tâches",moveDown:"Descendre",moveSubtaskDownAriaLabel:"Déplacer la sous-tâche vers le bas",moveSubtaskUpAriaLabel:"Déplacer la sous-tâche vers le haut",moveUp:"Monter",noDepsFirstSubtask:"La première sous-tâche ne peut pas avoir de dépendances.",noPreviousSubtasks:"Aucune sous-tâche précédente disponible.",openGroupModal:"Ouvrir le modal de groupe",planningBranchModeLabel:"Mode de branche de planification",preparingBreakdown:"Préparation de la décomposition de cette tâche en sous-tâches.",reconnecting:"Reconnexion en cours…",remove:"Supprimer",retry:"Réessayer",retrying:"Nouvelle tentative...",reviewSubtasksHeading:"Vérifiez vos sous-tâches",reviewSubtasksHint:"Modifiez les titres, descriptions, tailles et dépendances avant de créer toutes les tâches d'un coup.",sendToBackgroundAriaLabel:"Envoyer en arrière-plan",sendToBackgroundTitle:"Envoyer en arrière-plan",sessionActiveAnotherTab:"La session est active dans un autre onglet.",sessionActiveAnotherTabLive:"Cette session est active dans un autre onglet (signal de présence actif)",sessionActiveAnotherTabTakeover:"Cette session est active dans un autre onglet",showThinking:"Afficher la réflexion",sizeLabel:"Taille",takeControl:"Prendre le contrôle",takingControl:"Prise de contrôle...",titleLabel:"Titre",untitled:"Sans titre"},Qe={entryCount_one:"",entryCount_other:"",filterAll:"Tous",filterAllNodes:"Tous les nœuds",filterDirection:"Direction :",filterNode:"Nœud :",filterPull:"Récupérer",filterPush:"Envoyer",loading:"Chargement...",noHistory:"Aucun historique de synchronisation",resultConflict:"Conflit",resultError:"Erreur",resultSuccess:"Succès"},Ke={agentActive:"actif",agentError:"erreur",agentIdle:"inactif",agentRunning:"en cours",autoKillLabel:"Arrêt automatique de vitest sous pression mémoire",autoRefresh:"Actualisation auto · 5s",closeAriaLabel:"Fermer",confirmKill:"Confirmer l'arrêt ?",cpuFirstSamplePending:"Premier échantillon en attente",cpuProcessUsage:"utilisation du processus",cpuProgressLabel:"Utilisation CPU de l'application : {{percent}}%",cpuProgressUnavailable:"Utilisation CPU de l'application indisponible : en attente d'un autre échantillon",cpuSampling:"Échantillonnage…",errorKillVitest:"Échec de l'arrêt des processus vitest",errorLoadStats:"Échec du chargement des statistiques système",errorLoadVitestSettings:"Échec du chargement des paramètres vitest",errorSaveVitestSettings:"Échec de l'enregistrement des paramètres vitest",footerRefreshFailed:"Dernière actualisation échouée : {{error}}",killedProcesses_one:"",killedProcesses_other:"",killThresholdInputAriaLabel:"Seuil d'arrêt (%)",killThresholdLabel:"Seuil d'arrêt (%)",killThresholdSliderAriaLabel:"Curseur de seuil d'arrêt (%)",killVitest:"Arrêter les processus vitest",lastAutoKill:"Dernier arrêt automatique : {{time}}",loading:"Chargement des statistiques système…",notYet:"Pas encore",refreshAriaLabel:"Actualiser les statistiques système",refreshTitle:"Actualiser",rowAppCpu:"CPU app",rowArrayBuffers:"Tampons tableau",rowCores:"Cœurs",rowExternal:"Externe",rowHeapLimit:"Limite du tas",rowHeapLimitDetail:"Limite V8",rowHeapUsed:"Tas utilisé",rowHeapUsedDetail:"sur {{total}}",rowLoadAvg:"Charge moy.",rowMemoryFree:"Mémoire libre",rowMemoryUsed:"Mémoire utilisée",rowNode:"Node",rowPid:"PID",rowPlatform:"Plateforme",rowRss:"RSS",rowTotal:"Total",sectionAgents:"Agents",sectionAgentsAriaLabel:"Statistiques des agents",sectionCpu:"CPU et charge",sectionCpuAriaLabel:"Statistiques CPU et charge",sectionProcess:"Processus",sectionProcessAriaLabel:"Statistiques du processus",sectionSystem:"Système",sectionSystemMemAriaLabel:"Statistiques mémoire système",sectionTasks:"Tâches",sectionTasksAriaLabel:"Statistiques des tâches",sectionVitest:"Contrôles vitest",sectionVitestAriaLabel:"Contrôles vitest",systemMemProgressLabel:"Mémoire système utilisée : {{percent}}% ({{used}} sur {{total}})",systemMemUnavailable:"Utilisation de la mémoire système indisponible",title:"Statistiques système",updatedAt:"Mis à jour {{time}}",vitestProcesses:"Processus vitest",waitingFirstUpdate:"En attente de la première mise à jour"},Ye={attributionFailed:"L'ensemble des fichiers déposés peut inclure des commits étrangers (attribution indisponible).",disableWordWrap:"Désactiver le retour à la ligne",enableWordWrap:"Activer le retour à la ligne",error:"Erreur lors du chargement des modifications : {{error}}",expandDiff:"Développer la vue de diff en plein écran",expandDiffView:"Développer la vue de diff",filesChangedHeading_one:"",filesChangedHeading_other:"",loadError:"Impossible de charger les modifications de la tâche",loading:"Chargement des modifications...",mergedAt:"Fusionné {{date}}",nextFile:"Fichier suivant",noExecutionModifications:"L'agent n'a modifié aucun fichier lors de l'exécution.",noFilesModified:"Aucun fichier modifié.",noMergeCommit:"Aucun commit de fusion n'a été enregistré pour cette tâche.",noMergeFileChanges:"Aucune modification de fichier n'a été enregistrée dans le commit de fusion.",noOpShortCircuit:"Court-circuit vérifié — le travail était déjà sur main (le rebase a parcouru des commits étrangers).",noWorktree:"Aucun répertoire de travail disponible pour cette tâche.",noWorktreeHint:"Les modifications s'afficheront une fois la tâche en cours.",previousFile:"Fichier précédent",summaryHint:"Résumé du commit final : {{files}} fichier{{plural}} modifié(s), +{{additions}} additions, -{{deletions}} suppressions. Ne compte que le commit de fusion/compression enregistré, pas la lignée complète de la tâche.",toggleWordWrap:"Basculer le retour à la ligne",unavailable:"Modifications de fichiers détaillées non disponibles."},Ze=JSON.parse(`{"actions":{"menuBtn":"Actions"},"agent":{"assignBtn":"Assigner un agent","assignedUpdated":"Agent assigné mis à jour","assignFailed":"Échec de l'affectation de l'agent : {{error}}","label":"Agent","loadFailed":"Échec du chargement des agents : {{error}}","loadingAgents":"Chargement des agents...","noAgents":"Aucun agent disponible","unassigned":"Agent désaffecté","unassignFailed":"Échec de la désaffectation de l'agent : {{error}}","unassignTitle":"Désaffecter l'agent"},"agentLink":"agent {{id}}","ageStaleness":{"active":"Actif","age":"Âge","column":"Colonne","critical":"Critique","observed":"Observé","paused":"En pause","title":"Ancienneté de la tâche","warning":"Avertissement"},"attachments":{"attachBtn":"Joindre une capture d'écran","attached":"Capture d'écran jointe","deleted":"Pièce jointe supprimée","deleteTitle":"Supprimer la pièce jointe","heading":"Pièces jointes","none":"(aucune pièce jointe)","uploading":"Téléversement…"},"blockedByLink":"bloqué par {{id}}","blocking":{"heading":"Blocage","none":"(aucune tâche en aval bloquée)","stale":"(obsolète)","staleTitle":"Arête blockedBy obsolète : le clearStaleBlockedBy auto-réparant devrait la supprimer automatiquement"},"branchBinding":{"candidates":"Candidats :","copy":"Cette tâche en révision n'est pas actuellement attachée à une branche fusion. Si une branche fusion active existe encore pour elle, vous pouvez la rattacher ici.","headline":"La branche doit être rattachée","reattachBtn":"Rattacher la branche","reattached":"Branche rattachée pour {{id}} ({{branch}})","reattachedResult":"{{branch}} rattachée ({{count}} commits devant {{base}}).","reattachedResult_one":"","reattachedResult_other":"","reattaching":"Rattachement…","skipped":"Rattachement de branche ignoré pour {{id}} : {{reason}}","skippedResult":"Rattachement ignoré : {{reason}}"},"cacheBreakdown":"(lus {{read}} / écrits {{write}} / entrée {{input}})","cacheHitRatio":"Taux de hits du cache :","cacheRead":"Lecture du cache","cacheWrite":"Écriture du cache","checkoutLink":"checkout {{id}}","delete":{"actionClosed":"fermé","actionDeleted":"supprimé","actionLeft":"laissé","allowRecreation":"Autoriser la recréation ultérieure (déverrouillage opérateur)","allowRecreationDesc":"Permet aux agents de recréer cet ID de tâche sans --force-resurrect. Laissez décoché pour conserver l'état de tombstone.","archivedAfterUnlink":"{{id}} archivé après dissociation des références de lignage","archiveInstead":"Archiver à la place","archiveUnlinkPrompt":"Archiver quand même en dissociant ces références d'abord ?","ariaLabel":"Supprimer la tâche","btn":"Supprimer","closeIssue":"Fermer l'issue","confirm":"Supprimer","deletedAfterRemovingDeps":"{{id}} supprimé après la suppression des références de dépendance","deletedAfterUnlinkLineage":"{{id}} supprimé après dissociation des références de lignage","deletedToast":"{{id}} supprimé{{suffix}}","deleteIssue":"Supprimer l'issue","deleteLinkedIssueMessage":"Supprimer {{issueRef}} sur GitHub, ou le laisser inchangé ?","deleteLinkedIssueTitle":"Supprimer l'issue GitHub liée","deleteUnlinkDepsPrompt":"Supprimer quand même en supprimant ces références de dépendance d'abord ?","deleteUnlinkLineagePrompt":"Supprimer quand même en dissociant ces références d'abord ?","forceDeleteTitle":"Forcer la suppression de la tâche","issueSuffix":"et {{action}} l'issue {{ref}}","leaveUnchanged":"Laisser inchangé","linkedIssueMessage":"Choisissez ce que faire avec {{issueRef}} lors de la suppression de {{id}}.\\n\\nFermer l'issue ?","linkedIssueTitle":"Issue GitHub liée","message":"Supprimer {{id}} ?","moreOptions":"Plus d'options","title":"Supprimer la tâche"},"deps":{"addBtn":"Ajouter une dépendance","clearBlockerTitle":"Effacer le bloqueur de chevauchement {{id}}","clearBtn":"Effacer","clickToView":"Cliquez pour voir {{id}}","heading":"Dépendances","loadFailed":"Échec du chargement de la dépendance {{id}}","noAvailableTasks":"Aucune tâche disponible","none":"(aucune dépendance)","overlapBlocker":"Bloqueur de chevauchement de portée de fichier :","removeTitle":"Supprimer la dépendance {{id}}","searchPlaceholder":"Rechercher des tâches…","stale":"(obsolète)"},"description":{"showLess":"Afficher moins","showMore":"Afficher plus"},"duplicate":{"btn":"Dupliquer","message":"Dupliquer {{id}} ? Cela créera une nouvelle tâche dans Triage avec la même description et invite.","success":"{{id}} dupliqué → {{newId}}","title":"Dupliquer la tâche"},"edit":{"autosaveHint":"Les modifications sont enregistrées automatiquement","autosaving":"Enregistrement automatique…","nodeOverrideLocked":"Le remplacement du nœud d'exécution est verrouillé pendant qu'une tâche est active/en cours.","saved":"Enregistré","saveFailed":"Échec de l'enregistrement","saving":"Enregistrement…","sourceExternalIdPlaceholder":"Identifiant de l'issue","sourceIssueHint":"Laissez tous les champs vides pour effacer les métadonnées de l'issue source.","sourceIssueIdentifierNumeric":"L'identifiant d'issue source doit être numérique pour les nouvelles métadonnées","sourceIssueLabel":"Issue source","sourceIssueRequiredFields":"Le fournisseur de l'issue source, le dépôt et l'identifiant d'issue sont obligatoires","sourceProviderPlaceholder":"Fournisseur (p. ex. github)","sourceRepositoryPlaceholder":"Dépôt (p. ex. owner/repo)","sourceUrlPlaceholder":"URL de l'issue"},"error":{"taskFailed":"Tâche échouée"},"executionAndTokenStats":"Stats d'exécution et de tokens","executionDetails":"Détails d'exécution","executionMode":{"ariaLabel":"Mode d'exécution : {{mode}}","fast":"Rapide","standard":"Standard","updated":"Mode d'exécution mis à jour : {{mode}}"},"executionModeFast":"Rapide","executionModeStandard":"Standard","executionStatsAria":"Statistiques d'exécution de la tâche","executionTiming":"Durée d'exécution","executionTimingMetricsAria":"Métriques de durée d'exécution","firstUsed":"Première utilisation","githubTracking":{"addTitleBeforeCreating":"Ajoutez un titre avant de créer une issue de suivi","checking":"Vérification du statut de suivi","collapse":"Réduire les détails du suivi GitHub","createIssueBtn":"Créer une issue de suivi","createIssueDisabledTitle":"Ajoutez un titre ou une description pour créer une issue de suivi.","createIssueHelper":"L'issue de suivi sera créée dès que cette tâche aura un titre ou une description.","disabled":"Le suivi est actuellement désactivé","enableAriaLabel":"Activer le suivi GitHub","enableBtn":"Activer","enableCheckboxLabel":"Activer le suivi GitHub","enabling":"Activation du suivi GitHub…","enablingAriaLabel":"Activation du suivi GitHub","expand":"Développer les détails du suivi GitHub","issue":"Issue","issueCreationRequested":"Création d'une issue de suivi GitHub demandée","issueUnlinked":"Issue GitHub dissociée","label":"Suivi GitHub","loading":"Chargement du statut de suivi GitHub…","loadingAriaLabel":"Chargement du statut de suivi GitHub","notYetCreated":"Issue pas encore créée","repoOverrideFormat":"La substitution de dépôt doit être au format propriétaire/dépôt","state":"État","statusAriaLabel":"État du suivi GitHub","statusDisabled":"Désactivé","statusEnabled":"Activé","statusLinked":"Liée","statusLoading":"Chargement","unlinkBtn":"Dissocier l'issue GitHub","unlinkConfirm":"Dissocier","unlinkMessage":"Cela arrête la synchronisation de Fusion avec l'issue GitHub liée. L'issue elle-même ne sera pas modifiée.","unlinkTitle":"Dissocier l'issue GitHub ?"},"hasSession":"a une session","header":{"back":"Retour","backToList":"Retour à la liste des tâches","editTask":"Modifier la tâche"},"inputTokens":"Entrée","lastUsed":"Dernière utilisation","loadingTokenStats":"Chargement des statistiques de tokens…","logs":{"activity":"Activité","activityHeading":"Activité","agentLog":"Journal de l'agent","noActivity":"(aucune activité)","truncated_one":"","truncated_other":""},"longestTimingEvent":"Événement de minutage le plus long","longestWorkflowStep":"Étape de workflow la plus longue","merge":{"closed":"{{id}} fermé ({{reason}})","merged":"{{id}} fusionné (branche : {{branch}})","merging":"Fusion de {{id}}…","message":"Fusionner {{id}} dans la branche actuelle ?","noBranchToMerge":"aucune branche à fusionner","title":"Fusionner la tâche"},"move":{"backToInProgress":"Retour à En cours","cancelMove":"Annuler le déplacement","keepProgress":"Conserver la progression","movedTo":"Déplacé vers {{column}}","moveTo":"Déplacer vers {{column}}","preserveProgressMessage":"Cette tâche a des étapes terminées. Conserver la progression avant de déplacer ?","preserveProgressTitle":"Conserver la progression ?","resetProgress":"Réinitialiser la progression","resetProgressMessage":"Réinitialiser toute la progression des étapes avant de déplacer cette tâche ?","resetProgressTitle":"Réinitialiser la progression ?"},"nearDuplicate":{"actions":"Choisissez Archiver pour déplacer cette tâche vers les archives, ou Conserver pour continuer avec cette tâche.","archiveBtn":"Archiver","archiveConfirm":"Archiver","archived":"{{id}} archivé","archiveMessage":"Archiver {{id}} en tant que doublon de {{duplicateOf}} ?","archiveTitle":"Archiver la tâche quasi-dupliquée","copy":"Cette tâche semble être un quasi-doublon de","headline":"Doublon potentiel détecté","keepBtn":"Conserver","kept":"{{id}} conservé et avertissement de doublon ignoré"},"nextRecoveryAt":"Prochaine récupération à {{time}}","no":"Non","noCommits":{"disabled":"Attente sans commit désactivée","enabled":"Attente sans commit activée","hint":"Permet à la tâche de se terminer sans produire de commits git. À utiliser pour les tâches d'évaluation, de vérification ou d'audit où le livrable est la décision enregistrée.","label":"Aucun commit attendu (tâche décisionnelle)"},"noRuntimeLinks":"Aucun lien d'exécution","noScheduledRecovery":"Aucune récupération planifiée","noSteps":"Aucune étape","noTimedEvents":"Aucun événement chronométré enregistré pour l'instant.","noTokenUsage":"Aucune utilisation de tokens enregistrée pour cette tâche pour l'instant.","notSet":"Non défini","noWorkflowStepTimings":"Aucune durée d'étape de workflow terminée pour l'instant.","outputTokens":"Sortie","pause":{"pauseBtn":"Mettre en pause","paused":"{{id}} mis en pause","pausedByAgent":"Mis en pause par l'agent","unpauseBtn":"Reprendre","unpaused":"{{id}} sorti de pause","worktrunkFailed":"Opération Worktrunk échouée"},"paused":"En pause","plan":{"approveBtn":"Approuver le plan","approved":"Plan approuvé — {{id}} déplacé vers Todo","rebuildMessage":"Reconstruire le plan pour cette tâche ? La tâche passera en planification.","rebuildTitle":"Reconstruire le plan","rejectBtn":"Rejeter le plan","rejected":"Plan rejeté — {{id}} renvoyé en planification pour replanning","rejectMessage":"Rejeter ce plan ? La spécification sera supprimée et régénérée.","rejectTitle":"Rejeter le plan","replanning":"Replanning de {{id}}…"},"pr":{"awaitingChecks":"En attente des vérifications du PR","checkPrStatus":"Vérifier le statut du PR","creatingPr":"Création du PR…","finishAndClose":"Terminer et fermer","mergeAndClose":"Fusionner et fermer","mergingFixes":"Fusion des corrections…","mergingPr":"Fusion du PR…","startPrReview":"Démarrer la révision du PR","statusRefreshed":"Statut du PR actualisé"},"priority":{"ariaLabel":"Priorité de la tâche","label":"Priorité :","updated":"Priorité mise à jour : {{priority}}"},"progress":{"heading":"Progression","noSteps":"(aucune étape définie)","stepCount_one":"","stepCount_other":""},"provenance":{"createdBy":"Créé par","createdVia":"Créé via"},"recoveryState":"État de récupération","refine":{"btn":"Affiner","charCount_one":"","charCount_other":"","createBtn":"Créer une tâche de raffinement","creating":"Création...","feedbackRequired":"Veuillez saisir des commentaires décrivant ce qui doit être affiné","feedbackTooLong":"Le commentaire ne peut pas dépasser 2000 caractères","help":"Décrivez ce qui doit être affiné ou amélioré...","modalTitle":"Affiner","placeholder":"Saisissez votre commentaire ici...","taskCreated":"Tâche de raffinement créée : {{id}}"},"reset":{"btn":"Réinitialiser","confirmMessage":"Cela effacera toute la progression de {{id}} et relancera la tâche depuis le début. Continuer ?","resetSuccess":"{{id}} réinitialisé — une nouvelle exécution sera allouée"},"respecify":{"btn":"Respécifier"},"retries":{"branchConflict":"Récupération après conflit de branche","branchConflictTitle":"FN-4068 tentatives de récupération après conflit de branche","capReached":"Limite de tentatives atteinte pour cette tâche.","collapse":"Réduire les détails des tentatives","expand":"Développer les détails des tentatives","label":"Tentatives","mergeConflict":"Rebonds de conflit de fusion","mergeConflictTitle":"Tentatives après rebond de conflit de fusion","postReviewFix":"Corrections post-révision","postReviewFixTitle":"Tentatives de remédiation post-révision","recovery":"Tentatives de récupération","recoveryTitle":"Tentatives de récupération transitoire de l'exécuteur","reviewerContext":"Tentatives de contexte réviseur","reviewerContextTitle":"FN-4082 tentative de révision compacte","reviewerFallback":"Tentatives de repli du réviseur","reviewerFallbackTitle":"FN-4092 tentative avec modèle de repli","stuckKill":"Arrêts pour blocage","stuckKillTitle":"Le détecteur de tâches bloquées a forcé des arrêts d'agent","taskDone":"Tentatives task_done","taskDoneTitle":"L'agent a quitté sans task_done, la tâche a été relancée","verification":"Rebonds de vérification","verificationTitle":"Tentatives après échec de vérification","workflowStep":"Tentatives de workflow","workflowStepTitle":"Tentatives après échec d'étape de workflow"},"retriesLabel":"Nouvelles tentatives (récupération / workflow / fusion / tâche terminée)","retry":{"btn":"Réessayer","retried":"{{id}} relancé"},"runtimeLinks":"Liens d'exécution","runtimeStatus":"Statut d'exécution","selfHealCounters":"Compteurs d'auto-réparation","selfHealValues":"arrêts pour blocage : {{stuckKills}}, corrections après revue : {{postReviewFixes}}","sourceIssue":{"collapse":"Réduire les détails de l'issue source","expand":"Développer les détails de l'issue source","githubAriaLabel":"Issue source GitHub","githubBadge":"GitHub","identifier":"Identifiant de l'issue","label":"Issue source","none":"(aucune)","provider":"Fournisseur","repository":"Dépôt","url":"URL"},"spec":{"aiReviseHeading":"Demander une révision à l'IA","aiReviseHelp":"Fournissez des commentaires pour que l'IA améliore cette spécification. La tâche passera en planification.","editBtn":"Modifier","feedbackPlaceholder":"p. ex., « Ajoutez plus de détails sur la gestion des erreurs », « Découpez en étapes plus petites »...","hintCancel":"pour annuler","hintSave":"pour enregistrer","loading":"Chargement de la spécification…","noPrompt":"(aucune invite)","placeholder":"Saisissez la spécification de la tâche en Markdown...","requesting":"Demande en cours…","requestRevisionBtn":"Demander une révision IA","revisionColumnError":"Impossible de demander une révision : la tâche doit être dans la colonne « triage », « todo », « in-progress » ou « in-review ».","revisionRequested":"Révision IA demandée. La tâche a été déplacée en planification.","saving":"Enregistrement…","updated":"Spécification mise à jour"},"stall":{"noLogEntry":"Aucune entrée de journal pour l'instant","noLogEntryTitle":"Aucune entrée « In-review stall surfaced » sur cette tâche pour l'instant — l'auto-réparation n'en a peut-être pas enregistré dans sa fenêtre de limitation.","observed":"Observé","threshold":"Seuil","viewActivityLog":"Voir le journal d'activité"},"stepProgress":"Avancement des étapes","summary":{"heading":"Résumé"},"tabs":{"changes":"Modifications","comments":"Commentaires","definition":"Définition","chat":"Chat","documents":"Documents","logs":"Journaux","model":"Modèle","pullRequest":"Pull Request","review":"Révision","routing":"Routage","stats":"Statistiques","workflow":"Workflow"},"timedDuration":"Durée mesurée","timestamps":{"ariaLabel":"Horodatages de la tâche","created":"Créé","updated":"Mis à jour"},"timingEvents":"Événements de minutage","tokenTotalsAria":"Totaux de tokens de la tâche","tokenUsage":"Utilisation des tokens","totalExecutionTime":"Temps d'exécution total","totalTokens":"Total","updateFailed":"Échec de la mise à jour de {{id}} : {{error}}","updateSuccess":"{{id}} mis à jour","wallClockSinceFirst":"Temps réel depuis la première exécution","workflow":{"loadFailed":"Échec du chargement des résultats du workflow : {{error}}","stepsUpdated":"Étapes du workflow mises à jour","stepsUpdateFailed":"Échec de la mise à jour des étapes du workflow : {{error}}"},"workflowRuntime":"Durée d'exécution du workflow","workflowTimedSteps":"Étapes chronométrées du workflow","yes":"Oui"}`),Xe={cancel:"Annuler",collapse:"Réduire",contentLabel:"Contenu",contentPlaceholder:"Saisissez le contenu du document…",contentRequired:"Le contenu est requis",create:"Créer",created:"Document créé",creating:"Création…",deleteConfirm:"Supprimer ?",deleted:"Document supprimé",edit:"Modifier",expand:"Développer",failedToCreate:"Échec de la création du document",failedToDelete:"Échec de la suppression du document",failedToLoad:"Échec du chargement des documents",failedToLoadRevisions:"Échec du chargement des révisions",failedToSave:"Échec de l'enregistrement du document",heading:"Documents",history:"Historique",invalidKeyFormat:"Format de clé invalide. Utilisez 1-64 caractères alphanumériques, tirets ou traits de soulignement.",keyHint:"Alphanumériques, tirets, traits de soulignement (1-64 caractères)",keyLabel:"Clé",keyPlaceholder:"ex. plan, notes, recherche",keyRequired:"La clé du document est requise",loading:"Chargement des documents…",loadingRevisions:"Chargement…",modeMarkdown:"Markdown",modePlain:"Texte brut",newDocumentButton:"Nouveau document",newDocumentTitle:"Nouveau document",no:"Non",noDocuments:"Aucun document pour le moment.",noPreviousRevisions:"Aucune révision précédente.",revisionHistory:"Historique des révisions",save:"Enregistrer",saved:"Document enregistré",saving:"Enregistrement…",switchToMarkdown:"Basculer vers markdown",switchToPlainText:"Basculer vers du texte brut",yes:"Oui"},$e={addDependencies:"Ajouter des dépendances",attachHint:"Vous pouvez aussi coller des images ou les glisser-déposer",attachmentsLabel:"Pièces jointes",attachScreenshot:"Joindre une capture d'écran",autoMergeDefault:"Défaut (suivre le paramètre du projet)",autoMergeDisabled:"Désactivé",autoMergeEnabled:"Activé",autoMergeHint:"Le défaut suit le paramètre de fusion automatique du projet.",autoMergeLabel:"Fusion automatique",autoSaveSaved:"Enregistré",autoSaveSaving:"Enregistrement…",baseBranchCustom:"Personnalisé…",baseBranchDefault:"(par défaut / branche projet)",baseBranchLabel:"Cible de fusion / branche de base",baseBranchPlaceholder:"ex. main",branchModeAutoNew:"Créer une branche nommée automatiquement par tâche",branchModeCustomNew:"Créer une nouvelle branche personnalisée",branchModeExisting:"Utiliser une branche existante",branchModeProjectDefault:"Utiliser la branche projet/par défaut",branchModeSharedGroup:"Fusionner dans une branche de fonctionnalité partagée",branchNameLabel:"Nom de la branche",branchPlaceholder:"ex. feature/my-task",branchSettingsLabel:"Paramètres de branche",branchStrategyLabel:"Stratégie de branche",collapseDescription:"Réduire la description",dependenciesLabel:"Dépendances",dependenciesSelected_one:"",dependenciesSelected_other:"",descriptionLabel:"Description",descriptionPlaceholder:"Que faut-il faire ?",descriptionRefinedToast:"Description affinée avec l'IA",editingDescription:"Modification de la description",enterDescriptionFirst:"Saisissez d'abord une description",executionModeFast:"Rapide",executionModeLabel:"Mode d'exécution",executionModeStandard:"Standard",executionOrderLabel:"Ordre d'exécution :",executorLabel:"Exécuteur",executorModelLabel:"Modèle exécuteur",expandDescription:"Développer la description",githubRepoFormatError:"Le dépôt doit être au format propriétaire/dépôt.",githubRepoLabel:"Dépôt (propriétaire/dépôt)",githubTrackingEnable:"Activer le suivi des issues GitHub pour cette tâche",githubTrackingLabel:"Suivi GitHub",loadingModels:"Chargement des modèles…",modelConfigLabel:"Configuration du modèle",moreOptions:"Plus d'options",moveDown:"Descendre",moveUp:"Monter",noAvailableTasks:"Aucune tâche disponible",nodeDefaultOption:"Utiliser le nœud par défaut du projet / local",nodeOverrideHint:"La substitution de tâche a la priorité sur le routage de nœud par défaut du projet.",nodeOverrideLabel:"Substitution du nœud d'exécution",noModelsAvailable:"Aucun modèle disponible. Configurez l'authentification dans les paramètres.",overridePreset:"Remplacer",planButton:"Planifier",planningLabel:"Planification",planningModelLabel:"Modèle de planification",presetCustom:"Personnalisé",presetLabel:"Préréglage",presetUseDefault:"Utiliser le défaut",priorityLabel:"Priorité",refineAddDetailsDesc:"Ajouter des détails d'implémentation et du contexte",refineAddDetailsTitle:"Ajouter des détails",refineButton:"Affiner",refineClarifyDesc:"Rendre la description plus claire et précise",refineClarifyTitle:"Clarifier",refineExpandDesc:"Développer en une description plus complète",refineExpandTitle:"Développer",refineInProgress:"Affinement…",refineSimplifyDesc:"Simplifier et rendre plus concis",refineSimplifyTitle:"Simplifier",refineTitle:"Affiner la description avec l'IA",removeImage:"Supprimer l'image",removeStep:"Supprimer",reviewDefault:"Défaut (Auto — le triage décide)",reviewerLabel:"Réviseur",reviewerModelLabel:"Modèle réviseur",reviewLabel:"Révision",reviewLevel0:"0 — Aucune",reviewLevel1:"1 — Plan seulement",reviewLevel2:"2 — Plan et code",reviewLevel3:"3 — Complet",searchTasksPlaceholder:"Rechercher des tâches…",sharedBranchPlaceholder:"ex. clionboarding",sharedFeatureBranchLabel:"Branche de fonctionnalité partagée",subtaskButton:"Sous-tâche",thinkingDefault:"Défaut ({{level}})",thinkingHigh:"Élevé",thinkingLabel:"Réflexion",thinkingLow:"Faible",thinkingMedium:"Moyen",thinkingMinimal:"Minimal",thinkingOff:"Désactivé",titleLabel:"Titre",titlePlaceholder:"Titre de la tâche",useDropdown:"Utiliser la liste déroulante",usingPreset:"Préréglage utilisé : {{name}}",workflowStepsDescription:"Sélectionnez les étapes à exécuter après la réalisation de la tâche",workflowStepsLabel:"Étapes du flux de travail",workingBranchLabel:"Branche de travail",workflowDefaultBadge:"(par défaut)",workflowHelp:"Les étapes du workflow sélectionné s'exécutent automatiquement autour de l'exécution de cette tâche.",workflowLabel:"Workflow",workflowNone:"Aucun workflow",workflowsCta:"Configurez des workflows dans l'éditeur",workflowsLoading:"Chargement des workflows…"},et={githubImported:"Importé {{id}} depuis GitHub"},tt={autoMergeOff:"Fusion automatique désactivée",autoMergeOn:"Fusion automatique activée",autoMergePreferenceUpdated:"Préférence de fusion automatique par tâche mise à jour",completedAtSep:" · Terminé : {{timestamp}}",createPr:"Créer une demande de tirage",effective:"Effectif : {{label}}",effectiveFrozen:"Effectif : {{label}} — gelé à l'entrée de la révision",errorSep:" · Erreur : {{message}}",followDefault:"Suivre par défaut",loadError:"Impossible de charger les données de révision.",loadingData:"Chargement des données de révision…",markdown:"Markdown",noCapturedFeedback:"Aucun retour d'examen capturé pour le moment.",noFeedbackDirect:"Aucun retour d'examen pour le moment — cette tâche n'a pas généré de retour d'agent d'examen en mode direct.",noReviewItems:"Aucun élément d'examen pour le moment.",perTaskAutoMerge:"Fusion automatique par tâche",plain:"Texte brut",prSummaryLine_one:"",prSummaryLine_other:"",queueing:"Mise en file d'attente en cours…",refresh:"Actualiser",refreshDataFailed:"Impossible de rafraîchir les données de révision.",refreshed:"Examen actualisé",refreshFailed:"Échec de l'actualisation",refreshing:"Actualisation en cours…",refreshStatusLine:"{{status}} · Dernière actualisation : {{timestamp}} · {{source}}",requestRevision:"Demander une révision",reviewerSummaryLine_one:"",reviewerSummaryLine_other:"",revisionQueueFailed:"Impossible de mettre en file d'attente la révision",revisionStarted:"Révision IA de même tâche démarrée à partir du retour d'examen sélectionné",selectedAt:"Sélectionné : {{timestamp}}",showMarkdown:"Afficher le Markdown formaté",showRawText:"Afficher le texte brut",startedAtSep:" · Démarré : {{timestamp}}",updateFailed:"Échec de la mise à jour {{taskId}} : {{error}}",upToDate:"À jour"},it={addTaskPlaceholder:"Ajouter une tâche…",agent:"Agent",agentLabel:"Agent",archive:"Archiver",archived:"{{taskId}} archivé",archivedUnlinked:"{{taskId}} archivé après dissociation des références de lignée",archiveFailed:"Impossible d'archiver {{taskId}} : {{error}}",archiveLineageConflict:`{{taskId}} a des enfants de lignée ({{children}}) qui le référencent comme parent source.
|
|
6
|
+
|
|
7
|
+
Archiver quand même en dissociant d'abord ces références ?`,archiveTask:"Archiver la tâche",assignedTo:"Assigné à {{name}}",attach:"Joindre",attachCount_one:"",attachCount_other:"",attachedFile:"{{fileName}} joint à {{taskId}}",attachFileFailed:"Échec de la pièce jointe {{fileName}} : {{error}}",awaitingApproval:"En attente d'approbation",baseBranch:"Base",blockedByTooltip:"Bloqué par {{taskId}} (conflit de fichiers)",branch:"Branche",branchMetadata:"Métadonnées de branche",branchProgress:"",branchProgressTitle:"",cancelMove:"Annuler le déplacement",clearSelection:"Effacer la sélection",closeIssue:"Fermer l'issue",collapse:"Réduire",createdByAgent:"Créé par un agent",createdByAgentNamed:"Créé par l'agent : {{name}}",createdPr:"PR #{{number}} créée",createFailed:"Impossible de créer la tâche",createPr:"Créer une PR",createPrAriaLabel:"Créer une pull request",createPrTitle:"Créer une PR pour cette tâche",createTaskTitle:"Créer une tâche",creating:"Création en cours…",decisionOnly:"décision uniquement",decisionOnlyTitle:"Tâche décisionnelle uniquement",deleteConfirm:"Supprimer {{taskId}} ?",deleted:"{{taskId}} supprimé{{suffix}}",deletedRemovedDeps:"{{taskId}} supprimé après suppression des références de dépendance",deletedUnlinked:"{{taskId}} supprimé après dissociation des références de lignée",deleteFailed:"Impossible de supprimer {{taskId}} : {{error}}",deleteIssue:"Supprimer l'issue",deleteLinkedIssueMessage:"Supprimer {{issueLabel}} sur GitHub ou le laisser intact ?",deleteLinkedIssueTitle:"Supprimer l'issue GitHub liée",deleteTask:"Supprimer la tâche",deleteTitle:"Supprimer la tâche",dependencyConflict:`{{taskId}} est une dépendance de {{dependentList}}.
|
|
8
|
+
|
|
9
|
+
Supprimer quand même en retirant d'abord ces références de dépendance ?`,deps:"Dép.",depsCount_one:"",depsCount_other:"",descriptionPlaceholder:"Description de la tâche",descriptionRefined:"Description affinée par l'IA",doneNoMerge:"Terminé (sans fusion)",duplicateCheckFailed:"Vérification des doublons échouée ; création de la tâche quand même.",duplicateDismissed:"{{taskId}} conservé ; avertissement de doublon ignoré",duplicateOf:"Doublon de {{id}}",editTask:"Modifier la tâche",enterDescriptionFirst:"Saisir d'abord une description",executionTime:"Durée d'exécution {{elapsed}}",executionTimeCompleted:"Durée d'exécution {{elapsed}}. Terminé le {{completedAt}}",executionTimeMergePhase:"Durée d'exécution {{elapsed}}. Phase de fusion {{merge}}",executionTimeMerging:"Durée d'exécution {{elapsed}}. Fusion en cours",executorModel:"Modèle d'exécution",expand:"Développer",fanoutBlocks:"Bloque",fanoutBottleneck:"Goulot de chevauchement",fanoutEscalated:"Chevauchement escaladé",fanoutEscalationSuffix:" · escaladé après {{minutes}} min dans la colonne bloquante",fanoutHighFanoutSuffix:" (seuil de goulot d'étranglement : {{threshold}})",fanoutStale_one:"",fanoutStale_other:"",fanoutTooltip_one:"",fanoutTooltip_other:"",fast:"Rapide",fastMode:"Mode rapide",filesChanged_one:"",filesChanged_other:"",forceDeleteTitle:"Forcer la suppression",githubTrackingDefaultOff:"désactivé",githubTrackingDefaultOn:"activé",githubTrackingDisabled:"Le suivi GitHub est désactivé pour ce projet — activez-le dans les paramètres pour un suivi par tâche",githubTrackingOff:"Suivi GitHub désactivé pour la prochaine tâche",githubTrackingOn:"Suivi GitHub activé pour la prochaine tâche (défaut du projet : {{default}})",groupBranch:"Groupe",hideSteps:"Masquer les étapes",importedFromGitHub:"Importé depuis GitHub",importedFromGitHubUrl:"Importé depuis GitHub : {{url}}",inProgressTime:"En cours {{elapsed}}",issueClosed:"fermé",issueDeleted:"supprimé",issueLeft:"laissé",keep:"Conserver",keepFailed:"Impossible de conserver {{taskId}} : {{error}}",keepProgress:"Conserver la progression",keepTaskTitle:"Conserver cette tâche et ignorer l'avertissement de doublon",leaveUnchanged:"Laisser intact",lineageConflict:`{{taskId}} a des enfants de lignée ({{children}}) qui le référencent comme parent source.
|
|
10
|
+
|
|
11
|
+
Supprimer quand même en dissociant d'abord ces références ?`,linkedIssueChipAriaLabel:"Issue GitHub liée #{{number}}",linkedIssueChipTitle:"Issue GitHub liée : {{owner}}/{{repo}}#{{number}}",linkedIssueMessage:`Que faire avec {{issueLabel}} lors de la suppression de {{taskId}} ?
|
|
12
|
+
|
|
13
|
+
Fermer l'issue ?`,linkedIssueTitle:"Issue GitHub liée",loadAgentsFailed:"Impossible de charger les agents : {{msg}}",loadAgentsFailedGeneric:"Impossible de charger les agents",loadDependencyFailed:"Impossible de charger la dépendance {{depId}}",loadingAgents:"Chargement des agents…",loadModelsFailed:"Impossible de charger les modèles",missionBadgeTitle:"Mission : {{name}}",modelExecutor:"Exécuteur",modelPlan:"Planifier",modelReviewer:"Réviseur",models:"Modèles",modelsCount_one:"",modelsCount_other:"",moreOptions:"Plus d'options",move:"Déplacer",moved:"{{taskId}} déplacé vers {{column}}",moveFailed:"Impossible de déplacer {{taskId}} : {{error}}",moveTask:"Déplacer la tâche",nearDuplicateTitle:"Potentiel quasi-doublon de {{id}}",needsInput:"",noAgentsAvailable:"Aucun agent disponible",node:"Nœud",noExistingTasks:"Aucune tâche existante",openRetryBreakdown:"Voir le détail des tentatives",paused:"en pause",pausedByAgent:"mis en pause par l'agent",plan:"Planifier",planButtonTitle:"Ouvrir le mode planification avec la description actuelle",planModel:"Modèle de planification",prBadgeTitle:"PR #{{number}} : {{title}}",preserveProgressMessage:"Cette tâche a des étapes terminées. Conserver la progression avant de déplacer ?",preserveProgressTitle:"Conserver la progression ?",projectDefaultLocal:"Défaut du projet / local",queued:"En file d'attente",quickEntryHint:"Entrée pour créer · Échap pour annuler",refine:"Affiner",refineAddDetails:"Ajouter des détails",refineAddDetailsDesc:"Ajouter des détails d'implémentation et du contexte",refineButtonTitle:"Affiner la description avec l'IA",refineClarify:"Clarifier",refineClarifyDesc:"Rendre la description plus claire et précise",refineExpand:"Développer",refineExpandDesc:"Développer en une description plus complète",refineSimplify:"Simplifier",refineSimplifyDesc:"Simplifier et rendre plus concis",refining:"Affinage en cours…",removeImage:"Supprimer l'image",resetProgress:"Réinitialiser la progression",resetProgressMessage:"Réinitialiser la progression de toutes les étapes avant de déplacer cette tâche ?",resetProgressTitle:"Réinitialiser la progression ?",retriesAriaLabel_one:"",retriesAriaLabel_other:"",retry:"Réessayer",retryFailed:"Impossible de relancer {{taskId}} : {{error}}",retrying:"Nouvelle tentative…",reviewerModel:"Modèle de révision",save:"Enregistrer",saving:"Enregistrement...",searchTasksPlaceholder:"Rechercher des tâches…",selectAgent:"Sélectionner un agent",selectExecutionNode:"Sélectionner le nœud d'exécution",selectPriority:"Sélectionner la priorité",sendBack:"Renvoyer",sharedBranch:"Partagé",showSteps:"Afficher les étapes",stalled:"En attente",statusMergingFix:"Fusion des correctifs…",stepCount_one:"",stepCount_other:"",stuck:"Bloqué",subtask:"Sous-tâche",subtaskButtonTitle:"Décomposer en sous-tâches générées par l'IA",toggleFastMode:"Activer/désactiver le mode d'exécution rapide",unarchive:"Désarchiver",unarchived:"{{taskId}} désarchivé",unarchiveFailed:"Impossible de désarchiver {{taskId}} : {{error}}",unarchiveTask:"Désarchiver la tâche",updated:"{{taskId}} mis à jour",updateFailed:"Impossible de mettre à jour {{taskId}} : {{error}}",uploadFailed:"Échec de l'envoi : {{files}}",usingDefault:"Valeur par défaut",viewDependency:"Cliquer pour afficher {{depId}}",workflow:"workflow",workflowCheck:"Vérification du workflow"},rt={clear:"Effacer",clearTerminal:"Effacer le terminal",closeTab:"Fermer l'onglet",closeTerminal:"Fermer le terminal",decreaseFontSize:"Réduire la taille de la police du terminal",exitLabel:"Sortie : {{code}}",failedToStartTerminal:"Impossible de démarrer le terminal : {{error}}",helpText:"Ctrl++/- zoom • ⌨ Panneau des raccourcis • Esc fermer",increaseFontSize:"Augmenter la taille de la police du terminal",initializeError:"L'interface du terminal n'a pas pu s'initialiser : {{error}}",newSession:"Nouvelle session",newTerminal:"Nouveau terminal",reconnect:"Se reconnecter",refreshPage:"Actualiser la page",reinitialize:"Réinitialiser",shortcuts:"Raccourcis",startingTerminal:"Démarrage du terminal...",statusConnected:"Connecté",statusConnecting:"Connexion en cours...",statusDisconnected:"Déconnecté",statusReconnecting:"Reconnexion en cours..."},nt={colorTheme:"",colorThemeLabel:"Thème de couleur",currentTheme:"Thème actuel",fontSize:"",fontSizeLabel:"Taille de police du tableau de bord",modeLabel:"Mode de thème",resetButton:"Réinitialiser aux valeurs par défaut",resetLabel:"Réinitialiser au thème par défaut"},at={addItemPlaceholder:"Ajouter un élément de tâche",addList:"Ajouter une liste",assignAgent:"Assigner {{text}} à l'agent",cancelItemEdit:"Annuler la modification de l'élément",cancelList:"Annuler la liste",cancelListRename:"Annuler le renommage de la liste",createList:"Créer une liste",createTaskFrom:"Créer une tâche à partir de {{text}}",deleteItem:"Supprimer {{text}}",deleteList:"Supprimer {{title}}",deleteListConfirm:"Supprimer cette liste et tous ses éléments ?",deleteListTitle:"Supprimer la liste",editItem:"Modifier {{text}}",failedCreateItem:"Échec de la création de l'élément",failedCreateItemToast:"Échec de la création de la tâche à faire",failedCreateList:"Échec de la création de la liste",failedCreateListToast:"Échec de la création de la liste de tâches",failedDeleteItem:"Échec de la suppression de l'élément",failedDeleteItemToast:"Échec de la suppression de la tâche à faire",failedDeleteList:"Échec de la suppression de la liste",failedDeleteListToast:"Échec de la suppression de la liste de tâches",failedLoadLists:"",failedRenameList:"Échec du renommage de la liste",failedRenameListToast:"Échec du renommage de la liste de tâches",failedReorderItems:"Échec de la réorganisation des éléments",failedReorderItemsToast:"Échec de la réorganisation des tâches à faire",failedToCreateAndAssign:"Échec de la création et de l'assignation de la tâche : {{error}}",failedToCreateTask:"Échec de la création de la tâche : {{error}}",failedToLoadAgents:"Échec du chargement des agents : {{error}}",failedUpdateItem:"Échec de la mise à jour de l'élément",failedUpdateItemToast:"Échec de la mise à jour de la tâche à faire",itemsLabel:"Éléments de la liste de tâches",lists:"Listes",listsLabel:"Barre latérale des listes de tâches",loading:"Chargement des tâches...",loadingAgents:"Chargement des agents...",manageDescription:"Gérez les listes de tâches réutilisables pour votre projet.",moveItemDown:"Déplacer {{text}} vers le bas",moveItemUp:"Déplacer {{text}} vers le haut",newListTitle:"Nouveau titre de liste",noAgentsAvailable:"Aucun agent disponible",noItemsEmpty:"Aucun élément dans cette liste. Ajoutez-en un ci-dessus.",noListsEmpty:"Aucune liste de tâches pour le moment. Créez-en une pour commencer.",renameList:"Renommer {{title}}",saveItemEdit:"Enregistrer la modification de l'élément",saveList:"Enregistrer la liste",saveListRename:"Enregistrer le renommage de la liste",selectList:"Sélectionner la liste {{title}}",selectListEmpty:"Sélectionnez une liste dans la barre latérale",startPlanning:"Commencer à planifier à partir de {{text}}",taskCreatedAndAssigned:"Créé {{id}} et assigné à {{agent}}",taskCreatedFromTodo:"Créé {{id}} à partir de la liste de tâches",todoListsLabel:"Listes de tâches",todos:"À faire"},st={customOption:"Personnalisé…",loadingHint:"Chargement des télécommandes GitHub détectées…"},ot={dismissLabel:"Rejeter la notification de mise à jour",learnMore:"En savoir plus",message:"Mise à jour disponible : v{{latestVersion}} (actuelle : v{{currentVersion}}). Exécutez fn update pour une CLI installée, ou tirez ce checkout source.",releaseNotes:"Notes de version"},lt={configureAuthHint:"Configurez l'authentification dans les paramètres pour voir les données d'utilisation.",failedToLoad:"Impossible de charger les données d'utilisation",hideWindow:"Masquer {{label}}",lastUpdated:"Dernière mise à jour : {{time}}",moveProviderDown:"Déplacer {{provider}} vers le bas",moveProviderUp:"Déplacer {{provider}} vers le haut",noDataAvailable:"Aucune donnée d'utilisation disponible",noProvidersConfigured:"Aucun fournisseur IA configuré",percentLeft:"{{percent}}% restant",percentRemaining:"{{percent}}% restant",percentUsed:"{{percent}}% utilisé",reorderProvider:"Réorganiser {{provider}}",resetsInDays:"réinitialise dans {{days}}j",resetsInDaysHours:"réinitialise dans {{days}}j {{hours}}h",resetsInHours:"réinitialise dans {{hours}}h",resetsInMinutes:"réinitialise dans {{mins}}m",showHidden_one:"",showHidden_other:"",statusError:"Erreur",statusNotConfigured:"Non configuré",title:"Utilisation",viewModeLabel:"Mode de vue d'utilisation",viewModeRemaining:"Restant",viewModeUsed:"Utilisé"},ut={add:"Ajouter",adding:"Ajout en cours...",addTemplate:"Ajouter le modèle",addWorkflowStep:"Ajouter une étape de workflow",advisoryExplanation:"Les étapes de flux de travail consultatif ont signalé des améliorations non bloquantes :",agentPromptLabel:"Invite d'agent",agentPromptPlaceholder:"Laisser vide pour utiliser l'affinement IA",badgeAdvisory:"Consultatif",badgeAiPrompt:"Invite IA",badgeDefaultOn:"Activé par défaut",badgeDisabled:"Désactivé",badgeEnabled:"Activé",badgeGate:"Bloquant",badgePostMerge:"Post-fusion",badgePreMerge:"Pré-fusion",badgeScript:"Script",cancelDeleteAriaLabel:"Annuler la suppression",cancelDeleteTitle:"Annuler la suppression",clearModelOverrideTitle:"Effacer le remplacement du modèle (utiliser le défaut global)",configuredSteps:"Étapes du flux de travail configurées",confirmDeleteAriaLabel:"Confirmer la suppression de {{name}}",confirmDeleteTitle:"Confirmer la suppression",createChooserHint:"Partez d'un modèle intégré ou créez une étape de workflow entièrement personnalisée.",createChooserTitle:"Comment souhaitez-vous créer cette étape de workflow ?",createCustomStep:"Étape de workflow personnalisée",defaultOnCheckbox:"Activé par défaut pour les nouvelles tâches",deleteStepAriaLabel:"Supprimer {{name}}",done:"Fait",doneEditingAriaLabel:"Modification des étapes du flux de travail terminée",edit:"Modifier",editAriaLabel:"Modifier les étapes du flux de travail",editStepAriaLabel:"Modifier {{name}}",editStepTitle:"Modifier l'étape de workflow",emptySteps:"Aucune étape de workflow définie. Créez-en une pour commencer, ou ajoutez-en une depuis l'onglet Modèles.",enabledCheckbox:"Activé (disponible à la sélection sur les nouvelles tâches)",errorAddTemplate:"Impossible d'ajouter l'étape de workflow depuis le modèle",errorDeleteStep:"Impossible de supprimer l'étape du workflow",errorLoadSteps:"Impossible de charger les étapes du workflow",errorLoadTemplates:"Impossible de charger les modèles",errorNameDescRequired:"Le nom et la description sont obligatoires",errorNameDescRequiredRefine:"Le nom et la description sont requis avant d'affiner",errorRefinePrompt:"Impossible d'affiner l'invite",errorSaveStep:"Impossible d'enregistrer l'étape du workflow",errorTemplateAlreadyExists:"Une étape de workflow nommée « {{name}} » existe déjà",executionModeLabel:"Mode d'exécution",executionOrder:"Ordre d'exécution :",executionPhaseLabel:"Phase d'exécution",expandOutput:"Développer le résultat",failureBehaviorLabel:"Comportement en cas d'échec",formDescriptionLabel:"Description",formDescriptionPlaceholder:"Brève description de ce que fait cette étape",formNameLabel:"Nom",formNamePlaceholder:"ex. Revue de documentation",gateModeAdvisory:"Consultatif",gateModeAdvisoryHint:"Les échecs sont enregistrés comme consultatifs et ne bloquent pas la fusion.",gateModeGate:"Bloquant",gateModeGateHint:"Les échecs bloquent la fusion et demandent une correction.",graphEditor:"",hideOutput:"Masquer le résultat",loadingBuiltInTemplates:"Chargement des modèles intégrés...",loadingResults:"Chargement des résultats du flux de travail…",loadingTemplates:"Chargement des modèles...",markdown:"Markdown",modalAriaLabel:"Étapes du workflow",modalTitle:"Étapes du workflow",modeAiPrompt:"Invite IA",modelHintCustom:"Utilisation de {{provider}}/{{modelId}}",modelHintDefault:"Utilisation du modèle global par défaut",modelOverrideDropdownLabel:"Remplacement du modèle pour cette étape de workflow",modelOverrideLabel:"Remplacement du modèle",modelOverridePlaceholder:"Sélectionner un remplacement de modèle…",modeScript:"Exécuter un script",moveDown:"Déplacer vers le bas",moveUp:"Déplacer vers le haut",needsReview:"Nécessite un examen de suivi.",newStepTitle:"Nouvelle étape de workflow",noBuiltInTemplates:"Aucun modèle intégré n'est disponible pour l'instant. Vous pouvez tout de même créer une étape personnalisée.",noScripts:"Aucun script configuré. Ajoutez des scripts dans Paramètres → Scripts d'abord.",noStepsConfigured:"Aucune étape de flux de travail n'est configurée pour cette tâche.",noTemplates:"Aucun modèle disponible.",notes:"Notes :",output:"Résultat :",phasePostMerge:"Post-fusion",phasePostMergeHint:"S'exécute après une fusion réussie — les échecs sont enregistrés mais ne bloquent pas",phasePreMerge:"Pré-fusion",phasePreMergeHint:"S'exécute avant la fusion — peut bloquer la fusion en cas d'échec",plain:"Texte brut",polishNotes:"Notes de polonais",promptRefined:"Invite affinée avec l'IA",refineWithAi:"Affiner avec l'IA",refineWithAiAriaLabel:"Affiner l'invite avec l'IA",refineWithAiTitle:"Affiner avec l'IA",remove:"Supprimer",scriptLabel:"Script",selectScript:"Sélectionner un script…",selectStepsDescription:"Sélectionnez les étapes à exécuter après l'implémentation de la tâche",showOutput:"Afficher le résultat",started:"Démarré :",stepCount_one:"",stepCount_other:"",stepCreated:"Étape de workflow créée",stepDefinitionNotFound:"Définition d'étape introuvable.",stepDeleted:"Étape de workflow supprimée",steps:"Étapes du flux de travail",stepsExplanation:"Les étapes de pré-fusion s'exécutent après l'implémentation, avant la fusion. Les étapes post-fusion s'exécutent après la réussite de la fusion.",stepUpdated:"Étape de workflow mise à jour",summaryAdvisory_one:"",summaryAdvisory_other:"",summaryFailed_one:"",summaryFailed_other:"",summaryPassed_one:"",summaryPassed_other:"",summaryRunning_one:"",summaryRunning_other:"",summarySeparator:" · ",summarySkipped_one:"",summarySkipped_other:"",summaryStepCount_one:"",summaryStepCount_other:"",switchToMarkdown:"Basculer vers Markdown",switchToPlain:"Basculer vers texte brut",tabMySteps_one:"",tabMySteps_other:"",tabTemplates_one:"",tabTemplates_other:"",templateAdded:"Étape de workflow « {{name}} » ajoutée",useDefault:"Utiliser le défaut"},ct={add:"",compositionBlocked:"",empty:"",moveDown:"",moveUp:"",nameLabel:"",newColumnName:"",nodeUnplaced:"",readOnlyHint:"",remove:"",title:"",traits:"",traitsLoadFailed:"",unplacedCount_one:"",unplacedCount_other:""},dt={advisory:"",codeNote:"Exécute du TypeScript en bac à sable. La syntaxe est validée à l’enregistrement.",codeSource:"Source (TypeScript)",codeTimeout:"Délai d’expiration (ms)",edgeConditionLabel:"Condition : {{condition}}",edgeInspector:"Lien",edgeNoVerdict:"— succès (aucun verdict) —",edgeRework:"Lien de reprise (boucle de retour, borné)",edgeReworkNote:"Les liens de reprise sont les seuls cycles autorisés — ils bouclent au sein de l’instance de l’étape for-each, bornés par le nombre maximal de cycles de reprise.",edgeVerdict:"Verdict de révision",failureCollect:"Collecter (attendre toutes)",failureFailFast:"Échec rapide (annuler les voisines)",failurePolicy:"En cas d’échec de branche",foreachConcurrency:"Concurrence",foreachEmptyHint:"Glissez ici un nœud d’exécution d’étape",foreachIsolation:"Isolation",foreachMaxRework:"Cycles de reprise max",foreachMode:"Mode",foreachNote:"Se développe une fois par étape planifiée. Déposez un nœud d’exécution d’étape (et éventuellement de révision d’étape) dans la région.",foreachParallel:"Parallèle",foreachSequential:"Séquentiel",foreachShared:"Arbre de travail partagé",foreachWorktree:"Arbre de travail par étape",gateBlocks:"Barrière (bloque)",gateMode:"Mode de barrière",joinAll:"Toutes les branches",joinAny:"N’importe quelle branche",joinMode:"Mode de jointure",joinQuorum:"Quorum (n)",mergeBoundaryNote:"Les étapes avant ce marqueur s’exécutent avant la fusion ; celles après, après la fusion.",parseArtifact:"Artifact",parseParser:"Parser",quorumN:"Nombre de quorum (n)",releaseCapacity:"Capacité en aval",releaseCondition:"Condition de libération",releaseDependency:"Dépendance terminée",releaseExternal:"Événement externe",releaseManual:"Promotion manuelle",releaseTimer:"Minuteur",reviewCode:"Code review",reviewModel:"Review model (optional)",reviewNote:"Verdicts route as outcome edges. Click an outgoing edge to set its verdict and rework behavior.",reviewPlan:"Plan review",reviewType:"Review type",splitNote:"Les branches s’exécutent simultanément depuis ce nœud. Les jointures d’exécution et de fusion ne sont pas autorisées dans une branche.",stepExecuteLabel:"Exécution de l'étape",autoLayout:"Disposition automatique",cycleBlocked:"Cette connexion créerait un cycle — seules les arêtes de reprise à l'intérieur d'un modèle for-each peuvent boucler en arrière",deleteEdge:"Supprimer l'arête",deleteNode:"Supprimer le nœud",edgeCondition:"Condition",interpreterOnly:"Ce workflow comporte des branches, il s'exécute donc sur l'interpréteur de graphe — il ne peut pas être compilé vers le moteur d'étapes linéaire, mais il s'exécutera quand même.",summaryAwaitInput:"Attend une entrée de l'utilisateur",summaryCodeDefault:"TypeScript",summaryGateAdvisory:"Consultatif",summaryGateBlocks:"Portail (bloquant)",summaryHoldRelease:"Libération : {{release}}",summaryNotConfigured:"Non configuré",summaryReviewType:"Examen {{type}}",trivialGraphHint:"Ce workflow ne fait qu'exécuter début → fin. Ajoutez des étapes depuis la palette ci-dessus pour le développer.",insertTemplate:"Insérer le modèle {{name}}",templateFilterLabel:"Filtrer les modèles",templateFilterPlaceholder:"Filtrer les modèles",templateSeamConflict:"Ce fragment duplique la jointure « {{seam}} » déjà présente sur le canevas, il ne peut donc pas être inséré.",templatesBuiltinSteps:"Étapes intégrées",templatesFragments:"Fragments",templatesPluginSteps:"Étapes de plugin",templatesSection:"Modèles"},pt={duplicateToCustomize:"",readOnlyBuiltin:"",saved:"",savedNotCompilable:"",saveFailed:"",selectOrCreate:"",clickToEditDescription:"Cliquez pour modifier la description",clickToRename:"Cliquez pour renommer",created:"Workflow « {{name}} » créé",createDescription:"Description (facultatif)",createFailed:"Impossible de créer le workflow",createName:"Nom",createNameRequired:"Saisissez un nom de workflow",createSubmit:"Créer",createTitle:"Nouveau workflow",deleted:"Workflow supprimé",deleteFailed:"Impossible de supprimer le workflow",deleteMessage:"Supprimer le workflow « {{name}} » ? Cette action est irréversible.",deleteTitle:"Supprimer le workflow ?",descriptionLabel:"Description du workflow",descriptionPlaceholder:"Ajouter une description",discardConfirm:"Abandonner",discardMessage:"Vous avez des modifications non enregistrées sur ce workflow. Les abandonner ?",discardTitle:"Abandonner les modifications non enregistrées ?",emptyDescription:"Les workflows orchestrent les étapes et les portails qui s'exécutent autour de l'exécution des tâches. Créez-en un pour commencer à organiser ce flux.",emptyTitle:"Aucun workflow sélectionné",nameLabel:"Nom du workflow",newWorkflow:"Nouveau workflow",migrationNotice:"Vos anciennes étapes de workflow ont été converties — retrouvez-les sous forme de modèles dans la palette et sous le workflow « Étapes migrées ».",aiEdit:"Concevoir avec l'IA",aiFailed:"Échec de la conception du workflow",aiPromptPlaceholder:"p. ex. Exécuter le lint et les tests avant la fusion, puis publier un commentaire de journal des modifications après la fusion",aiPromptRequired:"Décrivez le workflow souhaité",aiReplaceConfirm:"Remplacer le graphe actuel par la conception de l'IA ? Les modifications non enregistrées seront perdues.",aiReplaceConfirmLabel:"Remplacer",aiReplaceTitle:"Remplacer le graphe ?",aiSubmit:"Concevoir avec l'IA",aiToggle:"Le décrire à la place",export:"Exporter",exportDirtyTooltip:"Enregistrez avant d'exporter",exportFailed:"Impossible d'exporter le workflow",exportTooltip:"Télécharger au format JSON — contient l'intégralité de votre invite et du texte des commandes",import:"Importer",imported:"Workflow « {{name}} » importé",importFailed:"Échec de l'importation",importInvalidJson:"Ce fichier n'est pas un JSON valide.",importStripped:"Les indicateurs d'approbation automatique ont été supprimés des nœuds importés",importTooltip:"Importer un workflow depuis un fichier JSON",templateBlank:"Vierge",templateBlankDescription:"Partez d'un graphe vide début → fin.",templateCopyName:"{{name}} (copie)",templateNodeCount_one:"{{count}} nœud",templateNodeCount_other:"{{count}} nœuds",templatePickerLabel:"Partir de",templateSectionBuiltin:"Workflows intégrés",templateSectionYours:"Vos workflows"},mt={switchActiveMessage:"",switchActiveTitle:"",switchCancel:"",switchConfirm:""},ht={projectRoot:"Racine du projet",selectWorkspace:"Sélectionner l'espace de travail",taskWorktrees:"Arborescences de travail de tâche"},gt={unassigned:"Non assigné",upNext:"Suivant"},vt={assetUrl:"URL de l'actif",installPath:"Chemin d'installation",installRequestTitle:"Demande d'installation de Worktrunk",sha256:"SHA-256",version:"Version"},ft={unset:"—",moreFields:"Champs supplémentaires",orphaned:"Champs orphelins",saveFailed:"Échec de l'enregistrement du champ"},bt={add:"Ajouter un champ",addOption:"Ajouter une option",badge:"Afficher comme badge",default:"Par défaut",defaultLabel:"Valeur par défaut",defaultTrue:"Activé par défaut",duplicateId:"Un champ avec cet id existe déjà",editId:"Modifier l'id",empty:"Aucun champ personnalisé pour l'instant. Ajoutez un champ pour étendre le formulaire et les cartes de la tâche.",idLabel:"Id du champ",idWarn:"Modifier l'id supprime les valeurs stockées sous l'ancien id (retirer + ajouter).",nameLabel:"Nom du champ",newFieldName:"Nouveau champ",newOptionLabel:"Option 1",noDefault:"— aucun —",optionColor:"Couleur de l'option",optionLabel:"Libellé de l'option",optionN:"Option {{n}}",optionValue:"Valeur de l'option",options:"Options",placement:"Emplacement",placementCard:"Badge de carte",placementDetail:"Détail (en ligne)",placementSection:"Section de détail",readOnlyHint:"Les flux de travail intégrés sont en lecture seule — dupliquez pour modifier",remove:"Retirer le champ",removeOption:"Retirer l'option",required:"Obligatoire",title:"Champs",typeLabel:"Type",widget:"Composant",widgetDefault:"Par défaut"},At={actions:e,activityLog:t,agentError:i,agentLog:r,agentMention:n,agentPolicy:a,agentPrompts:s,agentProvisioning:o,agents:l,app:u,approval:c,auth:d,backend:p,backgroundTasks:m,board:h,branchGroup:g,capacity:v,changes:f,chat:b,chatRooms:A,cli:C,cliBinary:S,column:T,comments:k,commit:L,commitDiff:P,common:y,composer:x,confirm:D,conversation:R,createRoom:I,dashboard:M,dbBanner:F,deepLink:w,desktop:q,devserver:j,dirPicker:E,docker:H,documents:z,droidCli:_,duplicateWarning:N,editor:B,evals:O,executor:U,fileBrowser:G,fileEditor:V,fileMention:W,git:J,goals:Q,groupTask:K,header:Y,health:Z,hermes:X,inline:$,insights:ee,interview:te,lane:ie,listView:re,mailbox:ne,memory:ae,merge:se,mesh:oe,missions:le,modalManager:ue,model:ce,models:de,modelSelection:pe,nav:me,newTaskModal:he,nodes:ge,nodeStatus:ve,nodeSync:fe,onboarding:be,openclaw:Ae,paperclip:Ce,piManager:Se,planning:Te,plugins:ke,pr:Le,preview:Pe,projectCard:ye,projectDetection:xe,projects:De,projectSelector:Re,providers:Ie,quickChat:Me,reliability:Fe,research:we,routine:qe,routing:je,schedule:Ee,scriptsModal:He,secrets:ze,sessionBanner:_e,settings:Ne,setup:Be,shell:Oe,skills:Ue,specEditor:Ge,stashRecovery:Ve,stepType:We,subtasks:Je,syncLog:Qe,systemStats:Ke,taskChanges:Ye,taskDetail:Ze,taskDocuments:Xe,taskForm:$e,taskHandlers:et,taskReview:tt,tasks:it,terminal:rt,theme:nt,todo:at,trackingRepoSelect:st,updateBanner:ot,usage:lt,workflow:ut,workflowColumns:ct,workflowNodes:dt,workflows:pt,workflowSelector:mt,workspace:ht,worktree:gt,worktrunk:vt,taskFields:ft,workflowFields:bt};export{e as actions,t as activityLog,i as agentError,r as agentLog,n as agentMention,a as agentPolicy,s as agentPrompts,o as agentProvisioning,l as agents,u as app,c as approval,d as auth,p as backend,m as backgroundTasks,h as board,g as branchGroup,v as capacity,f as changes,b as chat,A as chatRooms,C as cli,S as cliBinary,T as column,k as comments,L as commit,P as commitDiff,y as common,x as composer,D as confirm,R as conversation,I as createRoom,M as dashboard,F as dbBanner,w as deepLink,At as default,q as desktop,j as devserver,E as dirPicker,H as docker,z as documents,_ as droidCli,N as duplicateWarning,B as editor,O as evals,U as executor,G as fileBrowser,V as fileEditor,W as fileMention,J as git,Q as goals,K as groupTask,Y as header,Z as health,X as hermes,$ as inline,ee as insights,te as interview,ie as lane,re as listView,ne as mailbox,ae as memory,se as merge,oe as mesh,le as missions,ue as modalManager,ce as model,pe as modelSelection,de as models,me as nav,he as newTaskModal,ve as nodeStatus,fe as nodeSync,ge as nodes,be as onboarding,Ae as openclaw,Ce as paperclip,Se as piManager,Te as planning,ke as plugins,Le as pr,Pe as preview,ye as projectCard,xe as projectDetection,Re as projectSelector,De as projects,Ie as providers,Me as quickChat,Fe as reliability,we as research,qe as routine,je as routing,Ee as schedule,He as scriptsModal,ze as secrets,_e as sessionBanner,Ne as settings,Be as setup,Oe as shell,Ue as skills,Ge as specEditor,Ve as stashRecovery,We as stepType,Je as subtasks,Qe as syncLog,Ke as systemStats,Ye as taskChanges,Ze as taskDetail,Xe as taskDocuments,ft as taskFields,$e as taskForm,et as taskHandlers,tt as taskReview,it as tasks,rt as terminal,nt as theme,at as todo,st as trackingRepoSelect,ot as updateBanner,lt as usage,ut as workflow,ct as workflowColumns,bt as workflowFields,dt as workflowNodes,mt as workflowSelector,pt as workflows,ht as workspace,gt as worktree,vt as worktrunk};
|