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

// French (Français) chunk 4/5. Translated from chunks/en-4.ts.
const fr4: TranslationMap = {
  'chat.unsubscribeApproval.approve': 'Approuver et se désabonner',
  'chat.unsubscribeApproval.approved': '✓ Désabonnement réussi.',
  'chat.unsubscribeApproval.denied': '✕ Demande refusée.',
  'chat.unsubscribeApproval.deny': 'Refuser',
  'chat.unsubscribeApproval.processing': 'Traitement…',
  'chat.unsubscribeApproval.title': 'Demande de désabonnement',
  'commandPalette.ariaLabel': 'Palette de commandes',
  'commandPalette.description': 'Description',
  'commandPalette.label': 'Commandes',
  'commandPalette.noResults': 'Aucun résultat',
  'commandPalette.placeholder': 'Tape une commande ou recherche…',
  'commandPalette.searchAria': 'Rechercher des commandes',
  'commandPalette.shortcutHint': 'Appuyez sur ? pour tous les raccourcis',
  'commandPalette.title': 'Palette de commandes',
  'composio.connect.additionalConfigRequired': 'Configuration supplémentaire requise',
  'composio.connect.atlassianSubdomainHint': 'acme',
  'composio.connect.atlassianSubdomainLabel': 'Libellé du sous-domaine Atlassian',
  'composio.connect.connect': 'Connecter',
  'composio.connect.connectionFailed': 'Échec de la connexion (statut : {status}).',
  'composio.connect.disconnectFailed': 'Déconnexion échouée : {msg}',
  'composio.connect.disconnecting': 'Déconnexion…',
  'composio.connect.idleDescription': 'Connectez votre',
  'composio.connect.idleDescriptionSuffix':
    "compte. Nous ouvrirons une fenêtre du navigateur, vous y approuvez l'accès, et cette application détectera la connexion automatiquement.",
  'composio.connect.isConnected': 'est connecté.',
  'composio.connect.manage': 'Gérer',
  'composio.connect.needsSubdomain': 'Pour connecter',
  'composio.connect.needsSubdomainSuffix':
    'saisissez votre sous-domaine Atlassian (par ex. acme pour acme.atlassian.net) et réessayez.',
  'composio.connect.oauthComplete': 'OAuth à compléter…',
  'composio.connect.oauthTimeout': 'Délai OAuth dépassé',
  'composio.connect.permissions': 'Autorisations',
  'composio.connect.permissionsDefault': 'Lecture + Écriture activées par défaut',
  'composio.connect.permissionsNote': 'peut exposer',
  'composio.connect.permissionsNoteSuffix':
    "Les autorisations de l'agent OpenHuman sont contrôlées ci-dessous par des bascules lecture, écriture et admin.",
  'composio.connect.reopenBrowser': 'Rouvrir le navigateur',
  'composio.connect.requestingUrl': "Demande de l'URL de connexion…",
  'composio.connect.retryConnection': 'Réessayer la connexion',
  'composio.connect.scopeLoadError': 'Impossible de charger les préférences de portée : {msg}',
  'composio.connect.scopeSaveError': "Impossible d'enregistrer la portée {key} : {msg}",
  'composio.connect.subdomainInvalid':
    'Saisissez uniquement le sous-domaine court (par ex. "acme"), pas l\'URL complète. Il doit contenir uniquement des lettres, chiffres et tirets.',
  'composio.connect.subdomainRequired': 'Saisis ton sous-domaine Atlassian pour continuer.',
  'composio.connect.dynamicsOrgNameLabel': "Nom de l'organisation Dynamics 365",
  'composio.connect.dynamicsOrgNameHint':
    'Par exemple, "myorg" pour myorg.crm.dynamics.com. Saisis uniquement le nom court de l\'organisation, pas l\'URL complète.',
  'composio.connect.needsFieldsPrefix': 'Pour connecter',
  'composio.connect.needsFieldsSuffix':
    "nous avons besoin d'un peu plus d'informations. Remplis les champs manquants ci-dessous et réessaie.",
  'composio.connect.requiredFieldEmpty': 'Ce champ est obligatoire.',
  'composio.connect.wabaIdHint':
    "Trouve-le via GET /me/businesses puis GET /{business_id}/owned_whatsapp_business_accounts en utilisant ton jeton d'accès Meta.",
  'composio.connect.wabaIdLabel': "Libellé de l'identifiant WABA",
  'composio.connect.wabaIdRequired':
    'Saisis ton identifiant WhatsApp Business Account (WABA ID) pour continuer.',
  'composio.connect.waitingFor': 'En attente de',
  'composio.connect.waitingHint': "Indice d'attente",
  'composio.triggers.heading': 'Déclencheurs',
  'composio.triggers.listenFrom': 'Écouter les événements de',
  'composio.triggers.loadError': 'Impossible de charger les déclencheurs',
  'composio.triggers.needsConfiguration': 'Configuration requise',
  'composio.triggers.noneAvailable': "Aucun déclencheur n'est actuellement disponible pour",
  'conversations.taskKanban.moveLeft': 'Déplacer à gauche',
  'conversations.taskKanban.moveRight': 'Déplacer à droite',
  'conversations.taskKanban.title': 'Tâches',
  'conversations.toolTimeline.turn': 'tour',
  'conversations.toolTimeline.workerThread': 'fil worker',
  'daemon.serviceBlockingGate.body': 'Corps',
  'daemon.serviceBlockingGate.downloadHint': 'Indice de téléchargement',
  'daemon.serviceBlockingGate.downloadLatest': 'Télécharger la dernière version',
  'daemon.serviceBlockingGate.retryCore': 'Réessayer le Core',
  'daemon.serviceBlockingGate.retryFailed':
    "Nouvelle tentative échouée. Télécharge la dernière version de l'app et réessaie.",
  'daemon.serviceBlockingGate.retrying': 'Nouvelle tentative…',
  'daemon.serviceBlockingGate.title': 'Le core OpenHuman est indisponible',
  'home.banners.discordSubtitle': 'Sous-titre Discord',
  'home.banners.discordTitle': 'Rejoins notre Discord',
  'home.banners.earlyBirdDismiss': 'Ignorer la bannière early bird',
  'home.banners.earlyBirdFirstSub': 'premier abonnement.',
  'home.banners.earlyBirdOn': 'Early bird activé',
  'home.banners.earlyBirdTitle': 'Les 1 000 premiers utilisateurs bénéficient de 60 % de remise.',
  'home.banners.earlyBirdUseCode': 'Utiliser le code early bird',
  'home.banners.getSubscription': 'obtenir un abonnement',
  'home.banners.promoCreditsBody': 'Corps des crédits promo',
  'home.banners.promoCreditsTitle': '{amount}',
  'home.banners.promoCreditsUsage': 'Utilisation des crédits promo',
  'intelligence.memoryChunk.detail.chunk': 'Segment',
  'intelligence.memoryChunk.detail.copyChunkId': "Copier l'identifiant du segment",
  'intelligence.memoryChunk.detail.embeddingInfo': 'bge-m3 1024dim',
  'intelligence.memoryChunk.detail.noEmbedding': "Pas d'embedding",
  'intelligence.memoryChunk.letterhead.from': 'de',
  'intelligence.memoryChunk.letterhead.to': 'à',
  'intelligence.memoryChunk.mentioned.chunkOne': '1 fragment',
  'intelligence.memoryChunk.mentioned.chunkOther': '{count} fragments',
  'intelligence.memoryChunk.mentioned.heading': 'm e n t i o n n é',
  'intelligence.memoryChunk.scoreBars.ariaScore': '{name} score {pct} pour cent',
  'intelligence.memoryChunk.scoreBars.atThreshold': 'à {threshold}',
  'intelligence.memoryChunk.scoreBars.dropped': 'abandonné',
  'intelligence.memoryChunk.scoreBars.heading': 'p o u r q u o i   c o n s e r v é',
  'intelligence.memoryChunk.scoreBars.kept': 'conservé',
  'intelligence.memoryText.entityTypePrefix': "Type d'entité",
  'intelligence.screenDebug.active': 'Actif',
  'intelligence.screenDebug.app': 'App',
  'intelligence.screenDebug.bounds': 'Limites',
  'intelligence.screenDebug.captureAlt': 'Résultat du test de capture',
  'intelligence.screenDebug.captureFailed': 'Échec',
  'intelligence.screenDebug.captureSuccess': 'Succès',
  'intelligence.screenDebug.captureTest': 'Test de capture',
  'intelligence.screenDebug.capturing': 'Capture en cours',
  'intelligence.screenDebug.frames': 'Images',
  'intelligence.screenDebug.idle': 'En veille',
  'intelligence.screenDebug.lastApp': 'Dernière app',
  'intelligence.screenDebug.mode': 'Mode',
  'intelligence.screenDebug.permAccessibility': 'Permission accessibilité',
  'intelligence.screenDebug.permInput': 'Permission saisie',
  'intelligence.screenDebug.permScreen': 'Accessibilité',
  'intelligence.screenDebug.permissions': 'Autorisations',
  'intelligence.screenDebug.platformNotSupported': 'Plateforme non prise en charge',
  'intelligence.screenDebug.recentVisionSummaries': 'Résumés de vision récents',
  'intelligence.screenDebug.session': 'Session',
  'intelligence.screenDebug.size': 'Taille',
  'intelligence.screenDebug.status': 'État',
  'intelligence.screenDebug.testCapture': 'Test de capture',
  'intelligence.screenDebug.time': 'Temps',
  'intelligence.screenDebug.title': 'Titre',
  'intelligence.screenDebug.unknown': 'Inconnu',
  'intelligence.screenDebug.visionQueue': 'File de vision',
  'intelligence.screenDebug.visionState': 'État de la vision',
  'intelligence.tasks.activeBoardOne': '1 tableau actif dans les conversations',
  'intelligence.tasks.activeBoardOther': '{count} tableaux actifs dans les conversations',
  'intelligence.tasks.empty': "Aucun tableau de tâches agent pour l'instant",
  'intelligence.tasks.emptyHint': 'Indice vide',
  'intelligence.tasks.failedToLoad': 'Échec du chargement',
  'intelligence.tasks.live': 'en direct',
  'intelligence.tasks.loadingBoards': 'Chargement des tableaux de tâches…',
  'intelligence.tasks.threadPrefix': 'Fil {thread}',
  'notifications.card.dismiss': 'Ignorer la notification',
  'notifications.card.importanceTitle': 'Importance : {pct} %',
  'notifications.center.empty': "Aucune notification pour l'instant",
  'notifications.center.emptyHint': 'Indice vide',
  'notifications.center.filterAll': 'Tout filtrer',
  'notifications.center.markAllRead': 'Tout marquer comme lu',
  'notifications.center.title': 'Notifications',
  'oauth.button.connecting': 'Connexion en cours…',
  'oauth.login.continueWith': 'Continuer avec',
  'onboarding.contextGathering.buildingDesc': 'Description de la construction',
  'onboarding.contextGathering.buildingProfile': 'Construction de ton profil…',
  'onboarding.contextGathering.continueToChat': 'Accéder au chat',
  'onboarding.contextGathering.errorDesc':
    "Nous n'avons pas pu créer votre profil complet pour l'instant, mais ce n'est pas grave — vous pouvez continuer et votre profil se construira au fil du temps.",
  'onboarding.contextGathering.coreAlive':
    'Le cœur est accessible — le premier lancement peut prendre une minute.',
  'onboarding.contextGathering.coreAliveProbing': 'Vérification de la connexion au cœur…',
  'onboarding.contextGathering.coreUnreachable':
    'Le cœur ne répond pas. Tu peux continuer et réessayer plus tard.',
  'onboarding.contextGathering.stillWorkingDesc':
    'Le premier lancement peut prendre 30 à 60 secondes pendant que nous préparons ton modèle local et tes outils. Tu peux accéder au chat à tout moment — la construction du profil continue en arrière-plan.',
  'onboarding.contextGathering.stillWorkingTitle': 'Construction de ton profil en cours…',
  'onboarding.contextGathering.title': 'Collecte de contexte',
  'openhuman.team_list_teams': 'Liste des équipes',
  'overlay.ariaAttention': "Message d'attention",
  'overlay.ariaCompanion': 'Compagnon actif',
  'overlay.ariaOrb': 'Overlay OpenHuman',
  'overlay.ariaVoiceActive': 'Saisie vocale active',
  'overlay.companion.error': 'Erreur',
  'overlay.companion.listening': 'À l’écoute…',
  'overlay.companion.pointing': 'En train de pointer…',
  'overlay.companion.speaking': 'En train de parler…',
  'overlay.companion.thinking': 'Réflexion…',
  'overlay.orbTitle': 'Glisse pour déplacer · Double-clique pour réinitialiser la position',
  'pages.settings.account.connections': 'Connexions',
  'pages.settings.account.connectionsDesc': 'Description des connexions',
  'pages.settings.account.privacy': 'Confidentialité',
  'pages.settings.account.privacyDesc': 'Description de la confidentialité',
  'pages.settings.account.recoveryPhrase': 'Phrase de récupération',
  'pages.settings.account.recoveryPhraseDesc': 'Description de la phrase de récupération',
  'pages.settings.account.team': 'Équipe',
  'pages.settings.account.teamDesc': "Description de l'équipe",
  'pages.settings.accountSection.description':
    'Phrase de récupération, équipe, connexions et paramètres de confidentialité.',
  'pages.settings.accountSection.title': 'Compte',
  'pages.settings.ai.llm': 'LLM',
  'pages.settings.ai.llmDesc': 'Description du LLM',
  'pages.settings.ai.voice': 'Voix',
  'pages.settings.ai.voiceDesc': 'Description de la voix',
  'pages.settings.aiSection.description':
    'Fournisseurs de modèles de langage, Ollama local et voix (STT / TTS).',
  'pages.settings.aiSection.title': 'IA',
  'pages.settings.features.desktopCompanion': 'Compagnon de bureau',
  'pages.settings.features.desktopCompanionDesc':
    "Assistant vocal avec conscience de l'écran — écoute, voit, parle, pointe",
  'pages.settings.features.messagingChannels': 'Canaux de messagerie',
  'pages.settings.features.messagingChannelsDesc': 'Description des canaux de messagerie',
  'pages.settings.features.notifications': 'Notifications',
  'pages.settings.features.notificationsDesc': 'Description des notifications',
  'pages.settings.features.screenAwareness': "Surveillance de l'écran",
  'pages.settings.features.screenAwarenessDesc': "Description de la surveillance de l'écran",
  'pages.settings.features.tools': 'Outils',
  'pages.settings.features.toolsDesc': 'Description des outils',
  'pages.settings.featuresSection.description': "Surveillance de l'écran, messagerie et outils.",
  'pages.settings.featuresSection.title': 'Fonctionnalités',
  'privacy.dataKind.credentials': 'Identifiants',
  'privacy.dataKind.derived': 'Dérivé',
  'privacy.dataKind.diagnostics': 'Diagnostics',
  'privacy.dataKind.metadata': 'Métadonnées',
  'privacy.dataKind.raw': 'Brut',
  'privacy.whatLeaves.link.label': "Qu'est-ce qui quitte mon ordinateur ?",
  'rewards.community.achievementsUnlocked': '{unlocked} sur {total} succès débloqués',
  'rewards.community.connectDiscord': 'Connecter Discord',
  'rewards.community.cumulativeTokens': 'Tokens cumulés',
  'rewards.community.currentStreak': 'Série actuelle',
  'rewards.community.discordLinkedNotInGuild': 'Discord lié mais pas dans la guilde',
  'rewards.community.discordMember': 'A rejoint le serveur',
  'rewards.community.discordNotLinked': 'Discord non lié',
  'rewards.community.discordServer': 'Serveur Discord',
  'rewards.community.discordStatusUnavailable': 'État Discord indisponible',
  'rewards.community.discordWaiting': 'En attente de Discord',
  'rewards.community.heroSubtitle': 'Sous-titre principal',
  'rewards.community.heroTitle': 'Titre principal',
  'rewards.community.joinDiscord': 'Rejoindre Discord',
  'rewards.community.loadingRewards': 'Chargement des récompenses…',
  'rewards.community.locked': 'Débloqué',
  'rewards.community.retrying': 'Nouvelle tentative…',
  'rewards.community.rolesAndRewards': 'Rôles & Récompenses',
  'rewards.community.streakDays': '{n}',
  'rewards.community.syncPending': 'Synchronisation des récompenses en attente',
  'rewards.community.syncPendingDesc': 'Description de la synchronisation en attente',
  'rewards.community.syncUnavailable': 'Synchronisation indisponible',
  'rewards.community.tryAgain': 'Nouvelle tentative…',
  'rewards.community.unknown': 'Inconnu',
  'rewards.community.unlocked': 'Débloqué',
  'rewards.community.yourProgress': 'Ta progression',
  'rewards.coupon.colCode': 'Code',
  'rewards.coupon.colRedeemed': 'Échangé',
  'rewards.coupon.colReward': 'Récompense',
  'rewards.coupon.colStatus': 'Statut',
  'rewards.coupon.loadingHistory': "Chargement de l'historique des récompenses…",
  'rewards.coupon.noCodes': "Aucun code de récompense utilisé pour l'instant.",
  'rewards.coupon.pending': 'En attente',
  'rewards.coupon.placeholder': 'Code de coupon',
  'rewards.coupon.promoCredits': 'Crédits promo',
  'rewards.coupon.recentRedemptions': 'Échanges récents',
  'rewards.coupon.redeemAccepted':
    "{code} accepté. {amount} sera débloqué après que l'action requise sera effectuée.",
  'rewards.coupon.redeemButton': 'Utiliser le code',
  'rewards.coupon.redeemSuccess': '{code} utilisé. {amount} a été ajouté à vos crédits.',
  'rewards.coupon.redeemedCodes': 'Codes échangés',
  'rewards.coupon.redeeming': 'Échange en cours…',
  'rewards.coupon.statusApplied': 'Appliqué',
  'rewards.coupon.statusPendingAction': 'Action en attente',
  'rewards.coupon.statusRedeemed': 'Utilisé',
  'rewards.coupon.subtitle': 'Sous-titre',
  'rewards.coupon.title': 'Échanger un code de coupon',
  'rewards.referralSection.activity': 'Activité de parrainage',
  'rewards.referralSection.apply': 'Application…',
  'rewards.referralSection.applying': 'Application…',
  'rewards.referralSection.colReferredUser': 'Utilisateur parrainé',
  'rewards.referralSection.colReward': 'Récompense',
  'rewards.referralSection.colStatus': 'Statut',
  'rewards.referralSection.colUpdated': 'Mis à jour',
  'rewards.referralSection.completed': 'Terminé',
  'rewards.referralSection.copyCode': 'Copier le code',
  'rewards.referralSection.copyFailed': 'Copie échouée',
  'rewards.referralSection.haveCode': 'Tu as un code de parrainage ?',
  'rewards.referralSection.haveCodeDesc': "Description d'un code disponible",
  'rewards.referralSection.linked': 'Lié',
  'rewards.referralSection.linkedCode': '(code {code})',
  'rewards.referralSection.loading': 'Chargement du programme de parrainage…',
  'rewards.referralSection.noReferrals': 'Aucun parrainage',
  'rewards.referralSection.pendingReferrals': 'Parrainages en attente',
  'rewards.referralSection.placeholder': 'Code de parrainage',
  'rewards.referralSection.share': 'Partager',
  'rewards.referralSection.statusCompleted': 'Statut terminé',
  'rewards.referralSection.statusExpired': 'Statut expiré',
  'rewards.referralSection.statusJoined': 'Statut rejoint',
  'rewards.referralSection.subtitle': 'Sous-titre',
  'rewards.referralSection.title': 'Invite des amis, gagne des crédits',
  'rewards.referralSection.totalEarned': 'Total gagné',
  'rewards.referralSection.yourCode': 'Ton code',
  'settings.ai.addCloudProvider': 'Ajouter un fournisseur cloud',
  'settings.ai.addProvider': 'Enregistrement…',
  'settings.ai.apiKeyFieldLabel': 'Libellé du champ clé API',
  'settings.ai.apiKeyRequired': 'Colle ta clé API pour continuer.',
  'settings.ai.apiKeyStoredEncrypted': 'Clé API stockée chiffrée',
  'settings.ai.apiKeysEncrypted': 'auth-profiles.json',
  'settings.ai.clearStoredKey': 'Effacer la clé stockée',
  'settings.ai.connectProvider': 'Connecter un fournisseur',
  'settings.ai.customRouting': 'Routage personnalisé',
  'settings.ai.defaultResolvesTo': 'OpenHuman',
  'settings.ai.discard': 'Annuler',
  'settings.ai.editProvider': 'Modifier le fournisseur',
  'settings.ai.llmProviders': 'Fournisseurs LLM',
  'settings.ai.llmProvidersDesc': 'Description des fournisseurs LLM',
  'settings.ai.localOllama': 'Local (Ollama)',
  'settings.ai.modelLabel': 'Modèle',
  'settings.ai.noCustomProviders': 'Aucun fournisseur personnalisé',
  'settings.ai.providerLabel': 'Fournisseur',
  'settings.ai.routing': 'Routage',
  'settings.ai.routingCustom': 'Routage personnalisé',
  'settings.ai.routingDefault': 'Par défaut',
  'settings.ai.routingDesc': 'Description du routage',
  'settings.ai.saveChanges': 'Enregistrement…',
  'settings.ai.saving': 'Enregistrement…',
  'settings.ai.unsavedChange': 'modification non enregistrée',
  'settings.ai.unsavedChanges': 'modifications non enregistrées',
  'settings.ai.workloadGroupBackground': 'Groupe de charge de fond',
  'settings.ai.workloadGroupChat': 'Groupe de charge chat',
  'settings.autocomplete.appFilter.acceptSuggestion': 'Accepter la suggestion',
  'settings.autocomplete.appFilter.contextOverride': 'Remplacement du contexte (optionnel)',
  'settings.autocomplete.appFilter.debugFocus': 'Focus de débogage',
  'settings.autocomplete.appFilter.getSuggestion': 'Obtenir une suggestion',
  'settings.autocomplete.appFilter.liveLogs': 'Journaux en direct',
  'settings.autocomplete.appFilter.noLogs': ') :',
  'settings.autocomplete.appFilter.refreshStatus': 'Actualisation…',
  'settings.autocomplete.appFilter.refreshing': 'Actualisation…',
  'settings.autocomplete.appFilter.runtime': 'Runtime',
  'settings.autocomplete.appFilter.test': 'Tester',
  'settings.autocomplete.completionStyle.acceptedCompletion':
    '{count} complétion acceptée stockée — utilisée pour personnaliser les suggestions futures.',
  'settings.autocomplete.completionStyle.acceptedCompletions':
    '{count} complétions acceptées stockées — utilisées pour personnaliser les suggestions futures.',
  'settings.autocomplete.completionStyle.clearHistory': 'Effacement…',
  'settings.autocomplete.completionStyle.clearing': 'Effacement…',
  'settings.autocomplete.completionStyle.debounce': 'Délai anti-rebond (ms)',
  'settings.autocomplete.completionStyle.enabled': 'Activé',
  'settings.autocomplete.completionStyle.maxChars': 'Nombre max de caractères',
  'settings.autocomplete.completionStyle.noHistory':
    'Pas encore de complétions acceptées. Accepte des suggestions avec Tab pour commencer à personnaliser.',
  'settings.autocomplete.completionStyle.overlayTtl': "Durée de vie de l'overlay (ms)",
  'settings.autocomplete.completionStyle.personalizationHistory': 'Historique de personnalisation',
  'settings.autocomplete.completionStyle.styleExamples': 'Exemples de style (un par ligne)',
  'settings.autocomplete.completionStyle.styleInstructions': 'Instructions de style',
  'settings.billing.autoRecharge.addAmount': 'Ajouter ce montant',
  'settings.billing.autoRecharge.addCard': 'Ajouter une carte',
  'settings.billing.autoRecharge.amountHint': 'Indice de montant',
  'settings.billing.autoRecharge.defaultCard': 'Carte par défaut',
  'settings.billing.autoRecharge.lastRechargeFailed': 'Dernière recharge échouée',
  'settings.billing.autoRecharge.lastRecharged': 'Dernière recharge',
  'settings.billing.autoRecharge.noCards': 'Aucune carte',
  'settings.billing.autoRecharge.paymentMethods': 'Méthodes de paiement',
  'settings.billing.autoRecharge.rechargeInProgress': 'Recharge en cours',
  'settings.billing.autoRecharge.rechargeWhen': 'Recharger quand le solde passe en dessous de',
  'settings.billing.autoRecharge.saveSettings': 'Enregistrement…',
  'settings.billing.autoRecharge.saving': 'Enregistrement…',
  'settings.billing.autoRecharge.setDefault': ':',
  'settings.billing.autoRecharge.subtitle': 'Sous-titre',
  'settings.billing.autoRecharge.title': 'Activer la recharge automatique',
  'settings.billing.autoRecharge.toggleAriaLabel': 'Activer/désactiver la recharge automatique',
  'settings.billing.autoRecharge.weeklyLimit': 'Limite de dépenses hebdomadaire',
  'settings.billing.history.desc': 'Description',
  'settings.billing.history.empty': 'Vide',
  'settings.billing.history.openPortal': 'Ouvrir le portail',
  'settings.billing.history.posted': 'Publié',
  'settings.billing.history.title': 'Titre',
  'settings.billing.inferenceBudget.cycleEnds': 'Fin du cycle',
  'settings.billing.inferenceBudget.exhausted': 'Épuisé',
  'settings.billing.inferenceBudget.loadError': 'Erreur de chargement',
  'settings.billing.inferenceBudget.noBudgetDesc': 'Description sans budget',
  'settings.billing.inferenceBudget.noRecurringBudget': 'Aucun budget récurrent',
  'settings.billing.inferenceBudget.remaining': 'Restant',
  'settings.billing.inferenceBudget.tenHourCap': 'Plafond de dix heures',
  'settings.billing.inferenceBudget.title': 'Titre',
  'settings.billing.payAsYouGo.available': 'Disponible',
  'settings.billing.payAsYouGo.chargeCustomAmount': 'Ouverture…',
  'settings.billing.payAsYouGo.chooseTopUpDesc': 'Description du choix de recharge',
  'settings.billing.payAsYouGo.chooseTopUpTitle': 'Titre du choix de recharge',
  'settings.billing.payAsYouGo.creditBalanceDesc': 'Description du solde de crédits',
  'settings.billing.payAsYouGo.creditBalanceTitle': 'Titre du solde de crédits',
  'settings.billing.payAsYouGo.customAmount': 'Montant personnalisé',
  'settings.billing.payAsYouGo.enterAmount': 'Saisir un montant',
  'settings.billing.payAsYouGo.opening': 'Ouverture',
  'settings.billing.payAsYouGo.promotionalCredits': 'Crédits promotionnels',
  'settings.billing.payAsYouGo.topUpBalance': 'Recharger le solde',
  'settings.billing.payAsYouGo.topUpCredits': 'Recharger les crédits',
  'settings.billing.payAsYouGo.unableToLoad': 'Impossible de charger le solde.',
  'settings.billing.subscription.annual': 'Annuel',
  'settings.billing.subscription.billedAnnually': 'Facturé annuellement',
  'settings.billing.subscription.chooseSubtitle': 'Sous-titre du choix',
  'settings.billing.subscription.chooseTitle': 'Titre du choix',
  'settings.billing.subscription.cryptoDesc': 'Description crypto',
  'settings.billing.subscription.cryptoQuestion': 'Question crypto',
  'settings.billing.subscription.current': 'Actuel',
  'settings.billing.subscription.currentPlan': 'Plan actuel',
  'settings.billing.subscription.monthly': 'Mensuel',
  'settings.billing.subscription.paymentConfirmed': 'Paiement confirmé',
  'settings.billing.subscription.perMonth': 'Par mois',
  'settings.billing.subscription.popular': 'Populaire',
  'pages.settings.account.migration': 'Importer depuis un autre assistant',
  'pages.settings.account.migrationDesc':
    'Migrez la mémoire et les notes depuis OpenClaw (et bientôt Hermes) vers cet espace de travail.',
};

export default fr4;
