import type { TranslationMap } from '../types';

// French (Français) chunk 3/5. Translated from chunks/en-3.ts.
const fr3: TranslationMap = {
  'insights.other': 'Autre',
  'insights.title': 'Insights',
  'insights.empty':
    "Pas encore d'insights. Les insights sont générés au fur et à mesure que ta mémoire grandit.",
  'insights.description': 'Basé sur {count} relations dans ton graphe de mémoire.',
  'insights.items': 'éléments',
  'insights.more': 'de plus',
  'calls.joiningCall': "Connexion à l'appel",
  'calls.meetWindowOpening': "La fenêtre Meet s'ouvre…",
  'calls.failedToStart': "Échec du démarrage de l'appel Google Meet",
  'calls.couldNotStart': "Impossible de démarrer l'appel",
  'calls.failedToClose': "Échec de la fermeture de l'appel",
  'calls.couldNotClose': "Impossible de fermer l'appel",
  'calls.joinMeet': 'Rejoindre un appel Google Meet',
  'calls.joinMeetDescription': 'Saisis un lien Google Meet pour rejoindre.',
  'calls.meetLink': 'Lien Meet',
  'calls.displayName': "Nom d'affichage",
  'calls.openingMeet': 'Ouverture de Meet…',
  'calls.joinCall': "Rejoindre l'appel",
  'calls.activeCalls': 'Appels actifs',
  'calls.leave': 'Quitter',
  'workspace.wipeConfirm':
    'Es-tu sûr de vouloir effacer toute la mémoire ? Cette action est irréversible.',
  'workspace.resetTreeConfirm': "Es-tu sûr de vouloir reconstruire l'arbre de mémoire ?",
  'workspace.wipeTitle': 'Effacer la mémoire',
  'workspace.resetting': 'Réinitialisation…',
  'workspace.resetMemory': 'Réinitialiser la mémoire',
  'workspace.resetTreeTitle': "Reconstruire l'arbre de mémoire",
  'workspace.rebuilding': 'Reconstruction…',
  'workspace.resetMemoryTree': "Réinitialiser l'arbre de mémoire",
  'workspace.building': 'Construction…',
  'workspace.buildSummaryTrees': 'Construire les arbres de résumé',
  'workspace.viewVault': 'Voir le coffre',
  'workspace.openingVaultTitle': 'Opening vault in Obsidian',
  'workspace.openingVaultMessage':
    "If Obsidian doesn't open, install it from obsidian.md or use Reveal Folder. Vault path:",
  'workspace.openVaultFailedTitle': "Couldn't open vault in Obsidian",
  'workspace.openVaultFailedMessage':
    'Use Reveal Folder to open the vault directory directly. Vault path:',
  'workspace.revealVaultFailed': "Couldn't reveal vault folder",
  'workspace.revealFolder': 'Reveal Folder',
  'workspace.graphLoadFailed': 'Échec du chargement du graphe de mémoire',
  'workspace.loadingGraph': 'Chargement du graphe de mémoire…',
  'workspace.graphViewMode': 'Mode de vue du graphe de mémoire',
  'workspace.trees': 'Arbres',
  'workspace.contacts': 'Contacts',
  'graph.noContactMentions': 'Aucune mention de contact',
  'graph.noMemory': 'Aucune mémoire',
  'graph.source': 'Source',
  'graph.topic': 'Sujet',
  'graph.global': 'Global',
  'graph.document': 'Document',
  'graph.contact': 'Contact',
  'graph.nodes': 'nœuds',
  'graph.parentChild': 'parent-enfant',
  'graph.documentContact': 'document-contact',
  'graph.link': 'lien',
  'graph.links': 'liens',
  'graph.children': 'enfants',
  'graph.clickToOpenObsidian': 'Clique pour ouvrir dans Obsidian',
  'graph.person': 'Personne',
  'modal.dontShowAgain': 'Ne plus afficher de suggestions similaires',
  'reflections.loading': 'Chargement des réflexions…',
  'reflections.empty': 'Pas encore de réflexions',
  'reflections.title': 'Réflexions',
  'reflections.proposedAction': 'Action proposée',
  'reflections.act': 'Agir',
  'reflections.dismiss': 'Ignorer',
  'whatsapp.chatsSynced': 'conversations synchronisées',
  'whatsapp.chatSynced': 'conversation synchronisée',
  'sync.active': 'Actif',
  'sync.recent': 'Récent',
  'sync.idle': 'En veille',
  'sync.memorySources': 'Sources de mémoire',
  'sync.noConnectedSources': 'Aucune source connectée',
  'sync.chunks': 'segments',
  'sync.lastChunk': 'Dernier segment :',
  'sync.pending': 'en attente',
  'sync.processed': 'traité',
  'sync.syncing': 'Synchronisation…',
  'sync.sync': 'Synchroniser',
  'sync.failedToLoad': "Échec du chargement de l'état de synchronisation",
  'sync.noContent':
    "Aucun contenu n'a encore été synchronisé dans la mémoire. Connecte une intégration pour commencer.",
  'backend.aiBackend': 'Backend IA',
  'backend.cloud': 'Cloud',
  'backend.recommended': 'Recommandé',
  'backend.cloudDescription':
    "Modèles rapides et puissants hébergés sur nos serveurs. Prêt à l'emploi immédiatement.",
  'backend.privacyNote':
    "Aucune donnée personnelle, message ou clé n'est jamais envoyé à nos serveurs.",
  'backend.local': 'Local',
  'backend.advanced': 'Avancé',
  'backend.localDescription':
    'Fais tourner les modèles sur ta propre machine avec Ollama. Confidentialité totale, configuration requise.',
  'backend.ramRecommended': '16 Go+ de RAM recommandés',
  'subconscious.tasks': 'tâches',
  'subconscious.ticks': 'ticks',
  'subconscious.last': 'Dernier',
  'subconscious.failed': 'échoué',
  'subconscious.tickInterval': 'Intervalle de tick',
  'subconscious.runNow': 'Exécuter maintenant',
  'subconscious.providerUnavailableTitle': 'Subconscient en pause',
  'subconscious.providerSettings': 'Paramètres IA',
  'subconscious.approvalNeeded': 'Approbation requise',
  'subconscious.requiresApproval': 'Nécessite une approbation',
  'subconscious.fixInConnections': 'Corriger dans Connexions',
  'subconscious.goAhead': "Aller de l'avant",
  'subconscious.activeTasks': 'Tâches actives',
  'subconscious.noActiveTasks': 'Aucune tâche active',
  'subconscious.default': 'Par défaut',
  'subconscious.addTaskPlaceholder': 'Ajouter une nouvelle tâche…',
  'subconscious.activityLog': "Journal d'activité",
  'subconscious.noActivity': "Aucune activité pour l'instant",
  'subconscious.decision.nothingNew': 'Rien de nouveau',
  'subconscious.decision.completed': 'Terminé',
  'subconscious.decision.evaluating': 'Évaluation en cours',
  'subconscious.decision.waitingApproval': "En attente d'approbation",
  'subconscious.decision.failed': 'Échoué',
  'subconscious.decision.cancelled': 'Annulé',
  'subconscious.decision.skipped': 'Ignoré',
  'actionable.complete': 'Terminer',
  'actionable.dismiss': 'Ignorer',
  'actionable.snooze': 'Reporter',
  'actionable.new': 'Nouveau',
  'stats.storage': 'Stockage',
  'stats.files': 'fichiers',
  'stats.documents': 'Documents',
  'stats.today': "aujourd'hui",
  'stats.namespaces': 'Espaces de noms',
  'stats.relations': 'Relations',
  'stats.firstMemory': 'Premier souvenir',
  'stats.latest': 'Dernier',
  'stats.sessions': 'Sessions',
  'stats.tokens': 'jetons',
  'bootCheck.invalidUrl': 'Saisis une URL de runtime.',
  'bootCheck.urlMustStartWith': "L'URL doit commencer par http:// ou https://",
  'bootCheck.validUrlRequired':
    'Ça ne ressemble pas à une URL valide (essaie https://core.example.com/rpc)',
  'bootCheck.tokenRequired': "On aura besoin d'un token d'authentification pour se connecter.",
  'bootCheck.chooseCoreMode': 'Sélectionner un runtime',
  'bootCheck.connectToCore': 'Connecte-toi à ton runtime',
  'bootCheck.desktopDescription':
    "OpenHuman a besoin d'un runtime pour fonctionner. Choisis où il doit être hébergé.",
  'bootCheck.webDescription':
    "Sur le web, OpenHuman se connecte à un runtime que tu contrôles. Renseigne son URL et son token d'authentification ci-dessous, ou télécharge l'app desktop pour en faire tourner un directement sur ta machine.",
  'bootCheck.preferDesktop': 'Tu préfères tout garder sur ton propre appareil ?',
  'bootCheck.downloadDesktop': "Télécharger l'app desktop",
  'bootCheck.localRecommended': 'Exécuter localement (Recommandé)',
  'bootCheck.localDescription':
    'Tourne directement sur ton ordinateur. Le plus rapide, entièrement privé, rien à configurer.',
  'bootCheck.cloudMode': 'Exécuter dans le cloud (Complexe)',
  'bootCheck.cloudDescription':
    "Connecte-toi à un runtime que tu héberges ailleurs. Reste en ligne 24h/24 et 7j/7 — tu n'as pas besoin de garder cet appareil allumé.",
  'bootCheck.coreRpcUrl': 'URL du runtime',
  'bootCheck.rpcUrlPlaceholder': 'https://core.example.com/rpc',
  'bootCheck.authToken': "Token d'authentification",
  'bootCheck.bearerTokenPlaceholder': 'Le token bearer de ton runtime distant',
  'bootCheck.storedLocally': 'Conservé sur cet appareil uniquement. Envoyé en tant que ',
  'bootCheck.testing': 'Test en cours…',
  'bootCheck.testConnection': 'Tester la connexion',
  'bootCheck.connectedOk': 'Connecté. Tu es prêt.',
  'bootCheck.authFailed': "Ce token n'a pas fonctionné. Vérifie-le et réessaie.",
  'bootCheck.unreachablePrefix': "Impossible de l'atteindre :",
  'bootCheck.checkingCore': 'Réveil de ton runtime…',
  'bootCheck.cannotReach': "Impossible d'atteindre le runtime",
  'bootCheck.cannotReachDesc':
    "On n'a pas pu se connecter à ton runtime. Tu veux en essayer un autre ?",
  'bootCheck.switchMode': 'Choisir un autre runtime',
  'bootCheck.quit': 'Quitter',
  'bootCheck.legacyDetected': 'Runtime de fond hérité détecté',
  'bootCheck.legacyDescription':
    "Un daemon OpenHuman installé séparément est déjà en cours d'exécution sur cet appareil. On doit le supprimer avant que le runtime intégré puisse prendre le relais.",
  'bootCheck.removing': 'Suppression…',
  'bootCheck.removeContinue': 'Supprimer et continuer',
  'bootCheck.localNeedsRestart': 'Le runtime local doit être redémarré',
  'bootCheck.localNeedsRestartDesc':
    'Ton runtime local est sur une version différente de cette app. Un redémarrage rapide les remettra en synchronisation.',
  'bootCheck.restarting': 'Redémarrage…',
  'bootCheck.restartCore': 'Redémarrer le runtime',
  'bootCheck.cloudNeedsUpdate': 'Le runtime cloud doit être mis à jour',
  'bootCheck.cloudNeedsUpdateDesc':
    'Ton runtime cloud est sur une version différente de cette app. Lance la mise à jour pour les remettre en synchronisation.',
  'bootCheck.updating': 'Mise à jour…',
  'bootCheck.updateCloudCore': 'Mettre à jour le runtime cloud',
  'bootCheck.versionCheckFailed': 'Échec de la vérification de la version du runtime',
  'bootCheck.versionCheckFailedDesc':
    'Ton runtime est actif mais ne rapporte pas sa version. Il est peut-être obsolète. Redémarre-le ou mets-le à jour pour continuer.',
  'bootCheck.working': 'En cours…',
  'bootCheck.restartUpdateCore': 'Redémarrer / Mettre à jour le runtime',
  'bootCheck.unexpectedError': 'Erreur inattendue lors de la vérification au démarrage',
  'bootCheck.actionFailed': "Une erreur s'est produite. Réessaie.",
  'notifications.justNow': "à l'instant",
  'notifications.minAgo': 'il y a {n} min',
  'notifications.hrAgo': 'il y a {n} h',
  'notifications.dayAgo': 'il y a {n} j',
  'notifications.category.messages': 'Messages',
  'notifications.category.agents': 'Agents',
  'notifications.category.skills': 'Compétences',
  'notifications.category.system': 'Système',
  'notifications.category.meetings': 'Réunions',
  'notifications.category.reminders': 'Rappels',
  'notifications.category.important': 'Important',
  'about.update.status.checking': 'Vérification…',
  'about.update.status.available': 'v{version} disponible',
  'about.update.status.availableNoVersion': 'Mise à jour disponible',
  'about.update.status.downloading': 'Téléchargement…',
  'about.update.status.readyToInstall': 'v{version} prête à installer',
  'about.update.status.readyToInstallNoVersion':
    "Une nouvelle version est téléchargée et prête. Redémarre pour l'appliquer.",
  'about.update.status.installing': 'Installation…',
  'about.update.status.restarting': 'Redémarrage…',
  'about.update.status.upToDate': 'Tu utilises la dernière version.',
  'about.update.status.error': 'Échec de la vérification des mises à jour',
  'about.update.status.default': 'Rechercher des mises à jour',
  'welcome.connectionFailed': 'Connexion échouée : {status} {statusText}',
  'welcome.connectionFailedMsg': 'Connexion échouée : {message}',
  'chat.agentChatDesc': "Ouvrir une session de chat direct avec l'agent.",
  'channels.activeRouteValue': '{channel} via {authMode}',
  'privacy.dataKind.messages': 'Messages',
  'privacy.dataKind.agents': 'Agents',
  'privacy.dataKind.skills': 'Compétences',
  'privacy.dataKind.system': 'Système',
  'privacy.dataKind.meetings': 'Réunions',
  'privacy.dataKind.reminders': 'Rappels',
  'privacy.dataKind.important': 'Important',
  'onboarding.enableLocalAI': "Activer l'IA locale",
  'onboarding.skills.status.available': 'Disponible',
  'onboarding.skills.status.connected': 'Connecté',
  'onboarding.skills.status.connecting': 'Connexion en cours',
  'onboarding.skills.status.error': 'Erreur',
  'onboarding.skills.status.unavailable': 'Indisponible',
  'composio.statusUnavailable': 'État indisponible',
  'composio.envVarOverrides': 'est définie, elle remplace ce paramètre.',
  'memory.day.sun': 'Dim',
  'memory.day.mon': 'Lun',
  'memory.day.tue': 'Mar',
  'memory.day.wed': 'Mer',
  'memory.day.thu': 'Jeu',
  'memory.day.fri': 'Ven',
  'memory.day.sat': 'Sam',
  'memory.ingesting': 'Ingestion',
  'memory.ingestionQueued': "En file d'attente",
  'memory.ingestingTitle': 'Ingestion de {title}',
  'mic.noAudioCaptured': 'Aucun audio capturé',
  'mic.noSpeechDetected': 'Aucune parole détectée',
  'mic.failedToStopRecording': "Échec de l'arrêt de l'enregistrement : {message}",
  'mic.transcriptionFailed': 'Échec de la transcription : {message}',
  'reflections.kind.retrospective': 'Rétrospective',
  'reflections.kind.derivedFact': 'Fait dérivé',
  'reflections.kind.moodInsight': 'Insight émotionnel',
  'reflections.kind.relationshipInsight': 'Insight relationnel',
  'graph.tooltip.summary': 'Résumé',
  'graph.tooltip.contact': 'Contact',
  'localModel.usage.never': 'Jamais',
  'localModel.usage.mediumLoad': 'Charge moyenne',
  'localModel.usage.lowLoad': 'Faible charge',
  'localModel.usage.idleMode': 'Mode veille',
  'localModel.rebootstrapComplete': 'Re-bootstrap du modèle terminé.',
  'localModel.modelsVerified': 'Modèles locaux vérifiés.',
  'accounts.addModal.allConnected': 'Tout est connecté',
  'accounts.addModal.title': 'Ajouter un compte',
  'accounts.respondQueue.empty': 'Vide',
  'accounts.respondQueue.hide': 'Masquer la file de réponses',
  'accounts.respondQueue.loadFailed': 'Échec du chargement de la file de réponses',
  'accounts.respondQueue.loading': 'Chargement de la file…',
  'accounts.respondQueue.pending': 'En attente',
  'accounts.respondQueue.show': 'Afficher la file de réponses',
  'accounts.respondQueue.title': 'File de réponses',
  'accounts.webviewHost.almostReady': 'Presque prêt…',
  'accounts.webviewHost.loadTimeout': 'Délai de chargement de la webview dépassé',
  'accounts.webviewHost.loading': 'Chargement de {providerName}…',
  'accounts.webviewHost.loadingAccount': 'Chargement du compte',
  'accounts.webviewHost.restoringSession': 'Restauration de la session…',
  'accounts.webviewHost.retryLoading': 'Réessayer le chargement',
  'accounts.webviewHost.takingLonger': '{providerName} prend plus de temps que prévu.',
  'accounts.webviewHost.timeoutHint': "Indice de délai d'attente",
  'app.connectionBadge.composio': 'Composio',
  'app.connectionBadge.messaging': 'Messagerie',
  'app.connectionIndicator.connected': 'Connecté à OpenHuman AI 🚀',
  'app.connectionIndicator.connecting': 'Connexion en cours',
  'app.connectionIndicator.coreOffline': 'Core hors ligne',
  'app.connectionIndicator.disconnected': 'Déconnecté',
  'app.connectionIndicator.offline': 'Hors ligne',
  'app.connectionIndicator.reconnecting': 'Reconnexion…',
  'app.errorFallback.componentStack': 'Pile de composants',
  'app.errorFallback.downloadLatest': 'Télécharger la dernière version',
  'app.errorFallback.heading': 'Titre',
  'app.errorFallback.hint': 'Indice',
  'app.errorFallback.reloadApp': "Recharger l'app",
  'app.errorFallback.subheading': 'Sous-titre',
  'app.errorFallback.tryRecover': 'Essayer de récupérer',
  'app.localAiDownload.installing': 'Installation…',
  'app.localAiDownload.preparing': 'Préparation…',
  'app.openhumanLink.accounts.continueWith': 'Continuer avec la connexion {label}',
  'app.openhumanLink.accounts.done': 'Terminé',
  'app.openhumanLink.accounts.intro': 'Intro',
  'app.openhumanLink.accounts.webviewNote': 'Note webview',
  'app.openhumanLink.billing.openDashboard': 'Ouvrir le tableau de bord',
  'app.openhumanLink.billing.stayOnTrial': "Rester en période d'essai",
  'app.openhumanLink.billing.trialCredit': "Crédit d'essai",
  'app.openhumanLink.billing.trialDesc': "Description de l'essai",
  'app.openhumanLink.defaultBody':
    'Pas encore disponible dans la fenêtre contextuelle. Ouvrez la page des paramètres complète si nécessaire.',
  'app.openhumanLink.discord.intro': 'Intro',
  'app.openhumanLink.discord.openInvite': "Ouvrir l'invitation",
  'app.openhumanLink.discord.perk1': 'Avantage 1',
  'app.openhumanLink.discord.perk2': 'Avantage 2',
  'app.openhumanLink.discord.perk3': 'Avantage 3',
  'app.openhumanLink.discord.perk4': 'Avantage 4',
  'app.openhumanLink.done': 'Terminé',
  'app.openhumanLink.loadingChannelSetup': 'Chargement de la configuration du canal',
  'app.openhumanLink.maybeLater': 'Peut-être plus tard',
  'app.openhumanLink.notifications.asking': 'Demande à ton OS…',
  'app.openhumanLink.notifications.blocked': 'Bloqué',
  'app.openhumanLink.notifications.blockedStep1': 'Étape 1 bloquée',
  'app.openhumanLink.notifications.blockedStep2': 'Étape 2 bloquée',
  'app.openhumanLink.notifications.blockedStep3': 'Étape 3 bloquée',
  'app.openhumanLink.notifications.intro': 'Intro',
  'app.openhumanLink.notifications.promptHint': "Indice d'invite",
  'app.openhumanLink.notifications.retry': 'Renvoyer une notification de test',
  'app.openhumanLink.notifications.send': 'Envoyer une notification de test',
  'app.openhumanLink.notifications.sendFailed': "Impossible d'envoyer : {error}",
  'app.openhumanLink.notifications.sent':
    "Notification de test envoyée. Si vous ne l'avez pas reçue, allez dans Réglages Système → Notifications → OpenHuman, activez Autoriser les notifications, et définissez le style de bannière sur Persistant.",
  'app.openhumanLink.skipForNow': "Passer pour l'instant",
  'app.openhumanLink.telegramUnavailable': 'Telegram indisponible',
  'app.openhumanLink.title.accounts': 'Connecte tes apps',
  'app.openhumanLink.title.billing': 'Facturation & crédits',
  'app.openhumanLink.title.discord': 'Rejoins la communauté',
  'app.openhumanLink.title.messaging': 'Connecter un canal de chat',
  'app.openhumanLink.title.notifications': 'Autoriser les notifications',
  'app.persistRehydration.body': 'Corps',
  'app.persistRehydration.heading': 'Titre',
  'app.persistRehydration.resetCta': 'Réinitialisation…',
  'app.persistRehydration.resetting': 'Réinitialisation…',
  'app.routeLoading.initializing': "Initialisation d'OpenHuman...",
  'app.update.currentlyOn': '{version}',
  'app.update.errorFallback': "Une erreur s'est produite lors de la mise à jour.",
  'app.update.header.default': 'Mise à jour',
  'app.update.header.error': 'Mise à jour échouée',
  'app.update.header.installing': 'Installation de la mise à jour',
  'app.update.header.readyToInstall': 'Mise à jour prête à installer',
  'app.update.header.restarting': 'Redémarrage…',
  'app.update.later': 'Plus tard',
  'app.update.newVersionReady': 'Une nouvelle version est prête à installer.',
  'app.update.progress.downloaded': '{amount} téléchargé',
  'app.update.progress.installing': 'Installation de la nouvelle version…',
  'app.update.progress.restarting': "Relancement de l'app…",
  'app.update.progress.working': '{percent} %',
  'app.update.restartNote': 'Note de redémarrage',
  'app.update.restartNow': 'Redémarrer maintenant',
  'app.update.versionReady': 'La version {newVersion} est prête à installer.',
  'channels.discord.accountLinked': 'Compte lié',
  'channels.discord.connect': 'Connecter',
  'channels.discord.linkTokenExpired': 'Token de liaison expiré. Réessaie.',
  'channels.discord.linkTokenInstruction': '{token}',
  'channels.discord.linkTokenLabel': 'Libellé du token de liaison',
  'channels.discord.linkTokenOnce': 'Token de liaison unique',
  'channels.discord.picker.allPermissionsOk':
    'Le bot dispose de toutes les permissions requises dans ce canal.',
  'channels.discord.picker.botNotInServers': 'Bot absent des serveurs',
  'channels.discord.picker.category': 'Catégorie',
  'channels.discord.picker.channel': 'Canal',
  'channels.discord.picker.checkingPermissions': 'Vérification des permissions',
  'channels.discord.picker.loadingChannels': 'Chargement des canaux…',
  'channels.discord.picker.loadingServers': 'Chargement des serveurs…',
  'channels.discord.picker.missingPermissions': 'Permissions manquantes',
  'channels.discord.picker.noChannels': 'Aucun canal texte trouvé',
  'channels.discord.picker.noServers': 'Aucun serveur trouvé',
  'channels.discord.picker.selectChannel': 'Sélectionner un canal',
  'channels.discord.picker.selectServer': 'Sélectionner un serveur',
  'channels.discord.picker.server': 'Serveur',
  'channels.discord.picker.serverChannelSelection': 'Sélection du serveur et du canal',
  'channels.discord.savedRestartRequired': "Canal enregistré. Redémarre l'app pour l'activer.",
  'channels.telegram.connect': 'Connecter',
  'channels.telegram.managedDmConnecting': 'Connexion du DM géré',
  'channels.telegram.managedDmTimeout': 'Délai du DM géré dépassé',
  'channels.telegram.reconnect': 'Reconnecter',
  'channels.telegram.savedRestartRequired': "Canal enregistré. Redémarre l'app pour l'activer.",
  'channels.web.alwaysAvailable': 'Toujours disponible',
};

export default fr3;
