import{n as e}from"./rolldown-runtime-DkW27tQK.js";var t;function n(){return(n=e((()=>{t={capacityMeter:{workerSlots:`{used} sur {total} emplacements occupés`,unavailable:`Utilisation des emplacements indisponible`,execHost:`Codex exec`},common:{health:`Santé`,ok:`OK`,yes:`Oui`,no:`Non`,default:`Par défaut`,active:`Actif`,loading:`Chargement…`,gatewayStarting:`Démarrage du Gateway…`,refreshing:`Actualisation…`,offline:`Hors ligne`,connect:`Connecter`,connected:`Connecté`,refresh:`Actualiser`,retry:`Réessayer`,staleData:`Des données obsolètes sont affichées.`,reload:`Recharger`,reset:`Réinitialiser`,restore:`Restaurer`,unarchive:`Désarchiver`,undo:`Annuler`,probe:`Sonder`,call:`Appeler`,confirm:`Confirmer`,dontAskAgain:`Ne plus me demander`,cancel:`Annuler`,close:`Fermer`,previous:`Précédent`,next:`Prochaine`,continue:`Continuer`,back:`Retour`,create:`Créer`,copy:`Copier`,copied:`Copié !`,copyFailed:`Échec de la copie`,copyCode:`Copier le code`,copyTable:`Copier le tableau`,expandTable:`Développer le tableau`,expandedTable:`Tableau développé`,closeTable:`Fermer le tableau développé`,resizeSplitView:`Redimensionner la vue fractionnée`,delete:`Supprimer`,remove:`Supprimer`,dismiss:`Ignorer`,dismissAndDontShowAgain:`Ignorer et ne plus afficher`,unselect:`Désélectionner`,enabled:`Activé`,disabled:`Désactivé`,failed:`Échoué`,none:`aucun`,na:`n/d`,never:`never`,justNow:`à l'instant`,now:`maintenant`,unknown:`Inconnu`,configured:`Configuré`,running:`En cours d’exécution`,linked:`Lié`,mode:`Mode`,system:`Système`,light:`Léger`,dark:`Sombre`,baseUrl:`URL de base`,lastStart:`Dernier démarrage`,lastProbe:`Dernière sonde`,lastConnect:`Dernière connexion`,lastMessage:`Dernier message`,authAge:`Âge de l’authentification`,credential:`Identifiant`,audience:`Audience`,publicKey:`Clé publique`,probeOk:`Sonde réussie`,probeFailed:`Échec de la sonde`,reloadConfig:`Recharger la config`,loadConfig:`Charger la config`,loadApprovals:`Charger les approbations`,settingsSections:`Sections des paramètres`,version:`Version`,docs:`Documentation`,learnMore:`En savoir plus`,colorMode:`Mode de couleur`,colorModeOption:`Mode de couleur\xA0: {mode}`,search:`Rechercher`,save:`Enregistrer`,saving:`Enregistrement…`,saveAndPublish:`Enregistrer et publier`,importing:`Importation…`,importFromRelays:`Importer depuis les Relays`,showAdvanced:`Afficher les options avancées`,hideAdvanced:`Masquer les options avancées`,unsavedChanges:`Vous avez des modifications non enregistrées`,working:`Traitement…`,showQr:`Afficher le QR`,relink:`Relier à nouveau`,waitForScan:`Attendre le scan`,logout:`Se déconnecter`,skipToMainContent:`Accéder au contenu principal`},focus:{unsupported:`Cette vue ciblée n'est pas prise en charge.`},shortcutsOverlay:{title:`Raccourcis clavier`,sections:{general:`Général`,chat:`Discussion`,panels:`Panneaux`,sidebar:`Barre latérale`,imageViewer:`Visionneuse d'images`,approvals:`Approbations`},labels:{commandPalette:`Ouvrir la palette de commandes`,keyboardShortcuts:`Afficher les raccourcis clavier`,toggleSidebar:`Afficher/masquer la barre latérale`,debugOverlay:`Afficher/masquer la surcouche de débogage`,appearanceSettings:`Ouvrir les paramètres d'apparence`,startNewSession:`Démarrer une nouvelle session (depuis la page de nouvelle session)`,closeDialog:`Fermer la boîte de dialogue ou quitter les paramètres`,sendMessage:`Send message`,newline:`Insérer un saut de ligne`,steerImmediately:`Orienter la réponse active`,historyRecall:`Parcourir l'historique des messages envoyés`,transcriptSearch:`Rechercher dans la conversation`,clearReply:`Effacer la réponse`,stopResponse:`Arrêter la réponse active`,cancelDictation:`Annuler la dictée`,saveQueuedMessage:`Enregistrer le message en file d'attente`,toggleSessionSelect:`Sélectionner plusieurs sessions`,extendSessionSelect:`Étendre la sélection de sessions`,zoomIn:`Zoom avant`,zoomOut:`Zoom arrière`,zoomReset:`Réinitialiser le zoom`,terminalPanel:`Afficher/masquer le panneau du terminal`,workspaceFiles:`Afficher/masquer les fichiers de l'espace de travail`,approveOnce:`Approuver une fois`,approveAlways:`Always allow`,denyApproval:`Refuser l'approbation`}},optionCard:{recommended:`Recommandé`,skip:`Ignorer pour l'instant`},nativeLinkMenu:{label:`Actions de lien`,openInline:`Ouvrir dans la barre latérale`,openExternal:`Ouvrir dans le navigateur par défaut`,copy:`Copier le lien`},browserLinkPreferences:{openInControlUi:`Ouvrir les liens dans le navigateur du Control UI`},filePreview:{label:`Fichiers de support`,listLabel:`Fichiers`,searchPlaceholder:`Rechercher des fichiers…`,readOnly:`lecture seule`,emptyTitle:`Aucun fichier correspondant`,emptySubtitle:`Essayez un autre nom de fichier ou une recherche de contenu.`,copyFile:`Copier le fichier`,fileCount:`{count} fichiers`,filteredFileCount:`{count}/{total} fichiers`,noMatches:`Aucun fichier correspondant.`,navigate:`naviguer`,kind:{text:`Texte`,shell:`Shell`,file:`Fichier`}},mcpApp:{title:`Application MCP`,unavailable:`Application MCP indisponible : {error}`,errors:{gatewayUnavailable:`Gateway MCP App indisponible`,mountUnavailable:`Point de montage MCP App indisponible`,sandboxTimedOut:`Délai d'attente du sandbox MCP App dépassé`,sandboxUnavailable:`Sandbox MCP App indisponible`,initializationTimedOut:`Délai d'initialisation de MCP App dépassé`,requestFailed:`Échec de la requête`,invalidSandboxUrl:`L'URL du sandbox MCP App est invalide`}},githubPreview:{coAuthors:`Co-écrit par {logins}`,loading:`Chargement des détails GitHub…`,unavailable:`Aperçu GitHub indisponible`,states:{merged:`Fusionnée`,draft:`Brouillon`,open:`Ouverte`,closed:`Fermée`,notPlanned:`Non planifié`},file:`{count} fichier`,files:`{count} fichiers`,comment:`{count} commentaire`,comments:`{count} commentaires`,pullRequest:`pull request`,issue:`issue`,ariaLabel:`{state} {kind} {repo} #{number} : {title}, par {author}`},sessionHovercard:{ariaLabel:`Informations sur la session`,moreParticipants:`+{count}`,moreParticipantsLabel:`{count} participants supplémentaires`,projectLabel:`Projet`,workspaceLabel:`Espace de travail`,branchLabel:`Branche`,runsOn:`S'exécute sur {providerId} · {profileId}`,more:`+{count} de plus`,changedFile:`{count} fichier`,changedFiles:`{count} fichiers`,pullRequestLabel:`Pull request #{number}, {state}`,pullRequestAuthorLabel:`Ouverte par {login}`,states:{open:`Open`,draft:`Brouillon`,merged:`Fusionnée`,closed:`Fermée`},checks:{passing:`Vérifications CI réussies`,failing:`Échec des vérifications CI`,pending:`Vérifications CI en cours`}},sessionProgressCard:{title:`Progression`,composerTitle:`Progression de la tâche`,shortCount:`{completed} sur {total}`,noteLabel:`Note de progression`,dismiss:`Ignorer la carte de progression`,dismissFailed:`Impossible d'ignorer la carte de progression. Réessayez.`,widgetLabel:`Progression de la session`,widgetLoading:`Chargement de la progression de la session…`,widgetEmpty:`Aucune carte de progression pour le moment`,widgetUnavailable:`La progression de la session est indisponible.`,widgetAccessDenied:`Sélectionnez une session à laquelle vous avez accès ou modifiez le partage de cette session.`,countLabel:`{completed} sur {total} terminés`,activity:{updated:`Mis à jour {time}`,completed:`Terminé {time}`,failed:`Échec {time}`,stopped:`Arrêté {time}`},outcome:{completed:`Terminé`,failed:`Échoué`,stopped:`Arrêté`},stepLabel:`{step}, {status}`,status:{completed:`terminé`,failed:`échec`,inProgress:`en cours`,paused:`en pause`,pending:`en attente`,stopped:`arrêté`},receipt:{updating:`Mise à jour de la progression`,failed:`Échec de la mise à jour de la progression`,updated:`Progression mise à jour — {completed}/{total} · {current}`,noteUpdated:`Note de progression mise à jour`,cleared:`Progression effacée`}},channels:{lastError:`Dernière erreur`,refreshingStaleSnapshot:`Actualisation du statut du canal en arrière-plan ; affichage du dernier instantané réussi.`,hub:{connectedTitle:`Canaux connectés`,addTitle:`Ajouter un canal`,addSubtitle:`Choisissez un service et suivez la configuration guidée.`,updatedAgo:`Mis à jour {ago}`,noneConnected:`Aucun canal n’est encore connecté. Choisissez-en un ci-dessous pour commencer.`,partialSnapshot:`Certaines vérifications de canaux ne se sont pas terminées dans le délai imparti par l’interface.`,stateRunning:`En cours`,stateConfigured:`Configuré`,stateAttention:`Nécessite votre attention`,setUp:`Configurer`,guidedSetup:`Configuration guidée étape par étape`,openDetails:`Ouvrir les détails`,lastMessageAgo:`Dernier message {ago}`,browseAllTitle:`Plus de canaux…`,browseAllSubtitle:`Parcourez tous les canaux disponibles, y compris les plugins installables.`,runSetup:`Lancer la configuration`,adminRequired:`Consultation uniquement. La configuration des canaux nécessite un accès operator.admin.`,saveBeforeSetup:`Vous avez des modifications non enregistrées dans la configuration des canaux. Enregistrez-les ou rechargez-les avant de lancer la configuration guidée.`},pairing:{title:`Demandes d'accès aux MP`,subtitle:`Examinez les personnes qui attendent d'envoyer des messages directs aux canaux protégés par appairage.`,channelFilter:`Canal`,accountFilter:`Compte`,allChannels:`Tous les canaux`,allAccounts:`Tous les comptes`,approve:`Approuver`,dismiss:`Ignorer`,approveAria:`Approuver {sender} pour {channel}, compte {account}`,dismissAria:`Ignorer {sender} pour {channel}, compte {account}`,requested:`Demandé {ago}`,expires:`Expire {ago}`,senderDetails:`Détails de l'expéditeur`,missingPermission:`Cette connexion ne dispose pas de l'accès operator.pairing, les demandes de MP ne peuvent donc pas être examinées.`,noAccounts:`Aucun compte de canal configuré n'utilise l'appairage d'expéditeur de MP.`,noRequests:`Aucune demande d'accès aux MP en attente.`,noFilteredRequests:`Aucune demande en attente ne correspond à ces filtres.`,limits:`Les demandes expirent après {minutes} minutes. Chaque compte de canal peut contenir jusqu'à {count} demandes en attente.`,detailTitle:`Accès aux MP`,detailSubtitle:`Les personnes doivent être approuvées avant que leurs messages directs n'atteignent l'agent.`,pendingCount:`{count} en attente`,noPending:`Aucune demande en attente`,review:`Examiner les demandes`,approveDialogTitle:`Approuver l'accès aux messages privés`,dismissDialogTitle:`Ignorer la demande d'accès aux messages privés`,approveExplanation:`Ceci permet à l'expéditeur de parler à l'agent en messages directs. Cela n'accorde pas l'accès aux groupes.`,dismissExplanation:`Ceci supprime la demande actuelle mais ne bloque pas l'expéditeur. Il peut redemander l'accès plus tard.`,notifyRequester:`Notifier le demandeur après approbation`,makeCommandOwner:`Faire également de cet expéditeur le premier propriétaire de commandes`,commandOwnerHelp:`Les propriétaires de commandes peuvent exécuter des commandes privilégiées et approuver des actions dangereuses. Cette option n'est disponible que lorsqu'aucun propriétaire n'est configuré.`,commandOwnerNeedsAdmin:`Aucun propriétaire de commandes n'est configuré. Cette connexion nécessite operator.admin pour attribuer le premier propriétaire.`,approvedNotice:`Accès aux messages privés approuvé.`,approvedOwnerNotice:`Accès aux messages privés approuvé et le premier propriétaire de commandes a été configuré.`,approvedNotificationFailedNotice:`Accès aux messages privés approuvé, mais la notification au demandeur n'a pas pu être délivrée.`,approvedOwnerFailedNotice:`Accès aux messages privés approuvé, mais le premier propriétaire de commandes n'a pas pu être configuré.`,approvedFollowupsFailedNotice:`Accès aux messages privés approuvé, mais la notification au demandeur et la configuration du propriétaire de commandes ont toutes deux échoué.`,dismissedNotice:`Demande d'accès aux messages privés ignorée. L'expéditeur peut redemander l'accès.`},setup:{dialogLabel:`Configurer {channel}`,title:`Configurer {channel}`,genericTitle:`un canal`,subtitle:`Configuration guidée des canaux`,starting:`Démarrage de la configuration…`,working:`Traitement en cours…`,sessionExpired:`Cette session de configuration a expiré après le redémarrage du Gateway. Fermez cette boîte de dialogue, puis relancez la configuration du canal.`,continue:`Continuer`,finish:`Terminer`,copyText:`Copier`,openLink:`Ouvrir le lien`,viewDocs:`Voir la documentation`,doneTitle:`Canal configuré`,doneBody:`Configuration enregistrée. Le Gateway recharge automatiquement le canal ; consultez sa carte pour voir son statut en temps réel.`,doneNoChangesTitle:`Aucune modification apportée`,doneNoChangesBody:`La configuration s’est terminée sans configurer de canal. Rien n’a été enregistré.`,whatsappScanTitle:`Associez WhatsApp en scannant le code QR`,whatsappScanHelp:`Sur votre téléphone, ouvrez WhatsApp → Paramètres → Appareils connectés → Connecter un appareil, puis scannez ce code.`,whatsappQrLoading:`Génération du code QR…`,whatsappQrHint:`Cliquez sur Afficher le code QR pour générer un code d’association.`,whatsappQrAlt:`QR WhatsApp`,whatsappLinked:`WhatsApp est associé et prêt.`,regenerateQr:`Nouveau code QR`,linkLater:`Associer plus tard`},config:{schemaUnavailable:`Schéma indisponible. Utilisez le mode brut.`,channelSchemaUnavailable:`Schéma de configuration du canal indisponible.`,loadingSchema:`Chargement du schéma de configuration…`},generic:{subtitle:`État et configuration du canal.`},discord:{title:`Discord`,subtitle:`Statut du bot et configuration du canal.`},googleChat:{title:`Google Chat`,subtitle:`Statut du webhook de l'API Chat et configuration du canal.`},imessage:{title:`iMessage`,subtitle:`Statut du pont macOS et configuration du canal.`},signal:{title:`Signal`,subtitle:`Statut de signal-cli et configuration du canal.`},slack:{title:`Slack`,subtitle:`Statut du mode socket et configuration du canal.`},telegram:{title:`Telegram`,subtitle:`Statut du bot et configuration du canal.`},whatsapp:{title:`WhatsApp`,subtitle:`Associez WhatsApp Web et surveillez l'état de la connexion.`,phoneNumber:`Numéro de téléphone`,loggedOut:`Déconnexion effectuée.`,logoutConfirmTitle:`Se déconnecter du compte WhatsApp {accountId} ?`,logoutConfirmMessage:`La déconnexion du compte {accountId} arrête son écouteur et supprime ses identifiants enregistrés.`,logoutNotCleared:`Aucune session WhatsApp stockée n'a été effacée. Elle est peut-être déjà absente, ou son répertoire d'authentification nécessite un nettoyage manuel.`},gatewayUrlConfirmation:{title:`Changer l’URL du Gateway`,subtitle:`Cela reconnectera à un autre serveur Gateway`,warning:`Confirmez uniquement si vous faites confiance à cette URL. Des URL malveillantes peuvent compromettre votre système.`},nostr:{title:`Nostr`,subtitle:`Messages privés décentralisés via les relais Nostr (NIP-04).`,profile:`Profil`,editProfile:`Modifier le profil`,profilePicture:`Photo de profil`,noProfile:`Aucun profil défini.`,noProfileHint:`Cliquez sur "Modifier le profil" pour ajouter votre nom, votre bio et votre avatar.`,name:`Nom`,displayName:`Nom d’affichage`,about:`À propos`,advanced:`Avancé`,profilePicturePreview:`Aperçu de la photo de profil`,account:`Compte`,username:`Nom d’utilisateur`,usernameHelp:`Nom d’utilisateur court (par ex., satoshi)`,bio:`Bio`,bioPlaceholder:`Parlez de vous aux autres...`,bioHelp:`Une brève bio ou description`,displayNameHelp:`Votre nom d’affichage complet`,avatarUrl:`URL de l’avatar`,avatarHelp:`URL HTTPS vers votre photo de profil`,bannerUrl:`URL de la bannière`,bannerHelp:`URL HTTPS vers une image de bannière`,website:`Site web`,websiteHelp:`Votre site web personnel`,nip05Identifier:`Identifiant NIP-05`,nip05Help:`Identifiant vérifiable (par ex., you@domain.com)`,lightningAddress:`Adresse Lightning`,lightningHelp:`Adresse Lightning pour les pourboires (LUD-16)`,placeholders:{username:`satoshi`,displayName:`Satoshi Nakamoto`,avatarUrl:`https://example.com/avatar.jpg`,bannerUrl:`https://example.com/banner.jpg`,website:`https://example.com`,nip05:`you@example.com`,lightningAddress:`you@getalby.com`},notices:{timeout:`La requête a expiré après 30 secondes ; le serveur a peut-être tout de même appliqué la modification — vérifiez le profil avant de réessayer.`,operationFailed:`{prefix} : {error}`,updateFailed:`Échec de la mise à jour du profil`,updateFailedStatus:`Échec de la mise à jour du profil ({status})`,publishFailed:`Échec de la publication du profil sur tous les relais.`,published:`Profil publié sur les relais.`,importFailed:`Échec de l'importation du profil`,importFailedStatus:`Échec de l'importation du profil ({status})`,importedFromRelays:`Profil importé depuis les relais. Vérifiez et publiez.`,imported:`Profil importé. Vérifiez et publiez.`}}},lazyView:{errorTitle:`Échec du chargement du panneau`,genericSubtitle:`Une erreur s’est produite lors du chargement de ce panneau.`,staleTitle:`Une nouvelle version est disponible`,staleSubtitle:`OpenClaw a été mis à jour en arrière-plan. Rechargez la page pour obtenir le panneau le plus récent.`,reloading:`Rechargement…`,retry:`Réessayer`,stylesFailed:`Le chargement des styles a échoué, la page peut donc paraître dégradée.`},updates:{adminRequired:`Un accès administrateur est requis pour modifier les paramètres de mise à jour ou lancer une mise à jour.`,campaign:{countdown:`Mise à jour dans {time}`,waitingForIdle:`En attente de la fin des tâches actives · mise à jour forcée dans {time}`,held:`Mise à jour suspendue · reprise dans {time}`,applying:`Application de la mise à jour…`},holdOneHour:`Suspendre 1 h`,reviewUpdate:`Examiner la mise à jour`,confirm:{message:`Installe la mise à jour disponible sur le Gateway connecté et le redémarre.`,macMessage:`Transmet cette mise à jour à l’application Mac OpenClaw, qui l’installe et redémarre le Gateway qu’elle gère.`,impact:`Les sessions en cours sont interrompues et ce Control UI se déconnecte jusqu’au retour du Gateway.`,versions:`Installée {installed} · Disponible {available}`,versionsBehind:`Installée {installed} · {available}`,action:`Mettre à jour et redémarrer`,macAction:`Mettre à jour l’application Mac et redémarrer`},target:{version:`v{version}`,commitBehind:`{count} commit de retard`,commitsBehind:`{count} commits de retard`},sidebar:{campaignTarget:`{status} · {target}`,updating:`Mise à jour du Gateway…`,availableTitle:`Mise à jour disponible`,availableSummary:`Une révision plus récente est prête.`,blockedTitle:`Mise à jour bloquée`,blockedSummary:`La révision sélectionnée n'a pas pu être appliquée à ce checkout.`,blockedWaiting:`Bloqué · en attente d'activité en cours · {target}`,waitingForIdle:`En attente d'activité en cours`},dialog:{installing:`Installation de la mise à jour sur le Gateway. Il redémarre une fois l'installation terminée.`,restarting:`Le Gateway redémarre. Cette page se déconnecte et se reconnecte automatiquement.`,notStarted:"La demande de mise à jour est restée sans réponse. Réessayez ou exécutez `openclaw update` dans le terminal."},channel:{stable:`Stable`,beta:`Bêta`,dev:`Dev`,extendedStable:`Stable étendue`},installKind:{package:`Package`,git:`Git checkout`,unknown:`Inconnu`},page:{intro:`Gérez le canal de version et la politique de mise à jour du Gateway connecté.`,buildTitle:`Build actuel`,gatewayVersion:`Version du Gateway`,controlUiCommit:`Commit de Control UI`,builtAt:`Build`,installedAt:`Installés`,installedAtUnknown:`Inconnu · enregistré après la prochaine mise à jour réussie`,lastCommitAt:`Dernier commit`,installKind:`Type d'installation`,policyTitle:`Politique de mise à jour`,channel:`Canal de version`,channelDescription:`Choisissez la piste de version OpenClaw suivie par ce Gateway.`,automaticUpdates:`Mises à jour automatiques`,automaticUpdatesDescription:`Planifiez automatiquement les mises à jour disponibles. Les mises à jour dev automatiques s'appliquent aux git checkouts.`,devPackageAutomaticHint:`Les mises à jour dev automatiques nécessitent une installation depuis la source (git). Cette installation est une installation par package — utilisez stable ou beta pour les mises à jour automatiques.`,extendedStableAutomaticHint:`Le canal extended stable signale les versions disponibles mais ne les installe jamais automatiquement.`,statusTitle:`État de la mise à jour`,scheduleStatus:`Statut`,commits:`Commits`,available:`Mise à jour disponible {target}`,upToDate:`À jour`,statusUnavailable:`État de la mise à jour indisponible`,gitCommitAhead:`{count} commit en avance sur l'upstream suivi`,gitCommitsAhead:`{count} commits en avance sur l'upstream suivi`,gitDiverged:`Divergé · {ahead} en avance, {behind} en retard`,gitFetchFailed:`Impossible de récupérer l'upstream suivi`,gitNoUpstream:`Aucun upstream suivi n'est configuré`,gitComparisonFailed:`Impossible de comparer ce checkout avec son upstream suivi`,updateNow:`Mettre à jour maintenant`,updateNowDescription:`Installer la mise à jour disponible et redémarrer le Gateway.`,latestAttempt:`Dernière tentative de mise à jour`,attemptedAt:`Tentée`,attemptTarget:`Cible`,installedIdentity:`Installés`,attemptInstallKind:`Type d'installation de la tentative`,attemptReason:`Code de motif`,failedStep:`Détails de l'échec`,viewDetails:`Voir les détails`,recoveryActions:`Récupération`,checkStatus:`Vérifier l'état`,retryUpdate:`Réessayer la mise à jour`,troubleshoot:`Dépanner les mises à jour`,cliFallback:`Solution de repli CLI`,showCliFallback:`Afficher les commandes du terminal`},coalescedRestart:`Mise à jour installée. Un redémarrage du gateway est déjà en cours ; l'état sera actualisé après la reconnexion.`,error:`Erreur de mise à jour : {error}`,status:`Mise à jour {status} : {reason}. {guidance}`,verificationFailed:`Mise à jour installée mais la version en cours d'exécution n'a pas changé — le redémarrage a peut-être été bloqué.`,verificationFailedWithVersions:`Mise à jour installée mais la version en cours d'exécution n'a pas changé — le redémarrage a peut-être été bloqué. Attendue v{expectedVersion}, en cours v{actualVersion}.`,verificationFailedWithIdentity:`Mise à jour terminée, mais l'installation en cours d'exécution ne correspond pas à la révision attendue. Attendu {expected}, en cours {actual}.`,handoffTimeout:"Le transfert de mise à jour a commencé, mais son achèvement n'a pas été signalé après la reconnexion. Exécutez `openclaw update status` pour le résultat final.",outcomeUnknown:"La demande de mise à jour a peut-être été acceptée, mais le Gateway n'a pas signalé de résultat final après la reconnexion. Exécutez `openclaw update status` avant de réessayer.",failureReasons:{dirty:`Validez ou remisez les modifications, puis réessayez.`,noUpstream:`Définissez une branche upstream, puis réessayez.`,notGitInstall:"Ce n'est pas un checkout git. Exécutez `openclaw update` depuis le CLI pour une réinstallation globale.",notOpenclawRoot:`Exécutez la mise à jour depuis un checkout OpenClaw ou utilisez la voie de réinstallation globale du CLI.`,depsInstallFailed:`L'installation des dépendances a échoué. Corrigez l'erreur d'installation et réessayez.`,buildFailed:`La compilation a échoué. Corrigez l'erreur de compilation et réessayez.`,buildDirty:`La build de la révision sélectionnée a modifié des fichiers de checkout. Réessayez avec une révision qui inclut ses artefacts générés.`,uiBuildFailed:`La reconstruction du control UI a échoué. Corrigez l'erreur de build de l'UI et réessayez.`,globalInstallFailed:`L'installation du package global n'a pas été vérifiée sur le disque. Réessayez ou réinstallez depuis la CLI.`,restartDisabled:`La mise à jour n'a pas été appliquée car les redémarrages du gateway sont désactivés. Activez les redémarrages dans la configuration, puis réessayez.`,restartUnavailable:`Cette installation globale ne peut pas être remplacée en toute sécurité tant que les redémarrages sont désactivés et qu'aucun superviseur n'est présent.`,restartUnhealthy:`Le processus de remplacement n'est jamais devenu sain. Le processus précédent est resté actif pour vous permettre de récupérer.`,restartRevisionMismatch:`Le Gateway redémarré exécute une révision différente. Vérifiez la racine d'installation du service et réessayez.`,restartRevisionUnavailable:`Le Gateway redémarré n'a pas pu signaler sa révision. Vérifiez la racine d'installation du service et les journaux avant de réessayer.`,alreadyCurrent:`Ce checkout est déjà à la révision de son upstream suivi.`,managedServiceHandoffAlreadyRunning:`Une autre mise à jour gérée est déjà en cours. Attendez qu'elle se termine, puis actualisez l'état de la mise à jour.`,doctorFailed:"La réparation Doctor a échoué. Exécutez `openclaw doctor --non-interactive` et réessayez.",managedServiceHandoffFailed:"L'assistant de mise à jour s'est arrêté avant la fin. Exécutez `openclaw update` dans le terminal pour en connaître la raison.",managedServiceHandoffSpawnFailed:"Le Gateway n'a pas pu démarrer l'assistant de mise à jour. Exécutez plutôt `openclaw update` dans le terminal.",managedServiceHandoffParentTimeout:"Le Gateway est resté actif trop longtemps pour l'assistant de mise à jour. Relancez la mise à jour ou exécutez `openclaw update`.",default:`Consultez les journaux du gateway pour connaître l'échec exact et réessayez une fois la cause corrigée.`},failedAtStep:`La mise à jour a échoué à l'étape {step} : {cause}.`,succeededVersion:`Gateway mis à jour vers v{version}.`,succeededCommit:`Gateway mis à jour · désormais sur {sha}.`,succeeded:`Gateway mis à jour et redémarré.`},devices:{readOnly:{pairingRequired:`Consultation uniquement. Les modifications d'appareils nécessitent un accès operator.pairing.`,adminRequired:`Consultation uniquement. Les approbations d'exécution et les liaisons de nœud nécessitent un accès operator.admin.`,pairingAndAdminRequired:`Consultation uniquement. Les modifications d'appareils nécessitent operator.pairing ; les approbations d'exécution et les liaisons de nœud nécessitent operator.admin.`},pairing:{button:`Associer un appareil`,adminRequired:`Un accès administrateur est requis pour créer des codes de configuration.`,title:`Associer un appareil`,subtitle:`Créez une configuration sécurisée pour une application mobile ou un hôte de nœud.`,noApp:`Vous n'avez pas encore l'application ?`,getApps:`Obtenir les applications`,generating:`Création d’un code de configuration sécurisé…`,accessTitle:`Type de configuration`,fullAccess:`Accès complet (recommandé)`,fullAccessHint:`Capacités de l'appareil ainsi que les contrôles complets du Gateway, y compris les paramètres et les mises à niveau.`,limitedAccess:`Accès limité`,limitedAccessHint:`Capacités de l'appareil, chat et approbations sans contrôles administratifs.`,nodeAccess:`Hôte de nœud`,nodeAccessHint:`Connectez un ordinateur comme hôte de commandes et de capacités.`,generateCode:`Créer un code de configuration`,transportLimitedTitle:`Limité pour la sécurité du réseau`,transportLimitedHint:`Cette URL du Gateway utilise le protocole ws:// en texte clair. Utilisez wss:// ou Tailscale Serve, puis créez un nouveau code pour bénéficier d’un accès complet.`,failed:`Impossible de créer un code de configuration.`,statusFailed:`Impossible de vérifier si l'appairage est terminé.`,loadFailed:`Impossible de charger la boîte de dialogue d'appairage. Vérifiez votre connexion et réessayez.`,qrAlt:`Code QR d’association OpenClaw mobile`,qrUnavailable:`Code QR indisponible. Copiez plutôt le code de configuration.`,copySetupCode:`Copier le code de configuration`,nodeExpiresIn:`Ce lien de configuration expire dans {time}.`,nodeExpired:`Ce lien de configuration a expiré. Créez-en un nouveau.`,newCode:`Nouveau code`,showSetupCode:`Afficher le code de configuration`,pending:`Demandes d’appareils en attente d’examen : {count}`,review:`Vérification`,waiting:`Les applications mobiles officielles OpenClaw se connectent automatiquement après la numérisation.`,pairedTitle:`Appareil appairé`,deliveryUncertainTitle:`La transmission de l'appairage n'a pas pu être confirmée`,deliveryUncertainHint:`Le code de configuration est retiré, mais l'appareil n'a peut-être pas reçu son identifiant. Consultez Gérer les appareils, supprimez l'appareil si nécessaire, puis créez un nouveau code.`,fullAccessSummary:`Accès complet`,nodeAccessSummary:`Accès de nœud`,done:`Terminé`,expiredTitle:`Code de configuration expiré`,generateNewCode:`Générer un nouveau code`,nodeWaiting:`Exécutez la commande sur l'appareil, puis examinez sa demande d'appairage ici.`,help:`Aide à l’association`,helpNewTab:`Aide à l'appairage (s'ouvre dans un nouvel onglet)`,manageDevices:`Gérer les appareils`},binding:{loadConfigHint:`Chargez la config pour modifier les bindings.`,formModeHint:`Passez l’onglet Config en mode Form pour modifier les bindings ici.`,execNodeBinding:`Binding du nœud d’exécution`,execNodeBindingSubtitle:`Épinglez les agents à un nœud spécifique lors de l’utilisation de exec host=node.`,defaultBinding:`Binding par défaut`,defaultBindingHint:`Utilisé lorsque les agents ne remplacent pas un binding de nœud.`,node:`Nœud`,anyNode:`N'importe quel nœud`,noNodes:`Aucun nœud avec system.run disponible.`,noAgents:`Aucun agent trouvé.`,defaultAgent:`agent par défaut`,agent:`agent`,usesDefault:`utilise la valeur par défaut ({node})`,override:`remplacement : {node}`,binding:`Liaison`,useDefault:`Utiliser la valeur par défaut`,any:`tout`},inventory:{title:`Appareils`,summaryConnected:`{connected} sur {total} connectés`,summaryPending:`{count} en attente d’approbation`,cleanupStale:`Nettoyer {count} obsolètes`,pendingApproval:`En attente d'approbation`,empty:`Aucun appareil appairé.`,connectedWithoutPairing:`Connecté sans appairage`,olderPairing:`{count} appairage plus ancien de {name}`,olderPairings:`{count} appairages plus anciens de {name}`,autoPaired:`appairé automatiquement`,versionDrift:`écart de version`,versionDriftTitle:`Appareil {nodeVersion} ; Gateway {gatewayVersion}. Mettez à jour le composant le plus ancien pour aligner le parc.`,workerVersion:`Worker {version}`,workerMissing:`worker manquant`,workerMissingTitle:`Le bundle worker géré par le Gateway est manquant. Démarrez une nouvelle session sur cet appareil pour le réinstaller.`,manualWake:`réveil manuel requis`,manualWakeTitle:`Le Gateway ne peut pas réveiller un appareil Windows hors ligne. Démarrez la machine ou rétablissez sa connexion réseau.`,approvalNeeded:`approbation requise`,inputAgo:`saisie il y a {time}`,seen:`vu {time}`,approved:`approuvé {time}`,details:`Détails`,deviceId:`ID de l'appareil : {id}`,remoteIp:`IP distante : {ip}`,scopes:`portées : {scopes}`,tokens:`Jetons`,capabilities:`Capacités`,commands:`Commandes`,offline:`hors ligne`,approve:`Approuver`,reject:`Rejeter`,remove:`Supprimer`,removeName:`Supprimer {name}`,removePromptTitle:`Supprimer {name} ?`,removePromptBody:`Cet appareil devra être appairé à nouveau avant de pouvoir se reconnecter.`,removeStalePromptTitle:`Supprimer {count} appairages obsolètes ?`,removeStalePromptTitleOne:`Supprimer 1 appairage obsolète ?`,removeStalePromptBody:`Les clients concernés se réappaireront silencieusement lors de leur prochaine connexion.`,rejectDevicePromptTitle:`Rejeter cette demande d'appairage d'appareil ?`,rejectNodePromptTitle:`Rejeter cette demande d'appairage de nœud ?`,rejectPromptBody:`Le client doit envoyer une nouvelle demande d'appairage avant de pouvoir se connecter.`,revokePromptTitle:`Révoquer le jeton {role} ?`,revokePromptBody:`Ce jeton cesse de fonctionner immédiatement et ne peut pas être restauré.`,rotatePromptTitle:`Nouveau jeton {role}`,rotatePromptBody:`Copiez ce jeton maintenant et conservez-le en lieu sûr. Il n'est affiché qu'une seule fois et ne peut pas être récupéré.`,rotateAcknowledge:`J'ai enregistré ce jeton`,rotateDismissHint:`Cette boîte de dialogue reste ouverte jusqu'à ce que vous confirmiez l'enregistrement du jeton.`,rotateWithheldTitle:`Jeton renouvelé · {device}`,rotateWithheldNext:`Il se reconnectera automatiquement avec le nouveau jeton — rien d'autre à faire.`,rotateWithheldException:`S'il ne se reconnecte pas de lui-même, associez-le à nouveau.`,rotateWithheldNote:`Pour des raisons de sécurité, le nouveau jeton n'est révélé que sur l'appareil lui-même.`,gateway:`gateway`,unpaired:`non appairé`,unknownClient:`client inconnu`,revoked:`révoqué`,active:`actif`,rotate:`Renouveler`,revoke:`Révoquer`,none:`aucun`,rolesAndScopes:`rôles : {roles} · portées : {scopes}`,scopeUpgrade:`l'élévation de portée nécessite une approbation`,roleUpgrade:`l'élévation de rôle nécessite une approbation`,reapproval:`les détails de reconnexion ont changé ; approbation requise`,newPairing:`nouvelle demande d'appairage d'appareil`,repair:`réappairer`,requestedAt:`{note} · demandé {time}`,requestedAccess:`demandé : {access}`,approvedAccess:`approuvé maintenant : {access}`},execApprovals:{title:`Approbations d'exécution`,subtitlePrefix:`Liste d'autorisation et politique d'approbation pour`,loadHint:`Chargez les approbations d'exécution pour modifier les listes d'autorisation.`,hostNativePolicy:`Politique native de l'hôte`,hostNativeHint:`Lecture seule ici. Modifiez depuis l'application compagnon ou la CLI.`,native:`Natif`,defaultAction:`Action par défaut`,rule:`{count} règle`,rules:`{count} règles`,allShells:`tous les shells`,off:`désactivé`,on:`activé`,target:`Cible`,targetHint:`Gateway modifie les approbations locales ; le nœud modifie le nœud sélectionné.`,host:`Hôte`,gateway:`Connexion`,node:`Nœud`,selectNode:`Sélectionner un nœud`,noNodes:`Aucun nœud n'annonce encore d'approbations d'exécution.`,scope:`Portée`,defaults:`Valeurs par défaut`,security:`Security`,defaultSecurity:`Mode de sécurité par défaut.`,defaultValue:`Par défaut : {value}.`,mode:`Mode`,useDefaultValue:`Utiliser la valeur par défaut ({value})`,ask:`Demander`,defaultPrompt:`Politique d'invite par défaut.`,askFallback:`Repli sur demande`,promptUnavailable:`Appliqué lorsque l'invite de l'interface est indisponible.`,fallback:`Repli`,autoAllowSkills:`Autoriser automatiquement les CLI Skills`,autoAllowSkillsHint:`Autoriser les exécutables Skills listés par le Gateway.`,usingDefault:`Utilisation de la valeur par défaut ({value}).`,override:`Remplacer ({value}).`,useDefault:`Utiliser la valeur par défaut`,allowlist:`Liste d'autorisation`,allowlistHint:`Motifs glob insensibles à la casse.`,addPattern:`Ajouter un motif`,emptyAllowlist:`Aucune entrée dans la liste d'autorisation.`,newPattern:`Nouveau motif`,lastUsed:`Dernière utilisation : {time}`,pattern:`Motif`,remove:`Supprimer`,options:{deny:`Deny`,allowlist:`Liste d'autorisation`,full:`Complet`,off:`Désactivée`,onMiss:`En cas d'échec`,always:`Toujours`}}},worktrees:{adminRequired:`Consultation uniquement. Les modifications de worktree nécessitent un accès operator.admin.`,newWorktree:`Nouveau worktree`,ownerManual:`Manuel`,ownerSession:`Session`,ownerWorkboard:`Workboard`,title:`Worktrees gérés`,subtitle:`Checkouts de dépôt isolés appartenant à OpenClaw.`,cleanNow:`Nettoyer maintenant`,name:`Nom`,repo:`Dépôt`,empty:`Aucun worktree géré.`,restorable:`Restaurable`,restore:`Restaurer`,confirmDelete:`Créer un instantané et supprimer {name} ?`,confirmForceDelete:`Échec de la création de l’instantané : {error} Supprimer sans instantané ?`},agentChip:{menuLabel:`Menu de l’agent`,agents:`Agents`,switchAgent:`Changer d'agent`,working:`Traitement en cours…`,ready:`Prêt à discuter`,whatCanAgentDo:`Que peut faire {name} ?`,help:`Aide`,getHelp:`Obtenir de l’aide`,getApps:`Obtenir les applications`,discord:`Communauté Discord`,viewChangelog:`Voir le journal des modifications`,agentSettings:`Paramètres de l’agent`},agentScope:{label:`Portée de l’agent`,allAgents:`Tous les agents`},newSession:{title:`Nouvelle session`,hint:`Choisissez où cette session travaille, puis indiquez ce qu'elle doit faire.`,agent:`Agent`,agents:`Agents`,where:`Où`,environments:`Environnements`,gateway:`Gateway · local`,gatewayNamed:`Gateway · {name}`,cloudWorker:`Cloud · {profile}`,cloudWorkerMachine:`{profile} · {machine}`,cloudWorkerProvider:`Fournisseur de worker cloud : {provider}`,cloudRequiresWorktree:`Le cloud nécessite un checkout Git`,cloudRuntimeUnsupported:`Le runtime {runtime} ne prend pas en charge les workers cloud.`,cloudProfileRuntimeUnsupported:`Le runtime {runtime} ne peut pas utiliser ce worker cloud. Choisissez un worker cloud compatible ou exécutez localement.`,deviceRuntimeUnsupported:`Ce runtime ne prend pas en charge les appareils appairés`,cloudRecoveryUnavailable:`Les workers cloud sont indisponibles car cette connexion ne prend pas en charge la récupération des tâches. Reconnectez-vous ou mettez à jour le Gateway.`,placementStartFailed:`La session a été créée, mais le démarrage du runner a échoué : {error}`,placementSyncsFolder:`Synchronise {folder} vers le runner sélectionné`,folder:`Dossier`,folderPlaceholder:`Espace de travail de l’agent`,yourDevices:`Vos appareils`,autoDevice:`Automatique`,autoDeviceSub:`Appareil le moins occupé`,autoDeviceSubEligible:`Premier appareil éligible`,noSessionHosts:`Aucun hôte de session n'est associé. Connectez une machine avec l'hébergement de session activé.`,neverConnected:`Jamais connecté`,offlineFor:`Hors ligne depuis {duration}`,lastSeen:`Vu pour la dernière fois {time}`,deviceUnavailable:`Appareil indisponible. Reconnectez-le et réessayez.`,sessionHostingDisabled:`L'hébergement de session est désactivé. Exécutez openclaw connect --service --session-host sur l'appareil.`,deviceCapacityUnavailable:`La capacité des workers est indisponible. Redémarrez l'hôte de session de l'appareil et réessayez.`,deviceNoSlots:`Aucun emplacement de worker n'est disponible. Attendez un emplacement ou choisissez un autre appareil.`,nodeUpdateRequired:`Mise à jour requise : exécutez {updateCommand}, puis reconnectez-vous. Pour un nœud sans interface, exécutez {restartCommand}.`,capabilityCamera:`Caméra`,capabilityLocation:`Localisation`,capabilityTalk:`Discussion`,capabilityScreenCapture:`Capture d'écran`,capabilityCanvas:`Canvas`,capabilityVoice:`Voix`,environmentDisposable:`Jetable`,environmentPersistent:`Persistant`,projects:`Projets`,projectsAdminHint:`Les administrateurs peuvent enregistrer des projets depuis Parcourir les dossiers`,projectSearchPlaceholder:`Rechercher des projets ou coller une URL Git`,githubProjects:`GitHub`,githubTokenHint:`Aucun identifiant GitHub Control UI ni jeton d'environnement Gateway partagé n'est configuré ; résultats GitHub publics uniquement.`,cloneProject:`Cloner`,registerProject:`Enregistrer comme projet`,cloud:`Cloud`,machine:`Machine`,machineShape:`{cpu} vCPU · {memory} Go`,machineCpu:`{cpu} vCPU`,machineMemory:`{memory} Go`,machineDefault:`Par défaut`,recentFolders:`Récentes`,runsOn:`S'exécute sur {place}`,browse:`Parcourir les dossiers`,browseRequiresAdmin:`Pour naviguer en dehors des espaces de travail de l'agent, ouvrez Inbox, sélectionnez Accès limité, demandez les droits admin, puis approuvez dans Appareils.`,connectMachine:`Connecter une machine…`,connectMachineTitle:`Connecter une machine`,connectMachineDescription:`Exécutez cette commande sur la machine que vous souhaitez connecter.`,connectMachineGenerating:`Création d'un lien de connexion sécurisé…`,connectMachineFailed:`Impossible de créer un lien de connexion.`,connectMachineMissingUrl:`Le Gateway n'a pas renvoyé d'URL de connexion. Mettez-le à jour et réessayez.`,connectMachineUnavailable:`Reconnectez-vous au Gateway et réessayez.`,connectMachineTeamHint:`Son exécution associe cette machine comme appareil de votre équipe.`,connectMachineSingleUse:`Ce lien est à usage unique et expire bientôt.`,connectMachineSingleUseExpires:`Ce lien est à usage unique et expire à {time}.`,connectMachineFreshCode:`Générer un nouveau code`,connectMachineRefreshing:`Génération…`,connectMachineManageDevices:`Gérer les appareils`,browserUp:`Dossier parent`,browserUse:`Utiliser ce dossier`,browserEmpty:`Aucun sous-dossier`,browserLoadFailed:`Impossible de répertorier ce dossier.`,hiddenFolder:`Dossier masqué`,worktree:`Worktree`,checkingGit:`Vérification de la disponibilité de Git…`,gitCheckUnavailable:`Impossible de vérifier Git pour ce dossier. Sélectionnez-le à nouveau pour réessayer.`,worktreeUnavailable:`L’espace de travail de l’agent n’est pas un checkout git`,branches:`Branches`,baseBranch:`Branche de base`,worktreeName:`Nom du worktree`,checkoutName:`Nom du checkout`,worktreeNamePlaceholder:`auto`,worktreeNameInvalid:`Utilisez des lettres minuscules, des chiffres et des tirets.`,incognito:`Navigation privée`,incognitoDescription:`Conserver cette session uniquement jusqu'au redémarrage du Gateway`,draft:`Brouillon`,draftDescription:`Garder cette session privée jusqu'à sa publication`,messagePlaceholder:`Sur quoi cette session doit-elle travailler ?`,dictate:`Dicter`,readingAttachment:`Lecture de la pièce jointe`,start:`Démarrer la session`,startInTerminal:`Démarrer dans le terminal`,starting:`Démarrage…`,createFailed:`Impossible de créer la session.`,createOutcomeUnknown:`Le Gateway a changé pendant le démarrage de cette session. Vérifiez les sessions récentes avant de relancer cette tâche.`,cliAgentsGroup:`Agents CLI`,cliAgentsUnavailable:`Agents CLI indisponibles`,placementSetupInterrupted:`La configuration du runner de cette session a été interrompue. Vérifiez les sessions récentes avant de relancer cette tâche.`,catalogUnavailable:`Cette cible de session est indisponible.`,restoringPreferences:`Restauration de votre dernière configuration de session…`,checkingPlace:`Vérification du lieu sélectionné…`,placementNotReady:`Le runner sélectionné n'est pas encore prêt. Réessayez dans un instant.`,agentsUnavailable:`Aucun agent n'est encore disponible sur ce Gateway.`,nodeUnavailable:`L'appareil sélectionné est indisponible. Choisissez un autre emplacement.`,terminalNeedsFolder:`Choisissez un dossier avant de démarrer dans un terminal.`,terminalCapabilityOverridesUnsupported:`Effacez les remplacements de capacités de session avant de démarrer dans un terminal.`,what:`Quoi`,detail:`Détail`,local:`Local`,runsDirectly:`S'exécute directement`,runsDirectlyNote:`S'exécute directement dans le dossier sélectionné.`},dashboardsPage:{emptyTitle:`Aucun tableau de bord pour l'instant`,emptyDescription:`Ouvrez une session et basculez sur la vue Dashboard pour l'ajouter ici.`,loadError:`Impossible de charger les tableaux de bord : {error}`,openFocusMode:`Ouvrir le tableau de bord en mode focus`},dashboardDocument:{close:`Fermer le tableau de bord`,missingSession:`Aucune session de tableau de bord n'a été spécifiée.`,notFound:`Cette session est introuvable.`,unavailable:`Les tableaux de bord de session sont indisponibles pour cette connexion.`,loadFailed:`Impossible de charger ce tableau de bord : {error}. Vérifiez la connexion au Gateway et réessayez.`},sessionsView:{subagentPrefix:`Sous-agent :`,automationPrefix:`Automatisation :`,actionRequiresConnection:`Connectez-vous au Gateway pour modifier les sessions.`,actionUnavailable:`Ce Gateway ne prend pas en charge cette action de session.`,actionRequiresRead:`Cette action nécessite l’accès operator.read.`,actionRequiresWrite:`Cette action nécessite l’accès operator.write.`,actionRequiresAdmin:`Cette action nécessite l’accès operator.admin.`,deletePreservedReasons:{"owner-mismatch":`détenue ailleurs`,busy:`exécution en direct ou nettoyage actif`,"foreign-lock":`verrou Git externe`,"snapshot-failed":`OpenClaw n'a pas pu créer d'instantané de sécurité`,"cleanup-failed":`échec du nettoyage`},draftCleanupFailed:`Session supprimée ; le brouillon du navigateur subsiste. Effacez les données du site.`,title:`Sessions`,subtitle:`Parcourez les sessions et gérez les substitutions par session.`,store:`Stockage : {path}`,active:`Actif`,limit:`Limite`,createdBy:`Créé par {name}`,ownedBy:`Détenu par {name}`,archivedBy:`Archivé par {name}`,viewingNow:`consulte actuellement`,owners:`Propriétaires`,allOwners:`Tous les propriétaires`,involvingMe:`Me concernant`,ownerYou:`{name} (Vous)`,withParticipant:`avec {name}`,withMoreParticipants:`+{count} de plus`,assignToMe:`M'attribuer`,assignTo:`Attribuer à…`,filterControls:`Filtres de session`,filters:`Filtres`,sourceFilters:`Filtres de source de session`,global:`Global`,unknown:`Inconnu`,sessionState:`État de la session`,all:`Tous`,sessionArchived:`Session archivée`,sessionsArchived:`{count} sessions archivées`,deleteAllArchived:`Supprimer tout ce qui est archivé…`,deleteAllArchivedConfirm:`Supprimer {count} sessions archivées et leurs transcriptions ? Tous les workers attachés seront d'abord arrêtés en toute sécurité.`,activeTooltip:`Charge les sessions mises à jour au cours des {count} dernières minutes.`,limitTooltip:`Nombre maximal de sessions à charger.`,globalTooltip:`Inclure les sessions globales.`,unknownTooltip:`Inclure les sessions inconnues.`,archivedOnlyTooltip:`Afficher uniquement les sessions archivées.`,minutesPlaceholder:`min`,searchPlaceholder:`Filtrer par clé, agent, libellé, type…`,transcriptSearchTitle:`Rechercher dans les transcriptions`,transcriptSearchDescription:`Trouvez des mots ou des phrases exacts dans les messages de l'utilisateur et de l'assistant à travers les sessions de l'agent par défaut.`,transcriptSearchInputLabel:`Rechercher dans les transcriptions de session`,transcriptSearchPlaceholder:`Rechercher des mots ou expressions exacts…`,transcriptSearchAction:`Rechercher`,transcriptSearchClear:`Effacer`,transcriptSearchRetry:`Réessayer`,transcriptSearchSearching:`Recherche dans les transcriptions…`,transcriptSearchUnavailable:`La recherche dans les transcriptions nécessite une version plus récente de Gateway.`,transcriptSearchError:`Échec de la recherche dans les transcriptions`,transcriptSearchIndexing:`L’index des transcriptions est encore en cours de mise à jour. Réessayez pour inclure les messages récents.`,transcriptSearchEmpty:`Aucun message de transcription ne correspond à cette recherche.`,transcriptSearchMatches:`Correspondances dans les transcriptions : {count}`,transcriptSearchTruncated:`Affichage des 25 premières correspondances.`,user:`Utilisateur`,assistant:`Assistant`,selected:`{count} sélectionné(s)`,deleteSelected:`Supprimer`,selectAllOnPage:`Tout sélectionner sur la page`,selectSession:`Sélectionner une session`,optionalPlaceholder:`(facultatif)`,key:`Clé`,label:`Libellé`,kind:`Type`,updated:`Mis à jour`,tokens:`Jetons`,compaction:`Compactage`,goal:`Objectif`,goalNote:`Note d’objectif`,thinking:`Réflexion`,fast:`Rapide`,verbose:`Détaillé`,reasoning:`Raisonnement`,actions:`Actions`,addToWorkboard:`Ajouter au Workboard`,openWorkboardCard:`Ouvrir la carte Workboard`,opensAsDashboard:`S'ouvre en tableau de bord`,approvalNeeded:`Approbation requise`,messageNeedsAttention:`{count} message nécessite votre attention`,messagesNeedAttention:`{count} messages nécessitent votre attention`,unsentDraft:`Brouillon non envoyé`,noSessions:`Aucune session trouvée.`,noActiveSessions:`Aucune session active.`,noArchivedSessions:`Aucune session archivée.`,noSessionsMatchFilters:`Aucune session ne correspond à vos filtres.`,pagination:`{start}-{end} sur {total} lignes`,pageSize:`Lignes par page`,rowsPerPage:`{count} par page`,showAll:`Tout afficher`,inherit:`hériter`,offExplicit:`désactivé (explicite)`,auto:`auto`,on:`activé`,off:`désactivé`,full:`complet`,stream:`diffuser`,manual:`manuel`,autoThreshold:`seuil automatique`,overflowRetry:`nouvelle tentative après dépassement`,timeoutRetry:`nouvelle tentative après expiration`,tokenRange:`{before} to {after} tokens`,tokensBefore:`{count} tokens avant`,tokenDeltaUnavailable:`delta de tokens indisponible`,contextUsage:`{percent} % du contexte utilisé ({used} / {context} jetons)`,contextUsageApprox:`~{percent} % du contexte utilisé ({used} / {context} tokens, approximatif)`,checkpoints:`{count} points de contrôle`,checkpoint:`{count} point de contrôle`,showSessionDetails:`Afficher les détails de la session pour {count}`,hideSessionDetails:`Masquer les détails de la session pour {count}`,sessionDetails:`Détails de la session`,overrides:`Overrides`,compactionHistory:`Historique de compactage`,status:`Statut`,statusLive:`En direct`,statusIdle:`Inactif`,statusUnknown:`Inconnu`,statusQueued:`En file d’attente`,statusRunning:`En cours d’exécution`,statusDone:`Terminé`,statusFailed:`Échec`,statusKilled:`Arrêté`,statusTimeout:`Délai dépassé`,waitingForAnswer:`En attente de votre réponse`,waitingForApproval:`En attente d'approbation`,runFailedReason:`Échec de l'exécution : {reason}`,runErrorTimedOut:`Expiration du délai`,runErrorUnknown:`Erreur inconnue`,attentionRequired:`La session nécessite votre attention`,openSession:`Ouvrir la session`,model:`Modèle`,provider:`Fournisseur`,runtime:`Exécution`,runDuration:`Durée d’exécution`,lastActive:`Dernière activité {time}`,surface:`Surface`,subject:`Sujet`,room:`Salon`,space:`Espace`,sessionId:`ID de session`,activeRun:`Exécution active`,showChildSessions:`Afficher les {count} sessions enfants pour {session}`,hideChildSessions:`Masquer les {count} sessions enfants pour {session}`,childSessions:`Sessions enfants`,showMoreChildren:`Afficher {count} de plus`,archived:`Archivée`,pinned:`Épinglée`,unread:`Unread`,automationAttached:`Automation attached`,incognito:`Session incognito`,cloudWorkerPlacement:`Placement : {state}`,placementWorkspaceConflict:`{placement} · 1 conflit d'espace de travail`,placementWorkspaceConflicts:`{placement} · {count} conflits d'espace de travail`,cloudWorkerDiskWarning:`L'espace disque de la session cloud est faible`,cloudWorkerDiskCritical:`L'espace disque de la session cloud est extrêmement faible`,cloudWorkerDescendantConflict:`Enfant du cloud worker : 1 conflit d'espace de travail`,cloudWorkerDescendantConflicts:`Enfants du cloud worker : {count} conflits d'espace de travail`,renameSession:`Renommer la session`,renameSessionPrompt:`Renommer la session`,renameSessionMenu:`Rename…`,setIconMenu:`Définir l'icône`,setColorMenu:`Couleur`,setIconColorMenu:`Icône et couleur`,sessionColor:`Couleur de session : {color}`,colors:{red:`Rouge`,blue:`Bleu`,green:`Vert`,yellow:`Jaune`,purple:`Violet`,orange:`Orange`,pink:`Rose`,cyan:`Cyan`},iconEmojiSection:`Emoji`,iconGlyphSection:`Icônes`,customEmojiCell:`Emoji personnalisé…`,customEmojiTitle:`Emoji personnalisé`,customEmojiSet:`Définir`,customEmojiHint:`Tout emoji fonctionne. Appuyez sur {shortcut} pour le sélecteur d'emoji du système.`,customEmojiHintNoShortcut:`Tout emoji fonctionne.`,removeIcon:`Supprimer l'icône`,pinSession:`Épingler la session`,unpinSession:`Désépingler la session`,markUnread:`Mark as unread`,markRead:`Mark as read`,markUnreadCount:`Marquer {count} comme non lus`,markReadCount:`Marquer {count} comme lus`,forkSession:`Fork`,forkFromLastCompleted:`Bifurquer depuis le dernier message terminé`,forkedSession:`Session dérivée`,copySessionId:`Copier l'ID de session`,openPullRequest:`Ouvrir la PR`,openInEditorMenu:`Ouvrir dans`,archiveSession:`Archiver la session`,archiveSessionCount:`Archiver {count}`,restoreSession:`Restaurer la session`,restoreSessionCount:`Restaurer {count}`,moveSession:`Déplacer la session…`,moveSessionTitle:`Déplacer la session`,moveSessionDescription:`Choisissez où « {session} » doit se poursuivre.`,moveSessionNoReplayWarning:`OpenClaw réconcilie en toute sécurité l'espace de travail actuel avant le déplacement. Le travail actif n'est jamais rejoué.`,moveSessionActiveRunWarning:`Le tour actif sera interrompu. La sortie partielle n'est pas rejouée ; renvoyez le tour suivant après le déplacement.`,moveSessionAction:`Déplacer la session`,moveSessionCatalogFailed:`Impossible de charger les destinations disponibles.`,moveSessionFailed:`Échec du déplacement`,moveSessionGatewayTarget:`Connexion`,movingSession:`Déplacement vers {target}…`,movingSessionGeneric:`Déplacement de la session…`,stopCloudWorker:`Arrêter le worker cloud…`,stopCloudWorkerConfirm:`Arrêter le worker cloud pour «\xA0{session}\xA0»\xA0?`,stopCloudWorkerConfirmAction:`Arrêter le worker`,stopCloudWorkerStale:`La connexion Gateway a été remplacée avant l'arrêt du worker cloud pour « {session} ». Réessayez.`,deleteSessionMenu:`Delete…`,deleteSessionCount:`Supprimer {count}…`,deleteSessionConfirm:`Supprimer « {session} » et sa transcription ? Tout worker attaché sera d'abord arrêté en toute sécurité.`,deleteSessionStale:`La connexion Gateway a été remplacée avant la suppression de « {session} ». Réessayez.`,deleteSessionsConfirm:`Supprimer {count} sessions et leurs transcriptions ? Tous les workers attachés seront d'abord arrêtés en toute sécurité.`,deleteSessionsStale:`La connexion Gateway a été remplacée avant la suppression de {count} sessions. Réessayez.`,deleteSelectedConfirmOne:`Supprimer 1 session ? Arrêter en toute sécurité tout worker attaché, puis supprimer l'entrée de session et archiver sa transcription.`,deleteSelectedConfirm:`Supprimer {count} sessions ? Arrêter en toute sécurité tous les workers attachés, puis supprimer les entrées de session et archiver leurs transcriptions.`,groupBy:`Regrouper par`,groupByNone:`Aucun`,groupByCategory:`Groupes personnalisés`,groupByPerson:`Personne`,showSessionPreview:`Afficher l'aperçu du message`,showCronSessions:`Afficher les sessions cron`,showSystemSessions:`Afficher les sessions système`,groupByChannel:`Canal`,groupByKind:`Type`,groupByAgent:`Agent`,groupByDate:`Date`,group:`Groupe`,ungrouped:`Non regroupé`,newGroup:`Nouveau groupe…`,newGroupPrompt:`Nom du nouveau groupe`,newGroupTitle:`Nouveau groupe`,newGroupCreate:`Créer un groupe`,newGroupFailed:`Impossible de créer le groupe.`,newGroupStale:`La connexion Gateway a été remplacée avant l'enregistrement du groupe. Réessayez.`,newGroupMoveSkipped:`Groupe créé, mais le déplacement a été ignoré car la liste a changé. Déplacez depuis le menu de la ligne.`,moveToGroup:`Déplacer la session vers un groupe`,moveToGroupMenu:`Move to group`,moveToGroupMenuCount:`Déplacer {count} vers un groupe`,removeFromGroup:`Remove from group`,moveBackToGroups:`Replacer dans Groupes`,groupMenu:`Options du groupe {group}`,newSessionInGroup:`Nouvelle session dans {group}`,groupDefaultsMenu:`Valeurs par défaut des nouvelles sessions…`,groupDefaultsTitle:`Valeurs par défaut des nouvelles sessions pour « {group} »`,groupDefaultsDescription:`Choisissez où démarrent les nouvelles sessions de ce groupe.`,groupDefaultsCwd:`Répertoire de travail`,groupDefaultsCwdPlaceholder:`Utiliser l'espace de travail de l'agent`,groupDefaultsCwdHint:`Laissez vide pour utiliser l'espace de travail de l'agent sélectionné.`,groupDefaultsMode:`Environnement`,groupDefaultsLocal:`Local`,groupDefaultsWorktree:`Worktree`,groupDefaultsWorktreeHint:`Exécute chaque session dans un worktree Git isolé.`,groupDefaultsFailed:`Impossible d'enregistrer les valeurs par défaut du groupe.`,groupDefaultsStale:`Connexion au Gateway remplacée avant l'enregistrement des valeurs par défaut. Réessayez.`,renameGroupMenu:`Renommer le groupe…`,renameGroupTitle:`Renommer le groupe « {group} »`,groupNameLabel:`Nom du groupe`,deleteGroupMenu:`Supprimer le groupe…`,deleteGroupTitle:`Supprimer le groupe « {group} »`,deleteGroupConfirm:`Le groupe est supprimé. Ses sessions reviennent dans la liste des sessions.`,deleteGroupStale:`Connexion au Gateway remplacée avant la suppression de « {group} ». Réessayez.`,dragSessionHint:`Faites glisser la session pour la déplacer entre les groupes`,dateToday:`Aujourd’hui`,dateYesterday:`Hier`,dateThisWeek:`Cette semaine`,dateOlder:`Plus ancien`,dateNoActivity:`Aucune activité`,groupRowCount:`{count} sessions`,groupRowCountOne:`{count} session`,loadingCheckpoints:`Chargement des points de contrôle…`,noCheckpoints:`Aucun point de contrôle de compaction enregistré pour cette session.`,noSummary:`Aucun résumé capturé.`,branchFromCheckpoint:`Créer une branche à partir du point de contrôle`,branchCheckpointConfirm:`Créer une nouvelle session enfant à partir de ce point de contrôle compacté ?`,restoreCheckpoint:`Restaurer le point de contrôle`,restoreCheckpointConfirm:`Restaurer cette session au point de contrôle compacté sélectionné ? Cela remplacera la transcription active actuelle pour la clé de session.`,placementFactService:`Service`,placementFactProfile:`Profil`,placementFactMachine:`Machine`,placementFactState:`État`,placementFactDisk:`Disque`,placementDiskFree:`{free} libre`,runsOnDevice:`S'exécute sur l'appareil`,deviceOffline:`Appareil hors ligne`,waitingForDevice:`En attente de la reconnexion de l'appareil ; réessayez après son retour.`,continueOnGatewayMenu:`Continuer sur le Gateway…`,continueOnGatewayAction:`Continuer sur le Gateway`,continueOnGatewayConfirm:`Continuer « {session} » sur le Gateway ? Les fichiers de l'appareil non synchronisés et le travail en cours peuvent être perdus. OpenClaw reprendra à partir du dernier état synchronisé avec le Gateway et ne rejouera pas le tour interrompu.`,stopDeviceWorker:`Arrêter le worker de l'appareil…`,offlineDeviceStopUnavailable:`Reconnectez l'appareil pour arrêter et synchroniser son espace de travail, ou continuez sur le Gateway.`,stopDeviceWorkerConfirm:`Arrêter le worker de l'appareil pour « {session} » après sa reconnexion ?`,stopDeviceWorkerConfirmAction:`Arrêter le worker de l'appareil`},agents:{noAgents:`No agents`,createdBy:`Créé par {id}`,defaults:{title:`Valeurs par défaut de l'agent`,description:`Valeurs par défaut dont hérite chaque agent, sauf substitution.`},copyId:`Copy ID`,default:`Default`,setDefault:`Set Default`,pinToSwitcher:`Épingler au sélecteur`,unpinFromSwitcher:`Détacher du sélecteur`,selectTitle:`Select an agent`,selectSubtitle:`Pick an agent to inspect its workspace and tools.`,tabs:{overview:`Aperçu`,files:`Fichiers`,tools:`Outils`,skills:`Skills`,channels:`Canaux`,cronJobs:`Tâches cron`,memory:`Mémoire`},context:{title:`Agent Context`,workspace:`Workspace`,openFilesTab:`Open Files tab`,primaryModel:`Primary Model`,runtime:`Exécution`,thinkingDefault:`Niveau de réflexion par défaut`,identityName:`Identity Name`,identityAvatar:`Identity Avatar`,skillsFilter:`Skills Filter`,default:`Default`,configurationSubtitle:`Workspace, identity, and model configuration.`,schedulingSubtitle:`Workspace and scheduling targets.`},identity:{title:`Identité`,subtitle:`Nom, emoji et avatar affichés dans les discussions et la barre latérale.`,name:`Nom d’affichage`,namePlaceholder:`Nom de l’agent`,emoji:`Emoji`,chooseImage:`Choisir une image…`,replaceImage:`Remplacer l’image…`,imageUnusable:`Cette image ne peut pas être utilisée. Choisissez un fichier image de 2 Mo maximum.`,fileHint:`Les agents peuvent définir ces informations eux-mêmes en modifiant IDENTITY.md dans leur espace de travail.`},overview:{title:`Vue d'ensemble`,subtitle:`Chemins d'espace de travail et métadonnées d'identité.`,selectedSkills:`{count} sélectionnés`,allSkills:`toutes les compétences`,unsavedConfig:`Vous avez des modifications de configuration non enregistrées.`,modelSelection:`Sélection du modèle`,primaryModel:`Modèle principal`,primaryModelDefault:`Modèle principal (par défaut)`,notSet:`Non défini`,inheritDefault:`Hériter de la valeur par défaut`,inheritDefaultModel:`Hériter de la valeur par défaut ({model})`,fallbacks:`Solutions de repli`},toolCatalog:{groups:{files:`Fichiers`,runtime:`Exécution`,web:`Web`,memory:`Mémoire`,sessions:`Sessions`,ui:`Interface`,messaging:`Messagerie`,automation:`Automatisation`,nodes:`Nœuds`,agents:`Agents`,media:`Médias`},descriptions:{read:`Lire le contenu du fichier`,write:`Créer ou remplacer des fichiers`,edit:`Effectuer des modifications précises`,applyPatch:`Appliquer des correctifs aux fichiers (OpenAI)`,exec:`Exécuter des commandes shell`,process:`Gérer les processus en arrière-plan`,webSearch:`Rechercher sur le web`,webFetch:`Récupérer du contenu web`,memorySearch:`Recherche sémantique`,memoryGet:`Lire les fichiers de mémoire`,sessionsList:`Lister les sessions`,sessionsHistory:`Historique des sessions`,sessionsSend:`Envoyer à la session`,sessionsSpawn:`Lancer un sous-agent`,sessionStatus:`État de la session`,browser:`Contrôler le navigateur web`,canvas:`Contrôler les canevas`,message:`Envoyer des messages`,cron:`Planifier des tâches`,gateway:`Contrôle du Gateway`,nodes:`Nœuds + appareils`,agentsList:`Lister les agents`,image:`Compréhension d'image`},profiles:{minimal:`Minimal`,coding:`Codage`,messaging:`Messagerie`,full:`Complet`}},skillsPanel:{title:`Skills`,subtitle:`Liste d'autorisation des Skills par agent et Skills de l'espace de travail.`,loadConfig:`Chargez la configuration du Gateway pour définir les Skills par agent.`,customAllowlist:`Cet agent utilise une liste d'autorisation de Skills personnalisée.`,inheritedAllowlist:`Cet agent hérite de la liste d'autorisation de Skills par défaut.`,allEnabled:`Tous les Skills sont activés. Désactiver un Skill créera une liste d'autorisation par agent.`,loadAgent:`Chargez les Skills de cet agent pour afficher les entrées propres à l'espace de travail.`,filter:`Filtrer`,searchPlaceholder:`Rechercher des Skills`,shown:`{count} affichés`,empty:`Aucun Skill trouvé.`,missing:`Manquant : {items}`,reason:`Raison : {items}`,updateError:`Impossible de mettre à jour la liste d’autorisation des Skills de l’agent.`},channels:{title:`Canaux`,subtitle:`Gateway-wide channel status snapshot.`,lastRefresh:`Last refresh: {time}`,loadHint:`Load channels to see live status.`,empty:`No channels found.`,connectedCount:`{connected}/{total} connected`,noAccounts:`no accounts`,configuredCount:`{count} configured`,notConfigured:`not configured`,enabledCount:`{count} enabled`,setupGuide:`Setup guide`},cronPanel:{schedulerTitle:`Scheduler`,schedulerSubtitle:`Gateway cron status.`,jobs:`Tâches`,nextWake:`Prochain réveil`,agentJobsTitle:`Agent Cron Jobs`,agentJobsSubtitle:`Scheduled jobs targeting this agent.`,noJobs:`No jobs assigned.`,runNow:`Run Now`},files:{emptyDraft:`Empty draft`,minRead:`{count} min read`,markdownPreview:`Markdown Preview`,extensionPreview:`{ext} Preview`,preview:`Preview`,expandPreview:`Expand preview`,collapsePreview:`Collapse preview`,editFile:`Edit file`,closePreview:`Close preview`,coreFilesTitle:`Core Files`,coreFilesSubtitle:`Bootstrap persona, identity, and tool guidance.`,workspace:`Workspace`,loadHint:`Load the agent workspace files to edit core instructions.`,empty:`No files found.`,missing:`missing`,selectFile:`Select a file to edit.`,willCreateOnSave:`Will Create on Save`,liveDraftPreview:`Live Draft Preview`,savedPreview:`Saved Preview`,updated:`Updated {time}`,notCreatedYet:`Not Created Yet`,updatedUnknown:`Updated Unknown`,missingHint:`This file is missing. Saving will create it in the agent workspace.`,addFile:`Ajouter un fichier…`,createHint:`Ce fichier n'existe pas encore. L'enregistrement le créera dans l'espace de travail de l'agent.`,content:`Content`,words:`{count} words`,lines:`lines`}},debug:{snapshotsTitle:`Snapshots`,snapshotsSubtitle:`Status, health, and heartbeat data.`,status:`Statut`,health:`Santé`,lastHeartbeat:`Last heartbeat`,security:{audit:`Security audit`,critical:`{count} critical`,warnings:`{count} warnings`,noCriticalIssues:`No critical issues`,info:`{count} info`,runPrefix:`Exécuter`,runSuffix:`for details.`},manualRpcTitle:`Manual RPC`,manualRpcSubtitle:`Send a raw gateway method with JSON params.`,callFailed:`Échec de l’appel`,method:`Method`,selectMethod:`Select a method…`,paramsJson:`Params (JSON)`,modelsTitle:`Models`,modelsSubtitle:`Catalog from models.list.`,eventLogTitle:`Journal des événements`,eventLogSubtitle:`Latest gateway events.`,noEvents:`No events yet.`,lanes:{title:`Voies`,subtitle:`Capacité des voies de commande et pression de la file d'attente en temps réel.`,lane:`Voie`,sessionLanes:`Voies de session · {count}`,active:`Actif`,queued:`En file d’attente`,group:`Groupe`,blocked:`Bloqué`},overlay:{title:`Charge du système`,eyebrow:`Diagnostics en direct`,openWithShortcut:`Ouvrir la superposition · {shortcut}`,unavailable:`Indisponible`,lanes:`Voies`,status:`Boucle d'événements / statut`,activeRuns:`Exécutions actives`,events:`Événements`,cpu:`CPU`,memory:`Mémoire`,disk:`Disque`,memoryMb:`{value} Mo`,loopShort:`boucle {value}`,heapShort:`tas {value}`,maxShort:`max {value}`,freeShort:`{value} libre`,totalShort:`{value} au total`,delayP99:`Délai p99`,uptime:`Disponibilité`,activeRunsCount:`{count} actifs`,noActiveRuns:`Aucune exécution active.`}},configForm:{redactedPlaceholder:`[masqué - cliquez sur révéler pour afficher]`,sectionHelp:`Aide pour {section}`,advancedDivider:`Avancé`,advancedSettings:`Paramètres avancés`,hideValue:`Masquer la valeur`,revealValue:`Afficher la valeur`,disableStreamToReveal:`Désactivez le mode flux pour afficher la valeur`,storedSecretNotRevealable:`Les secrets stockés ne sont jamais envoyés au navigateur ; saisissez une nouvelle valeur pour le remplacer`,unsupportedType:`Type non pris en charge : {type}. Utilisez le mode Raw.`,structuredSecretRaw:`Valeur structurée (SecretRef) - utilisez le mode Raw pour modifier`,structuredSecretFile:`Valeur structurée (SecretRef) - modifiez directement le fichier de configuration`,defaultValue:`Par défaut : {value}`,usingDefault:`Valeur par défaut utilisée : {value}`,select:`Sélectionner...`,enumOn:`Activé`,enumOff:`Désactivée`,enumAuto:`Automatique`,nullValue:`null`,jsonValue:`Valeur JSON`,invalidJson:`Saisissez un JSON valide avant de quitter ce champ.`,invalidString:`Saisissez une valeur qui respecte les contraintes de ce paramètre.`,invalidNumber:`Saisissez une valeur dans la plage et le pas autorisés.`,draftRejected:`Ce paramètre n'a pas pu être enregistré. Votre brouillon est toujours là.`,unsupportedArray:`Schéma de tableau non pris en charge. Utilisez le mode Raw.`,itemCountOne:`{count} élément`,itemCount:`{count} éléments`,add:`Ajouter`,noItems:`Aucun élément pour l'instant. Cliquez sur « Ajouter » pour en créer un.`,removeItem:`Supprimer l'élément`,customEntries:`Entrées personnalisées`,addEntry:`Ajouter une entrée`,noCustomEntries:`Aucune entrée personnalisée.`,key:`Clé`,removeEntry:`Supprimer l'entrée`,renameRedactedBlocked:`Cette entrée contient un secret stocké. Ajoutez la nouvelle clé avec sa valeur, puis supprimez celle-ci.`,schemaUnavailable:`Schéma indisponible.`,unsupportedSchema:`Schéma non pris en charge. Utilisez Raw.`,unsupportedNode:`Nœud de schéma non pris en charge. Utilisez le mode Raw.`,noSettingsMatch:`Aucun paramètre ne correspond à « {query} »`,noSettingsInSection:`Aucun paramètre dans cette section`,sections:{env:{label:`Variables d'environnement`,description:`Variables d'environnement transmises au processus du gateway`},update:{label:`Mises à jour`,description:`Paramètres de mise à jour automatique et canal de publication`},agents:{label:`Agents`,description:`Configurations, modèles et identités des agents`},auth:{label:`Authentification`,description:`Clés d'API et profils d'authentification`},channels:{label:`Canaux`,description:`Canaux de messagerie (Telegram, Discord, Slack, etc.)`},messages:{label:`Messages`,description:`Paramètres de traitement et de routage des messages`},commands:{label:`Commandes`,description:`Commandes slash personnalisées`},hooks:{label:`Hooks`,description:`Webhooks et hooks d'événements`},skills:{label:`Skills`,description:`Packs de Skills et capacités`},tools:{label:`Outils`,description:`Configurations d'outils (navigateur, recherche, etc.)`},gateway:{label:`Gateway`,description:`Paramètres du serveur Gateway (port, authentification, liaison)`},wizard:{label:`Assistant de configuration`,description:`État et historique de l'assistant de configuration`},meta:{label:`Métadonnées`,description:`Métadonnées du Gateway et informations de version`},logging:{label:`Journalisation`,description:`Niveaux de journalisation et configuration des sorties`},browser:{label:`Navigateur`,description:`Paramètres d'automatisation du navigateur`},ui:{label:`Interface`,description:`Préférences de l'interface utilisateur`},models:{label:`Modèles`,description:`Configurations et fournisseurs de modèles d'IA`},bindings:{label:`Raccourcis`,description:`Raccourcis clavier et combinaisons de touches`},broadcast:{label:`Diffusion`,description:`Paramètres de diffusion et de notification`},tts:{label:`Voix`,description:`Sortie de synthèse vocale, voix et personas`},session:{label:`Session`,description:`Gestion et persistance des sessions`},cron:{label:`Cron`,description:`Tâches planifiées et automatisation`},discovery:{label:`Découverte`,description:`Découverte de services et mise en réseau`},talk:{label:`Talk`,description:`Paramètres de voix et de parole`},plugins:{label:`Plugins`,description:`Gestion des plugins et extensions`},diagnostics:{label:`Diagnostics`,description:`Paramètres d'instrumentation, OpenTelemetry et cache-trace`},cli:{label:`CLI`,description:`Bannière CLI et comportement au démarrage`},secrets:{label:`Secrets`,description:`Configuration du fournisseur de secrets`},acp:{label:`ACP`,description:`Paramètres d'exécution et de streaming de l'Agent Communication Protocol`},mcp:{label:`MCP`,description:`Définitions du serveur Model Context Protocol`}}},quickSettings:{language:`Langue`,model:{title:`Modèle et réflexion`,model:`Modèle`,thinking:`Réflexion`,fastMode:`Mode rapide`,default:`Par défaut`,modelPolicy:`Politique de modèle`,thinkingLevels:{off:`Désactivée`,low:`Faible`,medium:`Moyenne`,high:`Élevée`},fastModes:{auto:`Automatique`,fast:`Rapide`,standard:`Standard`}},channels:{title:`Canaux`,connect:`Connecter →`},appearance:{lobsterVisits:`Visites du homard`,lobsterVisitsOn:`Passe de temps en temps`,lobsterVisitsOff:`Ne vient jamais`,lobsterSounds:`Sons de homard`,lobsterSoundsOn:`Petits glouglous au toucher`,lobsterSoundsOff:`Silencieux`,lobsterdex:`Lobsterdex`,lobsterdexSeen:`{seen}/{total} visités`,lobsterdexFirstVisited:`{name} · première visite le {date}`,lobsterdexCardFirstVisited:`Première visite le {date}`,lobsterdexCardShinySeen:`✦ Shiny repéré {date}`,lobsterdexCardCopyLink:`Copier le lien`,lobsterdexOpen:`Ouvrir Lobsterdex`},security:{intro:`Vérifiez l'accès au Gateway, la politique des outils, l'authentification des appareils et les approbations.`,title:`Sécurité`,gatewayAuth:`Authentification Gateway`,execPolicy:`Politique d'exécution`,browserEnabled:`Browser enabled`,toolProfile:`Tool profile`},system:{gatewayHost:`Hôte Gateway`,up:`Actif {duration}`,cpu:`CPU`,memory:`Mémoire`,disk:`Disque`,usage:`Utilisation {label}`,loadAverage:`Charge moyenne : {values}`,core:`{count} cœur`,cores:`{count} cœurs`,load:`charge`,used:`utilisé`,freeOf:`{free} libres sur {total}`,runtime:`Node {version} · PID {pid}`},personal:{browserOnly:`Stocké uniquement dans ce navigateur.`}},configPage:{themeImported:`{name} importé.`,themeRemoved:`Thème personnalisé supprimé.`},configView:{adminRequired:`Les modifications de configuration nécessitent l'accès operator.admin.`,channelSettings:`Paramètres du canal`,categories:{core:`Cœur`,ai:`IA et agents`,communication:`Communication`,security:`Confidentialité et sécurité`,automation:`Automatisation`,infrastructure:`Infrastructure`,appearance:`Apparence`,other:`Autre`},sections:{env:`Environnement`,auth:`Authentification`,update:`Mises à jour`,meta:`Méta`,logging:`Journalisation`,diagnostics:`Diagnostics`,cli:`CLI`,secrets:`Secrets`,agents:`Agents`,models:`Modèles`,skills:`Skills`,tools:`Outils`,memory:`Mémoire`,session:`Session`,channels:`Canaux`,messages:`Messages`,broadcast:`Diffusion`,notifications:`Notifications`,talk:`Discussion`,tts:`Voix`,commands:`Commandes`,hooks:`Hooks`,bindings:`Liaisons`,cron:`Cron`,approvals:`Approbations`,security:`Politique de sécurité`,plugins:`Plugins`,gateway:`Gateway`,browser:`Navigateur`,nodeHost:`Hôte Node`,discovery:`Découverte`,acp:`ACP`,mcp:`MCP`,theme:`Thème`,ui:`Interface`,wizard:`Assistant de configuration`},themes:{claw:{label:`Claw`,description:`Famille Chroma`},knot:{label:`Knot`,description:`Noir et rouge`},dash:{label:`Dash`,description:`Plan chocolat`},absolutely:{label:`Absolutely`,description:`Argile sur graphite`},tide:{label:`Tide`,description:`Ardoise et acier`},beacon:{label:`Beacon`,description:`Contraste maximal`},phosphor:{label:`Phosphor`,description:`Vert sur verre`}},textSizes:{small:`Petit`,default:`Par défaut`,large:`Grande`,xl:`XL`,xxl:`XXL`},profileSyncedHint:`Enregistré dans votre profil — vous suit sur tous vos appareils.`,syncedHint:`Synchronisé entre vos appareils via le gateway.`,syncPendingHint:`En attente de synchronisation via le gateway.`,notifications:{title:`Notifications push`,nativeTitle:`Notifications`,unavailableHint:`Navigateur non pris en charge.`,unavailable:`Indisponible`,checking:`Vérification...`,granted:`Accordée`,denied:`Refusée`,notRequested:`Non demandée`,unsupported:`Non prise en charge`,subscribed:`Abonné`,notSubscribed:`Non abonné`,blocked:`Bloqué`,ready:`Prêt`,browserSupport:`Prise en charge du navigateur`,available:`Disponible`,notSupported:`Non pris en charge`,permission:`Autorisation`,status:`Statut`,unsubscribe:`Se désabonner`,sendTest:`Envoyer un test`,sendingTest:`Envoi du test…`,testOutcome:`Notification de test`,testQueued:`Notification de test en file d'attente`,testFailed:`Échec de la notification de test`,subscribing:`Abonnement...`,enable:`Activer les notifications`,openSystemSettings:`Ouvrir les Réglages système`,blockedHint:`Autorisez les notifications dans les permissions du navigateur pour ce site.`,nativeBlockedHint:`Autorisez OpenClaw dans Réglages Système macOS > Notifications.`,iosInstallRequired:`Sur iPhone ou iPad, utilisez Partager > Sur l'écran d'accueil, puis ouvrez OpenClaw.`,accountDefaults:`Paramètres par défaut du compte`,installedApp:`Ce navigateur ou cette application`,deliverDevice:`Distribuer à ce navigateur ou cette application`,notificationLabel:`Libellé de la notification`,approvalRequested:`Approbation demandée`,agentFinished:`Agent terminé`,agentQuestion:`Question de l'agent`,scheduledTaskFailed:`Échec de la tâche planifiée`,backgroundTaskFailed:`Échec de la tâche en arrière-plan`,lockScreenDetail:`Détail sur l'écran verrouillé`,lockScreenDetailHint:`Le mode privé masque les noms ; le contenu détaillé est assaini.`,private:`Privé`,namesOnly:`Noms uniquement`,detailed:`Détaillé`,quietHours:`Heures calmes`,quietHoursWindow:`Plage des heures calmes`,timeZone:`Fuseau horaire`,onlyAgents:`Uniquement ces agents`,inherit:`Utiliser la valeur par défaut du compte`,inheritDetail:`Utiliser le niveau de détail du compte`,inheritQuietHours:`Utiliser les heures calmes du compte`,overrideAgents:`Remplacer pour cet appareil`},appearance:{intro:`Préférences de thème, de chat et de barre latérale pour ce client Control UI.`,theme:`Thème`,chooseTheme:`Choisissez une famille de thèmes.`,typography:`Typographie`,fonts:{ui:`Interface`,chat:`Texte du chat`,themeDefault:`Thème par défaut`,themeFace:`{theme} · {face}`,system:`Système`,previewCaption:`OpenClaw · Un peu de clarté change tout`,previewProse:`Une bonne typographie laisse de la place à la conversation. Choisissez une police agréable à lire.`,previewCode:`const greeting = "Hello, world!";`},fontNotes:{"instrument-sans":`Contemporaine et nette`,geist:`Épurée et précise`,"dm-sans":`Chaleureuse et polyvalente`,"ibm-plex-sans":`Technique et humaniste`,"space-grotesk":`Géométrique avec du caractère`,"atkinson-hyperlegible":`Formes distinctes pour une lecture facile`,fraunces:`Serif de lecture expressive`,lora:`Serif calme et littéraire`,"jetbrains-mono":`Lettres claires et régulièrement espacées`,system:`Aucune police web`},accent:`Couleur d'accentuation`,accentHint:`Choisissez une couleur d'accentuation pour les boutons, les surbrillances et les autres contrôles.`,customAccent:`Couleur personnalisée`,usingInheritedAccent:`Utilisation de la couleur d'accentuation héritée`,usingAccent:`Utilisation de {value}`,accents:{default:`Thème par défaut`,claw:`Rouge claw`,coral:`Corail`,amber:`Ambre`,mint:`Menthe`,teal:`Sarcelle`,blue:`Bleu`,violet:`Violet`,pink:`Rose`,slate:`Ardoise`},importedTheme:`Thème importé`,import:`Importer`,importedFrom:`Importé depuis tweakcn : {name}`,importHint:`Importer un thème tweakcn dans cet emplacement local au navigateur`,importFromTweakcn:`Importer depuis tweakcn`,tweakcnInstructions:`Ouvrez tweakcn.com, choisissez ou créez un thème, cliquez sur Partager, puis collez ici le lien de thème copié. Les liens de partage, les URL d'éditeur, les URL de registre, les identifiants de thème et les noms de thème par défaut comme amethyst-haze sont acceptés.`,browseTweakcn:`Parcourir les thèmes tweakcn`,themeLink:`Lien ou identifiant du thème`,replace:`Remplacer {name}`,importTheme:`Importer le thème`,clear:`Effacer {name}`,loaded:`Chargé`,inlineHintBefore:`Cliquez`,inlineHintAfter:`pour ajouter un thème tweakcn local au navigateur. Dans tweakcn, utilisez Partager et collez ici le lien copié.`,textSize:`Taille du texte`},chatPrefs:{title:`Chat`,messageWidth:`Largeur du message`,messageWidthHint:`Largeur CSS facultative pour la transcription centrée, telle que 960px, 82% ou min(1280px, 82%).`,messageWidthInvalid:`Saisissez une largeur CSS telle que 960px, 82%, min(1280px, 82%) ou calc(100% - 2rem).`,collapseTaskProgress:`Réduire la progression des tâches par défaut`,collapseTaskProgressHint:`Garder la progression des tâches actives réduite jusqu'à ce que vous l'ouvriez.`},sidebarPrefs:{title:`Barre latérale`,hint:`Choisissez ce qui s'affiche pendant l'exécution des sessions.`,liveActivity:`Afficher l'activité en direct de l'agent dans la barre latérale`,liveActivityHint:`Afficher la dernière activité de l'assistant ou d'un outil sous les sessions en cours.`,deleteConfirm:`Confirmer avant de supprimer des sessions`,deleteConfirmHint:`S'applique aux suppressions depuis la barre latérale. L'arrêt des workers cloud et la suppression des worktrees préservés demandent toujours confirmation.`},sessionObserver:{title:`Observateur de session`,hint:`Résumez les sessions de longue durée avec un petit modèle utilitaire.`,toggle:`Observateur de session`,toggleHint:`Générer des synthèses d'état en direct pour les sessions Control UI abonnées.`,resolvedModel:`Petit modèle résolu`,modelAuto:`auto ({model})`,modelConfigured:`configuré ({model})`,modelDisabled:`désactivé`,modelUnavailable:`indisponible (aucun petit modèle)`,modelPicker:`Petit modèle`,modelPickerHint:`Utilisé pour les synthèses de l'observateur et d'autres tâches utilitaires courtes.`,modelCatalogUnavailable:`Catalogue de modèles explicite indisponible`,auto:`Auto (par défaut du fournisseur)`,disabled:`Désactivé`,toggleNote:`Mettre à jour l'observateur de session Control UI`,modelNote:`Mettre à jour le modèle utilitaire par défaut`},connection:{title:`Connexion`,gateway:`Gateway`,status:`Statut`,assistant:`Assistant`},root:``,itemCount:`[{count} élément]`,itemCountPlural:`[{count} éléments]`,form:`Formulaire`,raw:`Brut`,formUnsafeTitle:`La vue formulaire ne peut pas modifier certains champs en toute sécurité`,rawTitle:`Modifier la configuration JSON/JSON5 brute`,rawUnavailableTitle:`Mode brut indisponible pour cet instantané`,open:`Ouverte`,applying:`Application…`,autoSaveSaving:`Enregistrement…`,autoSaveSaved:`Enregistré`,autoSavePaused:`Enregistrement automatique en pause après reconnexion`,saveNow:`Enregistrer`,autoSaveFailed:`Échec de l'enregistrement`,autoSaveConflict:`Paramètres modifiés ailleurs`,retry:`Réessayer`,applyChanges:`Appliquer les modifications`,rawDiscard:`Abandonner`,rawDraftBlocksApply:`Modifications brutes non enregistrées — enregistrez-les ou annulez-les dans l'éditeur brut avant de redémarrer.`,rawDraftPendingFormTitle:`Modifications brutes non enregistrées — enregistrez-les ou annulez-les avant de passer au formulaire.`,rawDraftBlocksFormEdit:`Les modifications brutes non enregistrées n'ont pas pu être analysées ; corrigez-les dans l'éditeur brut avant de modifier les paramètres.`,invalidConfig:`Votre configuration n'est pas valide. Certains paramètres pourraient ne pas fonctionner comme prévu.`,dismissWarning:`Ne plus me rappeler`,viewPendingChangesRaw:`Afficher les modifications en attente`,rawDiffUnavailable:`Modifications détectées (diff JSON non disponible)`,hideEnvValues:`Masquer les valeurs d'environnement`,revealEnvValues:`Afficher les valeurs d'environnement`,peek:`Aperçu`,loadingSchema:`Chargement du schéma…`,formUnsafeCount:`1 paramètre de cette config ne peut être modifié qu'en tant que texte : {paths}`,formUnsafeCountPlural:`{count} paramètres de cette config ne peuvent être modifiés qu'en tant que texte : {paths}`,formUnsafeMore:`+{count} de plus`,openRawEditor:`Ouvrir l'éditeur brut`,rawConfig:`Configuration brute (JSON/JSON5)`,secretCount:`{count} secret`,secretCountPlural:`{count} secrets`,redacted:`masqué`,visible:`visible`,revealSensitive:`Afficher les valeurs sensibles`,hideSensitive:`Masquer les valeurs sensibles`,toggleRawRedaction:`Basculer le masquage de la configuration brute`,sensitiveHidden:`{count} valeur sensible masquée. Utilisez le bouton d'affichage ci-dessus pour modifier la configuration brute.`,sensitiveHiddenPlural:`{count} valeurs sensibles masquées. Utilisez le bouton d'affichage ci-dessus pour modifier la configuration brute.`},execApproval:{scope:{standingGrant:`Toujours autoriser exécute cette commande exacte pour « {automation} » sans demander, jusqu'à révocation (révocable)`,standingGrantDays:`Toujours autoriser exécute cette commande exacte pour « {automation} » sans demander, pendant {count} jours (révocable)`,messageSend:`Envoie à {count} destinataire(s) via {target}`,payment:`Paie {amount} {currency} à {target}`,externalPost:`Publie en externe vers {target}`},expiresIn:`expires in {time}`,expired:`expired`,execApprovalNeeded:`Exec approval needed`,pluginApprovalNeeded:`Plugin approval needed`,requestedBySession:`Approbation demandée par la session {session}`,pending:`{count} pending`,otherPending:`Autres demandes en attente`,reviewRequest:`Examiner l'approbation de {agent} : {command}`,decisionRequest:`{decision} : {command}`,agentPendingOne:`{count} approbation en attente`,agentPending:`{count} approbations en attente`,allowOnce:`Allow once`,alwaysAllow:`Always allow`,alwaysAllowHere:`Toujours autoriser ici`,allowAlwaysUnavailable:`Autoriser toujours n’est pas disponible pour cette commande.`,reviewOnly:`Consultation seule. Connectez-vous avec un accès d'approbation pour enregistrer une décision.`,deny:`Deny`,details:`Détails`,labels:{host:`Host`,session:`Session`,cwd:`CWD`,resolved:`Resolved`,security:`Security`,ask:`Ask`}},approvalPage:{brandName:`OpenClaw`,eyebrow:`Operator approval`,loadingTitle:`Loading approval`,loadingDescription:`Checking the current approval state with the Gateway.`,unavailableTitle:`Approval unavailable`,unavailableDescription:`This approval could not be found or this device is not authorized to review it.`,connectionErrorTitle:`Connection interrupted`,connectionErrorDescription:`OpenClaw cannot confirm or record a decision while disconnected. Reconnect to check the current status.`,retry:`Retry`,execTitle:`Command approval`,pending:`Waiting for your decision`,pendingDescription:`Review the request carefully. The first answer from any surface wins.`,approvedHere:`Approved here`,deniedHere:`Denied here`,resolvedElsewhere:`Resolved elsewhere`,resolvedElsewhereDescription:`Another surface or an earlier attempt recorded the decision first.`,approved:`Approved`,denied:`Denied`,expired:`Expiré`,cancelled:`Annulé`,allowedOnceDescription:`The operation was approved for this request only.`,allowedAlwaysDescription:`The operation was approved with the always-allow decision.`,deniedDescription:`The operation was denied and will not continue.`,expiredDescription:`No decision arrived before the deadline, so the operation was denied.`,cancelledDescription:`The requesting run ended before a decision could be used.`,summaryLabel:`Summary`,commandLabel:`Commande`,requestLabel:`Request details`,nodeLabel:`Nœud`,expiresLabel:`Expires`,resolvedLabel:`Resolved`,actionsLabel:`Approval decisions`,resolvingDecision:`Recording {decision}…`,safeToClose:`The decision is recorded. You can close this page.`,openControlUi:`Open Control UI`},agentTools:{githubTitle:`Identité GitHub`,githubSubtitle:`Compte GitHub CLI et auteur Git pour les outils d'agent locaux et le harness Codex.`,githubVerify:`Vérifier`,githubVerifying:`Vérification…`,githubConnection:`Connexion Gateway`,githubDisconnected:`Déconnecté`,githubAccessRequired:`Accès requis`,githubReadRequired:`L'état de l'identité GitHub nécessite l'accès operator.read.`,githubAdminRequired:`La connexion, le remplacement ou la suppression d'une identité GitHub nécessite l'accès operator.admin.`,githubAccount:`Compte`,githubEffectiveAccount:`Compte effectif`,githubSelectedAccount:`Compte de la portée sélectionnée`,githubEffectiveStatus:`État effectif`,githubEffectiveAuthor:`Auteur Git effectif`,githubEffectiveCredential:`Identifiant effectif`,githubEffectiveAccessExpiry:`Expiration de l'accès effectif`,githubEffectiveRefresh:`Jeton d'actualisation effectif`,githubEffectiveScopes:`Portées OAuth effectives`,githubSelectedStatus:`État de la portée sélectionnée`,githubSelectedAuthor:`Auteur Git de la portée sélectionnée`,githubSelectedCredential:`Identifiant de la portée sélectionnée`,githubSelectedAccessExpiry:`Expiration de l'accès de la portée sélectionnée`,githubSelectedRefresh:`Jeton d'actualisation de la portée sélectionnée`,githubSelectedScopes:`Portées OAuth de la portée sélectionnée`,githubNoAccount:`Aucun compte vérifié`,githubAuthor:`Auteur Git`,githubAuthorUnset:`Non défini`,githubErrorTitle:`Erreur`,githubSourceDetected:`Identifiants natifs détectés sur cette machine`,githubSourceSystem:`Identité système gérée`,githubSourceAgent:`Remplacement géré pour cet agent`,githubStateVerified:`Vérifié`,githubStateUnverified:`Non vérifié`,githubStateRateLimited:`Limite de débit atteinte`,githubStateUnavailable:`Aucun identifiant`,githubStateConfiguredUnavailable:`Configuré, mais indisponible`,githubEvidenceApi:`Confirmé via l'API GitHub. Les permissions d'écriture ne sont pas vérifiées à distance.`,githubEvidenceRateLimited:`La limite de débit de l'API GitHub a bloqué la vérification — réessayez plus tard.`,githubEvidenceUnverified:`Les identifiants enregistrés n'ont pas encore été vérifiés auprès de GitHub.`,githubScope:`S'applique à`,githubScopeSystemDesc:`Une identité partagée par tous les agents sans remplacement.`,githubScopeAgentDesc:`Remplace l'identité système pour cet agent uniquement.`,githubSystem:`Système`,githubAgentOverride:`Cet agent`,githubAuthorization:`Autorisation GitHub`,githubStarting:`Demande du code…`,githubCancelling:`Demande d'annulation…`,githubFinishing:`L'autorisation est en cours de finalisation…`,githubCancelFailed:`L'annulation n'a pas pu être confirmée`,githubCancelFailedHint:`L'autorisation est toujours active. Attendez qu'elle se termine ou réessayez l'annulation.`,githubRetryCancel:`Réessayer l'annulation`,githubCodeReady:`Code prêt`,githubWaiting:`En attente d'approbation…`,githubSlowDown:`GitHub nous a demandé d'attendre plus longtemps…`,githubNetworkRetry:`Connexion interrompue ; nouvelle tentative planifiée`,githubAuthorizationHint:`Ouvrez GitHub vous-même, puis saisissez le code à usage unique affiché ici.`,githubDeviceCode:`Code à usage unique`,githubDeviceCodeHint:`Ce code autorise uniquement la portée d'identité sélectionnée.`,githubExpires:`Le code expire`,githubOpen:`Ouvrir github.com/login/device`,githubCopyCode:`Copier le code`,githubAuthorizationFailed:`Échec de l'autorisation GitHub`,githubExpired:`Le code à usage unique a expiré. Reconnectez-vous pour demander un nouveau code.`,githubDenied:`L'autorisation GitHub a été refusée. Reconnectez-vous quand vous serez prêt.`,githubIncorrectCode:`GitHub a rejeté ce code d'appareil. Reconnectez-vous pour demander un nouveau code.`,githubConnect:`Connecter GitHub`,githubConnectHint:`Autorisez GitHub sans coller d'identifiant à longue durée de vie dans le navigateur.`,githubPatFallback:`Jeton d'accès personnel`,githubPatFallbackHint:`N'utilisez un PAT à portée précise que lorsque l'autorisation via le navigateur n'est pas adaptée.`,githubUsePat:`Utiliser un PAT à la place`,githubToken:`PAT à granularité fine`,githubTokenDesc:`Stocké dans un profil GitHub CLI privé géré ; seul le transfert de configuration est supprimé.`,githubTokenToggle:`Afficher ou masquer le jeton`,githubPasteToken:`Collez d'abord un jeton d'accès personnel à granularité fine.`,githubAuthorName:`Nom de l'auteur`,githubAuthorEmail:`E-mail de l'auteur`,githubConfigure:`Enregistrer l'identité`,githubCredentialKind:`Identifiant`,githubSelectedConfiguration:`Configuration {scope} sélectionnée`,githubConfiguredHere:`Configuré ici`,githubInheritedHere:`Hérité`,githubSelectedConfigured:`Cette portée possède sa propre identité`,githubSelectedInherited:`Cette portée hérite de l'identité effective`,githubKindNative:`GitHub CLI natif`,githubKindPat:`Jeton d'accès personnel géré`,githubKindOAuth:`Autorisation GitHub gérée`,githubAccessExpiry:`Expiration de l'accès`,githubRefresh:`Actualiser le jeton`,githubRefreshAvailable:`Disponible`,githubRefreshExpired:`Expiré — reconnexion requise`,githubRefreshUnavailable:`Indisponible — reconnexion requise`,githubRefreshRefreshing:`Actualisation…`,githubRefreshFailed:`Échec de l'actualisation — nouvelle tentative`,githubOAuthScopes:`Portées OAuth`,githubUseSystemNewRuns:`Utiliser le système pour les nouvelles exécutions`,githubUseNativeNewRuns:`Utiliser le natif pour les nouvelles exécutions`,githubUseSystemConfirmTitle:`Utiliser l'identité GitHub du système pour les nouvelles exécutions ?`,githubUseNativeConfirmTitle:`Utiliser l'identité GitHub native pour les nouvelles exécutions ?`,githubUseSystemConfirmMessage:`Les nouvelles exécutions de cet agent utiliseront l'identité Système. Les exécutions actives conservent leur identité actuelle jusqu'à leur arrêt ou redémarrage. Révoquez séparément l'autorisation GitHub ou le PAT sur GitHub si nécessaire.`,githubUseNativeConfirmMessage:`Les nouvelles exécutions sans remplacement d'agent utiliseront l'identité GitHub native. Les exécutions actives conservent leur identité actuelle jusqu'à leur arrêt ou redémarrage. Révoquez séparément l'autorisation GitHub ou le PAT sur GitHub si nécessaire.`,githubAgentMutationHint:`L'autorisation et la suppression ci-dessous s'appliquent à Cet agent pour les nouvelles exécutions.`,githubSystemMutationHint:`L'autorisation et la suppression ci-dessous s'appliquent au Système pour les nouvelles exécutions.`,githubCloudNoteTitle:`Limite d'exécution`,githubCloudNote:`Les workers cloud restent sans identifiants ; le Gateway publie via HTTPS sans réécrire les remotes ou helpers Git.`,connectedSource:`Connecté : {id}`,connected:`Connecté`,channelSource:`Canal : {id}`,channel:`Canal`,builtIn:`Intégré`,plugin:`Plugin : {id}`,optional:`Facultatif`,liveNow:`Actif maintenant`,disabledByOverride:`Désactivé par la surcharge de l'agent.`,enabledByProfile:`Activé par le profil actuel.`,enabledByOverride:`Activé par la surcharge de l'agent.`,notIncluded:`Non inclus dans le profil actuel.`,overrideOff:`Surcharge désactivée`,enabled:`Activé`,overrideOn:`Surcharge activée`,profileOff:`Profil désactivé`,notLive:`Inactif`,otherAgent:`Autre agent`,title:`Accès aux outils`,subtitle:`Profil + surcharges par outil pour cet agent.`,enabledSummary:`{enabled}/{total} activés.`,enableAll:`Tout activer`,disableAll:`Tout désactiver`,loadConfig:`Chargez la configuration du gateway pour ajuster les profils d'outils.`,explicitAllowlist:`Cet agent utilise une liste d'autorisation explicite dans la configuration. Les surcharges d'outils sont gérées dans l'onglet Config.`,globalAllowlist:`tools.allow global est défini. Les surcharges d'agent ne peuvent pas activer des outils bloqués globalement.`,loadingCatalog:`Chargement du catalogue d'outils d'exécution…`,catalogFallback:`Impossible de charger le catalogue des outils d'exécution. Affichage de la liste de secours intégrée à la place.`,availableNow:`Disponible dès maintenant`,availableNowSubtitle:`Ce que cet agent peut utiliser dans la session de chat actuelle.`,noSession:`aucune session`,switchAgent:`Basculez la discussion vers cet agent pour voir ses outils d'exécution en direct.`,loadingAvailable:`Chargement des outils disponibles…`,availableError:`Impossible de charger les outils disponibles pour cette session.`,noAvailable:`Aucun outil n'est disponible pour cette session pour le moment.`,moreLiveTitle:`{count} outils en direct supplémentaires sont disponibles dans les groupes ci-dessous.`,moreLive:`+{count} outils en direct supplémentaires`,quickPresets:`Préréglages rapides`,catalogTitle:`Catalogue d’outils`,inherit:`Hériter`,profile:`Profil`,source:`Source`,live:`En direct`,status:`Statut`,profileSourceAgent:`remplacement de l'agent`,profileSourceGlobal:`valeur par défaut globale`,profileSourceDefault:`par défaut`,statusSaving:`enregistrement…`,statusUnsaved:`non enregistré`,statusSaved:`enregistré`,toolPreview:`Aperçu de l'outil`,more:`+{count} de plus`,toolsOne:`{count} outil`,tools:`{count} outils`,enabledToolsOne:`{count} outil activé`,enabledTools:`{count} outils activés`,liveToolsOne:`{count} outil en direct`,liveTools:`{count} outils en direct`,access:`Accès`,session:`Session actuelle`,disableNamed:`Désactiver {name}`,enableNamed:`Activer {name}`,defaultPresets:`Préréglages par défaut`,availableVia:`Disponible maintenant via {source}.`,unavailableSession:`Non disponible dans cette session de chat pour le moment.`,inspectAgent:`Basculer la discussion vers cet agent pour inspecter la disponibilité en direct.`,linkTool:`Lien vers cet outil`},skillGroups:{workspace:`Skills de l'espace de travail`,builtIn:`Skills intégrés`,installed:`Skills installés`,extra:`Skills supplémentaires`,other:`Autres Skills`},skillsPage:{title:`Skills`,tabs:{all:`Tous`,ready:`Prêt`,needsSetup:`Configuration requise`,disabled:`Désactivé`},defaultAgent:`{name} (par défaut)`,filterPlaceholder:`Filtrer les skills installés`,shown:`{count} affichés`,clawHub:`ClawHub`,clawHubSubtitle:`Rechercher et installer des skills depuis le registre`,searchClawHub:`Rechercher des skills ClawHub…`,searching:`Recherche…`,disconnected:`Non connecté au gateway.`,empty:`Aucun skill trouvé.`,noClawHubResults:`Aucun skill trouvé sur ClawHub.`,notScannedByClawHub:`Non analysé par ClawHub`,install:`Installer`,installed:`Installés`,installing:`Installation…`,close:`Fermer`,by:`Par`,latest:`Dernière : v{version}`,platforms:`Plateformes : {platforms}`,installNamed:`Installer {name}`,notFound:`Skill introuvable.`,openDetails:`Ouvrir les détails de {name}`,enabledNamed:`{name} activé`,invalidLink:`Lien ClawHub invalide`,overview:`Aperçu`,skillCard:`Carte du skill`,missingRequirements:`Prérequis manquants`,reason:`Raison : {reasons}`,disabled:`Désactivé`,enabled:`Activé`,apiKey:`Clé API`,getKey:`Obtenez votre clé :`,saveKey:`Enregistrer la clé`,source:`Source :`,refreshing:`Actualisation…`,fullSecurityReport:`Rapport de sécurité complet`,loadingSkillCard:`Chargement de la Skill Card…`,skillCardNotLoaded:`Skill Card non chargée.`,verdict:{unavailable:`Indisponible`,clean:`Sain`,pending:`En attente`,blocked:`Bloqué`,review:`Révision`}},skillStatus:{bundled:`intégré`,eligible:`éligible`,blocked:`bloqué`,disabled:`désactivé`,blockedAllowlist:`bloqué par la liste d'autorisation`,blockedAgentFilter:`bloqué par le filtre d'agent`},nav:{account:`Compte`,back:`Retour`,forward:`Suivant`,settings:`Paramètres`,askOpenClaw:`Demander à OpenClaw`,settingsGroupConnections:`Connexions`,settingsGroupAgents:`Agents et outils`,settingsGroupSecurity:`Confidentialité et sécurité`,settingsGroupSystem:`Système`,settingsSearchLabel:`Rechercher dans les paramètres`,settingsSearchPlaceholder:`Rechercher dans les paramètres…`,settingsSearchNoResults:`Aucun paramètre correspondant.`,settingsSearchClear:`Effacer la recherche dans les paramètres`,settingsLoadFailed:`La navigation des paramètres n'a pas pu se charger.`,exitSettings:`Retour à l’application`,expand:`Développer la barre latérale`,collapse:`Réduire la barre latérale`,resize:`Redimensionner la barre latérale`,more:`Plus`,home:`Accueil`,pages:`Pages`,customize:`Personnaliser la barre latérale`,customizeReset:`Réinitialiser les paramètres par défaut`,workboardGroup:`WorkBoard`},terminal:{title:`Terminal`,toggle:`Toggle terminal`,open:`Open terminal`,openWindow:`Ouvrir le terminal dans une nouvelle fenêtre`,hide:`Hide terminal`,resize:`Resize terminal panel`,newSession:`New terminal session`,addFiles:`Ajouter des fichiers au terminal`,dropFiles:`Déposez des fichiers pour les ajouter`,uploadProgress:`Téléversement de {current} sur {total}`,uploadFailed:`Échec du téléversement`,retryUpload:`Réessayer`,closeSession:`Close terminal session`,sessions:`Sessions de terminal`,refreshSessions:`Actualiser`,loadingSessions:`Chargement des sessions…`,noSessions:`Aucune session de terminal active`,currentSession:`actuelle`,sessionAttached:`connectée`,attachSession:`Se connecter à la session`,attachFailed:`Impossible de se connecter à la session de terminal`,connecting:`Connexion à la session…`,connectionTimedOut:`La connexion à la session n’a pas été établie dans les 30 secondes.`,refreshRequired:`Control UI mise à jour. Rechargez cette page pour poursuivre l'action du terminal.`,tabLabel:`Shell {n}`,tabHint:`{agent} · {cwd}`,agentOwnedBadge:`agent`,exited:`exited`,exitedCode:`exited ({code})`,detached:`détaché`,dockBottom:`Dock to bottom`,dockRight:`Dock to right`,dockMain:`Remplir la zone de contenu principale`,dockMode:`Position du panneau du terminal`,unavailable:`The terminal is not available on this gateway.`,unusableSession:`Le Gateway a renvoyé une session de terminal inutilisable ({field} manquant). Le Gateway est probablement plus ancien que ce Control UI — mettez-le à jour, puis réessayez.`,uploadTooLarge:`Le fichier dépasse la limite de téléversement de 16 Mio du terminal : {file}`,uploadUnsafeCmdPath:`Impossible d'insérer en toute sécurité un chemin téléversé contenant % ou ! dans cmd.exe`,uploadUnsupportedShell:`Impossible d'insérer en toute sécurité un chemin téléversé dans un shell non pris en charge : {shell}`},browser:{profile:`Profil de navigateur : {profile}`,navigationBlocked:`Les règles de navigation actuelles du navigateur bloquent cette adresse. Sélectionnez un autre onglet ou saisissez une adresse autorisée.`,navigationCheckFailed:`OpenClaw n’a pas pu vérifier l’adresse de cet onglet. Actualisez pour réessayer.`,title:`Navigateur`,open:`Open`,openPanel:`Ouvrir le panneau du navigateur`,moreActions:`Plus d'actions`,copyUrl:`Copier l'URL`,openNewTab:`Ouvrir dans un nouvel onglet`,toggle:`Afficher/masquer le panneau du navigateur`,close:`Fermer le panneau du navigateur`,resize:`Redimensionner le panneau du navigateur`,newTab:`Nouvel onglet`,closeTab:`Fermer l’onglet`,untitledTab:`Nouvel onglet`,back:`Retour`,forward:`Suivant`,reload:`Recharger`,openExternal:`Ouvrir dans votre navigateur`,urlPlaceholder:`Saisissez une URL et appuyez sur Entrée`,dockBottom:`Ancrer en bas`,dockRight:`Ancrer à droite`,annotate:`Annoter la page`,inspect:`Inspecter l’élément`,annotateSend:`Envoyer au chat`,annotateUndo:`Annuler`,annotateClear:`Effacer`,annotateDone:`Quitter le mode annotation`,annotateHint:`Dessinez sur la page, puis envoyez l’annotation à votre chat.`,inspectName:`Nom`,inspectRole:`Rôle`,inspectFocusable:`Focalisable`,loading:`Chargement de la page…`,notRunning:`Le navigateur Gateway n’est pas en cours d’exécution.`,start:`Démarrer le navigateur`,noChatTarget:`Ouvrez d'abord une session de discussion pour que l'annotation ait une destination.`,annotationLimitReached:`Supprimez une annotation de navigateur avant de réessayer (maximum de 4 cartes et 8 000 caractères de contexte généré).`,inspectUnavailable:`L’inspection des éléments est désactivée (browser.evaluateEnabled=false).`,annotationSent:`Annotation ajoutée au compositeur de chat.`,errors:{requestFailed:`La requête du navigateur a échoué : {error}`,screenshotPathMissing:`La capture d'écran du navigateur n'a pas renvoyé de chemin de média.`,screenshotFetchTimedOut:`Le délai de récupération de la capture d'écran a expiré.`,screenshotFetchFailed:`La récupération de la capture d'écran a échoué ({status}).`,screenshotReadFailed:`La lecture de la capture d'écran a échoué.`,screenshotDecodeFailed:`Le décodage de la capture d'écran a échoué.`,canvasUnavailable:`Contexte Canvas 2D indisponible.`},annotatePrompt:{browserTarget:`Cible du navigateur : {target}`,introTitled:`J’ai annoté la page à l’adresse {url} (titre indiqué par la page : "{title}") — la capture d’écran jointe montre mon annotation.`,introUntitled:`J’ai annoté la page à l’adresse {url} — la capture d’écran jointe montre mon annotation.`,region:`Région marquée {index} : centrée autour de {x}% horizontalement / {y}% verticalement, couvrant environ {width}% × {height}% de la vue.`,moreRegions:`…plus {count} autre(s) région(s) marquée(s), toutes visibles dans la capture d’écran.`,elementDetail:`Élément marqué (indiqué par la page) : {descriptor} — {width}×{height}px à ({x}, {y}).`,outro:`Veuillez regarder la zone marquée et me dire ce que vous en pensez.`}},desktop:{title:`Bureau`,openWindow:`Ouvrir le bureau dans une nouvelle fenêtre`,unavailable:`L'affichage du bureau n'est pas disponible pour cette connexion.`,toggle:`Basculer le panneau du bureau`,hide:`Masquer le panneau du bureau`,resize:`Redimensionner le panneau du bureau`,dockBottom:`Dock to bottom`,dockRight:`Dock to right`,enterFullscreen:`Passer en plein écran`,exitFullscreen:`Quitter le plein écran`,fullscreenUnavailable:`Le plein écran n'est pas disponible dans ce navigateur`,pickerTitle:`Sources du bureau`,thisMachine:`Cette machine`,refresh:`Actualiser`,refreshing:`Actualisation…`,loading:`Chargement des sources du bureau…`,empty:`Aucune source compatible avec le bureau n'est disponible.`,sourceUnavailable:`La source du bureau demandée n'est pas disponible. Choisissez une autre source.`,connect:`Se connecter`,connecting:`Connexion au bureau…`,takeControl:`Prendre le contrôle`,switchToViewOnly:`Passer en mode consultation seule`,viewOnly:`Lecture seule`,control:`Contrôle`,keyboard:`Clavier`,keyboardInput:`Saisie clavier du bureau distant`,touchControls:`Commandes du bureau distant`,fit:`Ajuster`,fitScreen:`Ajuster à l'écran`,actualSize:`Utiliser la taille réelle`,back:`Retour`,disconnect:`Déconnecter`,reconnect:`Reconnecter`,passwordPrompt:`Saisissez le mot de passe VNC de cette machine.`,passwordLabel:`Mot de passe VNC`,accountPrompt:`Saisissez un compte macOS pour authentifier le partage d'écran.`,usernameLabel:`Nom d'utilisateur macOS`,accountPasswordLabel:`Mot de passe macOS`,controlTaken:`Un autre opérateur a pris le contrôle`,disconnected:`Bureau déconnecté : {reason}`,closeCode:`connexion fermée avec le code {code}`,unknownReason:`raison inconnue`,errors:{listFailed:`Impossible de charger les sources du bureau : {error}`,fullscreenFailed:`Impossible de changer le mode plein écran : {error}`,securityFailed:`Échec de la négociation de sécurité du bureau : {reason}`}},routeTitles:{modelProviders:`Fournisseurs de modèles`,notifications:`Notifications`,advanced:`Avancé`},tabs:{agents:`Agents`,activity:`Activité`,apps:`Applications`,portals:`Portails`,approvals:`Approbations`,workboard:`Tableau de travail`,worktrees:`Worktrees`,channels:`Canaux`,connection:`Connexion`,sessions:`Sessions`,usage:`Utilisation`,cron:`Tâches cron`,tasks:`Tâches`,skills:`Skills`,plugins:`Plugins`,skillWorkshop:`Atelier Skills`,devices:`Nœuds`,cloudWorkers:`Workers cloud`,chat:`Chat`,dashboards:`Tableaux de bord`,custodian:`OpenClaw`,profile:`Profil`,communications:`Communications`,appearance:`Apparence`,lobsterdex:`Lobsterdex`,automation:`Automatisation`,mcp:`MCP`,memory:`Mémoire`,talk:`Discussion`,infrastructure:`Infrastructure`,labs:`Labs`,updates:`Mises à jour`,about:`À propos`,aiAgents:`IA et agents`,modelSetup:`Configuration du modèle`,memoryImport:`Importer la mémoire`,security:`Confidentialité et sécurité`,secrets:`Secrets`,debug:`Débogage`,logs:`Journaux`,plugin:`Plugin`},subtitles:{agents:`Espaces de travail, outils, identités.`,activity:`Sessions récentes des personnes utilisant ce gateway.`,apps:`Applications compagnons pour téléphone, montre, ordinateur et navigateur.`,portals:`Aperçus en direct des applications exécutées par l'agent.`,approvals:`Approbations récentes d’exécution, de plugin et d’agent système.`,workboard:`File d'attente de travail de l'agent et transfert de session.`,worktrees:`Checkouts de tâches d’agent isolés et instantanés de récupération.`,channels:`Canaux et paramètres.`,connection:`Point de terminaison du Gateway, identifiants et état de la négociation.`,sessions:`Sessions actives et valeurs par défaut.`,usage:`Utilisation de l’API et coûts.`,cron:`Réveils et exécutions récurrentes.`,tasks:`Tâches en arrière-plan\xA0: sous-agents, exécutions cron, CLI.`,skills:`Skills et clés API.`,plugins:`Installez et gérez des fonctionnalités optionnelles.`,skillWorkshop:`Examinez, affinez et appliquez les propositions avant qu’elles ne deviennent des skills actives.`,devices:`Appareils appairés et commandes.`,cloudWorkers:`Profils et tailles de machine pour les sessions cloud.`,chat:`Chat Gateway pour les interventions rapides.`,dashboards:`Sessions qui s'ouvrent sur leur interface de tableau de bord.`,custodian:`Configuration et entretien du système.`,config:`Modifier openclaw.json.`,profile:`Les statistiques, les séries et la vie dans le récif de votre agent.`,communications:`Canaux, messages et paramètres audio.`,appearance:`Thème, UI et paramètres de l’assistant de configuration.`,lobsterdex:`Chaque palette de homard ayant visité ce navigateur.`,automation:`Commandes, hooks, cron et plugins.`,mcp:`Serveurs MCP, authentification, outils et diagnostics.`,memory:`Moteur de mémoire, recherche et rêverie.`,talk:`Voix en temps réel : fournisseur, modèle et voix du locuteur.`,infrastructure:`Paramètres Gateway, web, navigateur et médias.`,labs:`Fonctionnalités expérimentales d'agent et d'outils.`,updates:`Canal de publication, mises à jour automatiques et état actuel des mises à jour.`,about:`Le Control UI et le Gateway connecté définissent l’identité de build.`,aiAgents:`Agents, modèles, Skills, outils, mémoire, session.`,modelSetup:`Connectez un modèle d’IA vérifié`,modelProviders:`Configured providers with plan, quota, and cost.`,memoryImport:`Importez la mémoire de Codex et de Claude Code dans l’espace de travail d’un agent.`,notifications:`Notifications push du navigateur depuis votre gateway.`,security:`Authentification du Gateway, politique d'exécution, profil d'outils et approbations.`,advanced:`Toutes les sections de configuration restantes, ainsi que l'éditeur de fichier brut.`,debug:`Captures, événements, RPC.`,logs:`Journaux Gateway en direct.`,plugin:`Panneau fourni par le plugin.`},cloudWorkersPage:{intro:`Exécutez des sessions d'agent sur des machines cloud éphémères plutôt que sur ce gateway.`,sectionTitle:`Profils`,sectionDescription:`Chaque profil définit la façon dont son fournisseur provisionne et retire un worker.`,empty:`Aucun profil de worker cloud n'est configuré.`,addProfile:`Ajouter un profil`,editProfile:`Modifier le profil`,editAction:`Modifier`,deleteTitle:`Supprimer le profil de worker cloud`,deleteConfirm:`Supprimer le profil {profile} ? Les nouvelles sessions cloud ne pourront plus l'utiliser après le redémarrage.`,advertised:`Annoncé`,restartRequired:`Redémarrage requis`,adminRequired:`Un accès administrateur est requis pour gérer les profils de workers cloud.`,catalogFailed:`Impossible de charger les profils annoncés : {error}. Vérifiez le gateway et réessayez.`,providerFact:`Fournisseur : {provider}`,backendFact:`Backend Crabbox : {backend}`,classFact:`Classe : {value}`,ttlFact:`Durée de vie maximale : {value}`,idleFact:`Arrêt en cas d'inactivité : {value}`,desktopFact:`Bureau : {value}`,providerList:`Afficher les backends pris en charge`,fields:{profileId:`ID de profil`,profileIdHelp:`Utilisez des lettres, des chiffres, des traits d'union ou des traits de soulignement.`,backend:`Backend Crabbox`,backendHelp:`Le backend transmis à Crabbox, tel qu'AWS ou Hetzner.`,backendPlaceholder:`hetzner`,machineClass:`Classe de machine`,machineClassHelp:`Saisissez une classe acceptée par le backend et le binaire Crabbox sélectionnés. Le fournisseur détermine son dimensionnement effectif.`,ttl:`Durée de vie maximale`,ttlHelp:`Utilisez une durée Go positive telle que 8h ou 90m.`,ttlPlaceholder:`8h`,idleTimeout:`Arrêt en cas d'inactivité`,idleTimeoutHelp:`Arrêter un worker inutilisé après cette durée Go positive.`,idleTimeoutPlaceholder:`45m`,setup:`Commande de configuration`,setupHelp:`Commande shell idempotente facultative exécutée avant l'installation d'OpenClaw.`,setupPlaceholder:`command -v node || install-node`,desktop:`Bureau`,desktopHelp:`Préchauffez un worker AWS direct ou géré par coordinateur, ou un worker Hetzner géré par coordinateur, avec accès Browser et Terminal portés par le nœud. Les workers existants doivent être reprovisionnés après ce changement.`,binary:`Binaire Crabbox`,binaryHelp:`Chemin absolu facultatif vers l'exécutable Crabbox sur le gateway.`,binaryPlaceholder:`/usr/local/bin/crabbox`,actions:`Enregistrer le profil`,actionsHelp:`L'enregistrement met à jour la configuration ; le gateway doit redémarrer avant de l'utiliser.`},errors:{title:`Le profil nécessite votre attention`,profileId:`Utilisez un ID de profil commençant par une lettre ou un chiffre et ne contenant que des lettres, des chiffres, des traits d'union ou des traits de soulignement.`,profileExists:`Choisissez un autre ID de profil ; celui-ci existe déjà.`,profileMissing:`Ce profil a changé ou a été supprimé. Rechargez la page et réessayez.`,backend:`Saisissez un backend Crabbox, tel que aws ou hetzner.`,machineClass:`Saisissez une classe de machine de 1 à 128 caractères.`,ttl:`Saisissez une durée Go positive pour la durée de vie maximale, telle que 8h ou 90m.`,idleTimeout:`Saisissez une durée Go positive pour l'arrêt en cas d'inactivité, telle que 45m.`,binary:`Saisissez un chemin absolu vers le binaire Crabbox ou laissez le champ vide.`,saveFailed:`Le profil n'a pas été enregistré. Rechargez la configuration et réessayez.`,deleteFailed:`Le profil n'a pas été supprimé. Rechargez la configuration et réessayez.`}},portalsPage:{listLabel:`Portails actifs`,portLabel:`Port {port}`,openNewTab:`Ouvrir dans un nouvel onglet`,closePortal:`Fermer {title}`,previewTitle:`Aperçu du portail {title}`,loading:`Chargement des portails…`,emptyHint:`Demandez à l'agent de démarrer un portail :`,promptShow:`Montre-moi dans un portail.`,promptStart:`Démarre l'application dans un portail.`,promptMakeAvailable:`Rends le serveur disponible dans un portail.`,unsupported:`Ce gateway ne prend pas en charge les portails.`,loadFailed:`Impossible de charger les portails : {error}`,closeFailed:`Impossible de fermer le portail : {error}`,unreachableTitle:`Portail inaccessible depuis ce navigateur`,unreachableBody:`Le Gateway est probablement accédé via un proxy ou un tunnel qui n'expose que son port principal. Ouvrez cette URL depuis un navigateur sur l'hôte du Gateway.`,writeAccessRequiredTitle:`Accès en écriture requis`,writeAccessRequiredBody:`Ce portail nécessite un opérateur disposant d'un accès en écriture.`,retry:`Retry`},modelSetup:{missingAuth:`Aucune information d'identification de fournisseur n'est configurée pour ce modèle. Configurez-la dans Model Setup.`,heading:`Connectez votre IA`,intro:`OpenClaw réutilise l’accès à l’IA dont vous disposez déjà — une connexion CLI, une clé API ou une connexion à un fournisseur.`,required:{title:`Aucun fournisseur d'IA configuré`,body:`OpenClaw n'a pas trouvé de fournisseur ni de modèle configuré pour cet agent. Ajoutez-en un avant de démarrer une conversation.`,action:`Configurer un fournisseur`},connectionFailure:{title:`OpenClaw n'a pas pu utiliser l'IA configurée`,body:`Cet agent a un fournisseur et un modèle sélectionnés, mais la connexion a échoué. Vérifiez la connexion au fournisseur ou la clé API, l'accès au modèle et l'état du service, puis réessayez.`,action:`Vérifier les paramètres du fournisseur`},loading:`Recherche des accès à l’IA disponibles sur ce Gateway…`,testing:`Test en cours — demande d’une réponse rapide au modèle sélectionné…`,retry:`Réessayer`,checkAgain:`Vérifier à nouveau`,recovery:{unknown:`L’activation précédente n’est pas résolue. Vous pouvez vérifier et utiliser le modèle sélectionné, ou vérifier à nouveau une fois la tentative de configuration terminée. Aucune activation ne sera répétée automatiquement.`,wait:`La tentative de configuration précédente est peut-être encore en cours. Attendez la fin de sa fenêtre de configuration limitée, puis choisissez Vérifier à nouveau pour réessayer.`,useCurrent:`Vérifier et utiliser le modèle sélectionné`},verify:{title:`Modèle sélectionné`,button:`Vérifier le modèle`,retry:`Réessayer`,checkAgain:`Vérifier à nouveau`,checkingButton:`Vérification…`,checking:`Vérification — demande d’une réponse rapide à {modelRef}…`,ready:`Prêt`,readyIn:`Prêt · {latencyMs} ms`,providerUnavailable:`{provider} ne répond pas.`},access:{adminRequired:`La configuration du modèle nécessite l’accès operator.admin.`,gatewayTooOld:`Le Gateway utilise une ancienne version d’OpenClaw`},candidates:{title:`Trouvés sur ce Gateway`,recommended:`Recommandé`,credentialsReady:`Identifiants prêts`,signInNeeded:`Connexion requise`,detected:`Détecté`,testAndUse:`Tester et utiliser`,retry:`Réessayer le test`,testingButton:`Test en cours…`},empty:{title:`Installations recommandées`,intro:`Aucun accès à l'IA existant n'a été détecté. Installez l'un de ces outils, puis vérifiez à nouveau.`},unavailable:{title:`Détecté, mais non testé automatiquement`,signIn:`Se connecter avec {provider}`,useApiKey:`Utiliser une clé API`},signIn:{title:`Se connecter avec un fournisseur`,signIn:`Se connecter`,pair:`Associer`,more:`Plus d’options de connexion`},prepare:{title:`Configurer un modèle local`,intro:`Utilisez un service de modèle local ou préparez un modèle GGUF privé sur ce Gateway.`,ollamaButton:`Vérifier et configurer`,ollamaLabel:`Ollama`,ollamaHint:`Téléchargez un modèle compatible avec les outils depuis votre serveur Ollama`,llamaCppLabel:`Modèle local (llama.cpp)`,providerNotReady:`{provider} n'a pas exposé de modèle local utilisable. Vérifiez le résultat de la configuration, puis réessayez.`},manual:{title:`Se connecter avec une clé API ou un jeton`,provider:`Fournisseur`,selectProvider:`Sélectionner un fournisseur`,selectProviderHint:`Choisissez la provenance de cet identifiant`,accessValue:`Clé API ou jeton`,accessValueFor:`Clé API ou jeton {provider}`,accessValuePlaceholder:`Collez une clé API ou un jeton`,connectAndVerify:`Connecter et vérifier`,verifyHint:`OpenClaw vérifie une véritable réponse de modèle avant de marquer la connexion comme prête.`,required:`Choisissez un fournisseur et saisissez une clé API ou un jeton.`},success:{title:`Votre IA est prête`,body:`OpenClaw a reçu une véritable réponse de {modelRef}. Vous pouvez commencer à discuter maintenant.`,activeModel:`Modèle actif`,latency:`Vérifié en {latencyMs} ms`,openChat:`Ouvrir le chat`,continueSetup:`Continuer la configuration`,stayHere:`Rester dans les paramètres`,configuredModel:`Modèle configuré`},failure:{auth:`Échec de l’authentification`,rateLimit:`Limite de débit atteinte`,billing:`Problème de facturation`,timeout:`Expiration du délai`,format:`Réponse non valide`,unavailable:`Indisponible`,unknown:`Échec de la connexion`},failureGuidance:{auth:`Vérifiez les identifiants ou la connexion du fournisseur, puis réessayez.`,rateLimit:`Attendez la réinitialisation de la limite du fournisseur, puis réessayez.`,billing:`Rétablissez la facturation ou le quota du fournisseur, puis réessayez.`,timeout:`Le modèle n'a pas terminé le test de configuration à temps. Préchauffez-le ou choisissez un modèle plus rapide, puis réessayez.`,unavailable:`Assurez-vous que le service du fournisseur est en cours d'exécution et accessible, puis réessayez.`,format:`Vérifiez que le point de terminaison expose un modèle de chat compatible, puis réessayez.`,unknown:`Vérifiez les détails de connexion, puis réessayez.`},errors:{requestFailed:`La demande de configuration du modèle a échoué.`,activationFailed:`Le modèle n’a pas pu être activé.`},wizard:{dialogLabel:`Connexion au fournisseur`,prepareDialogLabel:`Configuration du modèle local`,title:`Se connecter avec un fournisseur`,prepareTitle:`Configurer un modèle local`,starting:`Démarrage de la connexion au fournisseur…`,prepareStarting:`Démarrage de la configuration du modèle local…`,checking:`Vérification de la configuration de votre modèle…`,working:`Traitement en cours…`,continue:`Continuer`,submit:`Envoyer`,openSignIn:`Ouvrir la page de connexion`,copy:`Copier`,expires:`Expire dans {count} minutes`,cancelled:`La connexion au fournisseur a été annulée.`,sessionExpired:`Cette session de configuration a expiré après le redémarrage du Gateway. Fermez cette boîte de dialogue, puis relancez la configuration du modèle.`,notComplete:`La connexion est terminée, mais la configuration du modèle n’est pas encore terminée.`}},memoryImport:{unknownCollection:`Collection de mémoire`,claudeCode:`Claude Code`,fileCountOne:`{count} fichier`,fileCount:`{count} fichiers`,alreadyImported:`{count} existants`,ready:`Prêt`,existing:`Existant`,importComplete:`Importation terminée`,importIncomplete:`Importation incomplète`,importedCount:`{count} fichiers importés`,importedWithIssues:`{migrated} importés · {errors} échecs · {conflicts} conflits`,reportSaved:`rapport enregistré`,recoveryFile:`Fichier de récupération`,recoveryJournal:`Journal de récupération`,itemBackup:`Sauvegarde de l’élément`,codexDescription:`Fichiers de mémoire Codex consolidés.`,claudeDescription:`Fichiers de mémoire automatique par projet de Claude Code.`,providerFallback:`Importez la mémoire de l’assistant dans l’espace de travail de cet agent.`,reviewFiles:`Examiner les fichiers`,notFound:`Introuvable`,noMemoryFound:`Aucune mémoire importable trouvée sur cet ordinateur.`,source:`Source`,destination:`Destination`,selectedCount:`{count} sélectionnés`,selectAtLeastOne:`Sélectionnez au moins un fichier`,importSelected:`Importer la sélection`,confirmTitle:`Importer depuis {provider} ?`,confirmDescription:`Copier les {count} fichiers de mémoire sélectionnés dans l’espace de travail de cet agent.`,confirmReplace:`Les fichiers de destination existants seront sauvegardés dans le rapport de migration avant leur remplacement.`,confirmBackup:`OpenClaw crée une sauvegarde vérifiée avant l’importation, puis copie la mémoire.`,confirmImport:`Importer la mémoire`,disconnected:`Connectez-vous au Gateway pour importer la mémoire.`,adminRequired:`L'importation de mémoire nécessite un accès operator.admin.`,title:`Importer la mémoire de l’assistant`,subtitle:`Examinez la mémoire consolidée de Codex et la mémoire automatique de Claude Code avant de les copier dans OpenClaw.`,agent:`Agent de destination`,replaceExisting:`Remplacer les importations existantes`,replaceHint:`Prévisualisez à nouveau les conflits et conservez les sauvegardes des éléments avant leur remplacement.`,backfill:{title:`À partir des sessions passées`,subtitle:`Préparez les mémoires fiables des sessions précédentes de l'agent. Le rêve promeut les plus utiles en mémoire à long terme.`,dateRange:`Plage de dates des sessions`,dateRangeHint:`Laissez l'une des dates vide pour analyser toute la plage disponible.`,from:`Du`,to:`Au`,actions:`Remplir`,preview:`Aperçu`,previewing:`Aperçu en cours…`,apply:`Appliquer`,applying:`Application…`,rollback:`Annuler`,previewSummary:`{candidates} candidats sur {days} jours`,previewTruncated:`Cet aperçu affiche le premier lot limité. L'application se poursuit avec les candidats restants.`,candidateCount:`{count} candidats`,noCandidates:`Aucun nouveau candidat de session fiable n'a été trouvé.`,progress:`{days} jours traités · {staged} préparés`,processedCandidates:`{count} candidats de session traités`,processedDayCountOne:`{count} jour traité`,processedDayCount:`{count} jours traités`,complete:`{count} préparés ; la promotion se fait via le rêve`,rollbackConfirmTitle:`Annuler le remplissage des sessions ?`,rollbackConfirmDescription:`Supprimer les entrées de journal et les souvenirs préparés créés par le remplissage des sessions pour cet agent.`,rollbackWarning:`Les curseurs de session suivis restent en place, donc les entrées supprimées ne seront pas préparées à nouveau.`,rollbackComplete:`Remplissage des sessions annulé`,rollbackCounts:`{diary} entrées de journal et {staged} entrées préparées supprimées`,unavailable:`Le remplissage des sessions n'est pas disponible sur ce Gateway.`}},onboarding:{memoryImport:{title:`Emportez la mémoire de votre assistant avec vous`,body:`OpenClaw a trouvé des données de mémoire provenant d’autres assistants de programmation. Voulez-vous les importer dans l’espace de travail de votre agent ?`,plannedCount:`{count} prêts à être importés`,alreadyImported:`Déjà importés : {count}`,sourceUnavailable:`Chemin source indisponible`,import:`Importer`,skip:`Ignorer`,reviewDetails:`Examiner les détails`,importingProvider:`Importation…`,providerResult:`{migrated} migrés, {skipped} ignorés`,providerIncomplete:`{migrated} migrés, {skipped} ignorés, {errors} échecs, {conflicts} conflits`,providerError:`Échec de l’importation : {error}`,connectionChanged:`Ignoré : la connexion au Gateway a changé pendant l’importation`,unknownError:`Échec de la requête`,doneTitle:`Importation de la mémoire terminée`,doneBody:`{migrated} migrés, {skipped} ignorés. Vous pouvez poursuivre la configuration d’OpenClaw.`}},custodian:{title:`OpenClaw`,subtitleCaretaker:`Configuration et entretien du système.`,exitSetup:`Quitter la configuration`,newAgent:`Nouvel agent`,hatchDraft:`Réveille-toi, mon ami !`,placeholder:`Envoyer un message à OpenClaw…`,sensitivePlaceholder:`Saisir une valeur sensible…`,sensitiveReply:`Réponse sensible envoyée`,cancel:`Annuler`,send:`Envoyer`,thinking:`OpenClaw réfléchit`,earlier:`Plus tôt`,requestFailed:`OpenClaw n'a pas pu répondre. Réessayez.`,connectionChanged:`La connexion au Gateway a changé. Réessayez pour poursuivre cette configuration.`,sessionRestarted:`{error} OpenClaw a démarré une nouvelle session ; les messages précédents restent disponibles comme contexte.`,unsupportedGateway:`Mettez à jour le Gateway pour poursuivre la configuration avec OpenClaw.`,panel:{title:`OpenClaw`,toggle:`Basculer Ask OpenClaw`,close:`Fermer Ask OpenClaw`,resize:`Redimensionner Ask OpenClaw`,dockBottom:`Ancrer Ask OpenClaw en bas`,dockRight:`Ancrer Ask OpenClaw à droite`},history:{button:`Historique`,title:`Modifications récentes`,description:`Ce qui a changé sur ce système, du plus récent au plus ancien.`,loading:`Chargement des modifications récentes…`,empty:`Aucune modification enregistrée pour l'instant.`,requestFailed:`OpenClaw n'a pas pu charger l'historique des modifications.`,loadMore:`Charger davantage`,loadingMore:`Chargement…`,changedPaths:`Chemins modifiés ({count})`,invalidEdit:`Cette modification manuelle n'a pas passé la validation de la configuration.`,opaqueChange:`Le formatage ou les commentaires ont changé sans modification visible du chemin de configuration.`,sources:{systemAgent:`system-agent`,doctor:`doctor`,settings:`settings`,cli:`CLI`,pluginInstall:`plugin install`,manualEdit:`manual edit`,unknown:`unknown`}},nudge:{configReload:`Le rechargement de la configuration s'est arrêté — demandez-moi ce qui s'est passé`,channelAuth:`L'authentification {channel} est dégradée — demandez-moi ce qui s'est passé`,channelDisconnected:`{channel} vient de se déconnecter — demandez-moi ce qui s'est passé`,channelDegraded:`{channel} est dégradé — demandez-moi ce qui s'est passé`,channelFallback:`Un canal`,dismiss:`Ignorer cette mise à jour`,channelSetupTitle:`Joindre OpenClaw en dehors de cette application`,channelSetupBody:`L'application web fonctionne déjà. Ajoutez un canal uniquement si vous souhaitez envoyer des messages à OpenClaw depuis un autre service.`,channelSetupAction:`Configurer un canal`,channelSetupDismiss:`Continuer avec l'application web`,channelStatusErrorTitle:`L'état du canal est indisponible`,channelStatusErrorBody:`Relancez la vérification ou continuez à utiliser l'application web sans canal.`}},mcpServers:{add:`Ajouter un serveur`,adding:`Ajout…`,nameLabel:`Nom`,transportLabel:`Transport`,transportStreamableHttp:`Streamable HTTP`,transportSse:`SSE`,transportStdio:`Stdio`,targetLabel:`URL ou commande`,nameInvalid:`Les noms de serveur utilisent des lettres, des chiffres, des points, des tirets ou des traits de soulignement.`,targetInvalid:`Saisissez une URL pour les transports HTTP ou une ligne de commande valide pour stdio.`,sessionEnableFailed:`Le serveur a été enregistré comme désactivé globalement, mais son activation pour cette session a échoué : {error}`,sessionChanged:`La session active a changé avant de pouvoir être activée.`,sessionUnavailable:`La session active est indisponible ; actualisez et réessayez.`,nameTaken:`Un serveur MCP nommé « {name} » existe déjà.`,missing:`Le serveur MCP « {name} » est introuvable dans la configuration.`,missingTransport:`transport manquant`,addedSuccess:`Serveur MCP {name} ajouté.`,enabledSuccess:`Serveur MCP {name} activé.`,disabledSuccess:`Serveur MCP {name} désactivé.`,removedSuccess:`Serveur MCP {name} supprimé.`,configUnavailable:`La configuration n’est pas disponible ; actualisez et réessayez.`,connectRequired:`Connectez-vous au gateway pour modifier les serveurs MCP.`,adminRequired:`Les modifications des serveurs MCP nécessitent l'accès operator.admin.`,enable:`Activer`,disable:`Désactiver`,removeNamed:`Supprimer {name}`,working:`Traitement en cours…`},mcpPage:{intro:`Connectez et gérez les serveurs MCP qui fournissent des outils à OpenClaw.`,servers:`Serveurs`,oauth:`OAuth`,filtered:`Filtré`,configuredServers:`Serveurs configurés`,noServers:`Aucun serveur MCP configuré.`,setUpFirstServer:`Configurez votre premier serveur MCP`,operatorCommands:`Commandes opérateur MCP`,operatorCommandsHint:`État, diagnostics, authentification, sondage et rechargement du runtime.`,runtimeHint:`Les modifications du runtime s'appliquent après l'enregistrement et la publication ; les agents actifs reconstruisent les runtimes MCP à la prochaine utilisation.`,toolFilter:`filtre d'outils`,parallel:`parallèle`,tlsVerifyOff:`vérification TLS désactivée`,mtls:`mTLS`},talkPage:{intro:`Configurez les fournisseurs de voix en temps réel, les modèles et les voix des locuteurs.`,voiceSection:{title:`Voix en temps réel`,description:`Conversations vocales continues avec votre agent. Les sélecteurs ci-dessous écrivent les paramètres talk.realtime ; le formulaire complet plus bas couvre tout le reste.`},status:{title:`Statut`,ready:`Prêt`,notReady:`Non configuré`,unavailable:`Indisponible`,unavailableHint:`Connectez-vous au Gateway pour vérifier la disponibilité de la voix en temps réel.`,activeProvider:`Fournisseur actif : {provider}`,noProvider:`Aucun fournisseur de voix en temps réel n'est encore configuré.`},provider:{title:`Fournisseur`,description:`Auto choisit le premier fournisseur avec des identifiants fonctionnels.`,auto:`Automatique`},model:{title:`Modèle`,description:`Modèle de voix en temps réel pour les sessions Talk du navigateur.`,default:`Valeur par défaut du fournisseur`,defaultNamed:`Par défaut ({model})`},voice:{title:`Voix du locuteur`,description:`Voix utilisée pour les réponses vocales. GPT-Live verrouille la voix dès qu'un appel commence.`,default:`Valeur par défaut du fournisseur`},gptLive:{title:`GPT-Live`,hint:`GPT-Live fonctionne avec un abonnement ChatGPT : connectez-vous une fois avec « openclaw models auth login --provider openai ». Aucune clé Platform API n'est nécessaire pour Talk dans le navigateur ou via Gateway-relay. Le travail délégué peut être orienté pendant son exécution et nécessite une confirmation vocale exacte pour les actions à fort impact.`,ready:`Prêt`}},memoryPage:{intro:`Choisissez comment OpenClaw stocke, recherche et gère la mémoire de l'agent.`,tablistLabel:`Sections de mémoire`,tabs:{overview:`Aperçu`,memories:`Souvenirs`,dreams:`Rêves`,settings:`Paramètres`},overview:{hero:{awake:`La mémoire est active`,waking:`Réveil de la mémoire…`,hibernating:`La mémoire est en veille`,needsAttention:`La mémoire nécessite une attention`,activeDescription:`{engine} · {mode}`,loadingDescription:`Vérification du moteur de mémoire et du cycle de rêve de cet agent.`,offDescription:`Choisissez un moteur de mémoire dans les Paramètres pour l'activer.`,disabledDescription:`Le moteur de mémoire sélectionné est désactivé. Réactivez-le dans les Paramètres.`,gatewayOffline:`Le gateway est hors ligne, l'état de la mémoire est donc indisponible.`,hybridSearch:`recherche hybride`,keywordSearch:`recherche par mots-clés (sans embeddings)`,openSettings:`Ouvrir les paramètres`,retry:`Réessayer`,refresh:`Actualiser l'état`},schedule:{title:`Cycle de sommeil`,lightDescription:`Trie les notes récentes à court terme et prépare les candidats prometteurs sans modifier la mémoire à long terme.`,remDescription:`Réfléchit aux thèmes et aux idées récurrentes de l'activité récente pour renforcer le classement sans modifier la mémoire à long terme.`,deepDescription:`Évalue les candidats préparés, promeut ceux à conserver dans la mémoire à long terme (MEMORY.md) et rédige le journal des rêves.`,nextRun:`prochain {time}`,lastRun:`dernier {time}`,notScheduled:`Non planifié`,learnMore:`Fonctionnement des rêves`,openDocs:`Ouvrir le guide des rêves`},activity:{title:`Activité`,promotedToday:`Promus aujourd'hui`,promotedTotal:`Total promu`,shortTermCount:`Entrées à court terme en attente`,phaseHitCount:`Signaux de phase`,lightPhaseHitCount:`Occurrences en phase légère`,remPhaseHitCount:`Occurrences en phase REM`},health:{title:`Santé du moteur`,provider:`Fournisseur`,embeddings:`Embeddings`,runtime:`Runtime des embeddings`,healthy:`Prêt`,unavailable:`Indisponible`,notChecked:`Non vérifié`,notCheckedDescription:`La disponibilité de l'embedding n'a pas encore été vérifiée.`,checking:`Vérification…`,test:`Tester`,testing:`Test en cours…`},shortcuts:{title:`Explorer la mémoire`,memories:`Rechercher des souvenirs`,diary:`Lire le journal des rêves`,settings:`Configurer la mémoire`}},memories:{searchLabel:`Rechercher des souvenirs`,searchPlaceholder:`Rechercher dans les souvenirs de cet agent`,searchButton:`Recherche`,idle:`Recherchez une personne, un projet, une décision ou tout ce dont cet agent se souvient.`,searching:`Recherche de souvenirs…`,results:`{count} résultats`,empty:`Aucun souvenir ne correspond à « {query} ».`,error:`Échec de la recherche de souvenirs : {message}`,retry:`Réessayer`,gatewayUpdateRequired:`Mettez à jour le gateway pour rechercher des souvenirs depuis le Control UI.`,hybridSearch:`recherche hybride`,keywordSearch:`recherche par mot-clé`,lineRange:`lignes {start}–{end}`,score:`score {score}`,sourceMemory:`mémoire`,sourceSessions:`sessions`,fileLoading:`Chargement du fichier de mémoire complet…`,fileError:`Impossible de charger ce fichier de mémoire : {message}`,fileUnsupported:`Ce fichier de mémoire ne peut pas être affiché sous forme de texte.`},engine:{title:`Moteur`,description:`Exactement un plugin de mémoire occupe l'emplacement mémoire. Sélectionner un moteur l'active et désactive les autres.`,rowTitle:`Moteur de mémoire`,openClawMemory:`OpenClaw Memory`,off:`Désactivée`,unavailable:`Indisponible`,autoHint:`Aucun moteur n'est épinglé dans la configuration, l'emplacement revient donc à son propriétaire par défaut.`,explicitHint:`Ce moteur est épinglé dans la configuration sous plugins.slots.memory.`,offHint:`La mémoire est désactivée dans la configuration : plugins.slots.memory est défini sur none.`,catalogUnavailable:`Connectez-vous au gateway pour changer de moteur de mémoire.`,changeFailed:`Impossible de changer le moteur de mémoire`,disabledTitle:`Ce moteur est désactivé`,disabledHint:`L'emplacement mémoire pointe vers ce plugin, mais le plugin lui-même est désactivé, la mémoire ne fonctionne donc pas.`,enable:`Activer`},addons:{title:`Modules complémentaires`,description:`Ces plugins se superposent au moteur au lieu de se disputer l'emplacement, de sorte que toute combinaison peut fonctionner en même temps.`,activeMemory:{title:`Mémoire active`},memoryWiki:{title:`Wiki de mémoire`},toggleAriaLabel:`Activer ou désactiver {plugin}`,changeFailed:`Impossible de mettre à jour {plugin}`,stateUnknown:`Inconnu`,manage:`Activer ou désactiver les modules complémentaires`,manageLink:`Ouvrir les plugins`},import:{title:`Importer`,description:`Importez la mémoire existante d'autres assistants dans un espace de travail d'agent.`,link:`Ouvrir l'import de mémoire`},search:{intro:`Paramètres d'embedding et de récupération par défaut partagés par chaque agent qui n'a pas de remplacement de mémoire.`},dreaming:{intro:`Le rêve s'exécute comme une seule tâche cron gérée sur tous les espaces de travail des agents, donc ces paramètres sont globaux. Ils sont gérés par le plugin {plugin}.`,schedule:{title:`Planification`,description:`Quand le balayage complet s'exécute et quel modèle le narre.`},frequency:{label:`Fréquence du rêve`,help:`Cadence cron pour le balayage complet du rêve (léger, paradoxal, puis profond). Laissez vide pour la valeur par défaut du plugin.`,placeholder:`0 3 * * *`},timezone:{label:`Fuseau horaire`,help:`Fuseau horaire IANA utilisé pour interpréter la cadence cron.`,placeholder:`Europe/Vienna`,default:`Fuseau horaire local du Gateway`},model:{label:`Modèle de rêve`,help:`Remplacement du fournisseur/modèle pour la narration du journal de rêve. Nécessite que les remplacements de modèle des sous-agents soient autorisés.`,placeholder:`anthropic/claude-sonnet-4-6`,default:`Modèle de l'agent`},verboseLogging:{label:`Journalisation détaillée`,help:`Journalise chaque phase du rêve en détail. Utile pour ajuster les seuils.`},storage:{title:`Stockage`,description:`Où sont écrites les mémoires promues et les rapports de rêve.`,modeLabel:`Mode de stockage`,modeHelp:`Inline écrit dans le fichier de mémoire ; separate conserve un fichier de rapport dédié.`,modes:{inline:`Inline`,separate:`Séparé`,both:`Les deux`},separateReportsLabel:`Rapports séparés`,separateReportsHelp:`Garder les rapports de rêve hors du fichier de mémoire principal.`},phases:{light:{title:`Phase légère`,description:`Passage économique sur l'activité récente qui prépare les candidats à la relecture.`},deep:{title:`Phase profonde`,description:`Passage de promotion noté qui fait passer les entrées à court terme en mémoire.`},rem:{title:`Phase REM`,description:`Passage sur les motifs qui recherche les thèmes récurrents dans la fenêtre d'analyse.`}},phaseFields:{enabled:`Activé`,enabledHelp:`Exécuter cette phase pendant le balayage.`,lookbackDays:`Jours d'analyse rétrospective`,lookbackDaysHelp:`Jusqu'où cette phase lit en arrière. Laisser vide pour la valeur par défaut du plugin.`,limit:`Limite`,limitHelp:`Nombre maximal d'entrées traitées par cette phase à chaque exécution.`,dedupeSimilarity:`Similarité de déduplication`,dedupeSimilarityHelp:`Similarité au-dessus de laquelle deux candidats sont considérés comme des doublons.`,minScore:`Score minimum`,minScoreHelp:`Score de promotion qu'une entrée doit atteindre.`,minRecallCount:`Rappels minimum`,minRecallCountHelp:`Fréquence à laquelle une entrée doit être rappelée avant de pouvoir être promue.`,minUniqueQueries:`Nombre minimal de requêtes uniques`,minUniqueQueriesHelp:`Nombre de requêtes distinctes ayant fait remonter l'entrée.`,recencyHalfLifeDays:`Demi-vie de récence (jours)`,recencyHalfLifeDaysHelp:`Rapidité avec laquelle les anciens signaux de rappel perdent en importance.`,maxAgeDays:`Âge maximal (jours)`,maxAgeDaysHelp:`Ignorer les entrées à court terme plus anciennes que cette valeur.`,maxPromotedSnippetTokens:`Nombre maximal de jetons par extrait promu`,maxPromotedSnippetTokensHelp:`Budget de jetons pour chaque extrait promu. La provenance reste attachée.`,minPatternStrength:`Force minimale de motif`,minPatternStrengthHelp:`Force qu'un motif récurrent doit atteindre pour être signalé.`},agentScope:{rowTitle:`Agent`},unsupported:{title:`Paramètres de rêve`,rowTitle:`Non disponible pour ce moteur`,description:`Le plugin {plugin} occupe l'emplacement de mémoire et son schéma de configuration ne comporte aucune section de rêve, ces paramètres ne peuvent donc pas être enregistrés. Changez de moteur dans l'onglet Aperçu pour les modifier.`}}},sessionsPage:{hubTablistLabel:`Sections de session`},pluginsPage:{searchLabel:`Rechercher des plugins`,searchPlaceholder:`Rechercher des plugins`,browseClawHub:`Parcourir ClawHub`,refresh:`Actualiser`,hubTablistLabel:`Sections des plugins`,installedTab:`Installés`,discoverTab:`Découvrir`,workshopTab:`Atelier`,tryAgain:`Réessayer`,loading:`Chargement des plugins…`,searching:`Recherche dans ClawHub…`,fromClawHub:`Depuis ClawHub`,noClawHubResultsBody:`ClawHub n’a aucun résultat pour « {query} ».`,noDiscoverMatchTitle:`Aucun élément à découvrir ne correspond`,featuredGroup:`Sélection`,officialGroup:`Plugins officiels`,connectorsGroup:`Connectez votre monde`,connectorsHint:`Connecteurs MCP en un clic et recherches ClawHub soigneusement sélectionnées pour les services populaires.`,connectorGroupWork:`Travail et productivité`,connectorGroupDev:`Codage et infrastructure`,connectorGroupHome:`Maison et médias`,connectorGroupLife:`Vie quotidienne`,mcp:`MCP`,oauth:`OAuth`,connectorMcpNote:`Serveur MCP en un clic`,connectorClawHubNote:`Plugins de la communauté sur ClawHub`,connectorAdd:`Ajouter`,connectorSearch:`Trouver sur ClawHub`,connectorAdded:`Ajouté`,connectorAddedOauth:`{name} ajouté. Authentifiez-vous avec « {command} », puis redémarrez le gateway.`,connectorAddedEndpoint:`{name} ajouté. Mettez à jour le point de terminaison et les identifiants dans les paramètres MCP avant utilisation.`,connectorAddedReady:`{name} ajouté. Les nouvelles sessions d’agent peuvent l’utiliser immédiatement.`,connectorDescriptions:{notion:`Recherchez, créez et mettez à jour des pages et bases de données dans votre espace de travail Notion.`,linear:`Triez les problèmes, mettez à jour les cycles et signalez des bugs directement depuis le chat.`,todoist:`Lisez, ajoutez et terminez des tâches et projets dans Todoist.`,airtable:`Interrogez et mettez à jour des enregistrements, tables et bases dans Airtable.`,jira:`Créez, recherchez et triez des tickets Jira depuis le chat.`,canva:`Créez et modifiez des designs Canva, gérez des ressources et exportez les résultats.`,stripe:`Consultez les paiements, clients, factures et abonnements de votre compte Stripe.`,googleCalendar:`Lisez, créez et recevez un récapitulatif des événements — votre agent gère votre emploi du temps.`,email:`Tri de la boîte mail, résumés et brouillons avec envoi après approbation.`,pdf:`Extrayez, fusionnez, convertissez et effectuez l'OCR de documents PDF.`,transcription:`Transformez l'audio et la vidéo en transcriptions claires et structurées.`,github:`Files d'attente de revue de PR, triage des issues et questions-réponses sur les dépôts via le MCP officiel de GitHub.`,sentry:`Alertes de plantage expliquées et triées dès leur déclenchement.`,context7:`Documentation de bibliothèque et exemples de code propres à une version pendant le codage. Aucune inscription requise.`,deepwiki:`Posez des questions sur n'importe quel dépôt GitHub public. Gratuit, sans compte requis.`,huggingFace:`Recherchez des modèles, jeux de données et articles ; exécutez des Spaces comme outils.`,grafana:`Savoir-faire Grafana et connecteurs communautaires pour tableaux de bord et alertes.`,kubernetes:`Opérations de cluster et dépannage depuis le chat.`,homeAssistant:`Contrôlez l'éclairage, la climatisation et les automatisations dans toute votre maison.`,spotify:`Recherchez, mettez en file d'attente et rythmez votre journée avec des playlists selon l'humeur.`,sonos:`Audio dans toute la maison : jouez, groupez les pièces et mettez en file d'attente par chat.`,reddit:`Parcourez, recherchez et résumez des subreddits et des fils de discussion.`,markets:`Actions et crypto en direct avec alertes de prix et synthèses quotidiennes.`,travel:`Recherche de vols et d'hôtels avec suivi des tarifs et mémoire de voyage.`,news:`Un briefing quotidien personnalisé : actualités, météo et tâches en un seul message.`,maps:`Réponses sur les lieux, les itinéraires et les temps de trajet.`,translation:`Traduisez et localisez du texte et des documents.`,notes:`Capturez des notes vers Markdown, Obsidian, Notion ou Bear.`},noInstalledTitle:`Aucun plugin facultatif installé`,noInstalledBody:`Découvrez un plugin mis en avant ou recherchez dans ClawHub pour étendre OpenClaw.`,noInstalledMatchTitle:`Aucun plugin installé ne correspond`,noMatchBody:`Essayez une autre recherche.`,filterAll:`Tous`,filterIssues:`Problèmes`,filterLabel:`Filtrer les plugins installés`,categoryChannels:`Canaux`,categoryProviders:`Fournisseurs de modèles`,categoryMemory:`Mémoire`,categoryContextEngine:`Moteurs de contexte`,categoryTools:`Outils`,categoryOther:`Autre`,mcpServersGroup:`Serveurs MCP`,mcpSettingsLink:`Paramètres MCP`,mcpHint:`Connectez des serveurs Model Context Protocol pour doter votre agent d’outils supplémentaires. Les modifications s’appliquent aux nouvelles sessions d’agent.`,mcpEmpty:`Aucun serveur MCP n’est encore configuré. Ajoutez-en un ici ou choisissez un connecteur depuis Découvrir.`,remove:`Supprimer`,removing:`Suppression…`,removeNamed:`Supprimer {name}`,removeConfirmTitle:`Supprimer {name} ?`,removeConfirmMessage:`La suppression de ce paquet de plugin et de toutes ses entrées redémarre immédiatement le Gateway et interrompt les sessions actives.`,cancel:`Annuler`,removedRestart:`{name} supprimé. Un redémarrage de Gateway est nécessaire pour appliquer la modification.`,verifiedSource:`Source vérifiée`,enableAction:`Activer`,disableAction:`Désactiver`,working:`Traitement en cours…`,detailClose:`Fermer`,detailOrigin:`Source`,detailCategory:`Catégorie`,detailPackage:`Package`,detailPluginId:`ID du plugin`,capabilities:`Capacités`,offlineTitle:`Gateway hors ligne`,offlineBody:`Connectez-vous pour parcourir les plugins installés et recommandés.`,optionalCapability:`Fonctionnalité OpenClaw facultative.`,enabled:`Activé`,disabled:`Désactivé`,available:`Disponible`,needsAttention:`Nécessite votre attention`,included:`Inclus`,global:`Global`,workspace:`Espace de travail`,config:`Configuration`,official:`Officiel`,codePlugin:`Plugin de code`,bundlePlugin:`Plugin groupé`,unavailable:`Indisponible`,install:`Installer`,installing:`Installation…`,installNamed:`Installer {name}`,installConfirmTitle:`Installer {name} ?`,installConfirmMessage:`L'installation de ce plugin redémarre immédiatement le Gateway et interrompt les sessions actives.`,policyReviewTitle:`Vérification de sécurité requise`,policyReviewBodyKnown:`Avertissements de politique : {count}. Non installé.`,policyReviewBodyReason:`{reason} Non installé.`,policyReviewFindings:`Constats`,policyReviewSeverityInfo:`Info`,policyReviewSeverityWarn:`Avertissement`,policyReviewSeverityCritical:`Critique`,policyReviewTechnicalDetails:`Détails`,policyReviewScope:`Installer quand même approuve chaque avertissement de politique d'installation rencontré lors de cette installation. Chaque avertissement est vérifié à nouveau avant que l'installation se poursuive.`,installAnyway:`Installer quand même`,connectToChange:`Connectez-vous au gateway pour modifier les plugins.`,adminRequired:`Consultation uniquement. Les modifications de plugins nécessitent l’accès operator.admin.`,changesDisabled:`Consultation uniquement. Ce gateway n’autorise pas les modifications de plugins.`,configRefreshFailed:`Impossible d’actualiser la configuration de Control UI : {error}`,installedSuccess:`{name} installé.`,installedRestart:`{name} installé. Un redémarrage de Gateway est nécessaire pour appliquer la modification.`,enabledSuccess:`{name} activé.`,enabledRestart:`{name} activé. Un redémarrage de Gateway est nécessaire pour appliquer la modification.`,disabledSuccess:`{name} désactivé.`,disabledRestart:`{name} désactivé. Un redémarrage de Gateway est nécessaire pour appliquer la modification.`},labsPage:{intro:`Labs contient des fonctionnalités expérimentales qui peuvent changer, se briser ou disparaître entre les versions.`,sectionTitle:`Fonctionnalités expérimentales`,sectionDescription:`Les modifications sont enregistrées immédiatement et s'appliquent aux futures exécutions de l'agent.`,documentation:`Documentation`,restartRequired:`Redémarrage du Gateway requis.`,saveErrorTitle:`Impossible de mettre à jour la fonctionnalité`,saveFailed:`Le paramètre de la fonctionnalité n'a pas pu être enregistré.`,codeMode:{title:`Code Mode`,description:`Définissez la valeur par défaut globale pour les workflows d'outils JavaScript compacts et isolés. Activé sélectionne Auto pour les modèles évalués ; Désactivé désactive la valeur par défaut. Les remplacements de Code Mode par modèle se trouvent dans Valeurs par défaut de l'agent → Modèles (Avancé).`},swarm:{title:`Swarm`,description:`Permettez à Code Mode d'orchestrer des groupes de sous-agents en parallèle.`,defaultPhase:`Sans phase`,progress:`{complete} sur {total}`},toolSearch:{title:`Recherche d'outils`,description:`Gardez visible un répertoire d'outils limité et différez le reste derrière une recherche, afin que les grands catalogues MCP et de plugins n'encombrent plus l'invite.`},loopDetection:{title:`Détection de boucles d'outils`,description:`Activez les protections basées sur l'historique glissant qui avertissent ou bloquent les appels d'outils répétés lorsqu'un agent cesse de progresser.`},localModelLean:{title:`Outils allégés pour les modèles locaux`,description:`Abandonnez les outils lourds par défaut que les petits modèles locaux gèrent mal, pour ne conserver qu'un ensemble réduit qu'ils peuvent utiliser de manière fiable.`},cliAgents:{title:`Agents CLI`,description:`Afficher les moteurs de session CLI externes dans le sélecteur de modèle de nouvelle session lorsque leurs plugins prennent en charge la création de sessions.`},auditMessages:{title:`Métadonnées d'audit des messages`,description:`Enregistrez des métadonnées sans contenu pour les conversations directes dans le registre d'audit. Le contenu des messages n'est jamais stocké.`},hostDesktop:{title:`Bureau hôte`,description:`Visualisez et contrôlez cette machine Gateway depuis le panneau Bureau via son serveur VNC ou de partage d'écran existant.`},workerDesktop:{title:`Bureau du worker cloud`,description:`Visualisez et contrôlez les bureaux portés par les nœuds depuis les profils AWS ou Hetzner Crabbox compatibles avec desktop: true.`}},aboutPage:{productName:`OpenClaw`,tagline:`Votre assistant IA personnel, exécuté sur vos propres appareils.`,waveHello:`Faites un signe à Clawd`,linksLabel:`Communauté et ressources`,linkWebsite:`Site web`,linkDocs:`Documentation`,linkGitHub:`GitHub`,linkDiscord:`Discord`,linkX:`X (Twitter)`,linkChangelog:`Journal des modifications`,license:`© 2026 OpenClaw Foundation — Licence MIT.`,artifactTitle:`Control UI`,artifactSubtitle:`Identité intégrée lors de la création de cet artefact de navigateur.`,artifactDetails:`Détails de build du Control UI`,version:`Version`,commit:`Commit`,branch:`Branche`,built:`Build`,unavailable:`Indisponible`,copyCommit:`Copier le hash complet du commit`,copyingCommit:`Copie du hash du commit`,copiedCommit:`Hash du commit copié`,copyCommitFailed:`Impossible de copier le hash du commit`,gateway:`Connexion`,gatewayVersion:`Version du Gateway connecté`,gatewayVersionHint:`Signalée par la connexion Gateway active\xA0; distincte de ce build du Control UI.`},appsPage:{heroTitle:`Emportez OpenClaw partout`,heroTagline:`Des applications compagnons pour votre téléphone, votre montre, votre ordinateur et votre navigateur — ainsi que des plugins pour étendre les capacités de votre agent.`,sectionMobile:`Sur votre téléphone`,havePhone:`Vous avez déjà l'application ?`,pairDevice:`Associer votre appareil`,sectionWatch:`À votre poignet`,sectionDesktop:`Sur votre ordinateur`,sectionBrowser:`Dans votre navigateur`,sectionCommunity:`Communauté`,badgeBundledIos:`Inclus avec l'application iOS`,badgeBundledAndroid:`Inclus avec l'application Android`,ctaAppStore:`App Store`,ctaPlayStore:`Google Play`,ctaDownload:`Télécharger`,ctaDocs:`Documentation`,ctaSetupGuide:`Guide de configuration`,ctaChromeWebStore:`Chrome Web Store`,ctaOpenPlugins:`Ouvrir les plugins`,ctaBrowseClawHub:`Parcourir ClawHub`,linkDiscord:`Communauté Discord`,linkDocs:`Documentation`,cards:{ios:{title:`iPhone`,desc:`Discutez, parlez, approuvez des actions et partagez vers OpenClaw depuis iOS.`},android:{title:`Android`,desc:`Votre téléphone Android en tant qu'appareil OpenClaw complet — chat, appareil photo et Canvas.`},appleWatch:{title:`Apple Watch`,desc:`Consultez vos conversations et répondez rapidement depuis votre poignet.`},wearOs:{title:`Wear OS`,desc:`L'application compagnon Android étend OpenClaw à votre montre.`},macos:{title:`macOS`,desc:`Application compagnon dans la barre de menus pour votre Gateway — notifications, approbations, chat rapide.`},windows:{title:`Windows`,desc:`Le compagnon Windows connecte votre PC en tant qu'appareil OpenClaw.`},linux:{title:`Linux`,desc:`Application de bureau native — versions .deb et AppImage.`},chrome:{title:`Extension Chrome`,desc:`Laissez OpenClaw piloter votre Chrome existant — onglets, pages et formulaires.`},plugins:{title:`Plugins et ClawHub`,desc:`Étendez OpenClaw avec des canaux, outils et compétences de la communauté.`}}},presence:{rosterTitle:`En ligne`,card:{details:`Détails pour {name}`,loadFailed:`Impossible d’ouvrir les détails. Réessayez ou ouvrez la page Activité de cette personne.`,ariaLabel:`Activité de {name}`,person:`Personne`,onlineFor:`En ligne depuis`,where:`Où`,reportedTimeZone:`Fuseau horaire indiqué : {zone}`,lastActivity:`Dernière activité`,notObserved:`Pas encore observé`,viewingNow:`En cours de consultation`,recentSessions:`Sessions récentes`,noVisibleSessions:`Aucune session visible en cours de consultation.`,noRecentSessions:`Aucune session visible récente.`,sessionUpdated:`Session mise à jour`,ago:`il y a`,viewActivity:`Voir l’activité`,controlUi:`Control UI`,cli:`Ligne de commande`,app:`Application`}},activityFeed:{partialHistory:`Les personnes et les décomptes décrivent les associations de sessions enregistrées visibles ; l'historique conservé et cette liste de personnes peuvent être incomplets.`,sessionsMode:`Sessions`,searchPlaceholder:`Rechercher des titres de session…`,time:`Heure`,time24h:`Dernières 24 heures`,time7d:`7 derniers jours`,time30d:`30 derniers jours`,timeAll:`Tout l'historique`,everyone:`Tout le monde`,peopleButtonLabel:`Filtrer les sessions par personne`,lastActive:`· {time}`,unresolvedIdentities:`Identités non résolues`,clearPersonFilter:`Effacer le filtre de personne`,sessions:`Sessions`,showing:`Affichage de {shown} sur {total}`,today:`Aujourd’hui`,yesterday:`Hier`,unknownDate:`Date inconnue`,noSessions:`Aucune session ne correspond à ces filtres.`,automationGroup:`{count} sessions d'automatisation`,automation:`Cron`,inspectRun:`Inspecter l'exécution`,backToSessions:`Retour aux sessions`,channelLabel:`Canal : {value}`,agentLabel:`Agent : {value}`,online:`En ligne`,idle:`Inactif`,offline:`Hors ligne`,unknownDevice:`Appareil inconnu`,lastInput:`Dernière saisie il y a {time}`,viewingNow:`En cours de consultation`,notViewing:`Aucune session consultée pour le moment.`,notFoundTitle:`Personne introuvable`,notFoundDescription:`Aucune présence en ligne ni association de session visible ne correspond à cette identité.`},profilePage:{offline:`Connectez-vous au Gateway pour rencontrer votre agent.`,usageStatistics:`Statistiques d'utilisation`,usageStatisticsDescription:`Consultez l'activité, les coûts et les tendances d'utilisation.`,identity:{title:`Identité`,menuLabel:`Menu d'identité`,menuButtonLabel:`Menu d'identité et d'application pour {name}`,description:`Votre profil sur ce gateway.`,loading:`Chargement de votre identité…`,profileUnavailable:`Impossible de charger votre profil d'identité.`,writeRequired:`La modification du profil requiert l'accès operator.write.`,notSet:`L'identité n'est pas définie.`,setIdentity:`Définir l'identité`,avatar:`Avatar`,avatarDescription:`PNG, JPEG ou WebP. Les images sont redimensionnées à 256 × 256 ou moins.`,chooseAvatar:`Choisir une image`,processingAvatar:`Traitement…`,displayName:`Nom d'affichage`,displayNameDescription:`Affiché aux autres personnes utilisant ce gateway.`,linkedEmails:`E-mails associés`,linkedEmailsDescription:`Adresses e-mail connectées à ce profil.`,githubAccount:`Compte GitHub`,githubAccountDescription:`Vérifié automatiquement à partir de votre connexion via GitHub.`,githubVerified:`Vérifié à partir de votre connexion via GitHub`,githubUnavailable:`Indisponible`,githubUnavailableDescription:`La connexion via GitHub est indisponible. Actualisez pour réessayer.`,gitCoauthor:`Crédit de co-auteur Git`,gitCoauthorDescription:`Ajoute l'adresse noreply GitHub publique de ce compte aux commits créés à partir des sessions partagées. La désactivation n'affecte que les commits futurs.`,gitCoauthorUnavailable:`Disponible une fois votre connexion via GitHub vérifiée. Actualisez pour réessayer.`,avatarErrors:{invalid:`Cette image n'a pas pu être traitée.`,sourceTooLarge:`Choisissez une image de 10 Mo ou moins.`,tooLarge:`L'avatar traité dépasse 512 Ko.`}}},tasksPage:{active:`Actives`,activeSub:`Travail en arrière-plan en file d’attente et en cours d’exécution.`,recent:`Récentes`,recentSub:`Dernières tâches terminées, échouées et annulées.`,loading:`Chargement des tâches…`,empty:`Aucune tâche en arrière-plan pour le moment.`,emptyActive:`Aucune tâche en file d’attente ou en cours d’exécution.`,emptyRecent:`Aucune tâche terminée récemment.`,disconnected:`Connectez-vous au Gateway pour charger et gérer les tâches.`,loadFailed:`Impossible de charger les tâches.`,cancelFailed:`Impossible d’annuler la tâche.`,recoveryFailed:`Impossible de mettre à jour la livraison de l'achèvement.`,invalidResponse:`Le Gateway a renvoyé une liste de tâches non valide.`,untitled:`Tâche en arrière-plan`,taskCount:`{count} tâches`,taskCountOne:`1 tâche`,agent:`Agent\xA0: {agent}`,openSession:`Ouvrir la session`,cancelTask:`Annuler {title}`,cancelling:`Annulation…`,retryDelivery:`Réessayer la livraison`,dismissDelivery:`Ignorer la livraison`,copyResult:`Copier le résultat`,deliveryBlocked:`Terminé, mais la livraison du résultat est bloquée.`,deliveryDismissed:`Terminé ; la livraison du résultat a été ignorée.`,duplicateRisk:`Réessayer peut dupliquer un résultat après un accusé de réception ambigu.`,status:{queued:`En file d’attente`,running:`En cours`,completed:`Terminé`,failed:`Échoué`,cancelled:`Annulé`,timedOut:`Expiration du délai`},runtime:{subagent:`Sous-agent`,cron:`Cron`,acp:`ACP`,cli:`CLI`,unknown:`Tâche`}},skillWorkshop:{title:`Atelier Skills`,header:{useCurrentChat:`Utiliser la discussion actuelle`,useCurrentChatAria:`Utiliser la discussion actuelle pour les demandes de révision`,useCurrentChatTooltip:`Envoyer les demandes de révision à la session de chat actuelle plutôt qu'à la session d'atelier de la proposition.`,selfLearning:`Auto-apprentissage`,selfLearningAria:`Activer ou désactiver les propositions de Skills par auto-apprentissage`,selfLearningTooltip:`Capture les corrections et analyse les travaux substantiels terminés pour en faire des propositions de Skills en attente. Utilise des jetons supplémentaires en arrière-plan ; les brouillons apparaissent sur ce tableau comme propositions en attente.`,view:`Vue de l'atelier`,board:`Tableau`,today:`Aujourd’hui`},status:{all:`Tous`,pending:`En attente`,applied:`Appliqué`,rejected:`Rejeté`,quarantined:`En quarantaine`,stale:`Obsolète`},recency:{today:`Aujourd’hui`,yesterday:`Hier`,earlier:`Plus tôt cette semaine`},diff:{changes:`Modifications`,fullBody:`Corps complet`,viewLabel:`Vue de révision`,unchanged:`Cette révision n'a pas modifié le corps du skill.`,loadingPrevious:`Chargement de la révision précédente…`,previousUnavailable:`La révision précédente n'est pas disponible, il s'agit donc du corps complet.`,tooLarge:`Cette comparaison est trop volumineuse pour être affichée ici. Passez au corps complet pour la lire.`,truncated:`Cette comparaison est tronquée. Les modifications et les statistiques peuvent être incomplètes. Passez au corps complet pour examiner la révision complète.`},applied:{history:`Historique`,revision:`{count} révision`,revisions:`{count} révisions`,create:`Créer`,update:`Mettre à jour`,version:`v{version}`},previewContext:`dans {slug}`,actions:{close:`Fermer`,cancel:`Annuler`,previous:`Précédent`,next:`Suivant`,apply:`Appliquer`,applying:`Application…`,evaluate:`Évaluer`,evaluating:`Évaluation…`,evaluated:`Évalué`,revise:`Réviser`,tweak:`Ajuster`,opening:`Ouverture…`,reject:`Rejeter`,rejecting:`Rejet…`,sending:`Envoi…`},notices:{applied:`Appliqué`,proposalChanged:`La proposition a changé. Examinez le brouillon mis à jour avant de choisir une autre action.`,rejected:`Rejeté`,revisionRequested:`Révision demandée`},revision:{title:`{verb} la proposition`,description:`Indiquez à l'agent ce qui doit changer. La proposition reste en attente et le workshop créera une version révisée.`,placeholder:`Exemple : Faire en sorte que cela utilise les libellés Gmail au lieu de la recherche de messages non lus, et ajouter une étape de simulation plus sûre.`,preparing:`En attente d'admission au chat`,notAdmitted:`La demande de révision n'a pas été admise. Vos instructions sont toujours disponibles ; examinez l'erreur et réessayez. {error}`,send:`Envoyer la révision`},queue:{resize:`Redimensionner la liste des propositions`,search:`Rechercher des propositions…`,loadError:`Impossible de charger les propositions.`,loading:`Chargement des propositions…`,noStatus:`Aucune proposition {status}.`,noMatch:`Aucune proposition ne correspond au filtre actuel.`},detail:{edited:`Modifié {time}`,created:`Créé {time}`,supportFiles:`{count} fichiers de support`,noSupportFiles:`0 fichier de support`,loading:`Chargement de la proposition…`,supportFilesTitle:`Fichiers de support`,clickToPreview:`· cliquer pour prévisualiser`},evaluation:{title:`Évaluation`,version:`Proposition {version}`,completedAt:`Terminé {time}`,status:{completed:`Terminé`,skipped:`Ignorées`,error:`Erreur`},decision:{pass:`Réussi`,revise:`Réviser`,block:`Bloqué`},severity:{info:`Info`,warn:`Avertissement`,critical:`Critique`},evaluatorVersion:`Évaluateur {version}`,mode:`Mode {mode}`,findings:`Constats`,metrics:`Métriques`,fileLine:`{file}:{line}`,errors:{revisionHashUnavailable:`La révision de proposition actuelle n'a pas pu être identifiée.`,revisionChanged:`La révision de proposition a changé pendant l'évaluation.`}},empty:{searchTitle:`Aucune proposition correspondante`,searchBody:`Effacez la recherche ou essayez un autre mot-clé.`,pendingTitle:`Aucune proposition en attente`,pendingBody:`Les nouveaux brouillons apparaîtront ici lorsqu'ils nécessiteront une révision.`,appliedTitle:`Rien d'appliqué pour le moment`,appliedBody:`Utilisez une proposition en attente et elle apparaîtra ici en tant que skill active.`,rejectedTitle:`Aucune proposition rejetée`,rejectedBody:`Les propositions ignorées resteront ici pour conserver un historique de révision clair.`,quarantinedTitle:`Rien en quarantaine`,quarantinedBody:`Les propositions bloquées par le scanner ou retenues pour raisons de sécurité apparaîtront ici.`,staleTitle:`Aucune proposition obsolète`,staleBody:`Les propositions qui ne peuvent plus s'appliquer proprement apparaîtront ici.`,allTitle:`Aucune proposition ici`,allBody:`Les propositions du Skill Workshop apparaîtront ici lorsque votre agent les rédigera.`,defaultAgent:`Votre agent`,noProposalsAria:`Aucune proposition du Skill Workshop`,noProposalsTitle:`Aucune proposition pour le moment`,noProposalsBody:`{agent} n'a rédigé aucune proposition de skill.`,noProposalsFooter:`Les nouvelles propositions apparaîtront ici pour révision.`},selfLearning:{pitchTitle:`Activer l’auto-apprentissage`,pitchBody:`OpenClaw analyse les corrections et les exécutions substantielles terminées, puis rédige des propositions de Skills pour ce tableau. Il utilise des jetons supplémentaires en arrière-plan, et les brouillons apparaissent comme propositions en attente.`,enable:`Activer l’auto-apprentissage`,enabling:`Activation…`,updateError:`Impossible de mettre à jour le paramètre d’auto-apprentissage.`},history:{eyebrow:`Travaux précédents`,title:`Trouver des workflows réutilisables`,body:`Passez en revue les sessions importantes de la plus récente à la plus ancienne. Seuls les schémas de récupération solides ou les workflows qui évitent des appels d'outils répétés deviennent des propositions en attente.`,findIdeas:`Trouver des idées de Skills`,scanEarlier:`Analyser les travaux précédents`,scanNew:`Analyser les nouveaux travaux`,scanning:`Examen des sessions…`,loading:`Chargement de l’historique…`,pendingOnly:`Propositions en attente uniquement · utilise votre modèle configuré`,reviewed:`{count} sessions examinées`,found:`{count} idées trouvées`,noSessions:`Aucune session substantielle trouvée dans cette fenêtre.`,today:`aujourd’hui`},today:{emptyTitle:`Rien en attente aujourd'hui`,emptyBody:`Votre agent n'a rien rédigé de nouveau. Passez au Tableau pour parcourir l'historique.`,new:`NOUVEAU`,waiting:`EN ATTENTE`,reviewed:`EXAMINÉ`,agent:`agent`,proposalsWaiting:`{count} propositions en attente`,browseApplied:`Parcourez ce qui est déjà appliqué.`,progress:`{current} sur {total}`,draftedBy:`Rédigé par`,supportFile:`{count} fichier de support`,supportFiles:`{count} fichiers de support`,comeWithIt:`sont inclus.`,useIt:`Utiliser`,addToSkills:`Ajouter à vos Skills`,evaluate:`Évaluer`,runChecks:`Exécuter les vérifications de proposition`,tweakIt:`Ajuster`,askAgent:`Demander à l'agent de modifier quelque chose`,skipping:`Ignorer…`,skip:`Ignorer`,notForMe:`Pas pour moi`,upNext:`À suivre · {count} en attente`,seeAll:`Voir toutes les propositions →`,collection:`Votre collection · {count} en cours d'utilisation`,manage:`Gérer →`,workflowHeading:`Comment l'agent l'utilisera`,applicabilityHeading:`Quand l'agent doit l'utiliser`}},activity:{status:{done:`Terminé`,running:`En cours d’exécution`,error:`Erreur`},title:`Activité`,visibleCount:`{visible} sur {total}`,search:`Rechercher`,searchPlaceholder:`Filtrer par outil, résumé, exécution, session`,filters:`Filtres`,toolFilter:`Outil`,allTools:`Tous les outils`,statusFilters:`Filtres d’état`,autoFollow:`Suivi automatique`,expandAll:`Tout développer`,collapseAll:`Tout réduire`,clear:`Effacer`,empty:`Aucune activité d’outil pour le moment.`,emptyFiltered:`Aucune activité ne correspond à ces filtres.`,argumentHiddenOne:`1 argument masqué`,argumentsHidden:`{count} arguments masqués`,streamLabel:`Entrées d’activité des outils`,toolCallId:`Appel d’outil`,runId:`Exécuter`,session:`Session`,outputTruncated:`Aperçu masqué et tronqué.`,noOutputPreview:`Aucun aperçu de sortie.`,answerCandidate:{title:`Réponse candidate`,itemId:`Élément`,candidate:`Réponse candidate`,superseded:`Réponse remplacée`,selected:`Réponse sélectionnée`},runInspector:{activityView:`Vue d'activité`,liveMode:`Activité en direct`,mode:`Inspecteur d'exécution`,intro:`Preuve d'identité durable soutenue par le Gateway pour une exécution. Recharger cette page interroge à nouveau le Gateway.`,bestEffortWarning:`Avertissement d'audit au mieux : cette vue est destinée au diagnostic opérationnel, et non à un enregistrement de conformité sans perte. L'absence de preuve ne prouve pas qu'une action ou une exécution n'a pas eu lieu.`,evidenceStateLabel:`État de la preuve : {state}`,evidenceState:{present:`Présente`,absent:`Absente`,unknown:`Inconnu`,unsupported:`Non prise en charge`},coverageStatusLabel:`Couverture d'inspection : {state}`,coverage:{enforced:{label:`Appliquée`,description:`Un reçu de décision prouve une évaluation tenant compte de l'identité ; cela ne signifie pas en soi que l'action a été autorisée.`},attributionOnly:{label:`Attribution uniquement`,description:`Des faits d'identité ont été enregistrés, mais aucune évaluation de politique ou d'octroi tenant compte de l'identité n'est prouvée.`},unattributed:{label:`Non attribuée`,description:`Le chemin pris en charge a été observé sans principal d'appelant utilisable.`},unknown:{label:`Inconnu`,description:`Les preuves attendues sont manquantes, corrompues, expirées de façon inattendue ou illisibles.`},unsupported:{label:`Non prise en charge`,description:`Ce chemin n'a pas de contrat de preuve d'identité en phase 0.`}},facts:{trustDomain:`Domaine de confiance`,ingress:`Entrée`,invoker:`Appelant`,representedSubject:`Sujet représenté`,sponsor:`Parrain`,agentPrincipal:`Principal de l'agent`,agentDefinition:`Définition de l'agent`,runtimeInstance:`Instance d'exécution`,applicableGrants:`Octrois applicables`,applicableGrant:`Octroi applicable {index}`,assuranceEvidence:`Preuve d'assurance`,assuranceEvidenceItem:`Preuve d'assurance {index}`,lineage:`Lignage`},values:{label:`Libellé`,kind:`Type`,operation:`Opération`,principalReference:`Référence du principal`,domainReference:`Référence du domaine`,owningBoundary:`Limite propriétaire`,sourceReference:`Référence de la source`,relationshipReference:`Référence de la relation`,definitionReference:`Référence de la définition`,revisionReference:`Référence de la révision`,runtimeReference:`Référence du runtime`,grantReference:`Référence de l'octroi`,strength:`Force`,evidenceReference:`Référence de la preuve`,depth:`Profondeur`,parentRunReference:`Référence de l'exécution parente`,parentExecutionReference:`Référence de l'exécution parente`,parentContextReference:`Référence du contexte parent`,delegationReference:`Référence de la délégation`},reasons:{absent:`Aucun {label} n'a été enregistré à la limite propriétaire.`,unknown:`Le {label} était attendu, mais sa preuve est indisponible ou illisible.`,unsupported:`Ce chemin d'exécution ne fournit pas de preuve {label}.`,invokerAbsent:`La limite d'entrée prise en charge n'a enregistré aucun principal appelant utilisable.`,noGrants:`Aucune autorisation applicable n'a été enregistrée pour cette exécution.`,noAssurance:`Aucune preuve d'assurance n'a été enregistrée pour cette exécution.`,noLineage:`Aucune lignée parente ou de sous-agent n'a été enregistrée pour cette exécution.`},identityHeading:`Identité et autorité`,missingEvidenceHeading:`Preuve manquante`,noMissingEvidence:`Aucune preuve manquante n'a été signalée pour cette projection.`,nextStepsHeading:`Étapes suivantes`,decisions:{heading:`Reçus de décision`,none:`Aucun reçu de décision n'a été renvoyé pour cette page limitée.`,returned:`Affichage de {count} reçus de décision conservés.`,listLabel:`Liste des reçus de décision`,inspectLabel:`{summary}. Résultat : {outcome}. Classification des preuves : {classification}.`,detailHeading:`Détail du reçu`,requestedHeading:`Ce qui a été demandé`,outcomeHeading:`Ce qui s'est passé`,outcomeLabel:`Résultat`,classificationLabel:`Classification des preuves`,reasonLabel:`Raison enregistrée`,occurredAtLabel:`Enregistré le`,ownerHeading:`Provenance de l'affichage`,durableOwnerLabel:`Producteur vérifié`,boundaryLabel:`Limite de décision`,ownerNote:`Le Gateway n'expose les explications que depuis un chemin d'appel propriétaire vérifié. Les explications et étapes suivantes contrôlées par le reçu sont masquées ; le Control UI ne déduit pas la confiance à partir des métadonnées du reçu.`,evidenceHeading:`Limites de preuve`,contextFieldsLabel:`Champs de contexte utilisés`,noContextFields:`Aucun champ de contexte n'a été enregistré comme utilisé.`,policyCountLabel:`Références de politique utilisées`,grantCountLabel:`Références d'autorisation utilisées`,notFoundTitle:`Reçu introuvable sur cette page`,notFoundDescription:`Le reçu sélectionné n'est pas présent sur cette page conservée. Revenez à la première page ou utilisez un lien de reçu actuel.`,readOnly:`Les reçus de décision sont en lecture seule. Cette vue ne peut pas approuver, modifier ou répéter une action.`,more:`D'autres reçus de décision sont disponibles.`,loadMore:`Charger plus de reçus`,loadingMore:`Chargement des reçus…`,loadMoreError:`Impossible de charger d'autres reçus. Les reçus déjà affichés restent inchangés.`,bounded:`L'inspection des décisions est limitée à un maximum de 50 enregistrements par requête.`,outcomes:{allowed:`Autorisée`,denied:`Denied`,notApplicable:`Non applicable`,unknown:`Inconnu`}},diagnosticReason:`Raison du diagnostic :`,diagnostic:{notFound:{title:`Exécution introuvable`,description:`Aucun enregistrement d'exécution ou d'identité conservé ne correspond à cette référence. L'absence de preuve au mieux ne prouve pas que l'exécution n'a jamais eu lieu.`},expired:{title:`Preuve d'identité expirée`,description:`Le Gateway a trouvé l'exécution, mais son contexte d'identité est en dehors de la fenêtre de conservation de 30 jours.`},corrupt:{title:`Les preuves d'identité sont corrompues`,description:`Le Gateway a trouvé des preuves pour cette exécution mais n'a pas pu valider le contexte d'identité stocké.`},ambiguous:{title:`Plusieurs exécutions correspondent à ce run`,description:`Une référence de run peut correspondre à plusieurs exécutions. L'inspecteur ne devinera pas laquelle vous vouliez dire.`},unsupported:{title:`Preuves d'identité non prises en charge`,description:`Le run est connu, mais ce chemin d'exécution n'a pas conservé de contexte d'identité pris en charge.`},unknown:{title:`Preuves d'identité inconnues`,description:`Le chemin promet des preuves, mais l'enregistrement attendu est manquant, illisible ou autrement indisponible.`}},candidates:{listLabel:`Exécutions correspondantes`,recorded:`Enregistré le {date}`,executionReference:`Inspecter l'exécution`,more:`D'autres exécutions correspondantes existent au-delà de cette page limitée.`,loadMore:`Charger plus d'exécutions`,loadingMore:`Chargement des exécutions…`,loadMoreError:`Impossible de charger d'autres exécutions. Réessayez.`},panels:{empty:{title:`Aucun run sélectionné`,description:`Ouvrez un lien de la forme /activity?view=run&run= pour inspecter les preuves d'identité durables.`},waiting:{title:`En attente du Gateway`,description:`La projection durable se chargera lorsque ce navigateur se reconnectera.`},loading:{title:`Chargement de l'inspection d'exécution`,description:`Lecture de la projection d'identité conservée par le Gateway…`},disconnected:{title:`Gateway déconnecté`,description:`L'identité d'exécution est durable sur le Gateway, mais elle ne peut pas être lue tant que ce navigateur est déconnecté.`},unauthorized:{title:`Accès en lecture opérateur requis`,description:`Cette connexion ne dispose pas de operator.read, donc l'identité d'exécution conservée ne peut pas être chargée.`},unsupported:{title:`Inspection d'exécution non prise en charge`,description:`Ce Gateway ne propose pas audit.run.inspect. Mettez à niveau le Gateway, activez la collecte d'identité d'exécution et enregistrez une nouvelle exécution.`},error:{title:`Échec de l'inspection d'exécution`,description:`Le Gateway n'a pas pu renvoyer cette projection de diagnostic. Aucun fait d'identité n'a été déduit de l'activité Live.`}},restart:`Relancer l'inspection`,retry:`Réessayer l'inspection`}},gatewayLogs:{title:`Journaux`,subtitle:`Journaux de fichiers du Gateway (JSONL).`,exportButton:`Exporter {label}`,exportLabels:{filtered:`filtré`,visible:`visible`},filter:`Filtrer`,searchPlaceholder:`Rechercher dans les journaux`,autoFollow:`Suivi automatique`,file:`Fichier : {file}`,truncated:`Sortie du journal tronquée ; affichage du dernier segment.`,empty:`Aucune entrée de journal.`},pluginTabs:{unavailableTitle:`Plugin panel unavailable`,unavailableSubtitle:`The plugin that owns this tab is not active on the connected gateway, or it did not provide a panel.`},logbook:{nav:{previousDay:`Previous day`,nextDay:`Next day`,today:`Today`},status:{capturing:`Capturing every {seconds}s`,paused:`Capture paused`,disabled:`Capture off`,nodeHelp:`Appareil fournissant des captures d'écran.`,pending:`{count} frames queued`,pendingHelp:`Snapshots waiting for the next analysis batch.`,analyzing:`Analyzing…`,captureError:`Capture error`,batchError:`Analysis error`,modelMissing:`No vision model`,modelMissingHelp:`Set plugins.entries.logbook.config.visionModel (for example codex/gpt-5.6-sol) or configure tools.media models.`},actions:{pause:`Pause`,resume:`Resume`,analyzeNow:`Analyze now`},empty:{title:`Nothing on the timeline yet.`,subtitle:`Logbook is collecting snapshots; cards appear after the first analysis batch completes.`},card:{keyframeAlt:`Screen snapshot from this activity`,distractions:`Distractions`},stats:{title:`Day at a glance`,focus:`{pct}% focus`,tracked:`{duration} tracked`},standup:{title:`Daily standup`,generate:`Generate`,refresh:`Regenerate`,empty:`Turn today's timeline into a ready-to-paste standup update.`},ask:{title:`Ask your day`,placeholder:`When did I review the gateway PR?`,submit:`Ask`}},board:{label:`Tableau de bord des sessions`,tabsLabel:`Onglets du tableau de bord`,moreTabs:`Plus d'onglets du tableau de bord`,gridLabel:`Widgets du tableau de bord`,emptyTitle:`Un tableau vierge, prêt à l'emploi`,emptyHint:`Votre agent peut épingler des widgets ici — essayez de demander une carte de statut.`,actionFailed:`La modification du tableau de bord n'a pas pu être enregistrée.`,actionInProgress:`Une autre modification du tableau de bord est encore en cours d'enregistrement.`,announcement:{moved:`{title} déplacé.`,resized:`{title} redimensionné.`,removed:`{title} supprimé.`,granted:`Accès au widget autorisé.`,rejected:`Accès au widget refusé.`},widget:{cellLabel:`Widget du tableau de bord : {title}. Utilisez les touches fléchées pour naviguer. Maintenez Alt et appuyez sur une touche fléchée pour le déplacer.`,moveHandle:`Déplacer {title}`,resizeHandle:`Redimensionner {title}`,menuLabel:`Options du widget`,moveToTab:`Déplacer vers l'onglet`,noOtherTabs:`Aucun autre onglet`,resize:`Redimensionner`,autoHeight:`Hauteur automatique`,remove:`Supprimer`,needsApproval:`Approbation requise`,needsApprovalDetail:`Ce widget a demandé un accès supplémentaire.`,networkAccess:`Origines réseau`,hostTools:`Outils et données de l'hôte`,activeCapabilities:`Capacités actives du widget`,networkCapability:`Réseau : {capability}`,toolCapability:`Outil : {capability}`,granted:`Accordée`,allow:`Autoriser`,allowFailed:`Impossible d'autoriser l'accès au widget. Réessayez.`,reject:`Rejeter`,rejectFailed:`Impossible de refuser l'accès au widget. Réessayez.`,rejected:`Accès refusé`,rejectedDetail:`Ce widget reste inactif jusqu'à ce qu'il soit supprimé ou remplacé.`,appLoading:`Restauration de l'application…`,appStaleTitle:`Cette application épinglée est obsolète`,appStaleDetail:`Son serveur, sa ressource ou sa transcription d'origine n'est plus disponible.`,retry:`Réessayer`,frameResolverMissing:`Le contenu du widget est indisponible.`,sandboxUnavailable:`L'hôte du bac à sable du widget est indisponible.`,frameAuthorizationFailed:`Échec de l'autorisation du widget après plusieurs tentatives d'actualisation.`,sandboxOriginRequired:`Échec de l'autorisation du widget après plusieurs tentatives d'actualisation. Si le gateway s'exécute derrière un proxy inverse ou un tunnel qui ne route pas le port du bac à sable du widget, définissez mcp.apps.sandboxOrigin sur une origine publique dédiée routée vers l'écouteur du bac à sable.`,errorTitle:`Ce widget n'a pas pu se charger`,errorDetail:`Le problème est limité à cette carte.`,actionErrorTitle:`Échec de la modification du widget`,actionErrorDetail:`Le tableau de bord a conservé l'état précédent du widget.`,errorShow:`Afficher les détails`,kindMcp:`MCP`,kindHtml:`HTML`,kindPlugin:`Plugin`,pluginLoading:`Chargement du widget du plugin…`,disabledPlugin:`Widget du plugin désactivé {pluginId}`}},workboard:{widget:{boardLabel:`Tableau Workboard`,cardLabel:`Carte Workboard`,summaryLabel:`Résumé Workboard`,loading:`Chargement du Workboard…`,cardIdRequired:`Ce widget nécessite une prop cardId.`,cardMissing:`Cette carte Workboard n'est plus disponible.`,unassigned:`Non attribué`,openBoard:`Ouvrir le tableau`,statusCounts:`Cartes par statut`,cardCount:`{count} cartes`,noActiveCards:`Aucune carte prête ou en cours.`},disabledHelpStart:`Le tableau de travail est désactivé. Activez`,enableConfigKey:`plugins.entries.workboard.enabled = true`,disabledHelpEnd:`, puis rechargez cet onglet.`,status:{triage:`Triage`,backlog:`Backlog`,todo:`À faire`,scheduled:`Planifié`,ready:`Prêt`,running:`En cours d’exécution`,review:`Vérification`,blocked:`Bloqué`,done:`Terminé`},noLinkedSession:`Aucune session liée`,stopSession:`Arrêter la session`,editCard:`Modifier la carte`,editCardHelp:`Mettre à jour les métadonnées de la file et le transfert de session.`,newCard:`Nouvelle carte`,newCardHelp:`Mettre en file du travail pour une session d'agent.`,archiveCard:`Archiver la carte`,unarchiveCard:`Restore from archive`,archived:`Archived`,deleteCard:`Supprimer la carte`,viewDetails:`Voir les détails`,detailTitle:`Détails de la carte`,detailTask:`Tâche Gateway`,detailRun:`Exécution`,detailUpdated:`Mis à jour`,detailProof:`Preuve`,detailDiagnostics:`Diagnostics`,detailWorkerLogs:`Journaux du worker`,detailWorkerProtocol:`Protocole du worker`,detailAutomation:`Automatisation`,detailUpdatedValue:`Mis à jour : {time}`,detailAutomationTenant:`Locataire : {tenant}`,detailAutomationBoard:`Tableau : {board}`,detailAutomationSkills:`Skills : {skills}`,detailAutomationWorkspace:`Espace de travail : {workspace}`,detailAutomationSummary:`Résumé : {summary}`,detailOperatorNotes:`Notes de l'opérateur`,detailNoNotes:`Aucune note d'opérateur pour le moment.`,detailNotePlaceholder:`Ajouter une décision, un blocage ou une note de preuve...`,detailAddNote:`Ajouter une note`,dashboardTitle:`Tableau de bord`,dashboardEmpty:`Pas encore de tableau de bord — l'agent de travail peut épingler des widgets.`,openSession:`Ouvrir la session`,defaultAgent:`Agent par défaut`,allAgents:`All agents`,agentFilter:`Filter by agent`,allBoards:`All boards`,boardFilter:`Filter by board`,defaultBoard:`Default board`,automationAttached:`Cron`,automationAttachedTitle:`Ouvrir les automatisations`,boardFilterSummary:`{active} active · {total} total`,boardFilterArchivedSummary:`Archived · {active} active · {total} total`,agentFilterUnassigned:`Non assigné (utilise {agent})`,agentFilterUnassignedHelp:`Cartes sans agent explicite.`,agentFilterConfiguredDefault:`{agent} (par défaut)`,agentFilterConfiguredDefaultHelp:`Cartes explicitement assignées à l'agent par défaut configuré.`,agentCurrentUnconfigured:`{agent} (non configuré)`,viewPreset:`Vue du tableau de travail`,viewAll:`Toutes les cartes`,viewDefaultAgent:`Agent par défaut`,viewReady:`Prêt`,viewRunning:`En cours`,viewBlocked:`Bloqué`,viewReview:`Révision`,viewStale:`Obsolète`,viewMissingProof:`Preuve manquante`,viewRecentlyDone:`Récemment terminé`,viewPresetCount:`{count} cartes`,agentLinked:`Linked to {agent}`,agentDefaultLinked:`Using default agent {agent}`,engineOpenAI:`OpenAI`,engineClaude:`Claude`,engineDisabledRuntime:`{agent} utilise le runtime ACP {runtime}. Utilisez le démarrage par défaut pour cette session.`,runEngine:`Exécuter {engine}`,openEngine:`Ouvrir {engine}`,runDefaultAgent:`Exécuter l’agent par défaut`,run:`Run`,open:`Open`,start:`Démarrer`,dependencies:`Dépendances`,dependenciesReady:`{count} prêtes`,dependenciesReadyTitle:`{count} dépendances sont terminées.`,dependenciesBlocked:`{count} bloquées`,dependenciesBlockedTitle:`En attente de dépendances : {parents}.`,dependencyMissing:`{parent} (manquante)`,dependencyStatusMissing:`Manquante`,unknownStatus:`Inconnu`,showArchivedShort:`Archived`,hideArchivedShort:`Hide archived`,layout:`Card layout`,layoutCompact:`Densité de carte compacte`,layoutComfortable:`Densité de carte confortable`,dispatch:`Relancer le répartiteur`,dispatchSummary:`Dispatch complete: started {started}, promoted {promoted}, blocked {blocked}, reclaimed {reclaimed}, orchestrated {orchestrated}, failures {failures}.`,dispatchSummaryEmpty:`Dispatch complete: no ready work changed.`,lastRefreshed:`Mis à jour {time}`,refreshError:`Échec de l'actualisation`,healthLabel:`État du tableau de travail`,healthRunning:`en cours`,healthBlocked:`bloqué`,healthStale:`obsolète`,healthReadyUnassigned:`prêt non attribué`,healthMissingProof:`preuve manquante`,healthFailedAttempts:`tentatives échouées`,live:`en direct`,fieldTitle:`Titre`,fieldNotes:`Notes`,fieldStatus:`Statut`,fieldPriority:`Priorité`,fieldAgent:`Agent`,fieldSession:`Session`,fieldLabels:`Étiquettes`,templatesLabel:`Modèles de carte`,template:{bugfix:`Correction de bug`,docs:`Docs`,release:`Release`,pr_review:`Revue de PR`,plugin:`Plugin`},templateDraft:{bugfixTitle:`Correction : `,bugfixNotes:`Symptôme : Cause : Acceptation : Preuve :`,docsTitle:`Docs : `,docsNotes:`Page : Modification : Preuve source :`,releaseTitle:`Version : `,releaseNotes:`Portée : Vérification : Clôture :`,prReviewTitle:`Réviser la PR `,prReviewNotes:`Surface : Risques : Preuve :`,pluginTitle:`Plugin : `,pluginNotes:`Limite : Config/docs : Tests :`},badgeAttempts:`{count} tentatives`,badgeFailures:`{count} échecs`,badgeComments:`{count} commentaires`,badgeLinks:`{count} liens`,badgeProof:`{count} preuve`,badgeHeartbeat:`battement {age}`,badgeArtifacts:`{count} artefacts`,badgeAttachments:`{count} pièces jointes`,badgeDispatches:`{count} envois`,badgeTaskLinked:`task linked`,badgeClaimed:`revendiqué par {owner}`,badgeStale:`obsolète`,titlePlaceholder:`Titre de la carte`,notesPlaceholder:`Notes, critères d’acceptation, liens`,labelsPlaceholder:`ui, docs`,searchPlaceholder:`Rechercher des cartes`,allPriorities:`Toutes les priorités`,emptyColumns:`Colonnes vides`,showEmptyColumns:`Tout afficher`,collapseEmptyColumns:`Réduire les vides`,hideEmptyColumns:`Masquer les vides`,collapseColumn:`Réduire la colonne {column}`,expandColumn:`Développer la colonne {column}`,emptyColumn:`Déposez le travail ici`,emptyFilteredTitle:`Aucune carte ne correspond à cette vue`,emptyFilteredHint:`Modifiez la vue, la recherche, la priorité, l'agent ou le filtre d'archive.`,lifecycleUnlinked:`Aucune session`,lifecycleUnlinkedDetail:`Démarrer ou lier une session`,lifecycleMissing:`Session manquante`,lifecycleMissingDetail:`Recharger les sessions ou relier cette carte`,lifecycleLinked:`Lié`,lifecycleIdleDetail:`Aucune exécution active`,lifecycleRunning:`En cours d’exécution`,lifecycleRunningDetail:`Exécution active en cours`,lifecycleStale:`Obsolète`,lifecycleStaleDetail:`Aucune activité de session récente`,lifecycleDone:`Terminé`,lifecycleDoneDetail:`Déplacé vers la révision`,lifecycleNeedsReview:`Nécessite une révision`,lifecycleNeedsReviewDetail:`Exécution arrêtée ou échouée`,taskStatus:{queued:`Task queued`,running:`Task running`,completed:`Task complete`,failed:`Task failed`,cancelled:`Task cancelled`,timed_out:`Task timed out`},eventsLabel:`Événements de la carte`,eventCreated:`Créé`,eventEdited:`Modifié`,eventMoved:`Déplacé`,eventMovedTo:`Déplacé vers {status}`,eventLinked:`Session liée`,eventSpecified:`Specified`,eventDecomposed:`Decomposed`,eventClaimed:`Revendiqué`,eventHeartbeat:`Signal`,eventExecutionUpdated:`Agent mis à jour`,eventAttemptStarted:`Tentative démarrée`,eventAttemptUpdated:`Tentative mise à jour`,eventCommentAdded:`Commentaire ajouté`,eventLinkAdded:`Lien ajouté`,eventProofAdded:`Preuve ajoutée`,eventArtifactAdded:`Artefact ajouté`,eventAttachmentAdded:`Pièce jointe ajoutée`,eventDiagnostic:`Diagnostic`,eventNotification:`Notification`,eventDispatch:`Envoi`,eventOrchestration:`Orchestration`,eventProtocolViolation:`Violation du protocole`,eventArchived:`Archivé`,eventUnarchived:`Désarchivé`,eventStale:`Session obsolète`},connection:{disconnectedTitle:`Déconnecté`,queuedCount:`{count} en file d'attente`,reconnecting:`Reconnexion…`,restarting:`Redémarrage…`,retryNow:`Réessayer maintenant`,actionsUnavailable:`Les actions sont indisponibles pendant la reconnexion du Gateway.`,settingsChangesUnavailable:`Les modifications des paramètres sont désactivées pendant la reconnexion du Gateway.`,sessionOperationCompletedPreviousConnection:`L'opération de session s'est terminée sur la connexion précédente. Vérifiez la liste des sessions actuelle avant de continuer.`,sessionOperationCompletedPreviousConnectionWithRefreshError:`L'opération de session s'est terminée sur la connexion précédente, mais l'actualisation de la liste des sessions actuelle a échoué : {error}`,scopeUpgrade:{limited:`Ce navigateur dispose d'un accès limité.`,guidance:`Ce navigateur dispose d'un accès limité. Gérez-le avec openclaw devices sur le Gateway ou depuis Devices sur un navigateur administrateur.`,status:`Accès limité`,inboxState:`Accès administrateur requis`,showDetails:`Afficher les détails de l'accès limité`,closeDetails:`Fermer les détails d’accès limité`,request:`Demander l'accès admin`,requesting:`Demande d'accès administrateur…`,requestingAction:`Demande en cours…`,pending:`Approuvez ce navigateur en exécutant openclaw devices sur le Gateway ou depuis Appareils sur un navigateur administrateur. Réessayer rattache la demande ; Annuler arrête l'attente.`,retry:`Retry`,cancel:`Annuler`,rejected:`La demande d'accès administrateur a été rejetée.`,expired:`La demande d'accès administrateur a expiré.`,error:`Échec de la demande d'accès administrateur : {error}`},access:{title:`Accès au Gateway`,subtitle:`Où le tableau de bord se connecte et comment il s’authentifie.`,wsUrl:`URL WebSocket`,token:`Jeton du Gateway`,password:`Mot de passe (non enregistré)`,passwordPlaceholder:`mot de passe système ou partagé`,sessionKey:`Clé de session par défaut`,connectHint:`Cliquez sur Connecter pour appliquer les modifications de connexion.`,trustedProxy:`Authentifié via un proxy de confiance.`,showToken:`Afficher le jeton`,hideToken:`Masquer le jeton`,toggleTokenVisibility:`Afficher ou masquer le jeton`,showPassword:`Afficher le mot de passe`,hidePassword:`Masquer le mot de passe`,togglePasswordVisibility:`Afficher ou masquer le mot de passe`},snapshot:{title:`Instantané`,subtitle:`Dernières informations de négociation du Gateway.`,status:`Statut`,tickInterval:`Intervalle de rafraîchissement`,lastChannelsRefresh:`Dernière actualisation des canaux`,lastError:`Dernière erreur`},help:{title:`Comment se connecter`,step1:`Démarrez le Gateway sur votre machine hôte :`,step2:`Obtenez une URL de tableau de bord avec jeton :`,step3:`Collez l’URL WebSocket et le jeton ci-dessus, ou ouvrez directement l’URL avec jeton.`,docsLink:`Lire la documentation →`,copyCommand:`Copier la commande`,copyCommandAria:`Copier la commande : {command}`}},attention:{custodianAlertAria:`Demander à OpenClaw, {count} alerte non ignorée`,custodianAlertsAria:`Demander à OpenClaw, {count} alertes non ignorées`,cronErrorUnknown:`Erreur inconnue`,cronFailed:`Échec de {job}`,cronOverdue:`{job} en retard`,automationFailed:`Échec · {time}`,automationOverdue:`En retard · {time}`,failed:`Échoué`,overdue:`En retard`,dismissItem:`Ignorer {item}`,dismissShown:`Ignorer les éléments affichés`,emptyTitle:`Rien en attente`,emptyBody:`Les nouvelles demandes et alertes apparaissent ici.`,issues:`Boîte de réception`,issueCount:`{count} élément dans la boîte de réception`,issueCountPlural:`{count} éléments dans la boîte de réception`,tabs:{label:`Catégories de la boîte de réception`,all:`Tous`,approvals:`Approbations`,automations:`Tâches cron`,system:`Système`},modelAuthExpired:`Authentification du modèle expirée : {providers}`,authExpired:`Authentification expirée`,modelAuthExpiredState:`Authentification expirée · {time}`,modelAuthExpiredWithScope:`{scope} · Authentification expirée · {time}`,reconnect:`Reconnecter`,pendingApproval:`{count} approbation en attente`,pendingApprovals:`{count} approbations en attente`,alerts:{updateQuestion:`Voici les informations de mise à jour disponibles : {facts} Résume ce qui est nouveau et si quelque chose nécessite mon attention avant la mise à jour.`,cronFailedQuestion:`Ces automatisations ont échoué : {facts} Explique pourquoi elles ont échoué et comment y remédier.`,cronOverdueFact:`{job} : {duration} de retard`,cronOverdueQuestion:`Ces automatisations sont en retard : {facts} Explique pourquoi elles ne se sont pas exécutées et comment y remédier.`,modelAuthExpiredQuestion:`Ces identifiants de fournisseur de modèle nécessitent votre attention : {facts} Explique ce qui a expiré et comment se réauthentifier.`}},standingGrants:{title:`Autorisations permanentes`,description:`Répondre « Toujours autoriser » à l'approbation d'une automatisation crée une autorisation permanente pour cette commande exacte. En révoquer une fait redemander à la prochaine occurrence.`,historyTitle:`Historique des approbations`,empty:`Aucune autorisation permanente. Répondez à l'approbation d'une automatisation par « Toujours autoriser » pour en créer une.`,stateUntilRevoked:`Jusqu'à révocation`,stateExpiresIn:`Expire dans {count} j`,stateExpired:`Expiré`,stateRevoked:`Révoquée`,revoke:`Révoquer`,revoking:`Révocation…`,columns:{automation:`Cron`,command:`Commande`,uses:`Utilisations`,state:`État`}},approvalHistory:{description:`Approbations d’exécution dans le terminal, de plugin et d’agent système enregistrées par ce Gateway, les plus récentes en premier.`,loading:`Chargement de l’historique des approbations…`,loadingMore:`Chargement…`,loadMore:`Charger davantage`,empty:`Aucune approbation traitée dans la fenêtre glissante de 30 jours.`,retention:`L’historique des approbations couvre une fenêtre glissante de 30 jours.`,offline:`Connectez-vous au Gateway pour charger l’historique des approbations.`,invalidResponse:`Le Gateway a renvoyé une réponse non valide pour l’historique des approbations.`,unknown:`Inconnu`,notApplicable:`N/A`,columns:{resolved:`Traitée`,kind:`Type`,request:`Demande`,decision:`Décision`,reason:`Motif de la résolution`,source:`Agent source / session`,resolver:`Responsable de la résolution`},kinds:{exec:`Exécution`,plugin:`Plugin`,systemAgent:`Agent système`},statuses:{allowed:`Autorisée`,denied:`Refusée`,expired:`Expiré`,cancelled:`Annulé`},decisions:{allowOnce:`Autoriser une fois`,allowAlways:`Toujours autoriser`,deny:`Refuser`},reasons:{user:`Décision de l’utilisateur`,timeout:`Expiration du délai`,malformedVerdict:`Verdict mal formé`,noRoute:`Aucune route`,runAborted:`Exécution interrompue`,gatewayRestart:`Redémarrage du Gateway`,storageCorrupt:`Stockage corrompu`}},palette:{placeholder:`Rechercher des discussions et des commandes…`,noResults:`Aucun résultat`,searchFailed:`La recherche de conversation a échoué — vérifiez les journaux du gateway et réessayez`,searchPartial:`Recherche dans la transcription indisponible — affichage des titres et métadonnées des conversations`,searchIncomplete:`Les résultats de la transcription peuvent être incomplets — indexation ou limites de recherche en cours`,categories:{search:`Recherche`,navigation:`Navigation`,skills:`Skills`},items:{apps:`Applications`,sessions:`Sessions`,scheduled:`Planifié`,skills:`Skills`,plugins:`Plugins`,settings:`Paramètres`,agents:`Agents`,desktop:`Bureau`},descriptions:{verboseMode:`Activer/désactiver le mode détaillé.`},footer:{navigate:`naviguer`,select:`sélectionner`,close:`fermer`}},dreaming:{tabs:{scene:`Scène`,diary:`Journal`,advanced:`Avancé`},header:{refresh:`Actualiser`,refreshing:`Actualisation…`,on:`Rêverie activée`,off:`Rêverie désactivée`,engineOff:`Le moteur de mémoire est désactivé. Choisissez un moteur dans les Paramètres pour activer le dreaming.`},toggleConfirmation:{subtitle:`Le mode Dreaming est un paramètre global ; il ne s'applique pas uniquement à cet agent.`,enableTitle:`Activer le mode Dreaming pour tous les agents`,enableDetail:`Le balayage nocturne de dreaming s'exécutera sur chaque espace de travail d'agent configuré, promouvant les rappels à court terme vers la mémoire à long terme. Ceci s'applique immédiatement.`,enableConfirm:`Activer le mode Dreaming`,disableTitle:`Désactiver le mode Dreaming pour tous les agents`,disableDetail:`Le balayage nocturne de dreaming s'arrêtera pour chaque agent configuré, pas seulement celui-ci. Les souvenirs déjà enregistrés sont conservés ; rien de nouveau n'est promu. Ceci s'applique immédiatement.`,disableConfirm:`Désactiver le mode Dreaming`,saving:`Enregistrement…`,failed:`Impossible d'appliquer la modification. Vérifiez votre connexion et réessayez.`},status:{active:`Rêverie active`,idle:`Rêverie inactive`,promotedSuffix:`promu`,nextSweepPrefix:`prochaine passe`},scene:{backfill:`Rattrapage`,dedupeDiary:`Journal de déduplication`,reset:`Réinitialiser`,clearGrounded:`Effacer les éléments ancrés`,repairCache:`Réparer le cache des rêves`,working:`Traitement…`},phase:{light:`Léger`,deep:`Profond`,rem:`REM`,off:`désactivé`},advanced:{eyebrow:`Vérification`,title:`Vérification du journal quotidien`,description:`Vérifiez ce qui provient du journal quotidien, ce qui est en attente de promotion et ce qui a été promu récemment.`,summaryFromDailyLog:`du journal quotidien`,summaryWaiting:`en attente`,summaryPromotedToday:`promu aujourd’hui`,stagedTitle:`Du journal quotidien`,stagedDescription:`Rejouer les candidats extraits d’anciennes entrées du journal quotidien.`,shortTermTitle:`En attente de promotion`,shortTermDescription:`Candidats à court terme actuels en attente d’être promus en mémoire réelle.`,sortRecent:`Les plus récents`,sortSignals:`Support le plus fort`,originDailyLog:`rejoué`,originLive:`en direct`,originMixed:`mixte`,promotedTitle:`Promotions récentes`,promotedDescription:`Éléments qui ont déjà franchi l’étape de promotion.`,emptyGrounded:`Aucune entrée de relecture ancrée en attente pour le moment.`,emptyShortTerm:`Aucune entrée à court terme à examiner.`,emptyPromoted:`Aucune promotion récente à examiner.`,updatedPrefix:`mis à jour`},stats:{grounded:`Ancré`,signals:`Signaux`},diary:{title:`Journal des rêves`,noDreamsYet:`Aucun rêve pour le moment`,noDreamsHint:`Les rêves apparaîtront ici après le premier cycle de rêverie.`,waitingTitle:`Le journal attend`,waitingHint:`Les entrées narratives apparaîtront après le prochain cycle de rêverie.`,reload:`Recharger`,reloading:`Rechargement…`},actions:{dedupeRemovedOneAndKept:`{removed} entrée de rêve en double supprimée et {kept} conservée.`,dedupeRemovedManyAndKept:`{removed} entrées de rêve en double supprimées et {kept} conservées.`,dedupeRemovedOne:`{removed} entrée de rêve en double supprimée.`,dedupeRemovedMany:`{removed} entrées de rêve en double supprimées.`,repairArchivedThreadCorpus:`corpus de sessions archivées`,repairArchivedIngestionState:`état d'ingestion archivé`,repairArchivedDreamDiary:`journal de rêves archivé`,repairNoChanges:`La réparation du cache de rêves s'est terminée sans modification.`,repairCompleteWithArchive:`Réparation du cache de rêves terminée : {actions}. Archive : {archiveDir}`,repairComplete:`Réparation du cache de rêves terminée : {actions}.`,backfillComplete:`{count} entrées du journal de rêves ont été remplies.`,resetDiaryComplete:`{count} entrées de journal de rêves remplies ont été supprimées.`,clearReplayedComplete:`{count} entrées à court terme rejouées ont été effacées.`,complete:`Action du journal de rêves terminée.`,confirmRepairDescription:`Cela archive les fichiers de cache de rêves dérivés et les reconstruit à partir d'entrées propres. Votre journal de rêves reste intact.`,confirmDedupeDescription:`Cela réécrit DREAMS.md et supprime uniquement les entrées de journal exactement dupliquées.`,archivePathCopied:`Chemin d'archive copié.`,archivePathCopyFailed:`Impossible de copier le chemin d'archive.`,updateFailed:`Impossible de mettre à jour les paramètres de rêve.`,unsupportedPlugin:`Le plugin de mémoire sélectionné « {pluginId} » ne prend pas en charge les paramètres de rêve.`,configHashMissing:`Hachage de configuration manquant ; actualisez et réessayez.`},wiki:{previewFallbackTitle:`Page wiki`,close:`Fermer`,loadingPage:`Chargement de la page wiki…`,dreamsTab:`Rêves`,insightsTab:`Insights importés`,wikiTab:`Wiki de mémoire`,dreamsExplainer:`Il s'agit du journal de rêves brut que le système écrit pendant qu'il rejoue et consolide la mémoire ; utilisez-le pour inspecter ce que le système de mémoire remarque, et où cela semble encore bruité ou pauvre.`,insightsExplainer:`Ce sont des insights importés regroupés à partir d'un historique externe ; utilisez-les pour examiner ce que les imports ont fait ressortir avant que tout cela ne se transforme en mémoire durable.`,wikiExplainer:`Il s'agit de la surface wiki de mémoire compilée que le système peut consulter et exploiter ; utilisez-la pour inspecter les pages de mémoire réelles, les affirmations, les questions ouvertes et les contradictions plutôt que les conversations sources importées brutes.`,copyArchivePath:`Copier le chemin de l'archive`,loadingInsights:`Chargement des insights importés…`,noInsights:`Aucun insight importé pour l'instant`,noInsightsHint:`Lancez un import ChatGPT avec application pour faire apparaître ici des insights importés regroupés.`,candidateSignals:`Signaux potentiellement utiles`,corrections:`Corrections ou révisions`,importDetails:`Détails de l'import`,startedWith:`Commencé par :`,endedOn:`Terminé le :`,messages:`Messages :`,riskReasons:`Motifs de risque :`,labels:`Étiquettes :`,openSourcePage:`Ouvrir la page source`,loadingWiki:`Chargement du wiki de mémoire…`,emptyWiki:`Le wiki de mémoire n'est pas encore rempli`,emptyWikiHint:`Pour l'instant, le wiki contient surtout des imports de sources brutes et des rapports opérationnels. Cet onglet devient utile une fois que des synthèses, des entités ou des concepts commencent à être rédigés.`,claims:`Affirmations`,openQuestions:`Questions ouvertes`,contradictions:`Contradictions`,pageDetails:`Détails de la page`,wikiPage:`Page wiki :`,id:`Id :`,openWikiPage:`Ouvrir la page wiki`,unavailable:`Memory Wiki n'est pas activé`,unavailablePluginPrefix:`Imported Insights et Memory Palace sont fournis par le plugin intégré`,unavailablePluginSuffix:`plugin.`,enablePrefix:`Activer`,enableSuffix:`, puis rechargez cet onglet.`,openConfig:`Ouvrir la configuration`,howToEnable:`Comment activer`,pageTypes:{entity:`entité`,concept:`concept`,source:`source`,synthesis:`synthèse`,report:`rapport`},pageGroups:{sources:`Sources`,syntheses:`Synthèses`,reports:`Rapports`,entities:`Entités`,concepts:`Concepts`},counts:{pageOne:`{count} page`,pages:`{count} pages`,claimRowOne:`{count} ligne d'affirmation`,claimRows:`{count} lignes d'affirmation`,openQuestionOne:`{count} question ouverte`,openQuestions:`{count} questions ouvertes`,contradictionOne:`{count} contradiction`,contradictions:`{count} contradictions`,chats:`{count} conversations`,sensitive:`{count} sensibles`,signals:`{count} signaux`,messages:`{count} messages`,userMessages:`{count} utilisateur`,assistantMessages:`{count} assistant`},pageGroupSummary:`{label} · {count}`,noPagesYet:`Aucune page pour l'instant`,sectionPageSummary:`{label} : {count}`,questionCountOnPages:`{questionCount} sur {pageCount}`,risk:{needsReview:`à examiner`,low:`risque faible`,medium:`risque moyen`,high:`risque élevé`,unknown:`risque inconnu`},pageNotFound:`Aucune page wiki trouvée pour {lookup}.`,previewTruncated:`Affichage du premier extrait de cette page.`,previewTruncatedWithTotal:`Affichage du premier extrait de cette page ({count} lignes au total).`,boundedResults:`Affichage des {returned} éléments les plus récents sur {total}.`,importedClusterSummary:`Discussions importées regroupées autour de {label}.`,withheldDigestOne:`{count} résumé a été retenu en attente de révision.`,withheldDigests:`{count} résumés ont été retenus en attente de révision.`,details:`Détails`,hideDetails:`Masquer les détails`,vault:`Coffre`,fullVaultBreakdown:`Répartition complète du coffre : {breakdown}.`,selectedSection:`Section sélectionnée : {summary}.`,latestUpdate:`Dernière mise à jour {date}.`,noContent:`Aucun contenu wiki disponible.`},phrases:{consolidatingMemories:`consolidation des souvenirs…`,tidyingKnowledgeGraph:`rangement du graphe de connaissances…`,replayingConversations:`relecture des conversations d’aujourd’hui…`,weavingShortTerm:`tissage du court terme dans le long terme…`,defragmentingMemoryLane:`défragmentation des souvenirs…`,filingLooseThoughts:`classement des pensées éparses…`,connectingDots:`connexion de points éloignés…`,compostingContext:`compostage des anciennes fenêtres de contexte…`,alphabetizingSubconscious:`alphabétisation du subconscient…`,promotingHunches:`promotion des intuitions prometteuses…`,forgettingNoise:`oubli de ce qui n’a pas d’importance…`,dreamingEmbeddings:`rêverie en embeddings…`,reorganizingAttic:`réorganisation du grenier de la mémoire…`,indexingDay:`indexation en douceur de la journée…`,nurturingInsights:`maturation des intuitions naissantes…`,simmeringIdeas:`mijotage d’idées à moitié formées…`,whisperingVectorStore:`chuchotement au vector store…`}},modelProviders:{title:`Configured providers`,subtitle:`Model providers with auth, plan, quota, and cost data.`,updated:`Mis à jour {time}`,refreshing:`Refreshing…`,disconnected:`Connect to the gateway to see configured model providers.`,emptyTitle:`No model providers configured`,emptySubtitle:`Sign in to a provider or add an API key, then refresh.`,status:{ok:`Connecté`,ready:`Prêt`,expiring:`Expiring`,expired:`Expiré`,missing:`Not signed in`,apiKey:`API key`,denied:`Identifiants rejetés`,configured:`Identifiants configurés`},expiresIn:`Credential expires in {time}`,models:`{count} models`,modelOne:`1 model`,modelsAvailable:`{available} of {count} models available`,globalUsage:`Utilisation et coût globaux`,noStats:`No live usage data reported by this provider.`,localCost:`Session spend · {days}d`,localCostDetail:`{tokens} tokens · {sessions} sessions`,saving:`Enregistrement…`,requestFailed:`Échec de la requête.`,configUnavailable:`La configuration est indisponible. Actualisez la page et réessayez.`,credentials:{label:`Identifiants pour {agent}`,oauth:`Profils OAuth : {count}`,tokenProfiles:`Profils de jeton : {count}`,configKey:`Clé API définie dans la configuration`,envKey:`Clé API provenant de l’environnement`,envKeyNamed:`Clé API provenant de l’environnement ({name})`,profileKey:`Profils de clé API : {count}`,none:`Non configuré`},apiKey:{label:`Clé API`,placeholder:`Saisissez la clé API du fournisseur`,replacePlaceholder:`Secret enregistré. Saisissez une nouvelle clé pour le remplacer.`,set:`Définir la clé API`,replace:`Remplacer la clé`,remove:`Supprimer la clé`,saved:`Secret enregistré.`,removed:`Clé API supprimée.`,authModeBlocked:`Les modifications de la clé API sont indisponibles lorsque le mode d’authentification est « {mode} ».`},probe:{test:`Tester la connexion`,testing:`Test en cours…`,unavailable:`Le test de connexion nécessite un Gateway plus récent.`,latency:`{ms} ms`,status:{ok:`Connecté`,auth:`Échec de l’authentification`,rate_limit:`Limite de débit atteinte`,billing:`Problème de facturation`,timeout:`Expiration du délai`,format:`Réponse non valide`,unknown:`Échec de la connexion`,no_model:`Aucun modèle disponible`,partial:`Connecté avec des avertissements`}},readiness:{title:`Configuration de l'IA`,heading:`Connectez un modèle d’IA vérifié`,signedInNoModels:`Vous êtes connecté, mais ce compte n'expose aucun modèle utilisable. Choisissez un autre fournisseur ou compte pour continuer.`,notConfigured:`Choisissez un fournisseur et vérifiez le modèle qu'OpenClaw utilisera.`,noModels:`Aucun modèle disponible`,modelRequired:`Modèle requis`,chooseProvider:`Choisir un autre fournisseur`},logout:{action:`Se déconnecter`,confirm:`Se déconnecter de {provider} ? Les profils OAuth et de jeton enregistrés seront supprimés.`,loggingOut:`Déconnexion en cours…`,done:`Déconnexion effectuée.`},add:{title:`Ajouter un fournisseur`,subtitle:`Choisissez un fournisseur de modèles connu et enregistrez sa clé API.`,action:`Ajouter un fournisseur`,none:`Tous les fournisseurs connus sont déjà configurés.`,provider:`Fournisseur`,selectProvider:`Sélectionner un fournisseur`,save:`Enregistrer le fournisseur`,saved:`Fournisseur {provider} ajouté.`},defaults:{title:`Modèles par défaut`,subtitle:`Choisissez le modèle principal, les modèles de secours par ordre de priorité et le modèle utilitaire.`,primary:`Modèle par défaut`,utility:`Modèle utilitaire`,utilityHelpLabel:`À propos du modèle utilitaire`,utilityHelpPurpose:`Gère les tâches courtes en arrière-plan telles que les titres générés, la narration de progression et les résumés de session.`,utilityHelpAutomatic:`Automatique utilise le petit modèle recommandé par le fournisseur de modèle principal lorsqu'il est disponible. Sinon, les titres générés utilisent le modèle principal.`,automatic:`Automatique (valeur par défaut du fournisseur)`,disabled:`Désactivé`,fallbacks:`Solutions de repli`,noFallbacks:`Aucun modèle de secours configuré.`,unsaved:`Modifications non enregistrées`,addFallback:`Ajouter un modèle de secours`,selectModel:`Sélectionner un modèle`,selectFallback:`Sélectionner un modèle de secours`,noModels:`Configurez un fournisseur avant de sélectionner les modèles par défaut.`,saved:`Modèles par défaut enregistrés.`},readOnly:{disconnected:`Connectez-vous au Gateway pour modifier les paramètres des modèles.`,adminRequired:`Consultation uniquement. La modification des modèles nécessite l’accès operator.admin.`},notes:{saveKey:`Enregistrer la clé API pour {provider} depuis la Control UI`,removeKey:`Supprimer la clé API pour {provider} depuis la Control UI`,addProvider:`Ajouter le fournisseur de modèles {provider} depuis la Control UI`,defaultModel:`Mettre à jour la sélection du modèle par défaut depuis la Control UI`}},usage:{common:{emptyValue:`—`,unknown:`inconnu`},loading:{title:`Aperçu de l’utilisation`,badge:`Chargement`},metrics:{tokens:`Jetons`,cost:`Coût`,session:`session`,sessions:`sessions`},heatmap:{title:`Activité des tokens`,subtitle:`Intensité quotidienne des tokens pour la plage sélectionnée, jusqu'à un an.`,cellTokens:`{tokens} tokens`,less:`Moins`,more:`Plus`},providerUsage:{title:`Forfaits et facturation des fournisseurs`,subtitle:`Données en temps réel sur les forfaits, quotas, soldes et budgets communiquées par les fournisseurs configurés.`,stalled:`Le chargement de l'utilisation du fournisseur ne s'est pas terminé. Actualisez pour réessayer.`,unavailable:`L'utilisation du fournisseur est indisponible ; la dernière requête a échoué. Actualisez pour réessayer.`,balance:`Solde`,spend:`Utilisation`,budget:`Budget`,today:`Aujourd’hui`,last7Days:`7 jours`,lastDays:`{count} jours`,dailyCost:`Coût quotidien du fournisseur`,requests:`{count} requêtes`,inputTokens:`{count} jetons d’entrée`,cacheTokens:`{count} jetons en cache`,outputTokens:`{count} jetons de sortie`,topModels:`Principaux modèles`,costCategories:`Catégories de coût`,remaining:`{percent}% restant`,resets:`Réinitialisation le {date}`},presets:{today:`Aujourd’hui`,last7d:`7 j`,last30d:`30 j`,last90d:`90 j`,last1y:`1 an`,all:`Tous`},scope:{instance:`Instance actuelle`,instanceHint:`Afficher uniquement l’id de session actif pour chaque session logique.`,family:`Lignée historique`,familyHint:`Regrouper les ids de session connus adossés à des transcriptions ayant fait l’objet d’une rotation.`,familyIncluded:`La lignée historique inclut {count} instances de session.`},filters:{title:`Filtres`,to:`à`,startDate:`Date de début`,endDate:`Date de fin`,timeZone:`Fuseau horaire`,timeZoneLocal:`Local`,timeZoneUtc:`UTC`,pin:`Épingler`,pinned:`Épinglé`,selectAll:`Tout sélectionner`,clear:`Effacer`,clearAll:`Tout effacer`,remove:`Supprimer le filtre`,removeDays:`Supprimer le filtre par jours`,removeHours:`Supprimer le filtre par heures`,removeSession:`Supprimer le filtre par session`,all:`Tous`,days:`Jours`,hours:`Heures`,session:`Session`,agent:`Agent`,channel:`Canal`,provider:`Fournisseur`,model:`Modèle`,tool:`Outil`,daysCount:`{count} jours`,hoursCount:`{count} heures`,sessionsCount:`{count} sessions`},query:{placeholder:`Filtrer les sessions (ex. key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)`,apply:`Filtrer (côté client)`,matching:`{shown} sessions sur {total} correspondent`,inRange:`{total} sessions dans l’intervalle`,tip:`Astuce : utilisez les filtres ou cliquez sur les barres pour affiner les jours.`},export:{label:`Exporter`,changed:`Le contexte de la session a changé lors de la préparation de l'exportation. Actualisez l'utilisation et réessayez.`,sessionsCsv:`CSV des sessions`,dailyCsv:`CSV quotidien`,json:`JSON`},cacheStatus:{warning:`Les données d'utilisation peuvent être incomplètes. Recherche automatique de totaux mis à jour.`,paused:`Les données d'utilisation peuvent être incomplètes. Vérifications automatiques en pause ; sélectionnez Actualiser pour vérifier à nouveau.`},empty:{title:`Commencez par une plage de dates`,subtitle:`Chargez les données d’utilisation pour comparer les coûts, examiner les sessions et explorer les chronologies sans quitter le tableau de bord.`,hint:`Sélectionnez une plage de dates et cliquez sur Actualiser pour charger l’utilisation.`,noData:`Aucune donnée`,featureOverview:`Cartes d’aperçu`,featureSessions:`Classement des sessions`,featureTimeline:`Exploration de la chronologie`},daily:{title:`Utilisation quotidienne`,total:`Total`,byType:`Par type`,tokensTitle:`Utilisation quotidienne des jetons`,costTitle:`Coût quotidien`,compressedScaleHint:`L’échelle en racine carrée permet de garder visibles les jours de faible utilisation.`},costWindows:{title:`Périodes de coût`,subtitle:`Périodes calendaires se terminant le {date}`,selectedRange:`Période sélectionnée`,lastDays:`{count} derniers jours`,perDay:`/ jour`},breakdown:{output:`Sortie`,input:`Entrée`,cacheWrite:`Écriture du cache`,cacheRead:`Lecture du cache`,total:`Total`,tokensByType:`Jetons par type`,costByType:`Coût par type`},overview:{title:`Aperçu de l’utilisation`,messages:`Messages`,messagesHint:`Nombre total de messages utilisateur et assistant dans l’intervalle.`,messagesAbbrev:`msgs`,user:`utilisateur`,assistant:`assistant`,toolCalls:`Appels d’outil`,toolCallsHint:`Nombre total d’appels d’outil sur l’ensemble des sessions.`,toolsUsed:`outils utilisés`,errors:`Erreurs`,errorsHint:`Nombre total d’erreurs de message et d’outil dans l’intervalle.`,toolResults:`résultats d’outil`,avgTokens:`Moy. jetons / msg`,avgTokensHint:`Nombre moyen de jetons par message dans cet intervalle.`,avgCost:`Coût moy. / msg`,avgCostHint:`Coût moyen par message lorsque les providers signalent les coûts.`,avgCostHintMissing:`Coût moyen par message lorsque les fournisseurs signalent les coûts. Les données de coût sont absentes pour certaines ou toutes les sessions de cette plage.`,acrossMessages:`Sur {count} messages`,sessions:`Sessions`,sessionsHint:`Sessions distinctes dans la plage.`,sessionsInRange:`sur {count} dans l’intervalle`,throughput:`Débit`,throughputHint:`Le débit indique les jetons par minute pendant le temps d’activité. Plus il est élevé, mieux c’est.`,tokensPerMinute:`jet/min`,perMinute:`/ min`,errorRate:`Taux d’erreur`,errorHint:`Taux d’erreur = erreurs / total des messages. Plus il est faible, mieux c’est.`,avgSession:`session moy.`,cacheHitRate:`Taux de réussite du cache`,cacheHint:`Taux de réussite du cache = lecture du cache / (entrée + lecture du cache). Plus il est élevé, mieux c’est.`,cached:`en cache`,prompt:`prompt`,calls:`appels`,costShare:`{percent} % du coût`,topModels:`Principaux modèles`,topProviders:`Principaux providers`,topTools:`Principaux outils`,topAgents:`Principaux agents`,topChannels:`Principaux canaux`,peakErrorDays:`Jours avec le plus d’erreurs`,peakErrorHours:`Heures avec le plus d’erreurs`,noModelData:`Aucune donnée de modèle`,noProviderData:`Aucune donnée de provider`,noToolCalls:`Aucun appel d’outil`,noAgentData:`Aucune donnée d’agent`,noChannelData:`Aucune donnée de canal`,noErrorData:`Aucune donnée d’erreur`},sessions:{title:`Sessions`,shown:`{count} affichées`,total:`{count} au total`,avg:`moy.`,all:`Tous`,recent:`Consultées récemment`,recentShort:`Récentes`,sort:`Trier`,ascending:`Croissant`,descending:`Décroissant`,clearSelection:`Effacer la sélection`,noRecent:`Aucune session récente`,noneInRange:`Aucune session dans l’intervalle`,more:`+{count} de plus`,selected:`Sélectionnées ({count})`,copy:`Copier`,limitReached:`Affichage des 1 000 premières sessions. Réduisez la plage de dates pour obtenir des résultats complets.`},details:{noUsageData:`Aucune donnée d’utilisation pour cette session.`,duration:`Durée`,modelMix:`Répartition des modèles`,filtered:`(filtré)`,close:`Fermer les détails de la session`,noTimeline:`Aucune donnée de chronologie`,loadFailed:`Impossible de charger {detail} : {error}`,noDataInRange:`Aucune donnée dans l’intervalle`,usageOverTime:`Utilisation au fil du temps`,reset:`Réinitialiser`,perTurn:`Par tour`,cumulative:`Cumulé`,turnRange:`Tours {start}–{end} sur {total}`,assistantOutputTokens:`Jetons de sortie de l’assistant`,userToolInputTokens:`Jetons d’entrée utilisateur + outil`,tokensWrittenToCache:`Jetons écrits dans le cache`,tokensReadFromCache:`Jetons lus depuis le cache`,noContextData:`Aucune donnée de contexte`,systemPromptBreakdown:`Répartition du prompt système`,collapse:`Réduire`,collapseAll:`Tout réduire`,expandAll:`Tout développer`,baseContextPerMessage:`Contexte de base par message`,system:`Système`,systemShort:`Sys`,skills:`Skills`,tools:`Outils`,files:`Fichiers`,ofInput:`de l’entrée`,of:`de`,timelineFiltered:`chronologie filtrée`,conversation:`Conversation`,noMessages:`Aucun message`,tool:`Outil`,toolResult:`Résultat d’outil`,hasTools:`Contient des outils`,searchConversation:`Rechercher dans la conversation`,filterByRole:`Filtrer par rôle`,filterByTool:`Filtrer par outil`,you:`Vous`,noMessagesMatch:`Aucun message ne correspond aux filtres.`},mosaic:{title:`Activité par heure`,subtitleEmpty:`Les estimations nécessitent des horodatages de session.`,subtitle:`Estimé à partir des plages de session (première/dernière activité). Fuseau horaire : {zone}.`,noTimelineData:`Aucune donnée de chronologie pour le moment.`,dayOfWeek:`Jour de la semaine`,midnight:`Minuit`,fourAm:`4 h`,eightAm:`8 h`,noon:`Midi`,fourPm:`16 h`,eightPm:`20 h`,legend:`Faible → Forte densité de jetons`,sun:`Dim`,mon:`Lun`,tue:`Mar`,wed:`Mer`,thu:`Jeu`,fri:`Ven`,sat:`Sam`}},login:{subtitle:`Tableau de bord Gateway`,passwordPlaceholder:`facultatif`,showToken:`Afficher le jeton`,hideToken:`Masquer le jeton`,toggleTokenVisibility:`Basculer la visibilité du jeton`,showPassword:`Afficher le mot de passe`,hidePassword:`Masquer le mot de passe`,togglePasswordVisibility:`Basculer la visibilité du mot de passe`,failure:{rawError:`Erreur brute`,docsAuth:`Docs d’authentification Control UI`,docsPairing:`Docs d’appairage des appareils`,docsInsecure:`Docs HTTP non sécurisé`,authRequired:{title:`Authentification requise`,summary:`Le Gateway est joignable, mais il lui faut un jeton ou un mot de passe correspondant avant que ce navigateur puisse se connecter.`,stepPaste:`Collez le jeton depuis openclaw gateway auth-token --show ou saisissez le mot de passe configuré.`,stepGenerate:`Si aucun jeton n’est configuré, exécutez openclaw doctor --generate-gateway-token sur l’hôte Gateway.`,stepConnect:`Cliquez de nouveau sur Connect après avoir mis à jour l’identifiant.`},authFailed:{title:`L’authentification ne correspond pas`,summary:`L’identifiant fourni a été refusé. La cause la plus courante est un jeton obsolète ou copié depuis une autre URL Gateway.`,stepDashboard:`Exécutez openclaw dashboard --no-open pour obtenir une nouvelle URL, ou openclaw gateway auth-token --show pour récupérer le jeton.`,stepReplace:`Remplacez les valeurs de jeton/mot de passe obsolètes ; ne réutilisez pas un jeton provenant d’une autre URL Gateway.`,stepMode:`Utilisez un seul mode d’authentification correspondant à la fois : jeton gateway pour le mode jeton, mot de passe pour le mode mot de passe.`},rateLimited:{title:`Trop de tentatives échouées`,summary:`Le Gateway limite temporairement les tentatives d’authentification pour ce client.`,stepStop:`Arrêtez de réessayer depuis cet onglet pendant un moment.`,stepWait:`Attendez que le limiteur d’authentification se calme, puis reconnectez-vous avec l’identifiant corrigé.`,stepCheckClients:`Si cet hôte est partagé, vérifiez que d’autres clients ne répètent pas de mauvais essais.`},pairing:{title:`Appairage de l’appareil requis`,scopeTitle:`Mise à niveau de scope en attente`,roleTitle:`Mise à niveau du rôle en attente`,metadataTitle:`Actualisation de l’appareil en attente`,summary:`Ce navigateur nécessite une approbation unique de l’hôte Gateway avant de pouvoir utiliser Control UI.`,upgradeSummary:`Ce navigateur est déjà connu, mais l’accès demandé a changé et nécessite une nouvelle approbation.`,stepDashboard:`Sur l'hôte Gateway, exécutez openclaw dashboard pour ouvrir un lien d'appairage sécurisé à usage unique.`,stepList:`Exécutez openclaw devices list sur l’hôte Gateway.`,stepApproveId:`Approuvez cette demande : openclaw devices approve {requestId}.`,stepApprove:`Approuvez la demande navigateur/appareil en attente depuis cette liste.`,stepReconnect:`Reconnectez-vous après la fin de l’approbation.`},insecure:{title:`Contexte de navigateur sécurisé requis`,summary:`Cette page s’exécute en HTTP simple, le navigateur ne peut donc pas créer l’identité d’appareil attendue par le Gateway.`,stepHttps:`Utilisez HTTPS/Tailscale Serve, ou ouvrez http://127.0.0.1:18789 sur l’hôte Gateway.`,stepAvoidDisable:`N'utilisez pas d'URL distante en HTTP non sécurisé ; un jeton ou un mot de passe ne peut pas remplacer l'identité de l'appareil du navigateur.`},origin:{title:`Origine du navigateur non autorisée`,summary:`Le Gateway a rejeté l’origine de cette page avant d’accepter la connexion Control UI.`,stepAllowedOrigins:`Ajoutez cette origine de navigateur à gateway.controlUi.allowedOrigins.`,stepFullOrigin:`Utilisez des origines complètes comme http://localhost:5173, pas des motifs wildcard.`,stepRestart:`Redémarrez ou rechargez le Gateway après avoir modifié les origines autorisées.`},protocol:{title:`Incompatibilité de protocole`,summary:`La Control UI servie et le Gateway en cours d’exécution ne sont pas d’accord sur le protocole de connexion pris en charge.`,refresh:`Actualiser la page`,stepDashboard:`Rouvrez le dashboard servi avec openclaw dashboard afin que l’UI et le Gateway viennent de la même installation.`,stepDevUi:`Si vous utilisez pnpm ui:dev, reconstruisez ou redémarrez l’UI de développement avec le checkout actuel.`,stepRestart:`Redémarrez le Gateway après la mise à jour d’OpenClaw afin qu’il serve le protocole actuel.`},network:{title:`Connexion impossible`,summary:`Le navigateur n’a pas pu terminer la connexion au Gateway. Vérifiez la cible et le transport avant de réessayer les identifiants.`,stepGateway:`Confirmez que le Gateway fonctionne avec openclaw status ou openclaw gateway run.`,stepUrl:`Vérifiez l’URL WebSocket et utilisez wss:// lorsque le Gateway est derrière HTTPS/Tailscale Serve.`,stepDashboard:`Rouvrez le dashboard avec openclaw dashboard --no-open pour recopier l’URL actuelle et les détails d’authentification.`}}},chat:{cloudWorkerFailed:`Échec du runner : {error}`,errorDetails:`Détails de l'erreur`,copyError:`Copier l'erreur`,diskSpace:{warningTitle:`L'espace disque de la session cloud est faible`,criticalTitle:`L'espace disque de la session cloud est critiquement faible`,warningBody:`{percent}% utilisé · {free} libre. Supprimez les fichiers inutiles ou arrêtez le worker cloud avant les écritures volumineuses.`,criticalBody:`{percent}% utilisé · {free} libre. Les nouvelles écritures peuvent échouer et arrêter l'agent. Supprimez les fichiers inutiles ou arrêtez le worker cloud avant les écritures volumineuses.`},sendErrors:{outboxPayloadCopied:`Ce message en file d'attente a été copié depuis un autre onglet. Vérifiez la conversation et réessayez uniquement s'il n'est pas arrivé.`,outboxPayloadCapacity:`Le stockage des pièces jointes du navigateur est plein. Essayez un lot plus petit ou envoyez/supprimez les messages en file d'attente pour libérer de l'espace. Aucun nouveau message n'a été envoyé ; votre saisie est conservée.`,outboxPayloadUnavailable:`Le stockage des pièces jointes du navigateur est indisponible. Utilisez HTTPS ou localhost, autorisez le stockage du navigateur et fermez les onglets plus anciens du tableau de bord avant de vous reconnecter et de réessayer. Aucun nouveau message n'a été envoyé.`,outboxPayloadMissing:`Les pièces jointes en file d'attente sont manquantes ou illisibles. Il peut s'agir d'une copie obsolète provenant d'un autre onglet. Vérifiez la conversation, puis supprimez cette ligne et joignez à nouveau les fichiers si nécessaire. Aucun nouveau message n'a été envoyé.`,activeLeafChanged:`La session a changé de branche — vérifiez et renvoyez.`},waitingForApproval:`En attente d'approbation…`,startupStatus:{preparingWorkspace:`Préparation de l'espace de travail…`,namingWorktree:`Nommage du worktree…`,creatingWorktree:`Création du worktree…`,runningSetup:`Exécution de la configuration…`,provisioningEnvironment:`Provisionnement de l'environnement…`,preparingContext:`Préparation du contexte…`,startingModel:`Démarrage du modèle…`},archivedSessionDisabled:`Restaurez cette session pour envoyer des messages.`,sessionRoute:{chooseTitle:`Choisir une session`,multipleMatches:`Plusieurs sessions correspondent à {shortId}.`,additionalMatches:`Il reste des résultats de recherche. Utilisez un préfixe d'identifiant plus long.`,notFoundTitle:`Session introuvable`,notFoundExplanation:`La session a peut-être été supprimée, ou le lien est incorrect.`,goToMain:`Accéder à la session principale`,viewSessions:`Afficher les sessions`},commandResults:{startingNewThread:`Démarrage d'une nouvelle session...`,resettingThread:`Réinitialisation de la session...`,stoppingCurrentRun:`Arrêt de l'exécution en cours...`,chatHistoryCleared:`Historique de conversation effacé.`,exportingThread:`Exportation de la session...`,emptyExport:`Il n'y a pas encore de messages à exporter.`,unknownCommand:"Commande inconnue : `{command}`",options:`Options : {options}.`,sessionUnavailable:`La fonctionnalité de session est indisponible`,help:{availableCommands:`Commandes disponibles`,agentCommand:`agent`,openMenu:"Tapez `/` pour ouvrir le menu des commandes."},compaction:{failed:`Échec du compactage.`,failedWithReason:`Échec du compactage : {reason}`,tokenSummary:` ({before} -> {after} tokens)`,succeeded:`Contexte compacté avec succès`,skipped:`Compactage ignoré.`,skippedWithReason:`Compactage ignoré : {reason}`},model:{current:`**Modèle actuel :** {model}`,available:`**Disponibles :** {models}`,more:`+{count} de plus`,getFailed:`Échec de la récupération des informations du modèle : {error}`,set:`Modèle défini sur {model}.`,setFailed:`Échec de la définition du modèle : {error}`},thinking:{current:`Niveau de réflexion actuel : {level}.`,getFailed:`Échec de l'obtention du niveau de réflexion : {error}`,reset:`Niveau de réflexion réinitialisé à la valeur par défaut.`,resetFailed:`Échec de la réinitialisation du niveau de réflexion : {error}`,unrecognized:`Niveau de réflexion non reconnu « {level} ». Niveaux valides : {options}.`,unsupported:`Niveau de réflexion non pris en charge « {level} » pour ce modèle. Niveaux valides : {options}.`,set:`Niveau de réflexion défini sur {level}.`,setFailed:`Échec de la définition du niveau de réflexion : {error}`},verbose:{current:`Niveau détaillé actuel : {level}.`,getFailed:`Échec de l'obtention du niveau détaillé : {error}`,unrecognized:`Niveau détaillé non reconnu « {level} ». Niveaux valides : off, on, full.`,set:`Mode détaillé défini sur {level}.`,setFailed:`Échec de la définition du mode détaillé : {error}`},fast:{autoValue:`auto ({seconds} s)`,on:`activé`,off:`désactivé`,sourceSession:` (session)`,sourceAgent:` (par défaut : agent)`,sourceModel:` (par défaut : modèle)`,sourceDefault:` (par défaut)`,current:`Mode rapide actuel : {value}`,options:`on, off, auto ({seconds} sec), default, status`,getFailed:`Échec de la récupération du mode rapide : {error}`,reset:`Mode rapide réinitialisé par défaut.`,resetFailed:`Échec de la réinitialisation du mode rapide : {error}`,unrecognized:`Mode rapide « {mode} » non reconnu. Niveaux valides : on, off, auto, default, status.`,setAuto:`Mode rapide réglé sur auto.`,enabled:`Mode rapide activé.`,disabled:`Mode rapide désactivé.`,setFailed:`Échec du réglage du mode rapide : {error}`},usage:{noActiveThread:`Aucune session active.`,notAvailable:`s. o.`,title:`Utilisation de la session`,inputTokens:`Entrée : {count} tokens`,outputTokens:`Sortie : {count} tokens`,totalTokens:`Total : {count} tokens`,context:`Contexte : {percent} sur {total}`,model:`Modèle : {model}`,failed:`Échec de la récupération de l'utilisation : {error}`},agents:{none:`Aucun agent configuré.`,title:`**Agents** ({count})`,default:`par défaut`,runtime:` · exécution {runtime}`,failed:`Échec de la liste des agents : {error}`},steer:{timeout:`L'exécution active s'est terminée avant que le message de pilotage ne soit accepté.`,failed:`Le pilotage a échoué avant d'atteindre l'exécution ; réessayez.`,usage:"Utilisation : `/steer `",succeeded:`Piloté.`,requestFailed:`Échec du pilotage : {error}`},redirect:{timeout:`L'exécution active s'est terminée avant que le message de redirection ne soit accepté.`,failed:`La redirection a échoué avant d'atteindre l'exécution ; réessayez.`,usage:"Utilisation : `/redirect `",succeeded:`Redirigé.`,requestFailed:`Échec de la redirection : {error}`}},sessionSharing:{menu:`Partage de session`,current:`Visibilité de la session : {visibility}`,visibility:`Visibilité`,shared:`Partagé`,readOnly:`Lecture seule`,suggest:`Suggérer`,draft:`Brouillon`,publishDraft:`Publier le brouillon`,members:`Membres`,selected:`Membre`,noPeople:`Aucune personne associée trouvée.`,readOnlyNotice:`Seuls le propriétaire de la session et les membres peuvent agir dans cette session.`},sessionSuggestions:{suggest:`Suggérer`,suggestMessage:`Suggérer un message`,attachmentsUnsupported:`Supprimez les pièces jointes avant de soumettre une suggestion de texte.`,sendNow:`Envoyer la suggestion de {author} maintenant`,queue:`Mettre en file la suggestion de {author}`,edit:`Modifier la suggestion de {author}`,dismiss:`Ignorer la suggestion de {author}`,typing:`{name} est en train d'écrire…`,typingMany:`{names} sont en train d'écrire…`,state:{pending:`En attente`,accepted:`Acceptée`,dismissed:`Ignorée`}},sessionHeader:{renameTooltip:`Renommer la session`,renameAria:`Renommer la session {title}`,renameInputAria:`Titre de la session`,renameInputPlaceholder:`Titre de la session`,openParent:`Ouvrir la session parente {title}`,panels:`Panneaux`,layout:`Disposition`,continueInTerminal:{action:`Continuer dans le terminal…`,title:`Continuer dans le terminal`,description:`Copiez cette commande pour poursuivre la session en cours. Elle peut être collée en toute sécurité dans les terminaux et shells courants.`,authNote:`La commande ne contient aucun identifiant. Le terminal s'authentifie de manière indépendante, et les contrôles d'accès de la session restent applicables.`,disconnected:`Connectez-vous au Gateway pour poursuivre cette session dans un terminal.`,queryRouted:`Les URL de Gateway routées par requête ne peuvent pas créer de commandes de continuation sans identifiants, car l'authentification et la portée d'appareil stockée ne tiennent pas compte des requêtes. Utilisez une cible CLI authentifiée manuellement ou une URL de Gateway configurée sans requête.`,unavailable:`Cette session ou cette adresse de Gateway ne peut pas être poursuivie dans un terminal.`},workspaceAria:`Actions de l'espace de travail pour {workspace}`,revealFinder:`Afficher dans le Finder`,revealFileExplorer:`Afficher dans l'Explorateur de fichiers`,revealFileManager:`Ouvrir dans le gestionnaire de fichiers`,copyPath:`Copier le chemin`,copyBranch:`Copier le nom de la branche`,copied:`Copié`,incognito:`Session incognito`,branches:`Branches de session`,branchSwitchUnavailable:`Le changement de branche est indisponible pendant que l'agent travaille.`,untitledBranch:`Branche sans titre`,oneMessage:`{count} message`,messages:`{count} messages`,activeBranch:`Branche active`,gatewayPicker:{menuLabel:`Gateway : {gateway}`,primaryTag:`principal`,setPrimary:`Définir comme principal…`,openSettings:`Paramètres du Gateway…`,connected:`Connecté`,unreachable:`Inaccessible`,unknown:`Statut inconnu`}},board:{faceLabel:`Visage de la session`,chatFace:`Discussion`,splitFace:`Scinder`,dashboardFace:`Tableau de bord`,dockMenu:`Panneau de chat : {dock}`,dockLeft:`Ancrer le chat à gauche`,dockRight:`Ancrer le chat à droite`,dockBottom:`Ancrer le chat en bas`,resizeDock:`Redimensionner le panneau de chat`,enterFullscreen:`Passer en plein écran`,exitFullscreen:`Quitter le plein écran`,fullscreenUnavailable:`Le plein écran n'est pas disponible dans ce navigateur`,fullscreenFailed:`Impossible de changer le mode plein écran : {error}`,workboardCard:`Carte du plan de travail : {title}, {status}`,defaultTab:`Principal`,mockPlaceholder:`Vue en tableau · {tabs} onglets · {widgets} widgets`,mockOverview:`Aperçu`,mockResearch:`Recherche`,mockSessionStatus:`État de la session`,mockRecentFindings:`Résultats récents`,mockSourceMap:`Carte des sources`,resetTitle:`Réinitialiser la conversation ?`,resetDescription:`Le contexte de la conversation est réinitialisé. Votre tableau de bord est conservé.`},catalog:{remoteViewOnly:`Cette session est sur un appareil couplé et est en lecture seule.`,unsupportedViewOnly:`Cette source de session externe est en lecture seule.`,sessionMenu:`Actions de session externe`,openInOpenClaw:`Open in OpenClaw`,openInTerminal:`Open in terminal`,terminalUnavailable:`L'ouverture du terminal n'est pas disponible pour cette session.`},taskSuggestions:{eyebrow:`Tâche suggérée · dans {repo}`,startWorktree:`Démarrer avec un worktree`,startLocal:`Démarrer localement`,startCloud:`Envoyer vers le cloud · {profile}`,startCloudGeneric:`Envoyer vers le cloud`,copyPrompt:`Copier l'invite`,copyPromptFailed:`Impossible de copier l'invite dans le presse-papiers`,promptCopied:`Copié`,fixInSession:`Corriger dans cette session`,noCloudConfigured:`Aucun environnement cloud configuré`,showInstructions:`Afficher les instructions`,hideInstructions:`Masquer les instructions`,previous:`Tâche suggérée précédente`,next:`Tâche suggérée suivante`,moreActions:`Autres façons de démarrer cette tâche`,starting:`Démarrage…`,dismiss:`Ignorer {title}`,adminRequired:`Un accès administrateur est requis pour démarrer les tâches suggérées.`},pullRequests:{linkLabel:`Pull request n° {number} : {title}`,createPr:`Créer la PR`,createPrLabel:`Créer une pull request pour {branch}`,publishPr:`Publier la PR`,publishing:`Publication…`,publicationRequested:`Demandé`,retryPublication:`Réessayer la publication`,openPublishedPr:`Ouvrir la PR`,cloudPublicationGuidance:`Démarrez un tour d'agent en direct et demandez-lui de publier cet espace de travail cloud après la réconciliation.`,dismiss:`Ignorer la pull request n° {number}`,open:`Ouverte`,draft:`Brouillon`,merged:`Fusionnée`,closed:`Fermée`,checks:`CI`,checksPassing:`Vérifications CI réussies`,checksFailing:`Échec des vérifications CI`,checksPending:`Vérifications CI en cours`,ciMonitoring:`Surveillance CI`,openChecks:`Ouvrir les vérifications sur GitHub`,checksPassed:`Réussies`,checksFailed:`Échoué`,checksRunning:`En cours`,checksSkipped:`Ignorées`,showMore:`Afficher {count} de plus`,rateLimited:`Limite de débit de l’API GitHub atteinte. L’état de la pull request peut être obsolète jusqu’à la réinitialisation de la limite.`},usageRemaining:`Utilisation restante`,view:{menu:`Affichage`,reasoning:`Raisonnement`,toolCalls:`Appels d’outils`,commentary:`Conserver les commentaires`},sendShortcut:`Raccourci d’envoi`,sendShortcutEnter:`Enter`,sendShortcutModifierEnter:`⌘/Ctrl+Enter`,followUpMode:`Messages de suivi pendant que l’agent travaille`,followUpModeQueue:`Mettre en file d’attente jusqu’à la fin de l’exécution`,followUpModeServer:`Valeur par défaut du serveur ({mode})`,followUpModeLoading:`chargement…`,followUpModeSteer:`Orienter l’exécution en cours`,followUpModeUsingServer:`Utilisation de la valeur par défaut du serveur ({mode})`,followUpModeOverriding:`Remplacement de la valeur par défaut du serveur ({mode})`,followUpModeReset:`Réinitialiser à la valeur par défaut du serveur`,catalogOpenTarget:`Ouvrir les sessions externes dans`,catalogOpenTargetViewer:`OpenClaw viewer`,catalogOpenTargetTerminal:`Terminal`,onboardingDisabled:`Désactivé pendant la configuration`,commandPaletteTitle:`Rechercher ou accéder à… (⌘K)`,openCommandPalette:`Ouvrir la palette de commandes`,updating:`Mise à jour…`,actions:{copyAsMarkdown:`Copier en markdown`,dismissError:`Ignorer l'erreur`,exitFocusMode:`Quitter le mode focus`,scrollToLatest:`Aller au plus récent`},markdown:{truncated:`… tronqué ({total} caractères, affichage des {shown} premiers).`},codeBlock:{languageFallback:`Code`,hiddenLine:`1 ligne masquée`,hiddenLines:`{count} lignes masquées`,showHiddenLine:`Afficher 1 ligne masquée`,showHiddenLines:`Afficher {count} lignes masquées`,enableWrap:`Activer le retour à la ligne`,disableWrap:`Désactiver le retour à la ligne`,jsonBadge:`JSON`,jsonArrayItem:`Tableau ({count} élément)`,jsonArrayItems:`Tableau ({count} éléments)`,jsonObjectKeys:`Objet ({count} clés)`},workspaceConflict:{titleOne:`1 conflit d'espace de travail cloud`,titleMany:`{count} conflits d'espace de travail cloud`,description:`OpenClaw a conservé vos versions locales et appliqué les autres modifications cloud. Inspectez le résultat préparé ou adoptez sa version pour un chemin en conflit.`,summary:`Versions locales conservées ; inspectez ou récupérez la version cloud.`,showCommands:`Afficher les commandes`,morePaths:`+{count} chemins supplémentaires`,stagedResult:`Résultat cloud indexé`,copyStagedResult:`Copier la réf du résultat indexé`,inspectCloud:`Inspecter la première version cloud`,takeCloud:`Prendre la première version cloud`,copyInspectCommand:`Copier la commande d'inspection cloud`,copyTakeCommand:`Copier la commande take-cloud`,commandHelp:`Exécutez ces commandes dans Bash ou zsh (Git Bash sous Windows). Si l'inspection indique que le chemin n'existe pas, le cloud l'a supprimé ; vérifiez et supprimez le chemin local manuellement. Si le checkout signale un conflit de fichier/répertoire, déplacez ou supprimez le chemin local bloquant, puis réessayez. Si la réf indexée est manquante, l'avis est obsolète ; ne modifiez pas le chemin local.`,commandsUnavailable:`Ce nom de fichier contient des caractères de contrôle de terminal, donc OpenClaw ne créera pas de commande shell copiable pour celui-ci. Inspectez directement la réf indexée et saisissez le chemin manuellement avec précaution.`,dismiss:`Ignorer l'avis de conflit d'espace de travail`,eventSender:`Espace de travail cloud`,eventTitleOne:`Résultat cloud appliqué avec 1 conflit`,eventTitleMany:`Résultat cloud appliqué avec {count} conflits`,eventDescription:`Les versions locales ont été conservées pour ces chemins ; les autres modifications cloud ont été appliquées.`},compaction:{label:`Historique compacté`,savedTokens:`saved {count} tokens`,description:`La transcription compactée est conservée comme point de contrôle.`,openCheckpoints:`Ouvrir les points de contrôle`},sessionReset:{label:`Réinitialisation de la session`,description:`La conversation précédente a été effacée.`},outboxRecoveryTitle:`Les messages enregistrés ont besoin d'une destination`,outboxRecoveryDescription:`Une version plus ancienne du navigateur n'a pas conservé toutes les destinations. Ces brouillons et messages en file d'attente n'ont pas été envoyés par la récupération. Ouvrez une conversation vide non-Incognito, puis restaurez une entrée ici pour vérification. Les brouillons de pièces jointes peuvent apparaître séparément.`,outboxRecoveryConfirm:`Confirmez cette destination pour l'entrée enregistrée. Les messages en file d'attente resteront en pause pour vérification et nouvelle tentative. Si la livraison était incertaine, vérifiez la conversation avant de réessayer.`,outboxRecoveryRestore:`Restaurer ici pour vérification`,outboxRecoveryConflict:`Cette destination a un brouillon ou une file plus récente, ou a changé pendant la confirmation. Ouvrez une conversation vide et réessayez. L'entrée enregistrée est toujours disponible.`,outboxRecoveryStorageFailed:`Le stockage du navigateur n'a pas pu terminer la récupération. Les données enregistrées d'origine ont été conservées. Libérez du stockage du navigateur et rechargez pour réessayer.`,outboxRecoveryFull:`La récupération est pleine. Restaurez les entrées enregistrées pour faire de la place ; les données héritées restantes sont toujours conservées dans ce navigateur.`,outboxRecoveryMessages:`Messages en file d'attente : {count}`,restartRecoveryTitle:`Cette session s'est terminée lors d'un redémarrage.`,restartRecoveryDisabled:`Sa transcription est en sécurité.`,resumeInNewSession:`Reprendre dans une nouvelle session`,resumingSession:`Reprise…`,systemNotice:{guardian:{approvedSummary:`Guardian a approuvé {action}.`,deniedLabel:`Guardian a refusé`,deniedSummary:`{action} · risque : {risk} {rationale}`,warningLabel:`Avertissement Guardian`,warningFallback:`Guardian a arrêté l'action demandée.`,strictReviewRequiredLabel:`Vérification Guardian requise`,strictReviewRequiredSummary:`Guardian examine cette action avant qu'elle puisse continuer.`,requestedAction:`Action demandée`,unknownRisk:`inconnu`,noRationale:`Aucune justification fournie.`},restartRecovery:{label:`Système · récupération après redémarrage`,summary:`Tour interrompu par un redémarrage du gateway — l'agent a été invité à reprendre et à terminer la réponse.`},gatewayRestarted:{label:`Système · gateway redémarré`},cliHarnessContext:{label:`Système · contexte injecté`},showContent:`Afficher le contenu`},progressLabels:{shelling:`Décorticage`,scuttling:`Sabordage`,clawing:`Agrippement`,pinching:`Pincement`,molting:`Mue`,bubbling:`Bouillonnement`,tiding:`Flux de marée`,reefing:`Prise de ris`,cracking:`Craquement`,sifting:`Tamisage`,brining:`Saumurage`,nautiling:`Nautilage`,krilling:`Krillage`,barnacling:`Balanisation`,lobstering:`Pêche au homard`,tidepooling:`Exploration des mares`,pearling:`Pêche aux perles`,snapping:`Claquement`,surfacing:`Remontée à la surface`},turnRecap:{doneIn:`Terminé en {duration}`,tokens:`{count} tokens`,tokensOne:`1 token`},commands:{arguments:`Arguments de commande`,menu:`Commandes slash`,optionCount:`{count} options`,clearDescription:`Effacer l'historique du chat`,redirectDescription:`Interrompre et redémarrer avec un nouveau message`,steerDescription:`Injecter un message dans l'exécution active`,categories:{session:`Session`,model:`Modèle`,agents:`Agents`,tools:`Outils`}},skills:{menu:`Références des Skills`,label:`Skills`,loading:`Chargement des Skills…`},splitView:{open:`Ouvrir la vue fractionnée`,splitRight:`Fractionner à droite`,splitDown:`Fractionner vers le bas`,closePane:`Fermer le volet`,dropSplit:`Scinder`,dropOpenHere:`Ouvrir ici`},sidebar:{updateMacAndGateway:`Mettre à jour l’app Mac + Gateway`,updateGateway:`Mettre à jour Gateway`,serverUpdatedTitle:`Serveur mis à jour`,serverUpdatedRefresh:`Actualiser pour bénéficier de toutes les fonctionnalités`,threads:`Sessions`,otherSessions:`Autre`,groups:`Groupes`,coding:`Codage`,catalogViewOptions:`Options d'affichage`,hideFromSidebar:`Masquer de la barre latérale`,sectionHidden:`{section} masquée.`,sectionHiddenRecovery:`Affichez-la à nouveau dans Paramètres > Apparence > Barre latérale.`,hiddenSessionSections:`Sections de session masquées`,showSessionSection:`Afficher`,catalogGroupByProject:`Projet`,catalogGroupByPerson:`Personne`,openSessionMenu:`Ouvrir le menu de session`,sortBy:`Trier par`,sortCreated:`Créé`,sortSessions:`Filtrer et trier`,sortUpdated:`Dernière mise à jour`,sessionMenu:`Actions for {session}`,sessionMenuMany:`Actions pour {count} sessions`,toolActivity:`Utilisation de {tool}`,catalogDiscoveryHelp:`{error}. Configurez la découverte native des sessions dans Paramètres > Automatisation > Plugins.`},welcome:{hintBeforeShortcut:`Type a message below ·`,hintAfterShortcut:`for commands`,recentSessions:`Discussions récentes`,suggestions:{whatCanYouDo:`What can you do?`,summarizeRecentSessions:`Résumer mes sessions récentes`,configureChannel:`Help me configure a channel`,checkSystemHealth:`Check system health`}},runControls:{newSession:`Nouvelle session`,newSessionWorktree:`Nouvelle session dans un worktree`,exportChat:`Export chat`,queue:`Queue`,queueMessage:`Queue message`,stop:`Stop`,stopWithShortcut:`Arrêter (Échap)`,stopGenerating:`Stop generating`,send:`Send`,sendMessage:`Send message`},queue:{connectionPending:`Finalisation de la récupération de la connexion. Réessayez d'envoyer lorsqu'elle est prête.`,initialTurnPending:`Le message initial n'est pas résolu. Reconnectez-vous si nécessaire, puis vérifiez-le avant d'envoyer un autre message.`,notSent:`Non envoyé`,deliveryUnconfirmed:`Livraison non confirmée`,checkDelivery:`Vérifier la livraison`,checkDeliveryHelp:`La livraison n'est pas confirmée. Vérifier la livraison recherche le message d'origine sans le renvoyer ni démarrer un worker. Inspectez la conversation ou copiez l'invite conservée si vous choisissez de démarrer une tentative distincte.`,retry:`Réessayer`,retryQueuedMessage:`Réessayer le message en file d’attente`,steer:`Orienter`,steerQueuedMessage:`Orienter le message en file d'attente`,removeQueuedMessage:`Supprimer le message en file d'attente`,reorderQueuedMessage:`Réorganiser le message en file d'attente à l'aide des touches fléchées`,reorderUnavailable:`Ce message conserve sa position et ne peut pas être réorganisé`,editQueuedMessage:`Modifier le message en file d'attente`,moreActions:`Plus d'actions sur les messages en file d'attente`,cancelEdit:`Annuler la modification et conserver le message en file d'attente`,states:{applyingSettings:`Application des paramètres de chat`,runningCommand:`Exécution de la commande`,waitingForReconnect:`En attente de reconnexion`,editing:`Modification`,needsReview:`Livraison incertaine`},imageCount:`Image ({count})`},goals:{composerMode:`Objectif`,sessionChanged:`La conversation a changé. Annulez et sélectionnez de nouveau Objectif.`,start:`Démarrer l'objectif`,save:`Enregistrer l'objectif`,startHint:`Saisissez votre objectif.`,editHint:`Enregistrer sans démarrer d'exécution.`,objectivePlaceholder:`Que doit accomplir cet objectif ?`,cancel:`Annuler la saisie de l'objectif`,offline:`Reconnectez-vous pour gérer les objectifs.`,busy:`Attendez la fin de cette exécution. Votre brouillon est inchangé.`,annotationUnsupported:`Envoyez ou supprimez d'abord les annotations du navigateur. Votre brouillon est inchangé.`,actionPending:`Attendez l'action d'objectif en attente.`,admissionImmutable:`Réessayez ou supprimez cette demande. La modification nécessite un nouvel objectif.`,edit:`Modifier l'objectif`,editChip:`Modifier`,pause:`Suspendre l'objectif`,pauseChip:`Pause`,resume:`Reprendre l'objectif`,resumeChip:`Reprendre`,clear:`Effacer l'objectif`,clearChip:`Effacer`,showDetails:`Afficher les détails de l'objectif`,hideDetails:`Masquer les détails de l'objectif`},questions:{other:`Saisir une autre réponse`,submit:`Envoyer la réponse`,next:`Suivant`,back:`Retour`,skip:`Ignorer`,skipping:`Ignorer…`,skipped:`Ignorées`,collapse:`Réduire la question`,expand:`Développer la question`,eyebrow:`Question`,summaryLabel:`Résultat de la question`,ownAnswerFor:`Votre propre réponse pour {header}`,storeRequestedBy:`Demandé par {agent} · {session}`,storeEntry:`Enregistre {name} en tant que {kind}`,storeReplacement:`Remplace {name} — dernière mise à jour {updated}`,storeReplacementBy:`Remplace {name} — dernière mise à jour {updated} par {updatedBy}`,submitting:`Envoi…`,submitFailed:`Impossible d'envoyer : {error}`,answered:`Réponse reçue`,answeredElsewhere:`Répondu ailleurs`,unavailable:`Indisponible`,expired:`Expiré`,disconnected:`Non connecté. Réessayez après la reconnexion.`},imageLightbox:{label:`Aperçu de l'image : {title}`,open:`Ouvrir l'image {title}`,openOriginal:`Ouvrir dans un nouvel onglet`,copy:`Copier l'image`,download:`Télécharger l'image`,copyFailed:`Impossible de copier cette image. Vérifiez l'accès au presse-papiers et réessayez.`,downloadFailed:`Impossible de télécharger cette image. Réessayez.`,loadFailed:`Impossible de charger cette image. Réessayez.`,zoomIn:`Zoom avant`,zoomOut:`Zoom arrière`,resetZoom:`Réinitialiser le zoom`,close:`Fermer l'aperçu de l'image`,untitled:`Image`},externalImage:{notLoaded:`Image externe non chargée`,open:`Ouvrir l'image`},messages:{copySelection:`Copier`,forkFromHere:`Bifurquer à partir d'ici`,reply:`Répondre`,replyToMessage:`Répondre au message`,replyingTo:`En réponse à {name}`,originalUnavailable:`Le message d'origine est indisponible.`,message:`message`,currentMessage:`message actuel`,actions:`Actions du message`,selectionActions:`Actions de sélection`,moreDetails:`Plus de détails`,askInSideChat:`Demander dans le chat latéral`,rewind:`Revenir en arrière`,rewindConfirm:`Revenir avant ce message ?`,dontAskAgain:`Ne plus demander`,rewindToHere:`Revenir ici`,rewindUnavailable:`Le retour en arrière est indisponible pendant que l'agent travaille`,forkUnavailable:`La bifurcation est indisponible pendant que l'agent travaille`,showLess:`Afficher moins`,showMore:`Afficher plus`,tooLargeToDisplay:`Ce message est trop volumineux pour être affiché ici.`,unknownDate:`Date inconnue`,toolSender:`Outil`,fullContentLoadExhausted:`Impossible de charger le message complet.`,voiceNote:`Note vocale`,duplicatesCollapsed:`{count} messages identiques consécutifs réduits`,contextFor:`Contexte du message pour {timestamp}`},mediaPlayer:{play:`Lire`,pause:`Suspendre`,seek:`Naviguer dans le média`,mute:`Couper le son`,unmute:`Rétablir le son`,volume:`Volume`,download:`Télécharger {filename}`,preparing:`Préparation de la lecture…`,openVideo:`Agrandir {filename} dans la superposition multimédia`,videoPreview:`Aperçu vidéo : {title}`,closeVideoPreview:`Fermer l’aperçu vidéo`},modelControls:{default:`Par défaut`,effort:`Effort`,faster:`Plus rapide`,smarter:`Plus intelligent`,fastMode:`Mode rapide`,searchModels:`Rechercher des modèles`,noMatchingModels:`Aucun modèle ne correspond à votre recherche`,onlyForSession:`Uniquement pour cette session`,useDefaultModel:`Utiliser le modèle par défaut ({model})`,defaultWithModel:`Par défaut ({model})`,defaultWithLevel:`Par défaut ({level})`,fastHelp:`Réponses plus rapides, utilisation plus élevée des limites.`,contextWindow:`Fenêtre de contexte`,contextWindowAria:`Fenêtre de contexte : {state}`,speedUnsupported:`Le contrôle de la vitesse n'est pas pris en charge pour ce modèle.`,contextActiveAndMax:`{active} actif · {maximum} max`,chatOnly:`Chat uniquement`,chatOnlyHelp:`Ce modèle peut discuter, mais il ne peut pas utiliser d'outils. Choisissez un autre modèle pour les fichiers, les commandes, le web ou les tâches multimédias.`,loadingModels:`Chargement des modèles…`,modelsUnavailable:`Modèles indisponibles`,noModelsAvailable:`Aucun modèle disponible`,emptyModelsAction:`Gérer les modèles`,providerModels:`Modèles {provider}`,useDefaultReasoning:`Utiliser le raisonnement par défaut ({level})`,fastResponsesAria:`Réponses rapides : {state}`},permissionControls:{label:`Autorisations`,help:`Choisissez les autorisations pour les nouvelles exécutions.`,nextRun:`Les nouvelles autorisations s'appliquent à la prochaine exécution.`,default:`Par défaut`,defaultDescription:`Suivre la politique configurée de l'agent.`,defaultWithMode:`Par défaut ({mode})`,fullRequiresAdmin:`L'accès complet requiert l'accès operator.admin.`,updateFailed:`Échec de la mise à jour des autorisations : {error}`,modes:{"read-only":{label:`Lecture seule`,description:`Lecture dans la racine de la session ; les écritures et les commandes sont bloquées.`},guarded:{label:`Protégé`,description:`Un humain examine les requêtes au-delà de la racine de la session.`},workspace:{label:`Espace de travail`,description:`Un réviseur IA vérifie les requêtes au-delà de la racine de la session.`},full:{label:`Accès complet`,description:`Aucun réviseur ; les fichiers et les commandes ne sont pas restreints.`}}},rail:{title:`Compagnon de session`,subtitle:`Posez des questions sur cette session ou son projet`,expand:`Développer le compagnon de session`,collapse:`Réduire le compagnon de session`,close:`Fermer le compagnon de session`,show:`Afficher le compagnon de session`,moreActions:`Plus d'actions du compagnon`,clear:`Effacer la session compagnon`,pullRequests:`Pull requests`,checksPassing:`{count} réussis`,checksFailing:`{count} échoués`,checksPending:`{count} en cours`,finished:`Terminé {time}`,empty:`Les réponses proviennent de la transcription de cette session et de ses fichiers de projet.`,starters:{changed:`Qu'est-ce qui a changé ?`,stopped:`Pourquoi cela s'est-il arrêté ?`,remaining:`Que reste-t-il ?`},askLabel:`Interroger le compagnon de session`,askPlaceholder:`Poser une question`,askSubmit:`Demander`,askPending:`Réponse à partir de cette session…`,askBusy:`Le compagnon répond déjà à une question.`,askHistoryUnavailable:`Impossible de charger l'historique de cette session.`,askMissing:`Cette session n'est plus disponible.`,askModelUnavailable:`Aucun modèle utilitaire n'est configuré pour cette session.`,askRateLimited:`Le compagnon a atteint sa limite de questions. Réessayez bientôt.`,askUnavailable:`Le compagnon ne peut pas répondre pour le moment.`,askRetry:`Retry`,asOf:`au {time}`,health:{"on-track":`Sur la bonne voie`,grinding:`En cours`,stuck:`Bloqué`,"waiting-on-user":`En attente de votre part`,"wrapping-up":`Finalisation`,done:`Terminé`,failed:`Échoué`}},detailPanel:{close:`Fermer la barre latérale`,copyPath:`Copier le chemin`,discard:`Abandonner`,editFile:`Modifier le fichier`,searchInFile:`Rechercher dans le fichier`,showInFiles:`Afficher dans Fichiers`,previousMatch:`Résultat précédent`,nextMatch:`Résultat suivant`,overwrite:`Écraser`,viewRawText:`Afficher le texte brut`,renderedMarkdown:`Markdown rendu`,renderedMarkdownHint:`Aperçu en texte enrichi nettoyé pour une lecture rapide.`,noPreviewableMarkdown:`Aucun contenu markdown à prévisualiser.`,noContent:`Aucun contenu disponible`,fullContentOversized:`Le contenu complet n'est pas disponible car l'entrée de transcription stockée est trop volumineuse pour être renvoyée en toute sécurité.`,fullContentNotVisible:`Le contenu complet n'est pas disponible car cette entrée de transcription n'a pas de projection WebChat visible.`,fullContentUnavailable:`Le contenu complet n'est plus disponible pour cette entrée de transcription.`,copyContents:`Copier le contenu du fichier`,fileChanged:`Le fichier a été modifié sur le disque depuis son chargement.`,renderPreview:`Afficher l'aperçu`,imagePreview:`Aperçu de l'image`,file:`Fichier`,markdownPreview:`Aperçu Markdown`,toolDetails:`Détails de l'outil`,reloadFailed:`Échec du rechargement du dernier fichier.`,overwriteLoadFailed:`Échec du chargement du dernier fichier avant écrasement.`,fullContentLoadFailed:`Échec du chargement du contenu complet : {error}`},sidebarColumns:{close:`Fermer {panel}`},sidePanel:{label:`Panneau latéral`,addTab:`Ajouter un onglet au panneau latéral`,expand:`Développer le panneau latéral`,restore:`Restaurer le panneau latéral`,minimize:`Réduire le panneau latéral`,resize:`Redimensionner le panneau latéral`,emptyTitle:`Ouvrir un onglet`,review:`Vérification`,reviewEmpty:`Ouvrez une modification, un fichier, une image ou un résultat d'outil pour l'examiner ici.`,terminal:`Terminal`,terminalEmpty:`Ouvrez un shell pour l'espace de travail de cette session.`,browser:`Navigateur`,browserEmpty:`Un navigateur partagé pour vous et l'agent.`,files:`Fichiers`,filesEmpty:`Parcourez les fichiers, artefacts et modifications de cette session.`,companion:`Discussion latérale`,companionEmpty:`Posez une question ciblée sur cette session.`,tasks:`Tâches`,tasksEmpty:`Suivez les tâches en arrière-plan actives et récemment terminées.`,desktop:`Bureau`,desktopEmpty:`Connectez-vous à un bureau distant disponible.`,discussion:`Discussion`,discussionEmpty:`Ouvrez la discussion partagée de cette session.`,boardChat:`Discussion du tableau`,boardChatEmpty:`Ouvrez la conversation du tableau à côté de son tableau de bord.`},thread:{search:`Rechercher des messages`,searchPlaceholder:`Rechercher des messages...`,closeSearch:`Fermer la recherche`,loading:`Chargement du chat`,showEarlier:`Afficher plus ancien`,loadingEarlier:`Chargement de l'historique antérieur…`,noMatches:`Aucun message correspondant`},pendingInputs:{count:`Entrées acceptées conservées : {count}`,queued:`Accepté par le Gateway. En attente de son tour.`,cancelled:`Annulé avant son tour. Cette entrée ne s'exécutera pas automatiquement ; copiez-la pour envoyer un nouveau message.`,interrupted:`Interrompu avant son tour. Cette entrée ne s'exécutera pas automatiquement ; copiez-la pour envoyer un nouveau message.`,earlier:`Entrées acceptées antérieures`,latest:`Dernières entrées acceptées`},pairingQrExpired:{title:`QR d'appairage expiré`,reason:`Exécutez /pair qr à nouveau pour générer un nouveau code de configuration.`,badge:`Expiré`},composer:{placeholder:`Message {name}`,emptyHint:`Écrivez un message à envoyer.`,placeholderWithAttachments:`Add a message or paste more images...`,offlineHint:`Hors ligne — les messages seront mis en file d'attente et envoyés au retour de la connexion.`,offlineQueuedHint:`Hors ligne — {count} en attente ; les messages seront envoyés au retour de la connexion.`,preparingModel:`Préparation du modèle...`,responding:`{name} répond...`,sendingMessage:`Envoi du message...`,working:`{name} travaille...`,runDone:`Terminé`,runInterrupted:`Interrompu`,runStatus:`Statut d'exécution : {status}`,compactingContext:`Compactage du contexte…`,contextCompacted:`Contexte compacté`,fallbackActive:`Repli actif : {model}`,fallbackCleared:`Repli effacé : {model}`,fallbackSelected:`Sélectionné : {model}`,fallbackCurrent:`Actif : {model}`,fallbackPrevious:`Repli précédent : {model}`,fallbackReason:`Raison : {reason}`,fallbackAttempts:`Tentatives : {attempts}`,cancelReply:`Annuler la réponse`,attachmentPreview:`Aperçu de la pièce jointe`,browserAnnotation:`Annotation du navigateur`,browserAnnotationPreview:`Aperçu de l'annotation du navigateur`,browserAnnotationRegion:`{count} région marquée`,browserAnnotationRegions:`{count} régions marquées`,browserAnnotationInspectedElement:`Élément inspecté`,browserAnnotationRemoved:`Annotation de navigateur supprimée.`,browserAnnotationUndoUnavailable:`L'annulation est indisponible car la limite d'annotations de navigateur est atteinte.`,removeAttachment:`Supprimer la pièce jointe`,removeBrowserAnnotation:`Supprimer l'annotation de navigateur : {name}`,addAttachment:`Ajouter une pièce jointe`,attachPhoto:`Image`,attachFileOption:`Fichier`,menu:{back:`Retour`,skills:`Skills`,connectors:`Connecteurs`,webSearch:`Recherche web`,managePlugins:`Gérer les plugins`,manageSkills:`Gérer les Skills`,browseConnectors:`Parcourir les connecteurs`,addMcpServer:`Ajouter un serveur MCP…`,addMcpServerTitle:`Ajouter un serveur MCP`,addMcpServerDescription:`Configurez le serveur et choisissez où il est activé.`,scopeLabel:`Disponibilité`,scopeSession:`Cette session`,scopeEverywhere:`Partout`,scopeSessionHint:`Le serveur est enregistré comme désactivé globalement et activé uniquement pour cette session.`,scopeEverywhereHint:`Le serveur est enregistré et activé pour chaque session.`,toolAccess:{label:`Accès aux outils`,loading:`Chargement des outils…`,loadFailed:`Impossible de charger les outils.`,noTools:`Aucun outil disponible pour ce connecteur.`,summary:`{enabled} outils sur {total} activés`,summaryOne:`{enabled} outil sur {total} activé`},enabledCount:`{count} activé(s)`,loadingSkills:`Chargement des Skills…`,skillsLoadFailed:`Impossible de charger les Skills.`,noSkills:`Aucun Skill disponible.`,noConnectors:`Aucun serveur MCP configuré.`,depsMissing:`dépendances manquantes`,skillBlocked:`non disponible pour cet agent`,sessionTag:`session`,offlineBlocked:`Connectez-vous au Gateway pour modifier les capacités de la session.`,adminBlocked:`Un accès administrateur est requis pour gérer les connecteurs.`,savingBlocked:`Attendez la fin de la modification en cours des capacités de la session.`},overrides:{count:`{count} remplacements`,countOne:`{count} remplacement`,clear:`Effacer les remplacements de session`},contextUsage:{title:`Détails de l’utilisation du contexte`,open:`Ouvrir les détails de l’utilisation du contexte`,summary:`Utilisation du contexte de session : {used} sur {limit} ({pct} %)`,contextWindow:`Fenêtre de contexte`,latestRunTokens:`Tokens de la dernière exécution`,estimatedCost:`Coût estimé`,planUsage:`Utilisation du forfait`,openUsage:`Ouvrir le tableau de bord d’utilisation`,resets:`Réinitialisation {time}`,usageCredits:`Crédits d’utilisation`,budgetValue:`{used} sur {limit}`,limitFiveHour:`Limite de 5 heures`,limitWeekly:`Hebdomadaire`,limitDaily:`Limite quotidienne`,limitHours:`Limite de {hours} heures`},takePhoto:`Prendre une photo`,cameraAccessFailed:`Impossible d'accéder à la caméra.`,cameraBusy:`La caméra est occupée ou indisponible pour le navigateur.`,cameraFallback:`Caméra {number}`,cameraInput:`Caméra`,cameraListUnsupported:`Ce navigateur ne peut pas répertorier les caméras.`,cameraNoneFound:`Aucune caméra n'a été trouvée.`,cameraPageInactive:`Les caméras sont indisponibles lorsque cette page est inactive.`,cameraPermissionBlocked:`L'accès à la caméra est bloqué. Autorisez l'accès à la caméra et au microphone dans les paramètres du site du navigateur.`,cameraPreview:`Aperçu de la caméra`,dismissVoiceInputError:`Ignorer l’erreur de saisie vocale`,microphoneAccessFailed:`Impossible d’accéder aux entrées microphone.`,microphoneBusy:`Les entrées microphone sont occupées ou indisponibles pour le navigateur.`,microphoneStopped:`Entrée du microphone arrêtée. Choisissez une entrée disponible et recommencez.`,microphoneFallback:`Microphone {number}`,microphoneInput:`Entrée microphone`,microphoneAppliesNextSession:`Les modifications s'appliquent au démarrage de votre prochaine session Talk.`,microphoneListUnsupported:`Ce navigateur ne peut pas lister les entrées microphone.`,noCameras:`Aucune caméra supplémentaire trouvée`,noMicrophones:`Aucun microphone supplémentaire trouvé`,microphoneNoneFound:`Aucun microphone détecté. Branchez-en un et il apparaîtra ici.`,microphonePageInactive:`Les entrées microphone sont indisponibles lorsque cette page est inactive.`,microphonePermissionBlocked:`L’accès au microphone est bloqué. Autorisez-le dans les paramètres de site du navigateur pour lister les entrées.`,realtimeTalkCapability:`Appuyez pour parler`,dictationCapability:`Dictée`,realtimeTalkProviderUnavailable:`Aucun fournisseur de voix en temps réel n'est configuré.`,dictationProviderUnavailableShort:`Aucun fournisseur de transcription n'est configuré.`,talkCapabilityChecking:`Vérification de la disponibilité du fournisseur…`,talkCapabilityUnknown:`Impossible de vérifier la disponibilité du fournisseur.`,openRealtimeTalkSettings:`Paramètres vocaux`,openDictationSettings:`Configuration de la transcription`,configureCapability:`Configurer`,holdToRecordSetting:`Maintenez le bouton du microphone pour démarrer la dictée`,holdToDictate:`Maintenez pour démarrer la dictée`,holdToRecordSettingDescription:`Maintenez jusqu'au démarrage de la dictée, puis relâchez et continuez à parler. Appuyez sur Arrêter pour insérer la transcription.`,dictationAudioUnsupported:`Le Gateway a renvoyé un format audio de dictée non pris en charge.`,dictationBrowserAudioUnsupported:`Ce navigateur ne peut pas capturer l'audio de dictée à 8 kHz.`,dictationConnecting:`Démarrage de la dictée…`,dictationDisconnected:`La dictée s'est arrêtée car le Gateway s'est déconnecté.`,dictationFailed:`Échec de la dictée.`,dictationInterruptedRecovery:`Le texte capturé a été inséré. Vérifiez votre connexion et réessayez.`,dictationStartRecovery:`Vérifiez l'accès au microphone et les paramètres de transcription, puis réessayez.`,dictationFinalizing:`Finalisation de la dictée…`,dictationListening:`Écoute…`,dictationStopAndKeep:`Arrêter et conserver le texte`,dictationProviderUnavailable:`Aucun fournisseur de transcription n'est configuré pour la dictée. Choisissez-en un dans les Paramètres pour dicter.`,realtimeTalkCancellationRejected:`L'annulation de la sortie en temps réel n'a pas été acceptée.`,realtimeTalkMissingTurnIdentity:`L'identité de tour est manquante pour la sortie en temps réel.`,realtimeTalkRequiresMicrophone:`La saisie vocale en temps réel nécessite l'accès au microphone du navigateur.`,selectedMicrophoneUnavailable:`Le microphone sélectionné est indisponible. Choisissez une autre entrée ou l’option par défaut du système.`,selectedCameraUnavailable:`La caméra sélectionnée n'est pas disponible. Choisissez une autre caméra ou l'option Système par défaut.`,startVoiceInput:`Démarrer la saisie vocale`,voiceGestureHint:`Appuyez pour parler · Maintenez pour démarrer la dictée`,stillListening:`Toujours à l’écoute`,stopVoiceInput:`Arrêter la saisie vocale`,systemDefaultMicrophone:`Par défaut du système`,systemDefaultCamera:`Par défaut du système`,switchCamera:`Changer de caméra`,turnCameraOff:`Désactiver la caméra`,turnCameraOn:`Activer la caméra`,voiceTranscript:`Transcription vocale`},attachments:{attachedFile:`Fichier joint`,audio:`Audio`,expand:`Ouvrir {filename} dans le panneau latéral`,open:`Open`,previewUnavailable:`Aperçu indisponible`,readFailed:`Impossible de joindre : {names}{more}`,tooLarge:`Trop volumineux pour l'envoi : {names}{more}`,showInTextField:`Afficher dans le champ de texte`,outsideAllowedFolders:`En dehors des dossiers autorisés`,unavailable:`Indisponible`,failureDeliveryFailed:`Échec de la livraison. Réessayez d'envoyer ce fichier.`,failureFileNotFound:`Fichier introuvable. Vérifiez le chemin et réessayez.`,failureUnsupportedFormat:`Rejeté par la liste d'autorisation locale des pièces jointes. Envoyez un type de fichier pris en charge.`,notSent:`Non envoyé`,video:`Vidéo`},voice:{asking:`Demande à OpenClaw...`,connecting:`Connexion de l'entrée vocale...`,listening:`Écoute en cours...`},selectors:{loadMoreSessions:`Charger plus de sessions`,loadMoreRosterSessions:`Charger plus de sessions`,model:`Chat model`,modelSection:`Modèle`,modelLocked:`Verrouillé`,modelLockedLabel:`Sélection du modèle contrôlée pour cette session`,lockedSessionModel:`Modèle de session`,nativeCodexModel:`Modèle contrôlé par Codex`,thinkingLevel:`Chat thinking level`},toolCards:{tool:`Outil`,canvas:`Canvas`,summary:`Résumé`,toolInput:`Entrée de l’outil`,toolOutput:`Sortie de l’outil`,toolError:`Erreur de l’outil`,rawDetails:`Détails bruts`,showRawDetails:`Afficher les détails bruts`,hideRawDetails:`Masquer les détails bruts`,viewMode:`Vue détaillée de l'outil`,diff:`Diff`,raw:`Brut`,openFile:`Ouvrir le fichier`,openDetails:`Ouvrir les détails de l'outil dans le panneau latéral`,widgetActions:`Actions du widget`,copyToClipboard:`Copier dans le presse-papiers`,downloadFile:`Télécharger le fichier`,copyAsImage:`Copier comme image`,downloadAsImage:`Télécharger comme image`,widgetExportRerender:`Ce widget doit être rendu à nouveau pour être exporté en tant qu'image.`,widgetExportHtmlFallback:`Image indisponible. Le widget a été téléchargé en HTML à la place.`,widgetExportFailed:`Échec de l'exportation du widget. Réessayez.`,pinToDashboard:`Épingler au tableau de bord`,pinToDashboardPending:`Épinglage…`,pinToDashboardFailed:`Impossible d'épingler au tableau de bord. Réessayez.`,pinnedToDashboard:`Épinglée`,fileChanges:`Modifications de fichiers`,attemptedChanges:`Modifications tentées`,failed:`échec`,running:`En cours`,completed:`Terminé`,exitCode:`Code de sortie {code}`,noOutputFailed:`Aucune sortie — l’outil a échoué.`,noOutputSucceeded:`Aucune sortie — l’outil s’est terminé avec succès.`,noResult:`Aucun résultat disponible.`,review:{reviewing:`{reviewer} en cours d'examen`,approved:`{reviewer} a approuvé`,denied:`{reviewer} a refusé`,timedOut:`{reviewer} a expiré`,aborted:`{reviewer} arrêté`,risk:`Risque {level}`,authorization:`Autorisation {level}`,noRationale:`Aucune justification fournie.`},verbs:{read:`Lu`,edit:`Modifier`,editing:`Modification`,edited:`Modifié`,create:`Créer`,creating:`Création`,created:`Créé`,delete:`Supprimer`,deleting:`Suppression`,deleted:`Supprimé`,change:`Modifier`,changing:`Modification`,changed:`Modifié`,write:`Écrire`,writing:`Écriture`,wrote:`Écrit`,searched:`Recherche effectuée`,fetched:`Récupéré`},group:{commandsOne:`a exécuté une commande`,commandsMany:`a exécuté {count} commandes`,readsOne:`a lu un fichier`,readsMany:`a lu {count} fichiers`,editsOne:`a modifié un fichier`,editsMany:`a modifié {count} fichiers`,writesOne:`a créé un fichier`,writesMany:`a créé {count} fichiers`,deletesOne:`a supprimé un fichier`,deletesMany:`a supprimé {count} fichiers`,searchesOne:`a exécuté une recherche`,searchesMany:`a exécuté {count} recherches`,fetchesOne:`a récupéré une page`,fetchesMany:`a récupéré {count} pages`,namedTool:`a utilisé {names}`,namedToolRepeated:`a utilisé {names} ×{count}`,otherOne:`a utilisé un outil`,otherMany:`a utilisé {count} outils`,emptyOne:`Appel d’outil exécuté`,emptyMany:`{count} appels d’outils exécutés`}},workRun:{workedFor:`A travaillé pendant {duration}`,worked:`A travaillé`},backgroundTasks:{label:`Tâches en arrière-plan`,title:`Tâches en arrière-plan`,show:`Afficher les tâches en arrière-plan`,collapse:`Réduire les tâches en arrière-plan`,refresh:`Actualiser les tâches en arrière-plan`,loading:`Chargement des tâches en arrière-plan…`,running:`En cours ({count})`,finished:`Terminées ({count})`,statusRunningOne:`1 tâche en cours`,statusRunningMany:`{count} tâches en cours`,statusPreviewMore:`+{count} de plus`,stopTask:`Arrêter {title}`,toolUseOne:`1 utilisation d’outil`,toolUseMany:`{count} utilisations d’outils`,detailLoading:`Chargement des détails de la tâche…`,detailFailed:`Impossible de charger les détails de la tâche.`,detailRetry:`Réessayer`,transcriptLoading:`Chargement de la transcription de la tâche…`,transcriptEmpty:`Aucun message de transcription pour l'instant.`,transcriptFailed:`Impossible de charger la transcription de la tâche.`,taskDetailTitle:`Détails de la tâche`,taskUnavailable:`Cette tâche n'est plus disponible.`,prompt:`Invite`,output:`Sortie`,promptUnavailable:`Invite indisponible.`,outputPending:`Aucune sortie pour le moment.`,subagentActivity:{label:`Activité du sous-agent`,working:`Sous-agent en cours`,finished:`Sous-agent terminé`,failed:`Échec du sous-agent`,cancelled:`Sous-agent annulé`,openDetails:`Ouvrir les détails du sous-agent pour {title}`,moreWorking:`+{count} autres en cours`}},sessionDiff:{title:`Modifications`,show:`Afficher les modifications de la session`,refresh:`Actualiser les modifications`,loading:`Chargement des modifications…`,empty:`Aucune modification dans le checkout de cette session.`,notGit:`L'espace de travail de cette session n'est pas un checkout git.`,unknownSession:`Aucun espace de travail n'est associé à cette session.`,unknownCommit:`Ce commit n'est plus disponible dans le checkout de la session.`,disconnected:`Gateway est déconnecté.`,allChanges:`Toutes les modifications`,uncommitted:`Non validé`,commitsAhead:`{count} commits en avance sur {base}`,head:`HEAD`,mergeBase:`Base de fusion`,scopeMenu:`Choisir la portée des modifications`,sync:`Synchroniser`,syncLocally:`Synchroniser localement`,syncDescription:`Exécutez cette commande dans un checkout local pour refléter les modifications validées de cette session.`,copyCommand:`Copier la commande de synchronisation`,checkoutPath:`Chemin du checkout`,branchName:`Nom de la branche`,uncommittedStay:`Les modifications non validées restent dans le checkout de la session.`,viewOptions:`Modifier les options d'affichage`,collapseAll:`Tout réduire`,expandAll:`Tout développer`,enableWrapping:`Activer le retour à la ligne`,disableWrapping:`Désactiver le retour à la ligne`,switchSplit:`Passer au diff côte à côte`,switchUnified:`Passer au diff unifié`,fileActions:`Actions pour {path}`,copyPath:`Copier le chemin`,openFile:`Ouvrir le fichier`,openInEditor:`Ouvrir dans l'éditeur`,revealInFileTree:`Afficher dans l'arborescence de fichiers`,unmodifiedLines:`{count} lignes non modifiées`,expandPreviousLines:`Afficher les {count} lignes non modifiées précédentes`,expandNextLines:`Afficher les {count} lignes non modifiées suivantes`,expandAllLines:`Afficher les {count} lignes non modifiées`,binaryFile:`Fichier binaire`,untracked:`non suivi`,tooLarge:`Diff trop volumineux pour être affiché.`,truncatedFile:`Diff tronqué.`,truncatedResult:`Certaines modifications ont été omises car le diff est très volumineux.`,statusAdded:`Ajouté`,statusDeleted:`Supprimé`,statusRenamed:`Renommé`,statusModified:`Modifié`},sessionDiscussion:{show:`Afficher la discussion`,hide:`Masquer la discussion`,disconnected:`Gateway est déconnecté.`,loading:`Chargement de la discussion…`,opening:`Ouverture de la discussion…`,requiresWriteAccess:`Un accès en écriture opérateur est requis pour ouvrir cette discussion.`,openExternal:`Ouvrir la discussion dans un nouvel onglet`,frameTitle:`Discussion de la session`,unavailable:`Cette discussion ne peut pas être intégrée.`},workspaceFiles:{label:`Espace de travail de la session`,collapse:`Réduire l'espace de travail de la session`,showFiles:`Afficher les fichiers de la session`,dockRight:`Ancrer à droite`,dockBottom:`Ancrer en bas`,workspace:`Session`,files:`Espace de travail`,refresh:`Actualiser l'espace de travail de la session`,loading:`Chargement de l'espace de travail de la session…`,changed:`Modifié`,read:`Lu`,artifacts:`Artefacts`,browser:`Fichiers du projet`,root:`Racine`,search:`Rechercher des fichiers`,searchResults:`Résultats de recherche`,parentFolder:`Dossier parent`,noBrowserFiles:`Aucun fichier dans ce dossier.`,noSearchResults:`Aucun fichier correspondant.`,truncated:`Affichage des premiers fichiers correspondants. Affinez la recherche pour réduire les résultats.`,session:`Session`,missing:`Manquant`,summary:`Résumé de l'espace de travail de la session`,changedCount:`{count} modifiés`,readCount:`{count} lus`,artifactCount:`{count} artefacts`,browserCount:`{count} affichés`,actions:`Actions sur les fichiers de l'espace de travail`,preview:`Aperçu`,copyPath:`Copier le chemin`}},languages:{en:`Anglais`,zhCN:`简体中文 (chinois simplifié)`,zhTW:`繁體中文 (chinois traditionnel)`,ptBR:`Português (portugais brésilien)`,de:`Deutsch (allemand)`,es:`Español (espagnol)`,jaJP:`日本語 (japonais)`,ko:`한국어 (coréen)`,fr:`Français (français)`,hi:`हिन्दी (hindi)`,ar:`العربية (arabe)`,it:`Italiano (italien)`,tr:`Türkçe (turc)`,uk:`Українська (ukrainien)`,id:`Bahasa Indonesia (indonésien)`,pl:`Polski (polonais)`,th:`ไทย (thaï)`,vi:`Tiếng Việt (vietnamien)`,nl:`Nederlands (néerlandais)`,fa:`فارسی (persan)`,ru:`Русский (russe)`},secretsStore:{name:`Nom`,access:`Accès`,accessMode:`Mode d'accès`,value:`Valeur`,allowedHosts:`Hôtes autorisés`,allowedHostsPlaceholder:`api.example.com`,allowedHostsHint:`Noms d'hôtes exacts uniquement, un par ligne ou séparés par des virgules. Pas de caractères génériques ni de ports.`,noAllowedHosts:`Aucun`,updated:`Dernière mise à jour`,by:`{time} par {name}`,actions:`Actions`,add:`Ajouter`,edit:`Modifier`,bulk:`Ajout en masse`,protectedSecret:`Secret protégé`,protectedSecretHint:`Masqué après l'enregistrement et inerte sauf s'il est référencé par un SecretRef ou utilisé via une sortie Gateway activée et liée à une destination. Il n'est jamais directement lisible.`,agentReadable:`Environnement lisible par l'agent`,agentReadableHint:`Risque élevé : visible par les administrateurs et en clair pour les commandes d'agent hébergées par le Gateway. L'agent peut l'imprimer, le transmettre ou le conserver. S'applique dès la prochaine exécution.`,hint:`Choisissez des secrets protégés en écriture seule ou des valeurs d'environnement Gateway intentionnellement lisibles par l'agent.`,required:`Saisissez une valeur.`,detect:`Protéger automatiquement les noms ressemblant à des identifiants`,detected:`{count} secrets protégés détectés`,detectedOne:`{count} secret protégé détecté`,unavail:`Gateway/admin requis.`,badName:`Utilisez SERVICE_API_KEY.`,tooLarge:`64 Kio max.`,savedProtected:`{name} enregistré comme secret protégé. Ajoutez un SecretRef ou activez la sortie Gateway liée à la destination pour l'utiliser.`,savedReadable:`{name} enregistré comme environnement lisible par l'agent. Il est disponible pour les commandes d'agent hébergées par le Gateway dès la prochaine exécution.`,savedMany:`{count} entrées enregistrées ({protected} protégées, {readable} lisibles par l'agent). Les secrets protégés nécessitent un SecretRef ou l'activation de la sortie Gateway liée à la destination ; les valeurs d'environnement lisibles par l'agent atteignent les commandes d'agent hébergées par le Gateway dès la prochaine exécution.`,warnings:`{count} avertissements d'exécution.`,partial:`{saved}/{total} : {error}`,confirmDelete:`Supprimer {name} ?`,deleted:`{name} supprimé.`,deleteFailed:`Le secret n'a pas été supprimé. Rechargez la liste et réessayez.`},cron:{adminRequired:`Consultation uniquement. Les modifications d'automatisation nécessitent un accès operator.admin.`,tabs:{filterLabel:`État de l’automatisation`,all:`Tous`,active:`Actives`,paused:`En pause`},list:{viewLabel:`Vues des automatisations`,searchPlaceholder:`Rechercher des tâches planifiées`,newTask:`Nouvelle tâche`,filters:`Filtres`,shownOf:`{shown} sur {total}`,emptyTitle:`Aucune tâche planifiée pour le moment`,emptyHint:`Décrivez ce qu'OpenClaw doit faire et quand — l'exécution suit la planification.`,noMatching:`Aucune tâche ne correspond aux filtres actuels.`,loadMore:`Charger davantage`,loading:`Chargement...`,schedulerOff:`Planificateur désactivé`,refresh:`Actualiser`,refreshing:`Actualisation...`,paused:`En pause`,autoDisabledRunFailures:`Désactivé automatiquement · {count} échecs d'exécution`,autoDisabledScheduleErrors:`Désactivé automatiquement · {count} erreurs de planification`,tasksTab:`Automatisations`,activityTab:`Historique des exécutions`},suggestions:{title:`Idées d'automatisation`,schedules:{weekdayMornings:`En semaine à 9h00`,everyMorning:`Tous les jours à 8h00`,weekly:`Les lundis à 9h00`,hourly:`Toutes les heures`},ideas:{repoPulse:{name:`Pouls du dépôt`,tagline:`Issues, PRs et échecs CI de la nuit, classés par urgence.`,prompt:`Passe en revue l'activité nocturne de mes dépôts : nouvelles issues, pull requests et échecs CI. Résume les trois points qui nécessitent le plus mon attention aujourd'hui, chacun avec un lien et une raison en une ligne.`},standupGhostwriter:{name:`Nègre de standup`,tagline:`Ton compte-rendu de standup, rédigé à partir du travail d'hier.`,prompt:`Rédige mon compte-rendu de standup à partir des commits d'hier, des pull requests fusionnées et des fils de révision ouverts. Trois points maximum : fait, en cours, bloqué.`},hackerNewsScout:{name:`Éclaireur Hacker News`,tagline:`Trois liens qui valent ton café, avec des avis tranchés.`,prompt:`Parcours la page d'accueil Hacker News du jour pour les articles sur les agents IA, les outils développeur et TypeScript. Envoie-moi les trois liens les plus intéressants, chacun avec un avis tranché en une ligne.`},dependencyRadar:{name:`Radar de dépendances`,tagline:`Dépendances obsolètes ou vulnérables, avec notes de mise à jour.`,prompt:`Vérifie les dépendances obsolètes ou vulnérables de mon projet principal. Liste les mises à jour notables avec une note de risque en une ligne chacune, et rédige la commande de mise à jour.`},watchdog:{name:`Veille nocturne`,tagline:`Vérification horaire avec un verdict en une ligne.`,prompt:`Vérifie que mes services et mon Gateway sont en bonne santé : analyse les journaux récents pour détecter de nouvelles erreurs, des redémarrages ou une charge inhabituelle. Réponds par une courte ligne indiquant que tout va bien si c'est le cas ; si quelque chose semble défaillant, indique ce qui a échoué et par où commencer à chercher.`},polyglotMinute:{name:`Minute polyglotte`,tagline:`Une expression étrangère utile avec votre café du matin.`,prompt:`Apprends-moi une expression utile en japonais : l'expression, sa prononciation, sa signification littérale et quand l'utiliser. En moins de cinq lignes.`}}},stats:{tasks:`Tâches`,failing:`En échec`,nextWake:`Prochain réveil`},detail:{tabsLabel:`Détails de l’automatisation`,newTitle:`Nouvelle tâche planifiée`,newSubtitle:`Décrivez ce qu'OpenClaw doit faire, puis choisissez quand l'exécuter.`,back:`Toutes les automatisations`,settingsTab:`Paramètres`,historyTitle:`Historique des exécutions`,generalSection:`Général`,scheduleSection:`Planification`,deliverySection:`Livraison`,active:`Actives`,paused:`En pause`},actions:{runNow:`Exécuter maintenant`,runIfDue:`Exécuter si échu`,pause:`Suspendre`,resume:`Reprendre`,clone:`Cloner`,remove:`Supprimer`,removeConfirmTitle:`Supprimer « {name} » ?`,removeConfirmMessage:`Cette action supprime définitivement l'automatisation et arrête toutes les exécutions futures. Cette action est irréversible.`,more:`Plus d'actions`},runNotStarted:{notDue:`Cette automatisation n’est pas encore prévue.`,alreadyRunning:`Cette automatisation est déjà en cours d’exécution.`,recoveryPending:`La récupération du planificateur est toujours en cours.`,invalidSpec:`Cette automatisation comporte une planification ou une charge utile non valide.`,stopped:`Le planificateur est arrêté.`,unknown:`Cette automatisation n’a pas pu être démarrée.`},jobs:{schedule:`Planification`,lastRun:`Dernière exécution`,all:`Tous`,condition:`Condition`,conditional:`Conditionnel`,unconditional:`Inconditionnel`,sort:`Trier`,nextRun:`Prochaine exécution`,recentlyUpdated:`Récemment mises à jour`,name:`Nom`,direction:`Direction`,ascending:`Croissant`,descending:`Décroissant`,reset:`Réinitialiser`},runs:{searchRuns:`Rechercher des exécutions`,searchPlaceholder:`Résumé, erreur ou tâche`,newestFirst:`Plus récentes d’abord`,oldestFirst:`Plus anciennes d’abord`,status:`Statut`,delivery:`Distribution`,clear:`Effacer`,allStatuses:`Tous les statuts`,allDelivery:`Toute la distribution`,noMatching:`Aucune exécution correspondante.`,emptyTitle:`Aucune exécution pour le moment`,emptyHint:`Les exécutions apparaîtront ici lorsqu’une automatisation se déclenchera.`,conditionActivity:`Activité de condition`,conditionActivityHint:`Les vérifications s'exécutent selon le planning avant le démarrage de la charge utile.`,checks:`Vérifications`,lastChecked:`Dernière vérification`,lastFired:`Dernier déclenchement`,notChecked:`Pas encore vérifié`,neverFired:`Jamais`,emptyConditionTitle:`Aucune exécution de charge utile pour le moment`,emptyConditionHint:`La condition a été vérifiée {count} fois sans correspondance. L'historique des exécutions commence lorsque la charge utile s'exécute.`,emptyConditionHintOne:`La condition a été vérifiée une fois sans correspondance. L'historique des exécutions commence lorsque la charge utile s'exécute.`,emptyConditionUnchecked:`La condition n'a pas encore été vérifiée. L'historique des exécutions commence lorsque la charge utile s'exécute.`,loadMore:`Charger plus d’exécutions`,runStatusOk:`OK`,runStatusError:`Erreur`,runStatusSkipped:`Ignoré`,runStatusUnknown:`Inconnu`,runStatusRunning:`En cours d’exécution`,deliveryDelivered:`Distribué`,deliveryNotDelivered:`Non distribué`,deliveryUnknown:`Inconnu`,deliveryNotRequested:`Non demandé`},form:{requiredSr:`obligatoire`,fieldName:`Nom`,description:`Description`,agentId:`ID de l’agent`,namePlaceholder:`Brief du matin`,descriptionPlaceholder:`Contexte facultatif pour cette tâche`,agentPlaceholder:`main ou ops`,agentHelp:`Commencez à taper pour choisir un agent connu, ou saisissez-en un personnalisé.`,promptPlaceholder:`Décrivez ce qu'OpenClaw doit faire...`,repeat:`Répéter`,repeatInterval:`Intervalle`,repeatOnce:`Une fois`,repeatOnExit:`À la sortie`,repeatStream:`Source du flux`,onExitHelp:`S'exécute lorsqu'une commande surveillée se termine. La planification ne peut pas être modifiée ici.`,every:`Toutes les`,at:`À`,cronOption:`Cron`,runAt:`Exécuter à`,unit:`Unité`,minutes:`Minutes`,hours:`Heures`,days:`Jours`,expression:`Expression`,expressionPlaceholder:`0 7 * * *`,everyAmountPlaceholder:`30`,summaryEverySecondOne:`S'exécute chaque seconde`,summaryEveryMinuteOne:`S’exécute toutes les minutes`,summaryEveryHourOne:`S’exécute toutes les heures`,summaryEveryDayOne:`S’exécute tous les jours`,summaryEverySeconds:`S'exécute toutes les {amount} secondes`,summaryEveryMinutes:`S’exécute toutes les {amount} minutes`,summaryEveryHours:`S’exécute toutes les {amount} heures`,summaryEveryDays:`S’exécute tous les {amount} jours`,summaryOnce:`S’exécute une fois à {at}`,summaryCron:`Planification Cron {expr}`,summaryCronTz:`Planification Cron {expr} ({tz})`,timezoneOptional:`Fuseau horaire (facultatif)`,timezonePlaceholder:`America/Los_Angeles`,timezoneHelp:`Choisissez un fuseau horaire courant ou saisissez n’importe quel fuseau horaire IANA valide.`,runsIn:`S'exécute dans`,mainSession:`Session principale`,isolatedSession:`Session isolée`,sessionHelp:`Principale publie un événement système. Isolée exécute un tour d’agent dédié.`,wakeMode:`Mode de réveil`,now:`Maintenant`,nextHeartbeat:`Prochain heartbeat`,wakeModeHelp:`Maintenant déclenche immédiatement. Prochain heartbeat attend le cycle suivant.`,action:`Action`,command:`Command`,script:`Script`,readOnlyPayloadHelp:`Cette charge utile a été créée en dehors de Control UI. Son contenu reste en lecture seule et est conservé lorsque vous enregistrez d'autres modifications.`,systemEvent:`Publier un message dans la chronologie principale`,agentTurn:`Exécuter une tâche d’assistant (isolée)`,systemEventHelp:`Envoie votre texte à la chronologie principale du Gateway (idéal pour les rappels/déclencheurs).`,agentTurnHelp:`Démarre une exécution de l’assistant dans sa propre session à partir de votre prompt.`,timeoutSeconds:`Délai d’expiration (secondes)`,timeoutPlaceholder:`Facultatif, ex. 90`,timeoutHelp:`Facultatif. Laissez vide pour utiliser le comportement de délai d’expiration par défaut du Gateway pour cette exécution.`,mainTimelineMessage:`Message de la chronologie principale`,assistantTaskPrompt:`Prompt de tâche de l’assistant`,deliveryModeLabel:`Mode`,announceDefault:`Annoncer le résumé (par défaut)`,webhookPost:`Webhook POST`,noneInternal:`Aucun (interne)`,deliveryHelp:`Annoncer publie un résumé dans le chat. Aucun conserve l’exécution en interne.`,webhookUrl:`URL du webhook`,channel:`Canal`,webhookPlaceholder:`https://example.com/cron`,channelHelp:`Choisissez quel canal connecté reçoit le résumé.`,webhookHelp:`Envoyez les résumés d’exécution vers un endpoint webhook.`,to:`À`,toPlaceholder:`+1555... ou ID de chat`,toHelp:`Remplacement facultatif du destinataire (ID de chat, téléphone ou ID utilisateur).`,advanced:`Avancé`,advancedHelp:`Vérifications de condition, garanties de livraison, gigue de planification et contrôles de modèle facultatifs.`,conditionTrigger:`Déclencheur de condition`,conditionTriggerHelp:`Exécuter une vérification headless silencieuse avant la tâche et n'appeler le modèle que lorsqu'elle correspond.`,triggerConfigured:`Déclencheur configuré`,triggerScript:`Script de déclencheur`,triggerScriptHelp:`S'exécute sans surveillance avec la politique d'outils de cette automatisation. Renvoie json({ fire, message?, state? }) ; limites : 30 secondes, 5 appels d'outils, 16 Ko d'état.`,triggerOnce:`Désactiver après la première correspondance`,triggerOnceHelp:`Désactiver cette automatisation après la première tâche déclenchée avec succès.`,triggerDisabled:`Les déclencheurs de condition sont désactivés par cron.triggers.enabled.`,triggerDisabledConfigured:`Les déclencheurs de condition sont désactivés. La configuration existante est conservée jusqu'à ce que vous l'effaciez.`,clearTrigger:`Effacer le déclencheur`,startEnabled:`Démarrer activé`,deleteAfterRun:`Supprimer après exécution`,deleteAfterRunHelp:`Idéal pour les rappels ponctuels qui doivent se nettoyer automatiquement.`,clearAgentOverride:`Effacer le remplacement d’agent`,clearAgentHelp:`Force cette tâche à utiliser l’assistant par défaut du Gateway.`,sessionKey:`Clé de session`,sessionKeyHelp:`Clé de routage facultative pour la livraison des tâches et le routage des réveils.`,exactTiming:`Timing exact (sans décalage)`,exactTimingHelp:`Exécuter exactement aux limites cron sans étalement.`,staggerWindow:`Fenêtre de décalage`,staggerUnit:`Unité de décalage`,staggerPlaceholder:`30`,seconds:`Secondes`,accountId:`ID du compte`,accountIdHelp:`ID de compte de canal facultatif pour les configurations multi-comptes.`,lightContext:`Contexte allégé`,lightContextHelp:`Utiliser un contexte de démarrage allégé pour cette tâche d'agent.`,model:`Modèle`,customModel:`Modèle personnalisé…`,modelPlaceholder:`openai/gpt-5.2`,modelHelp:`Commencez à saisir pour choisir un modèle connu, ou saisissez-en un personnalisé. Les tâches de routine (résumés, tri, classification) fonctionnent bien sur un modèle plus léger — moins coûteux et plus rapide que votre modèle par défaut.`,thinking:`Réflexion`,thinkingPlaceholder:`low`,thinkingHelp:`Utilisez un niveau suggéré ou saisissez une valeur spécifique au provider.`,failureAlerts:`Alertes d'échec`,failureAlertInherit:`Hériter du paramètre global`,failureAlertDisabled:`Désactiver pour cette tâche`,failureAlertCustom:`Paramètres personnalisés par tâche`,failureAlertsHelp:`Contrôler quand cette tâche envoie des alertes d'échecs répétés.`,failureAlertAfter:`Alerter après`,failureAlertAfterHelp:`Erreurs consécutives avant l'alerte.`,failureAlertCooldown:`Délai d'attente (secondes)`,failureAlertCooldownHelp:`Nombre minimal de secondes entre les alertes.`,failureAlertChannel:`Canal d'alerte`,failureAlertTo:`Destinataire de l'alerte`,failureAlertToPlaceholder:`+1555... ou id de chat`,failureAlertToHelp:`Remplacement facultatif du destinataire pour les alertes d'échec.`,failureAlertMode:`Mode d'alerte`,failureAlertAnnounce:`Annoncer (via le canal)`,failureAlertWebhook:`Webhook (HTTP POST)`,failureAlertAccountId:`ID de compte d'alerte`,failureAlertAccountPlaceholder:`ID de compte pour les configurations multi-comptes`,bestEffortDelivery:`Distribution au mieux`,bestEffortHelp:`Ne faites pas échouer la tâche si la distribution elle-même échoue.`,cantAddYet:`Impossible d’ajouter la tâche pour le moment`,fillRequired:`Remplissez les champs obligatoires ci-dessous pour activer l’envoi.`,fixFields:`Corrigez {count} champ pour continuer.`,fixFieldsPlural:`Corrigez {count} champs pour continuer.`,saving:`Enregistrement...`,saveChanges:`Enregistrer les modifications`,createTask:`Créer une tâche`,createAndRun:`Créer et exécuter maintenant`,cancel:`Annuler`},jobState:{next:`Prochaine`},runEntry:{noSummary:`Aucun résumé.`,deliverySuppression:`Suppression de la livraison : {reason}`,runAt:`Exécuter à`,openRunChat:`Ouvrir le chat d’exécution`,next:`Prochain {rel}`,due:`Prévu {rel}`},errors:{nameRequired:`Le nom est obligatoire.`,scheduleAtInvalid:`Saisissez une date/heure valide.`,everyAmountInvalid:`L’intervalle doit être supérieur à 0.`,triggerIntervalTooShort:`Les automatisations déclenchées par condition doivent s'exécuter au moins toutes les 30 secondes.`,cronExprRequired:`L’expression cron est obligatoire.`,staggerAmountInvalid:`Le décalage doit être supérieur à 0.`,triggerScriptRequired:`Le script de déclencheur est requis lorsque le déclencheur de condition est activé.`,triggerScriptPayloadUnsupported:`Les charges utiles de script ne peuvent pas utiliser de déclencheurs conditionnels, car les deux possèdent le même état enregistré.`,triggerScheduleUnsupported:`Les déclencheurs conditionnels nécessitent une planification par intervalle, cron ou flux.`,systemTextRequired:`Le texte système est obligatoire.`,agentMessageRequired:`Le message de l’agent est obligatoire.`,timeoutInvalid:`S’il est défini, le délai d’expiration doit être supérieur à 0 seconde.`,webhookUrlRequired:`L’URL du webhook est obligatoire.`,webhookUrlInvalid:`L’URL du webhook doit commencer par http:// ou https://.`,invalidRunTime:`Heure d’exécution invalide.`,invalidIntervalAmount:`Montant d’intervalle invalide.`,cronExprRequiredShort:`Expression cron obligatoire.`,invalidStaggerAmount:`Montant de décalage invalide.`,systemEventTextRequired:`Texte de l’événement système obligatoire.`,agentMessageRequiredShort:`Message de l’agent obligatoire.`,nameRequiredShort:`Nom obligatoire.`}},pluginConsent:{widenedTitle:`Ce qui a changé`,widenedDescription:`Nouveautés depuis votre dernière acceptation.`,previouslyAccepted:`Précédemment accepté le {date}.`,declaredTitle:`Capacités déclarées`,declaredDescription:`Issues du manifeste du plugin. OpenClaw valide le plugin par rapport à ces déclarations lors de son chargement.`,declaredEmpty:`Aucun canal, fournisseur ou outil déclaré dans le manifeste.`,contracts:`Contrats`,hooks:`Hooks`,runtimeHooks:`Les plugins de code peuvent enregistrer des hooks à l'exécution ; les noms de leurs hooks ne sont pas déclarés dans le manifeste.`,mcpServers:`Serveurs MCP`,cliCommands:`Commandes CLI`,cliBackends:`Backends CLI`,skills:`Skills`,dangerousFlags:`Indicateurs de configuration dangereux`,grantsTitle:`Vos autorisations`,grantsDescription:`Définies par plugin dans plugins.entries.{id}. Les hooks hors de ces autorisations sont bloqués au chargement.`,promptInjection:`Injection de prompt`,conversationAccess:`Accès aux conversations`,allowed:`Autorisée`,blocked:`Bloqué`,on:`Activé`,off:`Désactivée`,grantDefault:` (par défaut)`,grantConfigured:`(défini dans la configuration)`,externalAccessHint:`Désactivé par défaut pour les plugins externes.`,modelOverrides:`Remplacements de modèle`,subagentModelOverrides:`Remplacements de modèle du sous-agent`,modelOverride:`Remplacement de modèle : {value}`,allowedModels:`Modèles autorisés : {models}`,allowedCompletionModels:`Modèles de complétion : {models}`,authProfileOverride:`Remplacement du profil d'authentification : {value}`,agentIdOverride:`Remplacement de l'ID d'agent : {value}`,noOverrides:`Aucun remplacement configuré`,loading:`Chargement des détails des capacités…`,fallback:`Les détails des capacités doivent être disponibles avant de pouvoir approuver ce plugin.`,verifiedClean:`Vérifié et sain`,reviewRecommended:`Vérification recommandée`,reviewRequired:`Vérification requise`,trustBlocked:`Bloqué`,scanDate:`Analysé le {date}`,integrity:`Intégrité`,sha256:`SHA-256`,commit:`Commit`,pinnedArtifact:`Épinglé à l'artefact installé exact.`,sourceClawHub:`ClawHub`,sourceNpm:`npm`,sourceGit:`Git`,sourcePath:`Chemin local`,sourceArchive:`Archive`,sourceMarketplace:`Marketplace`,community:`Communauté`,enableNamed:`Activer {name}`}}})))()}function r(){return(r=e((()=>{n()})))()}r();export{t as fr}; //# sourceMappingURL=fr-C_P7mm2_.js.map