Files
Rdmclin2 913ee4210d feat: page/agent/agentGroup/task edit lock (#15786)
* feat: support page editor lock

Squashed page-lock feature work:
- support page editor lock
- support agent group / agent / task edit
- add edit lock to agent/agentgroup/task
- refactor page lock
- fix workspaceId for edit objects
- align with agent/group/task

* fix: collaborative edit lock

* chore: update i18n

* fix: redis acquire

* fix: release lock

* fix: test case

* chore: complement page lock test cases
2026-06-14 01:40:36 +08:00

1106 lines
74 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"ModelSwitch.title": "Modèle",
"active": "Actif",
"agentBuilder.installPlugin.authRequired": "Cloud MCP nécessite une connexion pour continuer",
"agentBuilder.installPlugin.cancel": "Annuler",
"agentBuilder.installPlugin.clickApproveToConnect": "Cliquez sur « Approuver » pour connecter et autoriser cette intégration",
"agentBuilder.installPlugin.clickApproveToInstall": "Cliquez sur « Approuver » pour installer cette compétence",
"agentBuilder.installPlugin.connectedAndEnabled": "Connecté et activé",
"agentBuilder.installPlugin.connectionFailed": "Échec de la connexion. Réessayez ou vérifiez les autorisations et les paramètres réseau.",
"agentBuilder.installPlugin.installFailed": "Échec de l'installation. Réessayez ou consultez les détails pour réessayer.",
"agentBuilder.installPlugin.installPlugin": "Installer la compétence",
"agentBuilder.installPlugin.installToEnable": "Installez pour activer cette compétence pour l'agent (vous pouvez le faire plus tard)",
"agentBuilder.installPlugin.installedAndEnabled": "Installé et activé",
"agentBuilder.installPlugin.requiresAuth": "Nécessite une autorisation. Cliquez sur « Approuver » pour connecter",
"agentBuilder.installPlugin.retry": "Réessayer",
"agentBuilder.title": "Créateur d'Agent",
"agentBuilder.welcome": "Parlez-moi de votre cas dusage.\n\nRédaction, codage ou analyse de données — tout est possible. Vous définissez lobjectif et les critères ; je le décompose en agents collaboratifs et exécutables.",
"agentConfigError.retry": "Réessayer",
"agentConfigError.title": "Échec du chargement des paramètres de l'agent",
"agentDefaultMessage": "Bonjour, je suis **{{name}}**. Une phrase suffit.\n\nVous souhaitez que je madapte mieux à votre flux de travail ? Allez dans [Paramètres de lagent]({{url}}) et complétez le profil de lagent (modifiable à tout moment).",
"agentDefaultMessageWithSystemRole": "Bonjour, je suis **{{name}}**. Une phrase suffit — vous avez le contrôle.",
"agentDefaultMessageWithoutEdit": "Bonjour, je suis **{{name}}**. Une phrase suffit — vous avez le contrôle.",
"agentProfile.files_one": "{{count}} fichier",
"agentProfile.files_other": "{{count}} fichiers",
"agentProfile.knowledgeBases_one": "{{count}} base de connaissances",
"agentProfile.knowledgeBases_other": "{{count}} bases de connaissances",
"agentProfile.skills_one": "{{count}} compétence",
"agentProfile.skills_other": "{{count}} compétences",
"agentSignal.receipts.agentSignalLabel": "Signal de l'agent",
"agentSignal.receipts.memory.detail": "Enregistré pour des réponses futures",
"agentSignal.receipts.memory.title": "Mémoire enregistrée",
"agentSignal.receipts.recentActivity": "Activité récente",
"agentSignal.receipts.skill.detail": "Amélioration de la gestion des demandes similaires par cet assistant",
"agentSignal.receipts.skill.title": "Compétence mise à jour",
"agents": "Agents",
"artifact.generating": "Génération en cours",
"artifact.inThread": "Impossible dafficher dans un sous-sujet, veuillez revenir à la conversation principale pour louvrir",
"artifact.thinking": "Réflexion en cours",
"artifact.thought": "Processus de réflexion",
"artifact.unknownTitle": "Travail sans titre",
"availableAgents": "Agents disponibles",
"backToBottom": "Aller au plus récent",
"beforeUnload.confirmLeave": "Une requête est encore en cours. Quitter quand même ?",
"builtinCopilot": "Copilote intégré",
"chatList.expandMessage": "Développer le message",
"chatList.longMessageDetail": "Voir les détails",
"chatMode.agent": "Agent",
"chatMode.agentCap.env": "Environnement d'exécution",
"chatMode.agentCap.files": "Accès aux fichiers",
"chatMode.agentCap.memory": "Mémoire",
"chatMode.agentCap.tools": "Appels d'outils",
"chatMode.agentCap.web": "Recherche sur le web",
"chatMode.agentDesc": "L'agent peut utiliser des outils et l'environnement pour accomplir des tâches automatiquement",
"chatMode.chat": "Discussion",
"chatMode.chatDesc": "Pas d'environnement d'exécution ni d'autonomie ; utilise moins de jetons",
"chatMode.select": "Changer de mode",
"claudeCodeInstallGuide.actions.openDocs": "Ouvrir le guide dinstallation",
"claudeCodeInstallGuide.actions.openSystemTools": "Ouvrir les outils système",
"claudeCodeInstallGuide.afterInstall": "Après linstallation, lancez Claude Code une fois pour vous connecter, puis réessayez votre message ou cliquez sur Ré‑détecter dans les outils système.",
"claudeCodeInstallGuide.desc": "Claude Code nécessite le CLI Claude Code pour sexécuter localement. Installezle et assurezvous que la commande `claude` est disponible dans votre PATH.",
"claudeCodeInstallGuide.installWithBrew": "Homebrew",
"claudeCodeInstallGuide.installWithNpm": "Installation recommandée",
"claudeCodeInstallGuide.menuNotification.title": "CLI Claude Code introuvable",
"claudeCodeInstallGuide.reason": "LobeHub na pas pu démarrer Claude Code : {{message}}",
"claudeCodeInstallGuide.title": "Installer le CLI Claude Code",
"clearCurrentMessages": "Effacer les messages de la session actuelle",
"cliAuthGuide.actions.openDocs": "Ouvrir le guide de connexion",
"cliAuthGuide.actions.openSystemTools": "Ouvrir les outils système",
"cliAuthGuide.afterLogin": "Après vous être reconnecté ou avoir actualisé les identifiants, réessayez votre message. Vous pouvez aussi ré‑détecter dans les outils système.",
"cliAuthGuide.desc": "{{name}} na pas pu continuer car la session de connexion a expiré ou les identifiants ne sont pas valides.",
"cliAuthGuide.errorDetails": "Détails de lerreur",
"cliAuthGuide.runCommand": "Exécutez ceci dans le Terminal",
"cliAuthGuide.title": "Connexion à {{name}}",
"cliOverloadedGuide.actions.retry": "Réessayer",
"cliOverloadedGuide.desc": "Le service de modèle en amont de {{name}} est temporairement surchargé. Cela se résout généralement en un instant.",
"cliOverloadedGuide.errorDetails": "Détails de l'erreur",
"cliOverloadedGuide.retryHint": "Attendez quelques secondes et réessayez. Si le problème persiste, le fournisseur pourrait rencontrer un incident plus large.",
"cliOverloadedGuide.title": "{{name}} est temporairement surchargé",
"cliRateLimitGuide.actions.openSystemTools": "Ouvrir les outils système",
"cliRateLimitGuide.actions.retry": "Réessayer",
"cliRateLimitGuide.afterReset": "Attendez lheure de réinitialisation, puis réessayez votre message. Si vous utilisez une autorisation API, vous pouvez également vérifier votre quota fournisseur et votre statut de facturation.",
"cliRateLimitGuide.desc": "{{name}} a atteint sa limite dutilisation actuelle et ne peut pas continuer cette exécution pour le moment.",
"cliRateLimitGuide.limitType": "Fenêtre de limite",
"cliRateLimitGuide.limitTypes.weekCycle": "Cycle hebdomadaire",
"cliRateLimitGuide.relative.day_one": "{{count}} jour",
"cliRateLimitGuide.relative.day_other": "{{count}} jours",
"cliRateLimitGuide.relative.hour_one": "{{count}} heure",
"cliRateLimitGuide.relative.hour_other": "{{count}} heures",
"cliRateLimitGuide.relative.minute_one": "{{count}} minute",
"cliRateLimitGuide.relative.minute_other": "{{count}} minutes",
"cliRateLimitGuide.relative.soon": "Réinitialisation imminente",
"cliRateLimitGuide.resetAt": "Réinitialisé à",
"cliRateLimitGuide.resetInApprox": "Réinitialise dans environ {{duration}}",
"cliRateLimitGuide.title": "Limite dutilisation de {{name}} atteinte",
"codexInstallGuide.actions.openDocs": "Ouvrir le guide dinstallation",
"codexInstallGuide.actions.openSystemTools": "Ouvrir les outils système",
"codexInstallGuide.afterInstall": "Après linstallation, lancez Codex une fois pour vous connecter, puis réessayez votre message ou cliquez sur Ré‑détecter dans les outils système.",
"codexInstallGuide.desc": "Codex Agent nécessite le CLI Codex pour fonctionner localement. Installezle et assurezvous que la commande codex est disponible dans votre PATH.",
"codexInstallGuide.installWithBrew": "Homebrew (macOS)",
"codexInstallGuide.installWithNpm": "Installation recommandée",
"codexInstallGuide.menuNotification.title": "CLI Codex introuvable",
"codexInstallGuide.reason": "LobeHub na pas pu démarrer Codex : {{message}}",
"codexInstallGuide.title": "Installer le CLI Codex",
"compressedHistory": "Historique compressé",
"compression.cancel": "Décompresser",
"compression.cancelConfirm": "Êtes-vous sûr de vouloir décompresser ? Cela restaurera les messages d'origine.",
"compression.history": "Historique",
"compression.summary": "Résumé",
"confirmClearCurrentMessages": "Vous êtes sur le point deffacer les messages de la session actuelle. Une fois effacés, ils ne pourront pas être récupérés. Veuillez confirmer votre action.",
"confirmRemoveChatGroupItemAlert": "Ce groupe sera supprimé. Les assistants spécifiques au groupe seront également supprimés, tandis que les assistants externes ne seront pas affectés.",
"confirmRemoveGroupItemAlert": "Vous êtes sur le point de supprimer ce groupe. Après suppression, ses agents seront déplacés vers la liste par défaut. Veuillez confirmer votre action.",
"confirmRemoveGroupSuccess": "Groupe supprimé avec succès",
"confirmRemoveSessionItemAlert": "Vous êtes sur le point de supprimer cet agent. Une fois supprimé, il ne pourra pas être récupéré. Veuillez confirmer votre action.",
"confirmRemoveSessionSuccess": "Agent supprimé avec succès",
"createModal.createBlank": "Créer à partir de zéro",
"createModal.groupPlaceholder": "Décrivez ce que ce groupe doit faire...",
"createModal.groupTitle": "Que doit faire votre groupe ?",
"createModal.placeholder": "Décrivez ce que votre agent doit faire...",
"createModal.title": "Que doit faire votre agent ?",
"createTask.assignee": "Attribué à",
"createTask.collapse": "Masquer le champ",
"createTask.expandToInline": "Ancrer à la page",
"createTask.instructionPlaceholder": "Ajouter une description...",
"createTask.submit": "Créer la tâche",
"createTask.titlePlaceholder": "Titre de la tâche",
"defaultAgent": "Agent par défaut",
"defaultGroupChat": "Groupe",
"defaultList": "Liste par défaut",
"defaultSession": "Agent par défaut",
"desktopNotification.aiReplyCompleted.body": "La réponse de lagent est prête",
"desktopNotification.aiReplyCompleted.title": "Réponse terminée",
"desktopNotification.humanApprovalRequired.body": "Un agent nécessite votre approbation pour continuer",
"desktopNotification.humanApprovalRequired.title": "Approbation requise",
"dm.placeholder": "Vos messages privés avec {{agentTitle}} apparaîtront ici.",
"dm.tooltip": "Envoyer un message privé",
"dm.visibleTo": "Visible uniquement par {{target}}",
"dm.you": "Vous",
"duplicateSession.loading": "Copie en cours...",
"duplicateSession.success": "Copie réussie",
"duplicateSession.title": "Copie de {{title}}",
"duplicateTitle": "Copie de {{title}}",
"emptyAgent": "Aucun agent pour le moment. Commencez par créer votre premier agent — construisez votre système au fil du temps.",
"emptyAgentAction": "Créer un agent",
"extendParams.disableContextCaching.desc": "Réduisez jusqu'à 90 % le coût de génération d'une seule conversation et bénéficiez d'une vitesse jusqu'à 4 fois supérieure. <1>En savoir plus</1>",
"extendParams.disableContextCaching.title": "Activer la mise en cache du contexte",
"extendParams.effort.desc": "Contrôlez le nombre de jetons utilisés par Claude pour répondre grâce au paramètre d'effort.",
"extendParams.effort.title": "Effort",
"extendParams.enableAdaptiveThinking.desc": "Permet à Claude de décider dynamiquement quand et combien réfléchir grâce au mode de pensée adaptative.",
"extendParams.enableAdaptiveThinking.title": "Activer la pensée adaptative",
"extendParams.enableReasoning.desc": "Permettre au modèle de raisonner avant de répondre. À utiliser pour les tâches complexes.",
"extendParams.enableReasoning.title": "Activer la réflexion approfondie",
"extendParams.imageAspectRatio.title": "Ratio daspect de limage",
"extendParams.imageResolution.title": "Résolution de limage",
"extendParams.preserveThinking.desc": "Lorsqu'elle est activée, le raisonnement historique de l'assistant sera renvoyé comme contexte pour les modèles. Cela peut augmenter l'utilisation des jetons.",
"extendParams.preserveThinking.title": "Préserver le raisonnement historique",
"extendParams.reasoningBudgetToken.title": "Jeton de consommation de réflexion",
"extendParams.reasoningEffort.title": "Intensité de la réflexion",
"extendParams.textVerbosity.title": "Niveau de détail du texte généré",
"extendParams.thinking.title": "Interrupteur de réflexion approfondie",
"extendParams.thinkingBudget.title": "Budget de réflexion",
"extendParams.thinkingLevel.title": "Niveau de réflexion",
"extendParams.title": "Fonctionnalités dextension du modèle",
"extendParams.urlContext.desc": "Lorsquil est activé, les liens web sont automatiquement analysés pour extraire le contenu réel de la page",
"extendParams.urlContext.title": "Extraire le contenu des liens web",
"followUpPlaceholder": "Donner suite. @ pour attribuer des tâches à dautres agents.",
"followUpPlaceholderHeterogeneous": "Poursuivre.",
"group.desc": "Faites avancer une tâche avec plusieurs agents dans un espace partagé.",
"group.memberTooltip": "Il y a {{count}} membres dans le groupe",
"group.orchestratorThinking": "Lorchestrateur réfléchit...",
"group.profile.contentPlaceholder": "Définissez ici les objectifs et modes de fonctionnement du groupe. Ces informations seront partagées avec tous les membres du groupe.",
"group.profile.external": "Externe",
"group.profile.externalAgentWarning": "Ceci est un agent externe. Les modifications effectuées ici modifieront directement la configuration originale de lagent.",
"group.profile.groupSettings": "Paramètres du groupe",
"group.profile.supervisor": "Superviseur",
"group.profile.supervisorPlaceholder": "Le superviseur coordonne les différents agents. Renseigner les informations du superviseur ici permet une coordination plus précise du flux de travail.",
"group.removeMember": "Retirer le membre",
"group.title": "Groupe",
"groupDescription": "Description du groupe",
"groupSidebar.agentProfile.chat": "Discussion",
"groupSidebar.agentProfile.model": "Modèle",
"groupSidebar.agentProfile.settings": "Paramètres",
"groupSidebar.members.addMember": "Ajouter un membre",
"groupSidebar.members.enableOrchestrator": "Activer lorchestrateur",
"groupSidebar.members.memberSettings": "Paramètres des membres",
"groupSidebar.members.orchestrator": "Orchestrateur",
"groupSidebar.members.orchestratorThinking": "Lorchestrateur réfléchit...",
"groupSidebar.members.removeMember": "Retirer le membre",
"groupSidebar.members.stopOrchestrator": "Arrêter",
"groupSidebar.members.triggerOrchestrator": "Démarrer",
"groupSidebar.tabs.host": "Orchestrateur",
"groupSidebar.tabs.members": "Membres",
"groupSidebar.tabs.role": "Profil",
"groupWizard.chooseMembers": "Sélectionner des agents existants...",
"groupWizard.createGroup": "Créer un groupe",
"groupWizard.existingMembers": "Agents actuels",
"groupWizard.groupMembers": "Ces agents seront également ajoutés à votre liste",
"groupWizard.host.description": "Laissez le groupe avancer automatiquement. Vous pouvez intervenir à tout moment.",
"groupWizard.host.title": "Activer lorchestrateur",
"groupWizard.host.tooltip": "Lorsque désactivé, vous devrez mentionner les membres avec @ pour obtenir leurs réponses.",
"groupWizard.memberCount": "{{count}} membres",
"groupWizard.noMatchingTemplates": "Aucun modèle correspondant",
"groupWizard.noSelectedTemplates": "Aucun modèle sélectionné",
"groupWizard.noTemplateMembers": "Aucun membre dans le modèle",
"groupWizard.noTemplates": "Aucun modèle disponible",
"groupWizard.searchTemplates": "Rechercher des modèles...",
"groupWizard.title": "Créer un groupe",
"groupWizard.useTemplate": "Utiliser un modèle",
"heteroAgent.cloudNotConfigured.action": "Configurer",
"heteroAgent.cloudNotConfigured.desc": "Configurez votre jeton Claude Code dans le profil de l'agent pour commencer à envoyer des messages.",
"heteroAgent.cloudNotConfigured.title": "Identifiants cloud requis",
"heteroAgent.cloudRepo.multiSelected": "{{count}} dépôts sélectionnés",
"heteroAgent.cloudRepo.noRepos": "Aucun dépôt configuré. Ajoutez-les dans les paramètres de l'agent.",
"heteroAgent.cloudRepo.notSet": "Aucun dépôt sélectionné",
"heteroAgent.cloudRepo.sectionTitle": "Dépôts",
"heteroAgent.executionTarget.downloadDesktop": "Obtenir l'application de bureau",
"heteroAgent.executionTarget.downloadDesktopDesc": "Exécutez des agents avec accès à votre ordinateur",
"heteroAgent.executionTarget.downloadDesktopTitle": "Obtenir l'application de bureau",
"heteroAgent.executionTarget.infoTooltip": "Choisissez un appareil distant pour piloter cette machine depuis le web. \"Cet appareil\" exécute l'agent localement et n'est disponible que dans l'application de bureau.",
"heteroAgent.executionTarget.loading": "Chargement des appareils…",
"heteroAgent.executionTarget.local": "Cet appareil",
"heteroAgent.executionTarget.localDesc": "Exécuter en tant que processus local sur cette application de bureau",
"heteroAgent.executionTarget.noDevices": "Aucun appareil distant pour le moment. Installez l'application de bureau ou exécutez `lh connect` sur une autre machine.",
"heteroAgent.executionTarget.none": "Aucun appareil",
"heteroAgent.executionTarget.noneDesc": "Aucun appareil activé",
"heteroAgent.executionTarget.offline": "Hors ligne",
"heteroAgent.executionTarget.online": "En ligne",
"heteroAgent.executionTarget.sandbox": "Bac à sable cloud",
"heteroAgent.executionTarget.sandboxDesc": "Exécuter dans un bac à sable cloud éphémère",
"heteroAgent.executionTarget.title": "Appareil d'exécution",
"heteroAgent.executionTarget.unknownDevice": "Appareil inconnu",
"heteroAgent.fullAccess.label": "Accès complet",
"heteroAgent.fullAccess.tooltip": "Claude Code sexécute localement avec un accès complet en lecture/écriture au répertoire de travail. Le changement de mode dautorisation nest pas encore disponible.",
"heteroAgent.resumeReset.cwdChanged": "Répertoire de travail modifié. La session précédente de Claude Code ne peut être reprise qu’à partir de son répertoire dorigine ; une nouvelle conversation a donc commencé.",
"heteroAgent.resumeReset.resumeFailed": "Le fil Codex enregistré na pas pu être repris en toute sécurité, une nouvelle conversation a donc été lancée pour ce sujet.",
"heteroAgent.switchCwd.cancel": "Annuler",
"heteroAgent.switchCwd.content": "Les sessions Claude Code sont liées à un répertoire de travail. En changer démarrera une nouvelle session pour ce sujet — les messages restent, mais le contexte de la session précédente ne pourra pas être repris.",
"heteroAgent.switchCwd.ok": "Changer et démarrer une nouvelle session",
"heteroAgent.switchCwd.title": "Changer de répertoire de travail ?",
"hideForYou": "Le contenu du message privé est masqué. Veuillez activer « Afficher le contenu des messages privés » dans les paramètres pour le voir.",
"history.title": "Lagent ne conservera que les {{count}} derniers messages.",
"historyRange": "Plage dhistorique",
"historySummary": "Résumé des messages historiques",
"inactive": "Inactif",
"inbox.desc": "Collaborez dans un espace de travail unique et transformez les idées en résultats.",
"inbox.title": "Lobe IA",
"input.addAi": "Ajouter un message IA",
"input.addUser": "Ajouter un message utilisateur",
"input.costEstimate.creditsPerMillionTokens": "{{credits}} crédits/M tokens",
"input.costEstimate.hint": "Coût estimé : ~{{credits}} crédits",
"input.costEstimate.inputLabel": "Entrée",
"input.costEstimate.outputLabel": "Sortie",
"input.costEstimate.settingsLink": "Ajuster le seuil d'avertissement",
"input.costEstimate.tokenCount": "~{{tokens}} tokens",
"input.costEstimate.tooltip": "Estimé à partir du contexte actuel, des outils et des tarifs du modèle. Le coût réel peut varier.",
"input.disclaimer": "Les agents peuvent faire des erreurs. Faites preuve de discernement pour les informations critiques.",
"input.errorMsg": "Échec de lenvoi : {{errorMsg}}. Réessayez ou envoyez plus tard.",
"input.inputCompletionError.desc": "Les suggestions d'entrée se sont arrêtées après une erreur. Réessayez ou ajustez le modèle de suggestion dans les paramètres.",
"input.inputCompletionError.retry": "Réessayer",
"input.inputCompletionError.settings": "Paramètres",
"input.inputCompletionError.title": "Suggestions d'entrée en pause",
"input.more": "Plus",
"input.send": "Envoyer",
"input.sendWithCmdEnter": "Appuyez sur <key/> pour envoyer",
"input.sendWithEnter": "Appuyez sur <key/> pour envoyer",
"input.stop": "Arrêter",
"input.warp": "Nouvelle ligne",
"input.warpWithKey": "Appuyez sur <key/> pour insérer un saut de ligne",
"inputQueue.delete": "Supprimer",
"inputQueue.edit": "Modifier",
"inputQueue.sendNow": "Envoyer maintenant (interrompt lexécution en cours)",
"intentUnderstanding.title": "Compréhension de votre intention...",
"inviteMembers": "Inviter des membres",
"knowledgeBase.all": "Tout le contenu",
"knowledgeBase.allFiles": "Tous les fichiers",
"knowledgeBase.allLibraries": "Toutes les bibliothèques",
"knowledgeBase.disabled": "La discussion avec la bibliothèque nest pas disponible dans ce déploiement. Passez à une base de données côté serveur ou utilisez {{cloud}}.",
"knowledgeBase.files": "Fichiers",
"knowledgeBase.libraries": "Bibliothèques",
"knowledgeBase.library.action.add": "Ajouter",
"knowledgeBase.library.action.detail": "Détails",
"knowledgeBase.library.action.remove": "Supprimer",
"knowledgeBase.library.title": "Fichiers / Bibliothèques",
"knowledgeBase.relativeFilesOrLibraries": "Fichiers/Bibliothèques associés",
"knowledgeBase.title": "Bibliothèque",
"knowledgeBase.uploadGuide": "Les fichiers téléchargés peuvent être consultés dans la section « Ressources ».",
"knowledgeBase.viewMore": "Voir plus",
"memberSelection.addMember": "Ajouter un membre",
"memberSelection.allMembers": "Tous les membres",
"memberSelection.createGroup": "Créer un groupe",
"memberSelection.noAvailableAgents": "Aucun agent disponible à inviter",
"memberSelection.noSelectedAgents": "Aucun agent sélectionné pour le moment",
"memberSelection.searchAgents": "Rechercher des agents...",
"memberSelection.selectedAgents": "Sélectionné(s) ({{count}})",
"memberSelection.setInitialMembers": "Sélectionner les membres du groupe",
"members": "Membres",
"memory.effort.desc": "Contrôlez avec quelle intensité l'IA récupère et met à jour la mémoire.",
"memory.effort.high.title": "Élevé",
"memory.effort.low.title": "Faible",
"memory.effort.medium.title": "Moyen",
"memory.effort.title": "Agressivité",
"memory.off.desc": "Désactivez la mémoire pour cette conversation.",
"memory.off.title": "Désactiver la mémoire",
"memory.on.desc": "Mémorisez les préférences et les informations des conversations.",
"memory.on.title": "Activer la mémoire",
"memory.title": "Mémoire",
"mention.category.agents": "Agents",
"mention.category.members": "Membres",
"mention.category.skills": "Compétences",
"mention.category.tools": "Outils",
"mention.category.topics": "Sujets",
"mention.title": "Mentionner des membres",
"messageAction.collapse": "Réduire le message",
"messageAction.continueGeneration": "Continuer la génération",
"messageAction.delAndRegenerate": "Supprimer et régénérer",
"messageAction.deleteDisabledByThreads": "Ce message contient un sous-sujet et ne peut pas être supprimé",
"messageAction.expand": "Développer le message",
"messageAction.interrupted": "Interrompu",
"messageAction.interruptedHint": "Que dois-je faire à la place ?",
"messageAction.reaction": "Ajouter une réaction",
"messageAction.regenerate": "Régénérer",
"messageLongCollapse.collapse": "Afficher moins",
"messageLongCollapse.expand": "Afficher plus",
"messages.dm.sentTo": "Visible uniquement par {{name}}",
"messages.dm.title": "Message privé",
"messages.modelCard.credit": "Crédits",
"messages.modelCard.creditPricing": "Tarification",
"messages.modelCard.creditTooltip": "Pour le calcul, nous considérons 1 $ comme équivalent à 1M de crédits. Exemple : 3 $/M tokens → 3 crédits par token.",
"messages.modelCard.pricing.inputCachedTokens": "Entrée en cache {{amount}} crédits · {{amount}} $/M",
"messages.modelCard.pricing.inputCharts": "{{amount}} $/M caractères",
"messages.modelCard.pricing.inputMinutes": "{{amount}} $/minute",
"messages.modelCard.pricing.inputTokens": "Entrée {{amount}} crédits · {{amount}} $/M",
"messages.modelCard.pricing.outputTokens": "Sortie {{amount}} crédits · {{amount}} $/M",
"messages.modelCard.pricing.writeCacheInputTokens": "Écriture en cache {{amount}} crédits · {{amount}} $/M",
"messages.tokenDetails.average": "Prix unitaire moyen",
"messages.tokenDetails.input": "Entrée",
"messages.tokenDetails.inputAudio": "Entrée audio",
"messages.tokenDetails.inputCached": "Entrée en cache",
"messages.tokenDetails.inputCitation": "Citation d'entrée",
"messages.tokenDetails.inputText": "Texte d'entrée",
"messages.tokenDetails.inputTitle": "Détails de l'entrée",
"messages.tokenDetails.inputTool": "Outil d'entrée d'utilisation",
"messages.tokenDetails.inputUncached": "Entrée non mise en cache",
"messages.tokenDetails.inputWriteCached": "Écriture du cache d'entrée",
"messages.tokenDetails.output": "Sortie",
"messages.tokenDetails.outputAudio": "Sortie audio",
"messages.tokenDetails.outputImage": "Sortie image",
"messages.tokenDetails.outputText": "Texte de sortie",
"messages.tokenDetails.outputTitle": "Détails de la sortie",
"messages.tokenDetails.reasoning": "Raisonnement approfondi",
"messages.tokenDetails.speed.tps.title": "TPS",
"messages.tokenDetails.speed.tps.tooltip": "Tokens par seconde (TPS). Indique la vitesse moyenne de génération de contenu par l'IA (tokens/seconde), calculée à partir de la réception du premier token.",
"messages.tokenDetails.speed.ttft.title": "TTFT",
"messages.tokenDetails.speed.ttft.tooltip": "Temps jusqu'au premier token (TTFT). Intervalle entre l'envoi du message et la réception du premier token par le client.",
"messages.tokenDetails.title": "Détails de génération",
"messages.tokenDetails.total": "Consommation totale",
"minimap.emptyPreview": "(Aucun contenu textuel)",
"minimap.jumpToMessage": "Aller au message {{index}}",
"minimap.nextMessage": "Message suivant",
"minimap.previousMessage": "Message précédent",
"minimap.senderAssistant": "Agent",
"minimap.senderUser": "Vous",
"newAgent": "Créer un agent",
"newClaudeCodeAgent": "Ajouter Claude Code",
"newCodexAgent": "Ajouter Codex",
"newGroupChat": "Créer un groupe",
"newPage": "Créer une page",
"newPlatformAgent": "Connecter un agent",
"noAgentsYet": "Ce groupe n'a pas encore de membres. Cliquez sur le bouton + pour inviter des agents.",
"noAvailableAgents": "Aucun membre disponible à inviter",
"noMatchingAgents": "Aucun membre correspondant trouvé",
"noMembersYet": "Ce groupe n'a pas encore de membres. Cliquez sur le bouton + pour inviter des agents.",
"noSelectedAgents": "Aucun membre sélectionné pour le moment",
"opStatusTray.cost": "coût",
"opStatusTray.status.compressing": "Compression du contexte",
"opStatusTray.status.generating": "Génération",
"opStatusTray.status.reasoning": "Réflexion",
"opStatusTray.status.searching": "Recherche",
"opStatusTray.status.toolCalling": "Appel des outils",
"opStatusTray.steps": "étapes",
"opStatusTray.tokens": "jetons",
"openInNewWindow": "Ouvrir dans une nouvelle fenêtre",
"operation.contextCompression": "Contexte trop long, compression de l'historique...",
"operation.execAgentRuntime": "Préparation de la réponse",
"operation.execClientSubAgent": "Exécution du sous-agent",
"operation.execHeterogeneousAgent": "{{name}} est en cours dexécution",
"operation.execServerAgentRuntime": "En cours… Vous pouvez changer de tâche ou fermer la page — la tâche continuera.",
"operation.heterogeneousAgentFallback": "Agent externe",
"operation.sendMessage": "Envoi du message",
"owner": "Propriétaire du groupe",
"pageCopilot.title": "Agent de page",
"pageCopilot.welcome": "**Une écriture plus claire et plus percutante**\n\nRédigez, réécrivez ou améliorez — dites-moi ce que vous souhaitez et je moccupe du reste.",
"pageSelection.lines": "Lignes {{start}}-{{end}}",
"pageSelection.reference": "Texte sélectionné",
"pin": "Épingler",
"pinOff": "Désépingler",
"platformAgent.create.available": "Disponible",
"platformAgent.create.back": "Retour",
"platformAgent.create.checkFailed": "Vérification échouée",
"platformAgent.create.checking": "Vérification de la disponibilité...",
"platformAgent.create.comingSoon": "Bientôt disponible",
"platformAgent.create.create": "Connecter",
"platformAgent.create.creating": "Connexion en cours...",
"platformAgent.create.desc.amp": "Connectez-vous à Amp exécuté sur l'un de vos appareils",
"platformAgent.create.desc.hermes": "Connectez-vous à Hermes exécuté sur l'un de vos appareils",
"platformAgent.create.desc.openclaw": "Connectez-vous à OpenClaw exécuté sur l'un de vos appareils",
"platformAgent.create.desc.opencode": "Connectez-vous à OpenCode exécuté sur l'un de vos appareils",
"platformAgent.create.descriptionPlaceholder": "Brève description (facultatif)",
"platformAgent.create.downloadDesktop": "Télécharger l'application de bureau",
"platformAgent.create.fetchingProfile": "Récupération du profil...",
"platformAgent.create.namePlaceholder": "ex. Mon agent OpenClaw",
"platformAgent.create.next": "Suivant",
"platformAgent.create.noDevices": "Aucun appareil connecté",
"platformAgent.create.noDevicesCliHint": "Ou connectez une machine via CLI, puis cliquez sur Actualiser :",
"platformAgent.create.noDevicesCmd": "lh connect",
"platformAgent.create.noDevicesDesktopHint": "Installez l'application de bureau — elle se connecte automatiquement après la connexion",
"platformAgent.create.notInstalled": "{{name}} n'est pas installé sur cet appareil",
"platformAgent.create.refresh": "Actualiser",
"platformAgent.create.selectDevice": "Sélectionnez un appareil",
"platformAgent.create.step1": "Sélectionner un agent",
"platformAgent.create.step2": "Sélectionnez un appareil",
"platformAgent.create.step3": "Configurer l'agent",
"platformAgent.create.title": "Connecter un agent",
"platformAgent.create.upgradeCmd": "npm install -g @lobehub/cli",
"platformAgent.create.versionTooLow": "La version de lh est trop ancienne",
"platformAgent.create.versionTooLowHint": "Mettez à jour lh vers la dernière version :",
"platformAgent.device.online": "En ligne",
"platformAgent.deviceGuard.configure": "Configurer",
"platformAgent.deviceGuard.deviceOffline.desc": "L'appareil lié n'est pas connecté. Exécutez `lh connect` sur cette machine, puis actualisez.",
"platformAgent.deviceGuard.deviceOffline.title": "Appareil non connecté",
"platformAgent.deviceGuard.noDevice.desc": "Cet agent n'a aucun appareil lié. Modifiez le profil de l'agent pour en configurer un.",
"platformAgent.deviceGuard.noDevice.title": "Aucun appareil lié",
"platformAgent.deviceGuard.platformUnavailable.desc": "{{name}} n'est pas installé sur l'appareil connecté.",
"platformAgent.deviceGuard.platformUnavailable.title": "{{name}} non disponible",
"platformAgent.deviceGuard.refresh": "Actualiser",
"plus.addAttachments": "Pièces jointes",
"plus.addSkills": "Ajouter des compétences...",
"plus.search.appSearch": "Recherche intelligente",
"plus.search.appSearchDesc": "Service de recherche optimisé par LobeHub, offrant les meilleurs résultats de récupération.",
"plus.search.modelSearch": "Recherche par fournisseur",
"plus.search.modelSearchDesc": "Peut entraîner un comportement inattendu lorsqu'il est activé, non recommandé.",
"plus.search.off": "Désactivé",
"plus.search.offDesc": "",
"plus.title": "Ajouter",
"plus.tooltip": "Ajouter des fichiers, des compétences et plus de contexte...",
"rag.referenceChunks": "Source de référence",
"rag.userQuery.actions.delete": "Supprimer la reformulation",
"rag.userQuery.actions.regenerate": "Régénérer la requête",
"regenerate": "Régénérer",
"roleAndArchive": "Profil et historique de l'agent",
"runtimeEnv.mode.cloud": "Bac à sable Cloud",
"runtimeEnv.mode.cloudDesc": "Exécuter dans un bac à sable cloud sécurisé",
"runtimeEnv.mode.local": "Local",
"runtimeEnv.mode.localDesc": "Accéder aux fichiers et commandes locaux",
"runtimeEnv.mode.none": "Désactivé",
"runtimeEnv.mode.noneDesc": "Désactiver l'environnement d'exécution",
"runtimeEnv.selectMode": "Sélectionner l'environnement d'exécution",
"runtimeEnv.title": "Environnement d'exécution",
"search.grounding.imageSearchQueries": "Mots-clés de recherche d'images",
"search.grounding.imageTitle": "{{count}} images trouvées",
"search.grounding.searchQueries": "Mots-clés de recherche",
"search.grounding.title": "{{count}} résultats trouvés",
"search.mode.auto.desc": "Rechercher automatiquement sur le web si nécessaire.",
"search.mode.auto.title": "Auto",
"search.mode.off.desc": "Désactiver l'accès au web.",
"search.mode.off.title": "Désactivé",
"search.mode.on.desc": "Toujours rechercher les dernières informations sur le web.",
"search.mode.on.title": "Toujours activé",
"search.mode.useModelBuiltin": "Utiliser la recherche web intégrée au modèle",
"search.searchModel.desc": "Le modèle actuel ne prend pas en charge les appels de fonction. Il doit être associé à un modèle compatible pour la recherche en ligne.",
"search.searchModel.title": "Modèle d'assistance à la recherche",
"search.title": "Recherche web",
"searchAgentPlaceholder": "Rechercher des agents...",
"searchAgents": "Rechercher des agents...",
"selectedAgents": "Agents sélectionnés",
"sendPlaceholder": "Demandez, créez ou lancez une tâche, <hotkey><hotkey/>",
"sendPlaceholderChat": "Demandez, recherchez ou réfléchissez, <hotkey><hotkey/>",
"sendPlaceholderChatWithAgentAssignment": "Demandez, recherchez ou réfléchissez. @ pour faire intervenir d'autres agents.",
"sendPlaceholderHeterogeneous": "Demander à {{name}} deffectuer une tâche...",
"sendPlaceholderWithAgentAssignment": "Demander, créer ou lancer une tâche. @ pour attribuer des tâches à dautres agents.",
"sessionGroup.config": "Gestion de groupe",
"sessionGroup.confirmRemoveGroupAlert": "Ce groupe va être supprimé. Après suppression, les agents seront déplacés vers la liste par défaut. Veuillez confirmer votre action.",
"sessionGroup.createAgentSuccess": "Agent créé avec succès",
"sessionGroup.createGroup": "Ajouter un nouveau groupe",
"sessionGroup.createGroupFailed": "Échec de la création du groupe",
"sessionGroup.createGroupSuccess": "Groupe créé avec succès",
"sessionGroup.createSuccess": "Créé avec succès",
"sessionGroup.creatingAgent": "Création de l'agent...",
"sessionGroup.groupName": "Nom du groupe",
"sessionGroup.inputPlaceholder": "Veuillez entrer un nom de groupe...",
"sessionGroup.moveGroup": "Déplacer vers le groupe",
"sessionGroup.newGroup": "Nouveau groupe",
"sessionGroup.noAvailableAgents": "Aucun agent disponible",
"sessionGroup.noMatchingAgents": "Aucun agent correspondant trouvé",
"sessionGroup.noSelectedAgents": "Veuillez sélectionner des agents",
"sessionGroup.rename": "Renommer le groupe",
"sessionGroup.renameSuccess": "Renommé avec succès",
"sessionGroup.searchAgents": "Rechercher des agents",
"sessionGroup.selectedAgents": "Agents sélectionnés ({{count}})",
"sessionGroup.sortSuccess": "Réorganisation réussie",
"sessionGroup.sorting": "Mise à jour du tri des groupes...",
"sessionGroup.tooLong": "Le nom du groupe doit contenir entre 1 et 20 caractères",
"shareModal.copy": "Copier",
"shareModal.copyLink": "Copier le lien",
"shareModal.copyLinkSuccess": "Lien copié",
"shareModal.download": "Télécharger la capture",
"shareModal.downloadError": "Échec du téléchargement",
"shareModal.downloadFile": "Télécharger le fichier",
"shareModal.downloadPdf": "Télécharger le PDF",
"shareModal.downloadSuccess": "Téléchargement réussi",
"shareModal.exportMode.full": "Par défaut",
"shareModal.exportMode.label": "Mode d'exportation",
"shareModal.exportMode.simple": "Compatible OpenAI",
"shareModal.exportPdf": "Exporter en PDF",
"shareModal.exportTitle": "Titre par défaut",
"shareModal.generatePdf": "Générer le PDF",
"shareModal.generatingPdf": "Génération du PDF...",
"shareModal.imageType": "Format d'image",
"shareModal.includeTool": "Inclure les messages de compétence",
"shareModal.includeUser": "Inclure les messages utilisateur",
"shareModal.link": "Lien",
"shareModal.link.linkHint": "Toute personne disposant du lien peut consulter ce sujet",
"shareModal.link.noTopic": "Commencez une conversation avant de partager",
"shareModal.link.permissionLink": "Toute personne disposant du lien",
"shareModal.link.permissionPrivate": "Privé",
"shareModal.link.privateHint": "Vous seul pouvez accéder à ce lien",
"shareModal.link.updateError": "Échec de la mise à jour des paramètres de partage",
"shareModal.link.visibilityUpdated": "Visibilité mise à jour",
"shareModal.loadingPdf": "Chargement du PDF...",
"shareModal.noPdfData": "Aucune donnée PDF disponible",
"shareModal.pdf": "PDF",
"shareModal.pdfErrorDescription": "Une erreur est survenue lors de la génération du PDF, veuillez réessayer",
"shareModal.pdfGenerationError": "Échec de la génération du PDF",
"shareModal.pdfReady": "Le PDF est prêt",
"shareModal.popover.export": "Exporter",
"shareModal.popover.privacyWarning.confirm": "Je comprends, continuer",
"shareModal.popover.privacyWarning.content": "Veuillez vous assurer que votre conversation ne contient aucune information personnelle ou sensible. Vous êtes responsable du contenu que vous choisissez de partager et des conséquences qui en découlent.",
"shareModal.popover.privacyWarning.doNotShowAgain": "Ne plus afficher ce message",
"shareModal.popover.privacyWarning.items.credentials": "Identifiants",
"shareModal.popover.privacyWarning.items.files": "Fichiers téléchargés",
"shareModal.popover.privacyWarning.items.images": "Images",
"shareModal.popover.privacyWarning.items.toolCalls": "Détails des appels de connecteurs",
"shareModal.popover.privacyWarning.note": "Vous pouvez revenir en mode privé à tout moment.",
"shareModal.popover.privacyWarning.title": "Avis de confidentialité",
"shareModal.popover.title": "Partager le sujet",
"shareModal.popover.visibility": "Visibilité",
"shareModal.regeneratePdf": "Régénérer le PDF",
"shareModal.screenshot": "Capture d'écran",
"shareModal.settings": "Paramètres d'exportation",
"shareModal.text": "Texte",
"shareModal.title": "Exporter",
"shareModal.widthMode.label": "Mode de largeur",
"shareModal.widthMode.narrow": "Étroit",
"shareModal.widthMode.wide": "Large",
"shareModal.withBackground": "Inclure l'image de fond",
"shareModal.withFooter": "Inclure le pied de page",
"shareModal.withPluginInfo": "Inclure les informations de compétence",
"shareModal.withRole": "Inclure le rôle du message",
"shareModal.withSystemRole": "Inclure le profil de l'agent",
"sharePage.actions.findMord": "En savoir plus",
"sharePage.actions.tryItYourself": "Essayez par vous-même",
"sharePage.error.forbidden.subtitle": "Ce partage est privé et inaccessible.",
"sharePage.error.forbidden.title": "Accès refusé",
"sharePage.error.notFound.subtitle": "Ce sujet nexiste pas ou a été supprimé.",
"sharePage.error.notFound.title": "Sujet introuvable",
"sharePage.error.unauthorized.action": "Se connecter",
"sharePage.error.unauthorized.subtitle": "Veuillez vous connecter pour consulter ce sujet partagé.",
"sharePage.error.unauthorized.title": "Connexion requise",
"sharePage.menu.copyLink": "Copier le lien",
"sharePage.menu.goToLobeHub": "Aller à LobeHub",
"sharePage.menu.more": "Plus",
"sharePage.menu.report": "Signaler",
"sharePageDisclaimer": "Ce contenu est partagé par un utilisateur et ne reflète pas les opinions de LobeHub. LobeHub nest pas responsable des conséquences liées à ce contenu partagé.",
"signalCallbacks.collapse": "Masquer les détails",
"signalCallbacks.empty": "Aucun message de rappel",
"signalCallbacks.expand": "Afficher les détails",
"signalCallbacks.title": "{{tool}} · {{count}} mises à jour de rappel",
"stt.action": "Entrée vocale",
"stt.loading": "Reconnaissance en cours...",
"stt.prettifying": "Amélioration...",
"supervisor.label": "Superviseur",
"supervisor.todoList.allComplete": "Toutes les tâches sont terminées",
"supervisor.todoList.title": "Tâches terminées",
"tab.groupProfile": "Profil du groupe",
"tab.integration": "Intégration",
"tab.profile": "Profil de l'agent",
"tab.search": "Recherche",
"tab.tasks": "Tâches",
"task.activity.calling": "Appel de compétence...",
"task.activity.clientExecuting": "Exécution en local...",
"task.activity.generating": "Génération de la réponse...",
"task.activity.gotResult": "Résultat de l'outil reçu",
"task.activity.toolCalling": "Appel de {{toolName}}...",
"task.activity.toolResult": "Résultat de {{toolName}} reçu",
"task.batchTasks": "{{count}} sous-tâches groupées",
"task.groupTasks": "{{count}} tâches parallèles",
"task.groupTasksTitle": "{{agents}} et {{count}} tâches d'agents",
"task.groupTasksTitleSimple": "{{agents}} {{count}} tâches",
"task.instruction": "Instruction de la tâche",
"task.intermediateSteps": "{{count}} étapes intermédiaires",
"task.metrics.duration": "(durée : {{duration}})",
"task.metrics.stepsShort": "étapes",
"task.metrics.toolCallsShort": "utilisations d'outil",
"task.status.cancelled": "Tâche annulée",
"task.status.failed": "Échec de la tâche",
"task.status.fetchingDetails": "Récupération des détails...",
"task.status.initializing": "Initialisation de la tâche...",
"task.subtask": "Sous-tâche",
"task.title": "Tâches",
"taskDetail.activities": "Activités",
"taskDetail.activities.agentTag": "Agent",
"taskDetail.activities.fallback.brief": "a publié un résumé",
"taskDetail.activities.fallback.comment": "a laissé un commentaire",
"taskDetail.activities.fallback.created": "a créé la tâche",
"taskDetail.activities.fallback.topic": "a lancé un sujet",
"taskDetail.activitiesEmpty": "Aucune activité pour le moment",
"taskDetail.addSubtask": "Ajouter une sous-tâche",
"taskDetail.artifactMenu.delete": "Retirer de la tâche",
"taskDetail.artifactMenu.deleteConfirm.content": "Cet artefact napparaîtra plus dans lespace de travail de cette tâche.",
"taskDetail.artifactMenu.deleteConfirm.ok": "Retirer",
"taskDetail.artifactMenu.deleteConfirm.title": "Retirer cet artefact ?",
"taskDetail.artifactSize": "{{value}} caractères",
"taskDetail.artifacts": "Artefacts",
"taskDetail.blockedBy": "Bloqué par {{id}}",
"taskDetail.cancelSchedule": "Annuler la planification",
"taskDetail.comment.cancel": "Annuler",
"taskDetail.comment.delete": "Supprimer",
"taskDetail.comment.deleteConfirm.content": "Ce commentaire sera définitivement supprimé.",
"taskDetail.comment.deleteConfirm.ok": "Supprimer",
"taskDetail.comment.deleteConfirm.title": "Supprimer ce commentaire ?",
"taskDetail.comment.edit": "Modifier",
"taskDetail.comment.save": "Enregistrer",
"taskDetail.commentPlaceholder": "Laissez un commentaire...",
"taskDetail.deleteConfirm.content": "Cette action est irréversible.",
"taskDetail.deleteConfirm.ok": "Supprimer",
"taskDetail.deleteConfirm.title": "Supprimer cette tâche ?",
"taskDetail.instruction": "Instruction",
"taskDetail.instructionPlaceholder": "Cliquez pour modifier les instructions de la tâche...",
"taskDetail.latestActivity.brief": "Résumé : {{title}}",
"taskDetail.latestActivity.briefWithAction": "{{title}} - {{action}}",
"taskDetail.latestActivity.briefWithType": "Résumé ({{type}}) : {{title}}",
"taskDetail.latestActivity.briefWithTypeOnly": "Résumé ({{type}})",
"taskDetail.latestActivity.topic": "Sujet : {{title}}",
"taskDetail.latestActivity.topicWithSeq": "Sujet n°{{seq}} : {{title}}",
"taskDetail.latestActivity.untitledTopic": "Sujet sans titre",
"taskDetail.modelConfig": "Remplacement du modèle",
"taskDetail.navigation": "Navigation",
"taskDetail.nextRunCountdown": "Prochaine exécution dans {{countdown}}",
"taskDetail.notFound.backToTasks": "Retour à toutes les tâches",
"taskDetail.notFound.desc": "Cette tâche a peut-être été supprimée ou vous n'avez pas la permission de la consulter.",
"taskDetail.notFound.title": "Tâche introuvable",
"taskDetail.pauseTask": "Mettre la tâche en pause",
"taskDetail.priority.high": "Haute",
"taskDetail.priority.low": "Basse",
"taskDetail.priority.none": "Aucune priorité",
"taskDetail.priority.normal": "Normale",
"taskDetail.priority.urgent": "Urgente",
"taskDetail.properties": "Propriétés",
"taskDetail.reassignDisabled": "Impossible de réattribuer lagent pendant lexécution de la tâche",
"taskDetail.replyInThread": "Répondre dans ce fil",
"taskDetail.replyPlaceholder": "Répondre dans ce fil...",
"taskDetail.rerunTask": "Relancer la tâche",
"taskDetail.runAll": "Tout exécuter",
"taskDetail.runAll.cancel": "Annuler",
"taskDetail.runAll.confirm": "Exécuter {{count}} sous-tâche(s)",
"taskDetail.runAll.cycleWarning": "Dépendance circulaire détectée. Les tâches impliquées ou bloquées par le cycle ne seront pas exécutées : {{members}}",
"taskDetail.runAll.description": "Les sous-tâches seront exécutées couche par couche. Chaque couche attend que la précédente soit terminée. Les tâches sans dépendances s'exécutent dans la couche 1.",
"taskDetail.runAll.empty": "Rien à exécuter — chaque sous-tâche est déjà terminée, en cours ou bloquée dans un cycle.",
"taskDetail.runAll.kickedOff": "Démarré {{count}} sous-tâche(s) ; les couches en aval suivront.",
"taskDetail.runAll.layer": "Couche {{index}}",
"taskDetail.runAll.layerHint.first": "Démarre immédiatement",
"taskDetail.runAll.layerHint.next": "Attend que la couche {{prev}} soit terminée",
"taskDetail.runAll.loading": "Chargement du plan des sous-tâches...",
"taskDetail.runAll.partialFailure": "Démarré {{ok}} sur {{total}} sous-tâche(s) ; {{failed}} ont échoué.",
"taskDetail.runAll.skipped.alreadyDone": "{{count}} tâche(s) déjà terminée(s) ou annulée(s) — ignorée(s)",
"taskDetail.runAll.skipped.blockedExternally": "{{count}} tâche(s) en attente d'un blocage externe — s'exécuteront automatiquement une fois débloquées",
"taskDetail.runAll.skipped.ineligible": "{{count}} tâche(s) en cours ou programmée(s) — ignorée(s)",
"taskDetail.runAll.title": "Exécuter les sous-tâches dans l'ordre des dépendances",
"taskDetail.runNow": "Exécuter maintenant",
"taskDetail.runTask": "Lancer la tâche",
"taskDetail.saveModelConfig": "Enregistrer",
"taskDetail.sendFollowUp": "Envoyer un message de suivi",
"taskDetail.status.backlog": "En attente",
"taskDetail.status.canceled": "Annulée",
"taskDetail.status.completed": "Terminée",
"taskDetail.status.failed": "Échouée",
"taskDetail.status.paused": "En pause",
"taskDetail.status.running": "En cours",
"taskDetail.status.scheduled": "Planifiée",
"taskDetail.stopTask": "Arrêter la tâche",
"taskDetail.subIssueOf": "Sous-problème de",
"taskDetail.subtaskInstructionPlaceholder": "Décrire la sous-tâche...",
"taskDetail.subtasks": "Sous-tâches",
"taskDetail.titlePlaceholder": "Saisissez le titre de la tâche...",
"taskDetail.topicDrawer.untitled": "Sans titre",
"taskDetail.untitled": "Sans titre",
"taskDetail.updateFailed": "Échec de la mise à jour de la tâche",
"taskList.activeTasks": "Tâches Actives",
"taskList.all": "Toutes les tâches",
"taskList.assigneeSearch.empty": "Aucun agent correspondant",
"taskList.assigneeSearch.placeholder": "Rechercher un agent...",
"taskList.breadcrumb.task": "Tâche",
"taskList.contextMenu.copyConfirm": "Copier",
"taskList.contextMenu.copyDescription": "Cloner cette tâche (et toutes ses sous-tâches) dans un autre espace de travail. Le statut sera réinitialisé à 'en attente'.",
"taskList.contextMenu.copyFailed": "Échec de la copie de la tâche",
"taskList.contextMenu.copyId": "Copier lID",
"taskList.contextMenu.copyIdSuccess": "ID copié",
"taskList.contextMenu.copyLink": "Copier le lien",
"taskList.contextMenu.copyLinkSuccess": "Lien copié",
"taskList.contextMenu.copySuccess": "Tâche copiée",
"taskList.contextMenu.copyTitle": "Copier la tâche",
"taskList.contextMenu.copyTo": "Copier vers…",
"taskList.contextMenu.priority": "Priorité",
"taskList.contextMenu.runNow": "Exécuter maintenant",
"taskList.contextMenu.status": "Statut",
"taskList.contextMenu.transferConfirm": "Transférer",
"taskList.contextMenu.transferDescription": "Déplacer cette tâche (et toutes ses sous-tâches) vers un autre espace de travail. Les identifiants seront réassignés.",
"taskList.contextMenu.transferFailed": "Échec du transfert de la tâche",
"taskList.contextMenu.transferSuccess": "Tâche transférée",
"taskList.contextMenu.transferTitle": "Transférer la tâche",
"taskList.contextMenu.transferTo": "Transférer vers…",
"taskList.contextMenu.transferWarning": "Les références inter-espaces de travail, comme l'agent assigné et le sujet actif, seront supprimées.",
"taskList.empty": "Aucune tâche pour le moment",
"taskList.emptyHero.greeting": "Que devons-nous aborder aujourd'hui ?",
"taskList.emptyHero.subtitle": "Décrivez une tâche pour votre agent, ou commencez avec un modèle ci-dessous.",
"taskList.emptyHero.templatesTitle": "Modèles sélectionnés pour vous",
"taskList.form.grouping": "Regroupement",
"taskList.form.orderCompletedByRecency": "Trier les tâches terminées par ancienneté",
"taskList.form.ordering": "Tri",
"taskList.form.showCompleted": "Afficher terminées et annulées",
"taskList.form.subGrouping": "Sous-regroupement",
"taskList.groupBy.assignee": "Attribué à",
"taskList.groupBy.none": "Aucun regroupement",
"taskList.groupBy.priority": "Priorité",
"taskList.groupBy.status": "Statut",
"taskList.hiddenCompleted.count_one": "{{count}} tâche",
"taskList.hiddenCompleted.count_other": "{{count}} tâches",
"taskList.hiddenCompleted.show": "Afficher",
"taskList.hiddenCompleted.suffix": "masquées par les options daffichage",
"taskList.kanban.addTask": "Créer une tâche",
"taskList.kanban.backlog": "Arriéré",
"taskList.kanban.canceled": "Annulée",
"taskList.kanban.done": "Terminée",
"taskList.kanban.emptyColumn": "Aucune tâche",
"taskList.kanban.hiddenColumns": "Colonnes masquées",
"taskList.kanban.hideColumn": "Masquer la colonne",
"taskList.kanban.needsInput": "En attente dexamen",
"taskList.kanban.running": "En cours",
"taskList.kanban.showColumn": "Afficher la colonne",
"taskList.orderBy.assignee": "Attribué à",
"taskList.orderBy.createdAt": "Date de création",
"taskList.orderBy.priority": "Priorité",
"taskList.orderBy.status": "Statut",
"taskList.orderBy.title": "Titre",
"taskList.orderBy.updatedAt": "Date de mise à jour",
"taskList.title": "Tâches",
"taskList.unassigned": "Non attribuée",
"taskList.unassignedHint": "Lobe AI exécutera cette tâche lorsquaucun responsable nest défini",
"taskList.view.board": "Tableau",
"taskList.view.list": "Liste",
"taskList.viewAll": "Tout afficher",
"taskSchedule.advancedSettings": "Paramètres avancés",
"taskSchedule.clear": "Effacer",
"taskSchedule.continuous": "Continu",
"taskSchedule.enable": "Activer lautomatisation",
"taskSchedule.every": "Toutes les",
"taskSchedule.frequency": "Fréquence",
"taskSchedule.heading": "Automatisation",
"taskSchedule.hours": "Heures",
"taskSchedule.intervalLabel": "Intervalle dexécution",
"taskSchedule.intervalSuffix": "à chaque fois",
"taskSchedule.intervalTab": "Récurrence",
"taskSchedule.maxExecutions": "Nombre maximal dexécutions",
"taskSchedule.maxExecutionsPlaceholder": "Illimité",
"taskSchedule.minutes": "Minutes",
"taskSchedule.nextRun": "Prochaine exécution",
"taskSchedule.nextRun.format": "D MMM HH:mm",
"taskSchedule.scheduleType.daily": "Quotidienne",
"taskSchedule.scheduleType.hourly": "Toutes les heures",
"taskSchedule.scheduleType.weekly": "Hebdomadaire",
"taskSchedule.scheduler": "Planificateur",
"taskSchedule.schedulerTab": "Planificateur",
"taskSchedule.startScheduling": "Commencer la planification",
"taskSchedule.summary.daily": "Tous les jours à {{time}}",
"taskSchedule.summary.disabled": "Lautomatisation est désactivée",
"taskSchedule.summary.everyNHours": "Toutes les {{count}} heures{{minute}}",
"taskSchedule.summary.everyNHoursHalfPast": "Toutes les {{count}} heures à la demie",
"taskSchedule.summary.heartbeat": "Sexécute toutes les {{interval}}",
"taskSchedule.summary.hourly": "Chaque heure{{minute}}",
"taskSchedule.summary.hourlyHalfPast": "Toutes les heures à la demie",
"taskSchedule.summary.weekly": "Chaque {{days}} à {{time}}",
"taskSchedule.tag.add": "Définir un planning",
"taskSchedule.tag.every": "toutes les {{interval}}",
"taskSchedule.tag.heartbeat": "Rythme · {{every}}",
"taskSchedule.tag.schedule": "Planning · {{schedule}}{{timezone}}",
"taskSchedule.time": "Heure",
"taskSchedule.timezone": "Fuseau horaire",
"taskSchedule.timezoneSearchEmpty": "Aucun fuseau horaire correspondant",
"taskSchedule.timezoneSearchPlaceholder": "Rechercher un fuseau horaire",
"taskSchedule.title": "Planning",
"taskSchedule.unit.hour_one": "{{count}} heure",
"taskSchedule.unit.hour_other": "{{count}} heures",
"taskSchedule.unit.minute_one": "{{count}} minute",
"taskSchedule.unit.minute_other": "{{count}} minutes",
"taskSchedule.unit.second_one": "{{count}} seconde",
"taskSchedule.unit.second_other": "{{count}} secondes",
"taskSchedule.weekday": "Jour de la semaine",
"taskSchedule.weekdays.fri": "Ven",
"taskSchedule.weekdays.mon": "Lun",
"taskSchedule.weekdays.sat": "Sam",
"taskSchedule.weekdays.sun": "Dim",
"taskSchedule.weekdays.thu": "Jeu",
"taskSchedule.weekdays.tue": "Mar",
"taskSchedule.weekdays.wed": "Mer",
"thread.closeSubagentThread": "Réduire la conversation du sous-agent",
"thread.divider": "Sous-sujet",
"thread.openSubagentThread": "Afficher la conversation complète du sous-agent",
"thread.subagentMetrics.modelLabel": "Modèle",
"thread.subagentMetrics.tokens": "{{count}} jetons",
"thread.subagentMetrics.toolCalls_one": "{{count}} appel d'outil",
"thread.subagentMetrics.toolCalls_other": "{{count}} appels d'outils",
"thread.subagentMetrics.toolsShort_one": "{{count}} outil",
"thread.subagentMetrics.toolsShort_other": "{{count}} outils",
"thread.subagentReadOnlyHint": "Les conversations des sous-agents sont en lecture seule — l'exécution est pilotée par l'agent parent.",
"thread.threadMessageCount": "{{messageCount}} messages",
"thread.title": "Sous-sujet",
"todoProgress.allCompleted": "Toutes les tâches sont terminées",
"todoProgress.title": "Tâches",
"toggleWideScreen.off": "Désactiver le mode grand écran",
"toggleWideScreen.on": "Activer le mode grand écran",
"tokenDetails.chats": "Messages de discussion",
"tokenDetails.historySummary": "Résumé de l'historique",
"tokenDetails.rest": "Restant",
"tokenDetails.supervisor": "Hôte du groupe",
"tokenDetails.systemRole": "Paramètres de rôle",
"tokenDetails.title": "Détails du contexte",
"tokenDetails.tools": "Paramètres de compétence",
"tokenDetails.total": "Total disponible",
"tokenDetails.used": "Total utilisé",
"tokenTag.overload": "Limite dépassée",
"tokenTag.remained": "Restant",
"tokenTag.used": "Utilisé",
"tool.intervention.approvalMode": "Mode d'approbation",
"tool.intervention.approve": "Approuver",
"tool.intervention.mode.allowList": "Liste autorisée",
"tool.intervention.mode.allowListDesc": "Exécuter automatiquement uniquement les outils approuvés",
"tool.intervention.mode.autoRun": "Approbation automatique",
"tool.intervention.mode.autoRunDesc": "Approuver automatiquement toutes les exécutions d'outils",
"tool.intervention.mode.manual": "Manuel",
"tool.intervention.mode.manualDesc": "Approbation manuelle requise pour chaque appel",
"tool.intervention.onboarding.agentIdentity.editHint": "Vous pouvez modifier le nom ou l'avatar directement ci-dessous.",
"tool.intervention.onboarding.agentIdentity.namePlaceholder": "Nom de l'agent",
"tool.intervention.onboarding.agentIdentity.title": "Confirmer la mise à jour de lidentité de lagent",
"tool.intervention.onboarding.agentIdentity.titleAvatarOnly": "Je vais mettre à jour mon avatar",
"tool.intervention.onboarding.agentIdentity.titleNameOnly": "Je vais mettre à jour mon nom",
"tool.intervention.onboarding.userProfile.applyHint": "Ces détails seront enregistrés dans votre profil après approbation.",
"tool.intervention.onboarding.userProfile.description": "L'approbation de ce changement met à jour votre profil d'intégration afin que l'Agent puisse adapter les réponses futures.",
"tool.intervention.onboarding.userProfile.eyebrow": "Approbation d'intégration",
"tool.intervention.onboarding.userProfile.fullName": "Nom complet",
"tool.intervention.onboarding.userProfile.responseLanguage": "Langue de réponse",
"tool.intervention.onboarding.userProfile.title": "Confirmez la mise à jour de votre profil",
"tool.intervention.optionApprove": "Approuver",
"tool.intervention.pending": "En attente",
"tool.intervention.reject": "Rejeter",
"tool.intervention.rejectOnly": "Rejeter",
"tool.intervention.rejectReasonPlaceholder": "Une raison aide l'agent à comprendre vos limites et à améliorer ses actions futures",
"tool.intervention.rejectedWithReason": "Cet appel de compétence a été rejeté : {{reason}}",
"tool.intervention.rememberSimilar": "Ne plus demander pour des actions similaires",
"tool.intervention.scrollToIntervention": "Voir",
"tool.intervention.submit": "Soumettre",
"tool.intervention.toolAbort": "Vous avez annulé cet appel de compétence",
"tool.intervention.toolRejected": "Cet appel de compétence a été rejeté",
"tool.intervention.viewParameters": "Voir les paramètres ({{count}})",
"toolAuth.authorize": "Autoriser",
"toolAuth.authorizing": "Autorisation en cours...",
"toolAuth.hint": "Sans autorisation ou configuration, les compétences peuvent ne pas fonctionner. Cela peut limiter l'agent ou provoquer des erreurs.",
"toolAuth.signIn": "Se connecter",
"toolAuth.title": "Autoriser les compétences pour cet agent",
"topic.checkOpenNewTopic": "Commencer un nouveau sujet ?",
"topic.checkSaveCurrentMessages": "Souhaitez-vous enregistrer la conversation actuelle comme sujet ?",
"topic.defaultTitle": "Sujet sans titre",
"topic.openNewTopic": "Ouvrir un nouveau sujet",
"topic.recent": "Sujets récents",
"topic.saveCurrentMessages": "Enregistrer la session actuelle comme sujet",
"topic.viewAll": "Voir tous les sujets",
"translate.action": "Traduire",
"translate.clear": "Effacer la traduction",
"tts.action": "Synthèse vocale",
"tts.clear": "Effacer la voix",
"untitledAgent": "Agent sans nom",
"untitledGroup": "Groupe sans nom",
"updateAgent": "Mettre à jour les informations de l'agent",
"upload.action.fileOrImageUpload": "Télécharger un fichier ou une image",
"upload.action.fileUpload": "Téléverser un fichier",
"upload.action.folderUpload": "Téléverser un dossier",
"upload.action.imageDisabled": "Le modèle actuel ne prend pas en charge la reconnaissance visuelle. Veuillez changer de modèle pour utiliser cette fonctionnalité.",
"upload.action.imageUpload": "Téléverser une image",
"upload.action.tooltip": "Téléverser",
"upload.clientMode.actionFiletip": "Téléverser un fichier",
"upload.clientMode.actionTooltip": "Téléverser",
"upload.clientMode.disabled": "Le modèle actuel ne prend pas en charge la reconnaissance visuelle ni l'analyse de fichiers. Veuillez changer de modèle pour utiliser cette fonctionnalité.",
"upload.clientMode.fileNotSupported": "Le téléversement de fichiers n'est pas pris en charge en mode navigateur ; seules les images sont autorisées.",
"upload.clientMode.visionNotSupported": "Le modèle actuel ne prend pas en charge la reconnaissance visuelle. Veuillez utiliser un autre modèle pour cette fonctionnalité.",
"upload.preview.prepareTasks": "Préparation des segments...",
"upload.preview.status.pending": "Préparation au téléversement...",
"upload.preview.status.processing": "Traitement du fichier...",
"upload.validation.unsupportedFileType": "Type de fichier non pris en charge : {{files}}. Images prises en charge : JPG, PNG, GIF, WebP. Les documents pris en charge incluent PDF, Word, Excel, PowerPoint, Markdown, texte, CSV, JSON et fichiers de code.",
"upload.validation.videoSizeExceeded": "La taille du fichier vidéo ne doit pas dépasser {{maxSize}}. Taille actuelle : {{actualSize}}.",
"viewMode.fullWidth": "Pleine largeur",
"viewMode.normal": "Standard",
"viewMode.wideScreen": "Grand écran",
"viewSwitcher.chat": "Discussion",
"viewSwitcher.page": "Page",
"viewSwitcher.task": "Tâche",
"workflow.awaitingConfirmation": "En attente de votre confirmation",
"workflow.collapse": "Réduire",
"workflow.expandFull": "Développer complètement",
"workflow.failedSuffix": "(échec)",
"workflow.summaryFailed": "{{count}} échecs",
"workflow.summaryMoreTools": "{{count}} types doutils",
"workflow.summaryTotalCalls": "{{count}} appels au total",
"workflow.thoughtForDuration": "Réflexion pendant {{duration}}",
"workflow.toolDisplayName.activateDevice": "Appareil activé",
"workflow.toolDisplayName.activateSkill": "Compétence activée",
"workflow.toolDisplayName.activateTools": "Outils activés",
"workflow.toolDisplayName.addActivityMemory": "Mémoire enregistrée",
"workflow.toolDisplayName.addContextMemory": "Mémoire enregistrée",
"workflow.toolDisplayName.addExperienceMemory": "Mémoire enregistrée",
"workflow.toolDisplayName.addIdentityMemory": "Mémoire sauvegardée",
"workflow.toolDisplayName.addPreferenceMemory": "Mémoire enregistrée",
"workflow.toolDisplayName.calculate": "Calculé",
"workflow.toolDisplayName.callAgent": "Agent appelé",
"workflow.toolDisplayName.callMcpTool": "Outil MCP appelé",
"workflow.toolDisplayName.callSubAgent": "Sous-agent dispatché",
"workflow.toolDisplayName.clearTodos": "Tâches effacées",
"workflow.toolDisplayName.copyDocument": "Document copié",
"workflow.toolDisplayName.crawlMultiPages": "Pages explorées",
"workflow.toolDisplayName.crawlSinglePage": "Page explorée",
"workflow.toolDisplayName.createAgent": "Agent créé",
"workflow.toolDisplayName.createDocument": "Document créé",
"workflow.toolDisplayName.createPlan": "A créé un plan",
"workflow.toolDisplayName.createTodos": "Tâches créées",
"workflow.toolDisplayName.deleteAgent": "Agent supprimé",
"workflow.toolDisplayName.deleteDocument": "Document supprimé",
"workflow.toolDisplayName.editLocalFile": "Fichier modifié",
"workflow.toolDisplayName.editTitle": "Titre modifié",
"workflow.toolDisplayName.evaluate": "Expression évaluée",
"workflow.toolDisplayName.execScript": "Script exécuté",
"workflow.toolDisplayName.execute": "Calcul exécuté",
"workflow.toolDisplayName.executeCode": "Code exécuté",
"workflow.toolDisplayName.finishOnboarding": "Onboarding terminé",
"workflow.toolDisplayName.getCommandOutput": "Lire la sortie de la commande",
"workflow.toolDisplayName.getDocument": "Lire un document",
"workflow.toolDisplayName.getPageContent": "Lire le contenu de la page",
"workflow.toolDisplayName.getTopicContext": "Lire le contexte du sujet",
"workflow.toolDisplayName.globLocalFiles": "Fichiers recherchés",
"workflow.toolDisplayName.grepContent": "Contenu recherché",
"workflow.toolDisplayName.importFromMarket": "Importé depuis le marché",
"workflow.toolDisplayName.importSkill": "A importé une compétence",
"workflow.toolDisplayName.initPage": "Page initialisée",
"workflow.toolDisplayName.killCommand": "Commande arrêtée",
"workflow.toolDisplayName.listDocuments": "Documents répertoriés",
"workflow.toolDisplayName.listLocalFiles": "Fichiers listés",
"workflow.toolDisplayName.listOnlineDevices": "Appareils répertoriés",
"workflow.toolDisplayName.modifyNodes": "Page modifiée",
"workflow.toolDisplayName.moveLocalFiles": "Fichiers déplacés",
"workflow.toolDisplayName.readDocument": "Lire un document",
"workflow.toolDisplayName.readKnowledge": "Lire les connaissances",
"workflow.toolDisplayName.readLocalFile": "Lire un fichier",
"workflow.toolDisplayName.removeDocument": "A supprimé un document",
"workflow.toolDisplayName.removeIdentityMemory": "Mémoire supprimée",
"workflow.toolDisplayName.renameDocument": "Renommé un document",
"workflow.toolDisplayName.renameLocalFile": "Fichier renommé",
"workflow.toolDisplayName.replaceDocumentContent": "Contenu du document remplacé",
"workflow.toolDisplayName.replaceText": "Texte remplacé",
"workflow.toolDisplayName.runCommand": "Commande exécutée",
"workflow.toolDisplayName.saveUserQuestion": "Informations enregistrées",
"workflow.toolDisplayName.search": "Recherche effectuée sur le Web",
"workflow.toolDisplayName.searchAgent": "Agents recherchés",
"workflow.toolDisplayName.searchKnowledgeBase": "Base de connaissances consultée",
"workflow.toolDisplayName.searchLocalFiles": "Fichiers recherchés",
"workflow.toolDisplayName.searchSkill": "Compétences recherchées",
"workflow.toolDisplayName.searchUserMemory": "Mémoire consultée",
"workflow.toolDisplayName.showAgentMarketplace": "Équipe d'agents assemblée",
"workflow.toolDisplayName.solve": "Équation résolue",
"workflow.toolDisplayName.submitAgentPick": "Agents sélectionnés",
"workflow.toolDisplayName.updateAgent": "Agent mis à jour",
"workflow.toolDisplayName.updateDocument": "A mis à jour un document",
"workflow.toolDisplayName.updateIdentityMemory": "Mémoire mise à jour",
"workflow.toolDisplayName.updateLoadRule": "Règle de chargement mise à jour",
"workflow.toolDisplayName.updatePlan": "Plan mis à jour",
"workflow.toolDisplayName.updateTodos": "Tâches mises à jour",
"workflow.toolDisplayName.writeDocument": "Document rédigé",
"workflow.toolDisplayName.writeLocalFile": "A écrit un fichier",
"workflow.working": "En cours...",
"workingPanel.agentDocuments": "Agent Documents",
"workingPanel.documents.close": "Close",
"workingPanel.documents.discard": "Discard",
"workingPanel.documents.edit": "Edit",
"workingPanel.documents.error": "Failed to load document",
"workingPanel.documents.loading": "Loading document...",
"workingPanel.documents.preview": "Preview",
"workingPanel.documents.save": "Save",
"workingPanel.documents.saved": "All changes saved",
"workingPanel.documents.title": "Document",
"workingPanel.documents.unsaved": "Unsaved changes",
"workingPanel.files.copyAbsolutePath": "Copier le chemin absolu",
"workingPanel.files.copyRelativePath": "Copier le chemin relatif",
"workingPanel.files.count_one": "{{count}} fichier",
"workingPanel.files.count_other": "{{count}} fichiers",
"workingPanel.files.empty": "Aucun fichier dans cet espace de travail",
"workingPanel.files.open": "Ouvrir le fichier",
"workingPanel.files.refresh": "Actualiser",
"workingPanel.files.showInReview": "Afficher dans la révision",
"workingPanel.files.showInSystem": "Afficher dans le dossier",
"workingPanel.files.title": "Fichiers",
"workingPanel.localFile.binary": "Fichier binaire — aperçu indisponible",
"workingPanel.localFile.close": "Fermer",
"workingPanel.localFile.closeLeft": "Fermer à gauche",
"workingPanel.localFile.closeOther": "Fermer les autres",
"workingPanel.localFile.closeRight": "Fermer à droite",
"workingPanel.localFile.error": "Impossible de charger ce fichier",
"workingPanel.localFile.preview.raw": "Brut",
"workingPanel.localFile.preview.reload": "Recharger l'aperçu",
"workingPanel.localFile.preview.render": "Aperçu",
"workingPanel.localFile.preview.source": "Source",
"workingPanel.localFile.truncated": "Aperçu du fichier tronqué à {{limit}} caractères",
"workingPanel.progress": "Progress",
"workingPanel.progress.allCompleted": "All tasks completed",
"workingPanel.resources": "Resources",
"workingPanel.resources.deleteConfirm": "This action cannot be undone.",
"workingPanel.resources.deleteError": "Failed to delete document",
"workingPanel.resources.deleteSuccess": "Document deleted",
"workingPanel.resources.deleteTitle": "Delete document?",
"workingPanel.resources.deleteTitleMulti": "Supprimer {{count}} éléments ?",
"workingPanel.resources.empty": "Aucun document pour linstant. Les documents associés à cet agent apparaîtront ici.",
"workingPanel.resources.error": "Failed to load resources",
"workingPanel.resources.filter.documents": "Documents",
"workingPanel.resources.filter.skills": "Compétences",
"workingPanel.resources.filter.web": "Web",
"workingPanel.resources.loading": "Loading resources...",
"workingPanel.resources.previewError": "Failed to load preview",
"workingPanel.resources.previewLoading": "Loading preview...",
"workingPanel.resources.renameEmpty": "Title cannot be empty",
"workingPanel.resources.renameError": "Failed to rename document",
"workingPanel.resources.renameSuccess": "Document renamed",
"workingPanel.resources.tree.createError": "Échec de la création",
"workingPanel.resources.tree.deleteSelected": "Supprimer la sélection ({{count}})",
"workingPanel.resources.tree.moveError": "Échec du déplacement",
"workingPanel.resources.tree.newDocument": "Nouveau document",
"workingPanel.resources.tree.newFolder": "Nouveau dossier",
"workingPanel.resources.tree.parentMissing": "Le dossier parent est indisponible",
"workingPanel.resources.tree.rename": "Renommer",
"workingPanel.resources.tree.untitledDocument": "Document sans titre",
"workingPanel.resources.tree.untitledFolder": "Dossier sans titre",
"workingPanel.resources.updatedAt": "Mis à jour {{time}}",
"workingPanel.resources.viewMode.list": "Vue en liste",
"workingPanel.resources.viewMode.tree": "Vue arborescente",
"workingPanel.review.baseRef.default": "par défaut",
"workingPanel.review.baseRef.loading": "Chargement des branches…",
"workingPanel.review.baseRef.reset": "Réinitialiser à la branche par défaut",
"workingPanel.review.baseRef.unresolved": "Choisissez une branche de base",
"workingPanel.review.binary": "Fichier binaire — diff non affiché",
"workingPanel.review.collapseAll": "Tout réduire",
"workingPanel.review.copied": "Chemin copié",
"workingPanel.review.copyPath": "Copier le chemin du fichier",
"workingPanel.review.empty": "Aucun changement dans l'arborescence de travail",
"workingPanel.review.empty.branch": "Aucun changement par rapport à {{baseRef}}",
"workingPanel.review.empty.noBaseRef": "Impossible de déterminer la branche par défaut distante. Exécutez `git remote set-head origin --auto` dans votre terminal.",
"workingPanel.review.error": "Impossible de charger le diff de ce fichier",
"workingPanel.review.expandAll": "Tout développer",
"workingPanel.review.group.collapseDiffs": "Réduire toutes les différences dans ce groupe",
"workingPanel.review.group.expandDiffs": "Développer toutes les différences dans ce groupe",
"workingPanel.review.group.fileCount": "{{count}} fichiers",
"workingPanel.review.group.submoduleClean": "Aucun changement interne",
"workingPanel.review.mode.branch": "Branche",
"workingPanel.review.mode.unstaged": "Non indexé",
"workingPanel.review.more": "Plus d'options",
"workingPanel.review.refresh": "Actualiser",
"workingPanel.review.revealInTree": "Afficher dans l'arborescence",
"workingPanel.review.revert": "Ignorer les modifications",
"workingPanel.review.revert.confirm.cancel": "Annuler",
"workingPanel.review.revert.confirm.description": "Les modifications de l'arbre de travail de {{filePath}} seront définitivement ignorées. Les fichiers non suivis seront supprimés du disque.",
"workingPanel.review.revert.confirm.ok": "Ignorer",
"workingPanel.review.revert.confirm.title": "Ignorer les modifications de ce fichier ?",
"workingPanel.review.revert.failed": "Impossible d'ignorer les modifications : {{error}}",
"workingPanel.review.revert.success": "Modifications de {{filePath}} ignorées",
"workingPanel.review.textDiff.disable": "Désactiver la comparaison de texte en ligne",
"workingPanel.review.textDiff.enable": "Activer la comparaison de texte en ligne",
"workingPanel.review.title": "Revue",
"workingPanel.review.tooLarge": "Le fichier est trop volumineux pour un diff en ligne",
"workingPanel.review.unstaged": "Non indexé",
"workingPanel.review.viewMode.split": "Passer à la vue fractionnée",
"workingPanel.review.viewMode.unified": "Passer à la vue unifiée",
"workingPanel.review.wordWrap.disable": "Désactiver le retour à la ligne",
"workingPanel.review.wordWrap.enable": "Activer le retour à la ligne",
"workingPanel.skills.empty": "Aucune compétence trouvée dans ce projet",
"workingPanel.skills.section.agent": "Compétences de l'agent",
"workingPanel.skills.section.project": "Compétences du projet",
"workingPanel.skills.section.user": "Compétences de l'utilisateur",
"workingPanel.skills.title": "Compétences",
"workingPanel.space": "Espace",
"workingPanel.title": "Working Panel",
"you": "Vous",
"zenMode": "Mode Zen"
}