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

// French (Français) chunk 5/5. Translated from chunks/en-5.ts.
const fr5: TranslationMap = {
  'settings.billing.subscription.save': '{pct}',
  'settings.billing.subscription.upgrade': 'Passer à la version supérieure',
  'settings.billing.subscription.waiting': 'En attente',
  'settings.billing.subscription.waitingPayment': 'En attente de paiement',
  'settings.composio.apiKeyDesc': 'Une clé API Composio est actuellement stockée sur cet appareil.',
  'settings.composio.apiKeyLabel': 'Clé API Composio',
  'settings.composio.apiKeyStored': 'Clé API stockée',
  'settings.composio.apiKeyStoredPlaceholder': '••••••••••••••••',
  'settings.composio.clearedToBackend': 'Basculé en mode Backend',
  'settings.composio.confirmItem1': 'Un compte sur app.composio.dev avec une clé API',
  'settings.composio.confirmItem2':
    'Re-lier chaque intégration via votre compte Composio personnel',
  'settings.composio.confirmItem3':
    "Remarque : les déclencheurs Composio (webhooks en temps réel) ne se déclenchent pas encore en mode Direct — uniquement les appels d'outils synchrones",
  'settings.composio.confirmNeedItems': 'Vous aurez besoin de :',
  'settings.composio.confirmSwitch': 'Je comprends, passer en Direct',
  'settings.composio.confirmTitle': '⚠️ Passage au mode Direct',
  'settings.composio.confirmWarning':
    'Vos intégrations existantes (Gmail, Slack, GitHub, etc. liées via OpenHuman) ne seront pas visibles — elles vivent dans le tenant Composio géré par OpenHuman.',
  'settings.composio.intro':
    "Composio intègre plus de 250 applications externes en tant qu'outils que votre agent peut appeler. Choisissez comment ces appels d'outils sont routés.",
  'settings.composio.modeDirect': 'Direct (apporte ta propre clé API)',
  'settings.composio.modeDirectDesc':
    "Les appels vont directement à backend.composio.dev. Souverain / compatible hors ligne. L'exécution des outils fonctionne de manière synchrone ; les webhooks de déclencheurs en temps réel ne sont pas encore routés en mode direct (problème de suivi).",
  'settings.composio.modeManaged': "Géré (OpenHuman s'en occupe pour toi)",
  'settings.composio.modeManagedDesc':
    "OpenHuman relaie les appels d'outils via notre backend (recommandé). L'authentification est négociée ; vous ne collez jamais de clé API Composio. Les webhooks sont entièrement routés.",
  'settings.composio.routingMode': 'Mode de routage',
  'settings.composio.saveErrorNoKey':
    "Échec de l'enregistrement. Le mode Direct nécessite une clé API non vide.",
  'settings.composio.saving': 'Enregistrement…',
  'settings.composio.switching': 'Bascule en cours…',
  'settings.cron.jobs.desc': 'Description',
  'settings.cron.jobs.empty': 'Aucune tâche cron core trouvée.',
  'settings.cron.jobs.lastStatus': 'Dernier statut',
  'settings.cron.jobs.loading': 'Chargement des tâches cron…',
  'settings.cron.jobs.loadingRuns': 'Chargement des exécutions',
  'settings.cron.jobs.nextRun': 'Prochaine exécution',
  'settings.cron.jobs.pause': 'Mettre en pause',
  'settings.cron.jobs.paused': 'Activé',
  'settings.cron.jobs.recentRuns': 'Exécutions récentes',
  'settings.cron.jobs.removing': 'Suppression',
  'settings.cron.jobs.resume': 'Reprendre',
  'settings.cron.jobs.runningNow': "En cours d'exécution",
  'settings.cron.jobs.saving': 'Enregistrement…',
  'settings.cron.jobs.schedule': 'Planification',
  'settings.cron.jobs.title': 'Tâches cron du core',
  'settings.cron.jobs.viewRuns': 'Voir les exécutions',
  'settings.localModel.deviceCapability.active': 'Actif',
  'settings.localModel.deviceCapability.appliedTier': 'Niveau appliqué',
  'settings.localModel.deviceCapability.applying': 'Application en cours',
  'settings.localModel.deviceCapability.cores': '{count}',
  'settings.localModel.deviceCapability.couldNotLoadPresets':
    'Impossible de charger les préréglages',
  'settings.localModel.deviceCapability.cpu': 'CPU',
  'settings.localModel.deviceCapability.customModelIds': 'Identifiants de modèles personnalisés',
  'settings.localModel.deviceCapability.detected': 'Détecté',
  'settings.localModel.deviceCapability.disabled': 'Désactivé',
  'settings.localModel.deviceCapability.disabledDesc': 'Description désactivé',
  'settings.localModel.deviceCapability.downloadingModels': '(téléchargement des modèles)',
  'settings.localModel.deviceCapability.downloadingSetupDesc':
    "Téléchargement de l'installateur OllamaSetup (~2 Go) et décompression. Cela peut prendre une minute lors de la première installation.",
  'settings.localModel.deviceCapability.failedToApplyPreset':
    "Échec de l'application du préréglage",
  'settings.localModel.deviceCapability.gpu': 'GPU',
  'settings.localModel.deviceCapability.installFailed': "Échec de l'installation d'Ollama",
  'settings.localModel.deviceCapability.installFailedDesc':
    "L'installateur s'est terminé avant qu'Ollama soit utilisable. Clique sur Réessayer pour recommencer, ou installe manuellement depuis ollama.com.",
  'settings.localModel.deviceCapability.installFirst': "Lancez Ollama d'abord.",
  'settings.localModel.deviceCapability.installFirstDesc':
    'Les niveaux locaux dépendent d\'un point de terminaison Ollama géré en externe. Lancez-le vous-même, téléchargez les modèles souhaités, et continuez à utiliser "Désactivé (repli cloud)" jusqu\'à ce que le runtime soit accessible.',
  'settings.localModel.deviceCapability.installOllamaFirst':
    "Lancez Ollama d'abord pour utiliser ce niveau",
  'settings.localModel.deviceCapability.installingOllama': "Installation d'Ollama",
  'settings.localModel.deviceCapability.loadingDeviceInfo':
    "Chargement des informations de l'appareil",
  'settings.localModel.deviceCapability.localAiDisabled':
    'IA locale désactivée — utilisation du fallback cloud.',
  'settings.localModel.deviceCapability.modelTier': 'Niveau de modèle',
  'settings.localModel.deviceCapability.needsOllama': 'Ollama requis',
  'settings.localModel.deviceCapability.notDetected': 'Non détecté',
  'settings.localModel.deviceCapability.ram': 'RAM',
  'settings.localModel.deviceCapability.recommended': 'Recommandé',
  'settings.localModel.deviceCapability.retryInstall': 'Nouvelle tentative…',
  'settings.localModel.deviceCapability.retrying': 'Nouvelle tentative…',
  'settings.localModel.deviceCapability.starting': 'Démarrage…',
  'settings.localModel.download.audioPathPlaceholder': 'Chemin absolu vers le fichier audio',
  'settings.localModel.download.capabilityAssets': 'Ressources de fonctionnalité',
  'settings.localModel.download.downloading': 'Téléchargement…',
  'settings.localModel.download.embeddingPlaceholder': "Une chaîne d'entrée par ligne…",
  'settings.localModel.download.noThinkMode': 'Mode sans réflexion',
  'settings.localModel.download.promptPlaceholder':
    "Tape n'importe quelle invite et exécute-la sur le modèle local…",
  'settings.localModel.download.quantizationPref': 'Préférence de quantification',
  'settings.localModel.download.runEmbeddingTest': 'En cours…',
  'settings.localModel.download.runPromptTest': "Lancer le test d'invite",
  'settings.localModel.download.runSummaryTest': 'Lancer le test de résumé',
  'settings.localModel.download.runTranscriptionTest': 'En cours…',
  'settings.localModel.download.runTtsTest': 'En cours…',
  'settings.localModel.download.runVisionTest': 'En cours…',
  'settings.localModel.download.running': 'En cours…',
  'settings.localModel.download.runningPrompt': "Exécution de l'invite",
  'settings.localModel.download.summarizePlaceholder':
    'Colle du texte à résumer avec le modèle local…',
  'settings.localModel.download.testCustomPrompt': 'Tester une invite personnalisée',
  'settings.localModel.download.testEmbeddings': 'Tester les embeddings',
  'settings.localModel.download.testSummarization': 'Tester la synthèse',
  'settings.localModel.download.testVisionPrompt': 'Tester une invite de vision',
  'settings.localModel.download.testVoiceInput': "Tester l'entrée vocale (STT)",
  'settings.localModel.download.testVoiceOutput': 'Tester la sortie vocale (TTS)',
  'settings.localModel.download.ttsOutputPlaceholder': 'Chemin WAV de sortie optionnel',
  'settings.localModel.download.ttsPlaceholder': 'Saisis du texte à synthétiser…',
  'settings.localModel.download.visionImagePlaceholder':
    "Une référence d'image par ligne (URI data, URL ou marqueur de chemin local)",
  'settings.localModel.download.visionPromptPlaceholder':
    'Saisis une invite pour le modèle de vision…',
  'settings.localModel.status.allChecksPassed': 'Toutes les vérifications réussies',
  'settings.localModel.status.artifact': 'Artefact',
  'settings.localModel.status.backend': 'Backend',
  'settings.localModel.status.binary': 'Binaire',
  'settings.localModel.status.bootstrapResume': 'Bootstrap / Reprendre',
  'settings.localModel.status.checking': 'Vérification…',
  'settings.localModel.status.checkingOllama': "Vérification d'Ollama",
  'settings.localModel.status.customLocation': 'Emplacement personnalisé',
  'settings.localModel.status.customLocationDesc': "Description de l'emplacement personnalisé",
  'settings.localModel.status.diagnosticsHint':
    'Cliquez sur "Lancer les diagnostics" pour vérifier qu\'Ollama fonctionne et que les modèles sont installés.',
  'settings.localModel.status.downloadingUnknown': 'Téléchargement (taille inconnue)',
  'settings.localModel.status.eta': 'ETA',
  'settings.localModel.status.expectedModels': 'Modèles attendus',
  'settings.localModel.status.forceRebootstrap': 'Forcer le ré-amorçage',
  'settings.localModel.status.generationTps': 'TPS de génération',
  'settings.localModel.status.hideErrorDetails': "Masquer les détails de l'erreur",
  'settings.localModel.status.installManually': 'Installer manuellement',
  'settings.localModel.status.installManuallyFrom': 'Installer manuellement depuis',
  'settings.localModel.status.installOllama': 'Démarrage…',
  'settings.localModel.status.installedModels': 'Modèles installés',
  'settings.localModel.status.installing': 'Installation…',
  'settings.localModel.status.installingOllama': 'Installation du runtime Ollama…',
  'settings.localModel.status.issues': 'Problèmes',
  'settings.localModel.status.issuesFound': '{count} problème(s) trouvé(s)',
  'settings.localModel.status.lastLatency': 'Dernière latence',
  'settings.localModel.status.model': 'Modèle',
  'settings.localModel.status.notFound': 'Introuvable',
  'settings.localModel.status.notRunning': "Non en cours d'exécution",
  'settings.localModel.status.ollamaBinaryPath': 'Chemin du binaire Ollama',
  'settings.localModel.status.ollamaDiagnostics': 'Diagnostics Ollama',
  'settings.localModel.status.ollamaNotInstalled': 'Runtime Ollama indisponible',
  'settings.localModel.status.ollamaNotInstalledDesc':
    "OpenHuman traite désormais Ollama comme un runtime d'inférence externe. Lancez votre propre serveur Ollama, téléchargez les modèles souhaités, et dirigez le routage des charges de travail vers celui-ci.",
  'settings.localModel.status.progress': 'Progression',
  'settings.localModel.status.provider': 'Fournisseur',
  'settings.localModel.status.retryBootstrap': 'Réessayer le bootstrap',
  'settings.localModel.status.runDiagnostics': 'Vérification…',
  'settings.localModel.status.running': 'En cours',
  'settings.localModel.status.runningExternalProcess': 'En cours via processus externe',
  'settings.localModel.status.runtimeStatus': 'État du runtime',
  'settings.localModel.status.server': 'Serveur',
  'settings.localModel.status.setPath': 'Configuration…',
  'settings.localModel.status.setting': 'Configuration…',
  'settings.localModel.status.showErrorDetails': "Masquer les détails de l'erreur",
  'settings.localModel.status.showInstallErrorDetails': "Masquer les détails de l'erreur",
  'settings.localModel.status.suggestedFixes': 'Corrections suggérées',
  'settings.localModel.status.thenSetPath': 'Ensuite définir le chemin',
  'settings.localModel.status.triggering': 'Déclenchement…',
  'settings.localModel.status.unavailable': 'Indisponible',
  'settings.localModel.status.working': 'En cours…',
  'settings.developerMenu.ai.title': 'Configuration IA',
  'settings.developerMenu.ai.desc':
    'Fournisseurs cloud, modèles Ollama locaux et routage par charge de travail',
  'settings.developerMenu.screenAwareness.title': "Conscience de l'écran",
  'settings.developerMenu.screenAwareness.desc':
    "Autorisations de capture d'écran, politique de surveillance et contrôles de session",
  'settings.developerMenu.messagingChannels.title': 'Canaux de messagerie',
  'settings.developerMenu.messagingChannels.desc':
    "Configure les modes d'authentification Telegram/Discord et le routage de canal par défaut",
  'settings.developerMenu.tools.title': 'Outils',
  'settings.developerMenu.tools.desc':
    "Active ou désactive les capacités qu'OpenHuman peut utiliser en ton nom",
  'settings.developerMenu.agentChat.title': 'Chat agent',
  'settings.developerMenu.agentChat.desc':
    'Teste une conversation agent avec des remplacements de modèle et de température',
  'settings.developerMenu.cronJobs.title': 'Tâches cron',
  'settings.developerMenu.cronJobs.desc':
    "Afficher et configurer les tâches planifiées des compétences d'exécution",
  'settings.developerMenu.localModelDebug.title': 'Débogage du modèle local',
  'settings.developerMenu.localModelDebug.desc':
    "Configuration Ollama, téléchargements d'assets, tests de modèle et diagnostics",
  'settings.developerMenu.webhooks.title': 'Webhooks',
  'settings.developerMenu.webhooks.desc':
    "Inspecter les enregistrements de webhooks d'exécution et les journaux de requêtes capturés",
  'settings.developerMenu.intelligence.title': 'Intelligence',
  'settings.developerMenu.intelligence.desc':
    'Espace mémoire, moteur subconscient, rêves et paramètres',
  'settings.developerMenu.notificationRouting.title': 'Routage des notifications',
  'settings.developerMenu.notificationRouting.desc':
    "Score d'importance par IA et escalade de l'orchestrateur pour les alertes d'intégration",
  'settings.developerMenu.composeioTriggers.title': 'Déclencheurs ComposeIO',
  'settings.developerMenu.composeioTriggers.desc':
    "Afficher l'historique et les archives des déclencheurs ComposeIO",
  'settings.developerMenu.composioRouting.title': 'Routage Composio (mode direct)',
  'settings.developerMenu.composioRouting.desc':
    'Utilise ta propre clé API Composio et route les appels directement vers backend.composio.dev',
  'settings.developerMenu.integrationTriggers.title': "Déclencheurs d'intégration",
  'settings.developerMenu.integrationTriggers.desc':
    "Configurer les paramètres de triage IA pour les déclencheurs d'intégration Composio",
  'settings.appearance.menuDesc': 'Choisis clair, sombre ou le thème du système',
  'settings.mascot.active': 'Actif',
  'settings.mascot.characterDesc': 'Description du personnage',
  'settings.mascot.characterHeading': 'Titre du personnage',
  'settings.mascot.colorDesc': 'Description de la couleur',
  'settings.mascot.colorHeading': 'Titre de la couleur',
  'settings.mascot.loadingLibrary': 'Chargement de la bibliothèque OpenHuman…',
  'settings.mascot.localDefault': 'OpenHuman local (par défaut)',
  'settings.mascot.menuTitle': 'Mascotte',
  'settings.mascot.menuDesc': "Choisis la couleur de la mascotte utilisée dans toute l'application",
  'settings.mascot.noCharacters': "Aucun personnage OpenHuman n'est encore disponible",
  'settings.mascot.noColorVariants': 'Aucune variante de couleur',
  'settings.mascot.voice.current': 'actuel',
  'settings.mascot.voice.customDesc':
    "Trouvez les identifiants vocaux sur api.elevenlabs.io/v1/voices ou dans votre tableau de bord ElevenLabs. Seul l'identifiant est stocké — votre clé API reste sur le backend.",
  'settings.mascot.voice.customHeading': 'Identifiant vocal personnalisé',
  'settings.mascot.voice.customOption': "Autre (coller l'identifiant vocal)…",
  'settings.mascot.voice.desc':
    "Choisissez la voix ElevenLabs utilisée par la mascotte pour les réponses parlées. Filtrez par genre, choisissez dans la liste sélectionnée, collez un identifiant personnalisé, ou laissez l'application choisir une voix qui correspond à la langue de l'interface.",
  'settings.mascot.voice.genderFemale': 'Féminin',
  'settings.mascot.voice.genderHeading': 'Genre de la voix',
  'settings.mascot.voice.genderMale': 'Masculin',
  'settings.mascot.voice.heading': 'Voix',
  'settings.mascot.voice.preset': 'Préréglage vocal',
  'settings.mascot.voice.presetHeading': 'Préréglage vocal',
  'settings.mascot.voice.preview': 'Aperçu de la voix',
  'settings.mascot.voice.previewError': "Échec de l'aperçu de la voix",
  'settings.mascot.voice.previewing': 'Aperçu en cours…',
  'settings.mascot.voice.reset': 'Réinitialiser à la valeur par défaut',
  'settings.mascot.voice.useLocaleDefault': "Faire correspondre à la langue de l'application",
  'settings.mascot.voice.useLocaleDefaultDesc':
    "Choisir automatiquement une voix pour la langue de l'interface actuelle.",
  'settings.memoryWindow.balanced.badge': 'Recommandé',
  'settings.memoryWindow.balanced.hint':
    'Valeur par défaut raisonnable — bonne continuité sans consommer de jetons supplémentaires à chaque exécution.',
  'settings.memoryWindow.balanced.label': 'Équilibré',
  'settings.memoryWindow.description':
    "Quelle quantité de contexte mémorisé OpenHuman injecte dans chaque nouvelle exécution d'agent. Des fenêtres plus larges semblent plus conscientes des conversations passées mais consomment plus de jetons — et coûtent plus cher — à chaque exécution.",
  'settings.memoryWindow.extended.badge': 'Plus de contexte',
  'settings.memoryWindow.extended.hint':
    'Plus de mémoire à long terme injectée à chaque exécution. Coût en jetons plus élevé par tour.',
  'settings.memoryWindow.extended.label': 'Étendu',
  'settings.memoryWindow.maximum.badge': 'Coût maximum',
  'settings.memoryWindow.maximum.hint':
    'La plus grande fenêtre sûre. Meilleure continuité, facture de jetons nettement plus élevée à chaque exécution.',
  'settings.memoryWindow.maximum.label': 'Maximum',
  'settings.memoryWindow.minimal.badge': 'Le moins cher',
  'settings.memoryWindow.minimal.hint':
    'Plus petite fenêtre de mémoire. Le moins cher, le plus rapide, le moins de continuité entre les exécutions.',
  'settings.memoryWindow.minimal.label': 'Minimal',
  'settings.memoryWindow.title': 'Fenêtre de mémoire à long terme',
  'settings.screenIntel.permissions.accessibility': 'Accessibilité',
  'settings.screenIntel.permissions.grantHint': "Indice d'autorisation",
  'settings.screenIntel.permissions.inputMonitoring': 'Surveillance des entrées',
  'settings.screenIntel.permissions.macosAppliesPrivacy': 'macOS applique la confidentialité',
  'settings.screenIntel.permissions.openInputMonitoring': 'Demande en cours…',
  'settings.screenIntel.permissions.refreshStatus': 'Actualisation…',
  'settings.screenIntel.permissions.refreshing': 'Actualisation…',
  'settings.screenIntel.permissions.requestAccessibility': 'Demande en cours…',
  'settings.screenIntel.permissions.requestScreenRecording': 'Demande en cours…',
  'settings.screenIntel.permissions.requesting': 'Demande en cours…',
  'settings.screenIntel.permissions.restartRefresh': 'Redémarrage du core…',
  'settings.screenIntel.permissions.restartingCore': 'Redémarrage du core…',
  'settings.screenIntel.permissions.screenRecording': "Enregistrement d'écran",
  'settings.screenIntel.permissions.title': 'Autorisations',
  'skills.card.moreActions': "Plus d'actions",
  'skills.create.allowedTools': 'Outils autorisés',
  'skills.create.author': 'Auteur',
  'skills.create.authorPlaceholder': 'Ton nom',
  'skills.create.commaSeparated': '(séparés par des virgules)',
  'skills.create.createBtn': 'Créer la compétence',
  'skills.create.createError': 'Impossible de créer la compétence',
  'skills.create.creating': 'Création…',
  'skills.create.description': 'Description',
  'skills.create.descriptionPlaceholder': 'Que fait cette compétence ?',
  'skills.create.license': 'Licence',
  'skills.create.name': 'Nom',
  'skills.create.namePlaceholder': 'ex. Journal de trading',
  'skills.create.scope': 'Portée',
  'skills.create.scopeProjectHint': '/.openhuman/skills/',
  'skills.create.scopeUserHint':
    'Écrit dans ~/.openhuman/skills/<slug>/SKILL.md — disponible dans tous les espaces de travail.',
  'skills.create.slugLabel': 'Libellé du slug',
  'skills.create.subtitle': 'SKILL.md',
  'skills.create.tags': 'Étiquettes',
  'skills.create.title': 'Nouvelle compétence',
  'skills.detail.allowedTools': 'Outils autorisés',
  'skills.detail.author': 'Auteur',
  'skills.detail.bundledResources': 'Ressources groupées',
  'skills.detail.closeAriaLabel': 'Fermer les détails de la compétence',
  'skills.detail.location': 'Emplacement',
  'skills.detail.noBundledResources': 'Aucune ressource groupée.',
  'skills.detail.tags': 'Étiquettes',
  'skills.detail.warnings': 'Avertissements',
  'skills.install.fetchLog': 'Récupérer le journal',
  'skills.install.installBtn': 'Installation…',
  'skills.install.installComplete': 'Installation terminée',
  'skills.install.installing': 'Installation…',
  'skills.install.parseWarnings': "Avertissements d'analyse",
  'skills.install.rawError': 'Erreur brute',
  'skills.install.timeoutHint': '(secondes, optionnel)',
  'skills.install.timeoutLabel': "Libellé du délai d'attente",
  'skills.install.title': 'Installer une compétence depuis une URL',
  'skills.install.urlLabel': 'URL de la compétence',
  'skills.meetingBots.bannerDesc': 'Description de la bannière',
  'skills.meetingBots.bannerTitle': 'Titre de la bannière',
  'skills.meetingBots.busyTitle': 'OpenHuman est occupé',
  'skills.meetingBots.comingSoon': 'Bientôt disponible',
  'skills.meetingBots.couldNotStartTitle': 'Impossible de démarrer OpenHuman',
  'skills.meetingBots.displayName': "Nom d'affichage",
  'skills.meetingBots.failedToStart': "Échec du démarrage d'OpenHuman.",
  'skills.meetingBots.joiningMessage':
    'Il devrait apparaître comme participant dans quelques secondes.',
  'skills.meetingBots.joiningTitle': 'OpenHuman rejoint la réunion',
  'skills.meetingBots.meetingLink': 'Lien de réunion',
  'skills.meetingBots.modalAriaLabel': 'Envoyer OpenHuman à une réunion',
  'skills.meetingBots.modalDesc': 'Description de la modal',
  'skills.meetingBots.modalTitle': 'Envoyer OpenHuman à une réunion',
  'skills.meetingBots.newBadge': 'Nouveau badge',
  'skills.meetingBots.sendTo': 'Envoyer à',
  'skills.meetingBots.starting': 'Démarrage…',
  'skills.resource.preview.closeAriaLabel': "Fermer l'aperçu",
  'skills.resource.preview.failed': "Échec de l'aperçu",
  'skills.resource.preview.loading': "Chargement de l'aperçu…",
  'skills.resource.tree.empty': 'Aucune ressource groupée.',
  'skills.search.placeholder': 'Espace réservé',
  'skills.setup.autocomplete.acceptKey': "Touche d'acceptation",
  'skills.setup.autocomplete.activeDesc': 'Description active',
  'skills.setup.autocomplete.activeTitle': "L'autocomplétion est active",
  'skills.setup.autocomplete.customizeSettings': 'Personnaliser les paramètres',
  'skills.setup.autocomplete.debounce': 'Anti-rebond',
  'skills.setup.autocomplete.description': 'Description',
  'skills.setup.autocomplete.enableBtn': 'Activation…',
  'skills.setup.autocomplete.enableError': "Échec de l'activation de l'autocomplétion",
  'skills.setup.autocomplete.enabling': 'Activation…',
  'skills.setup.autocomplete.notSupported': 'Non pris en charge',
  'skills.setup.autocomplete.stepEnable': 'Activer les complétions en ligne',
  'skills.setup.autocomplete.stepSuccess': "Prêt à l'emploi",
  'skills.setup.autocomplete.stylePreset': 'Préréglage de style',
  'skills.setup.autocomplete.stylePresetValue': 'Équilibré (configurable plus tard)',
  'skills.setup.autocomplete.title': 'Autocomplétion de texte',
  'skills.setup.screenIntel.activeDesc': 'Description active',
  'skills.setup.screenIntel.activeTitle': "L'intelligence d'écran est activée",
  'skills.setup.screenIntel.advancedSettings': 'Paramètres avancés',
  'skills.setup.screenIntel.allGranted': 'Toutes les permissions accordées',
  'skills.setup.screenIntel.captureMode': 'Mode de capture',
  'skills.setup.screenIntel.captureModeValue': 'Toutes les fenêtres (configurable plus tard)',
  'skills.setup.screenIntel.deniedHint':
    'Après avoir accordé les permissions dans les Paramètres système, clique ci-dessous pour redémarrer et prendre en compte les modifications.',
  'skills.setup.screenIntel.enableBtn': 'Activation…',
  'skills.setup.screenIntel.enableDesc':
    's sur ton écran et injecte du contexte utile dans ton agent',
  'skills.setup.screenIntel.enableError': "Échec de l'activation de l'intelligence d'écran",
  'skills.setup.screenIntel.enabling': 'Activation…',
  'skills.setup.screenIntel.grant': 'Ouverture…',
  'skills.setup.screenIntel.granted': 'Accordé',
  'skills.setup.screenIntel.macosOnly': 'macOS uniquement',
  'skills.setup.screenIntel.opening': 'Ouverture…',
  'skills.setup.screenIntel.panicHotkey': 'Raccourci de panique',
  'skills.setup.screenIntel.permAccessibility': 'Accessibilité',
  'skills.setup.screenIntel.permInputMonitoring': 'Surveillance des entrées',
  'skills.setup.screenIntel.permScreenRecording': "Enregistrement d'écran",
  'skills.setup.screenIntel.permissionsDesc': 'Description des permissions',
  'skills.setup.screenIntel.refreshStatus': 'Actualiser le statut',
  'skills.setup.screenIntel.restartRefresh': 'Redémarrage…',
  'skills.setup.screenIntel.restarting': 'Redémarrage…',
  'skills.setup.screenIntel.stepEnable': 'Activer la compétence',
  'skills.setup.screenIntel.stepPermissions': 'Accorder les permissions',
  'skills.setup.screenIntel.stepSuccess': "Prêt à l'emploi",
  'skills.setup.screenIntel.title': "Intelligence d'écran",
  'skills.setup.screenIntel.visionModel': 'Modèle de vision',
  'skills.setup.voice.activation': 'Activation',
  'skills.setup.voice.activeDescPrefix': 'Fn',
  'skills.setup.voice.activeDescSuffix': 'Fn',
  'skills.setup.voice.activeTitle': "L'intelligence vocale est active",
  'skills.setup.voice.customizeSettings': 'Personnaliser les paramètres',
  'skills.setup.voice.downloadSttBtn': 'Télécharger le modèle STT',
  'skills.setup.voice.enableDesc': "Description d'activation",
  'skills.setup.voice.hotkey': 'Raccourci',
  'skills.setup.voice.startBtn': 'Démarrage…',
  'skills.setup.voice.startError': 'Échec du démarrage du serveur vocal',
  'skills.setup.voice.starting': 'Démarrage…',
  'skills.setup.voice.stepEnable': 'Démarrer le serveur vocal',
  'skills.setup.voice.stepSetup': 'Téléchargement du modèle requis',
  'skills.setup.voice.stepSuccess': "Prêt à l'emploi",
  'skills.setup.voice.sttNotReady': 'Modèle speech-to-text non prêt',
  'skills.setup.voice.sttNotReadyDesc':
    "L'intelligence vocale nécessite un modèle Whisper local pour la transcription. Télécharge-le depuis les paramètres du modèle local.",
  'skills.setup.voice.sttReady': 'Modèle speech-to-text prêt',
  'skills.setup.voice.sttReturnHint': 'Indice de retour STT',
  'skills.setup.voice.title': 'Intelligence vocale',
  'skills.uninstall.couldNotUninstall': 'Impossible de désinstaller',
  'skills.uninstall.description':
    "Cela supprime définitivement le répertoire de la compétence et toutes ses ressources fournies. L'agent cessera de la voir au prochain tour.",
  'skills.uninstall.title': 'Désinstaller',
  'skills.uninstall.uninstallBtn': 'Désinstaller',
  'skills.uninstall.uninstalling': 'Désinstallation…',
  'upsell.global.limitMessage': 'Mets à niveau ton plan ou recharge des crédits pour continuer',
  'upsell.global.limitTitle': 'Toi',
  'upsell.global.nearLimitMessage':
    "Tu as utilisé {pct}% de ta limite d'utilisation. Mets à niveau pour des limites plus élevées.",
  'upsell.global.nearLimitTitle': "Limite d'utilisation proche",
  'upsell.usageLimit.bodyBudget':
    'Vous avez atteint votre limite hebdomadaire.{reset} Améliorez votre forfait ou rechargez des crédits pour éviter les limites.',
  'upsell.usageLimit.bodyRate':
    "Vous avez atteint votre limite de taux d'inférence sur 10 heures.{reset} Améliorez pour des limites plus élevées.",
  'upsell.usageLimit.heading': "Limite d'utilisation atteinte",
  'upsell.usageLimit.notNow': 'Pas maintenant',
  'upsell.usageLimit.perWindow': '{amount}',
  'upsell.usageLimit.planIncludes': '{plan}',
  'upsell.usageLimit.resetsIn': 'Réinitialisation {time}.',
  'upsell.usageLimit.upgradePlan': 'Mettre à niveau le plan',
  'upsell.usageLimit.weeklyInference': '{amount}',
  'walkthrough.tooltip.letsGo': "C'est parti !",
  'walkthrough.tooltip.next': 'Suivant →',
  'walkthrough.tooltip.skip': 'Passer la visite',
  'walkthrough.tooltip.stepCounter': '{n} sur {total}',
  'webhooks.activity.empty': 'Vide',
  'webhooks.activity.title': 'Activité récente',
  'webhooks.composioHistory.empty': 'Vide',
  'webhooks.composioHistory.metadataId': 'ID de métadonnées',
  'webhooks.composioHistory.metadataUuid': 'UUID de métadonnées',
  'webhooks.composioHistory.payload': 'Charge utile',
  'webhooks.composioHistory.title': 'Historique des déclencheurs ComposeIO',
  'webhooks.tunnels.active': 'Actif',
  'webhooks.tunnels.createFailed': 'Échec de la création du tunnel',
  'webhooks.tunnels.creating': 'Création…',
  'webhooks.tunnels.deleteFailed': 'Échec de la suppression du tunnel',
  'webhooks.tunnels.descriptionPlaceholder': 'Description (optionnel)',
  'webhooks.tunnels.echo': 'Écho',
  'webhooks.tunnels.empty': 'Vide',
  'webhooks.tunnels.enableEcho': "Supprimer l'écho",
  'webhooks.tunnels.inactive': 'Actif',
  'webhooks.tunnels.namePlaceholder': 'Nom du tunnel (ex. telegram-bot)',
  'webhooks.tunnels.newTunnel': 'Nouveau tunnel',
  'webhooks.tunnels.removeEcho': "Supprimer l'écho",
  'webhooks.tunnels.title': 'Tunnels webhook',
  'webhooks.tunnels.toggleFailed': "Échec de la bascule de l'écho",
  'composio.authExpired': 'Authentification expirée',
  'composio.reconnect': 'Reconnecter',
  'composio.previewBadge': 'Preview',
  'composio.previewTooltip':
    'Agent integration coming soon — you can connect, but the agent can’t use this toolkit yet.',
  'composio.directModeRequiresKey':
    "Échec de l'enregistrement. Le mode Direct nécessite une clé API non vide.",
  'composio.notYetRouted': 'pas encore routé',
  'composio.triggers.loading': 'Chargement…',
  'conversations.taskKanban.todo': 'À faire',
  'settings.composio.loading': 'Chargement…',
  'settings.mascot.noCharactersAvailable': "Aucun personnage OpenHuman n'est encore disponible",
  'skills.uninstall.confirmTitle': 'Désinstaller {name} ?',
  'conversations.taskKanban.blocked': 'Bloqué',
  'conversations.taskKanban.done': 'Terminé',
  'conversations.taskKanban.inProgress': 'En cours',
  'intelligence.memoryChunk.detail.copiedHint': 'copié',
  'settings.composio.notYetRouted': 'pas encore routé',
  'settings.localModel.download.manageExternal': 'Gérez ce modèle dans votre runtime externe.',
  'settings.localModel.status.manageOllamaExternal':
    "Gérez le processus Ollama et les téléchargements de modèles en dehors d'OpenHuman, puis relancez les diagnostics.",
  'settings.localModel.status.ollamaDocs': 'Documentation Ollama',
  'settings.localModel.status.thenRetry':
    'pour les instructions de configuration, puis réessayez une fois votre runtime accessible.',
  'settings.appearance.title': 'Appearance',
  'settings.appearance.themeHeading': 'Theme',
  'settings.appearance.themeAria': 'Theme',
  'settings.appearance.modeLight': 'Light',
  'settings.appearance.modeLightDesc': 'Bright surfaces, dark text.',
  'settings.appearance.modeDark': 'Dark',
  'settings.appearance.modeDarkDesc': 'Dim surfaces, easier on the eyes after dusk.',
  'settings.appearance.modeSystem': 'Match system',
  'settings.appearance.modeSystemDesc': 'Follow your OS appearance setting.',
  'settings.appearance.helperText':
    'Dark mode switches the entire app — chat, settings, panels — to a dim palette. "Match system" follows your OS appearance and updates live.',
  'settings.mascot.characterPreview': 'Preview',
  'settings.mascot.characterStates': 'states',
  'settings.mascot.characterVisemes': 'visemes',
  'settings.mascot.colorAria': 'OpenHuman color',
  'settings.mascot.colorBlack': 'Black',
  'settings.mascot.colorBurgundy': 'Burgundy',
  'settings.mascot.colorGreen': 'Green',
  'settings.mascot.colorNavy': 'Navy',
  'settings.mascot.colorYellow': 'Yellow',
  'settings.mascot.libraryUnavailable': 'OpenHuman library unavailable',
  'settings.mascot.title': 'OpenHuman',
  'settings.developerMenu.mcpServer.title': 'MCP Server',
  'settings.developerMenu.mcpServer.desc': 'Configure external MCP clients to connect to OpenHuman',
  'settings.mcpServer.title': 'MCP Server',
  'settings.mcpServer.toolsSectionTitle': 'Available Tools',
  'settings.mcpServer.toolsSectionDesc':
    'Tools exposed via the MCP stdio server when running openhuman-core mcp',
  'settings.mcpServer.configSectionTitle': 'Client Configuration',
  'settings.mcpServer.configSectionDesc':
    'Select your MCP client to generate the correct configuration snippet',
  'settings.mcpServer.copySnippet': 'Copy to Clipboard',
  'settings.mcpServer.copied': 'Copied!',
  'settings.mcpServer.openConfigFile': 'Open Config File',
  'settings.mcpServer.binaryPathNotFound':
    'OpenHuman binary not found. If running from source, build with: cargo build --bin openhuman-core',
  'settings.mcpServer.openConfigError': 'Failed to open config file',
  'settings.mcpServer.clientClaudeDesktop': 'Claude Desktop',
  'settings.mcpServer.clientCursor': 'Cursor',
  'settings.mcpServer.clientCodex': 'Codex',
  'settings.mcpServer.clientZed': 'Zed',
  'settings.mcpServer.configFilePath': 'Config file',
  'settings.mcpServer.clientSelectorAriaLabel': 'MCP client selector',
};

export default fr5;
