{
  "Admin": {
    "usersTitle": "Utilisateurs",
    "usersSubtitle": "Tous les utilisateurs, toutes organisations confondues.",
    "searchPlaceholder": "Rechercher par e-mail…",
    "search": "Rechercher",
    "columnUser": "Utilisateur",
    "columnRole": "Rôle",
    "columnStatus": "Statut",
    "columnActions": "Actions",
    "roleAdmin": "Admin",
    "roleStaff": "Staff",
    "roleUser": "Utilisateur",
    "statusBanned": "Banni",
    "statusActive": "Actif",
    "makeAdmin": "Promouvoir admin",
    "makeUser": "Retirer admin",
    "ban": "Bannir",
    "unban": "Débannir",
    "banReasonPrompt": "Motif du bannissement (facultatif) :",
    "noUsers": "Aucun utilisateur trouvé.",
    "total": "{count} utilisateurs",
    "prev": "Précédent",
    "next": "Suivant",
    "impersonate": "Incarner",
    "manage": "Gérer",
    "filterRole": "Filtrer par rôle",
    "filterRoleAll": "Tous les rôles",
    "filterStatus": "Filtrer par statut",
    "filterStatusAll": "Tous les statuts"
  },
  "SuperAdmin": {
    "shellTitle": "God Mode",
    "godModeBadge": "God Mode",
    "exitToApp": "← Retour à l'app",
    "navOverview": "Vue d'ensemble",
    "navUsers": "Utilisateurs",
    "navOrgs": "Organisations",
    "navBilling": "Facturation",
    "navAudit": "Journal d'audit",
    "twoFaRequiredTitle": "Authentification à deux facteurs requise",
    "twoFaRequiredBody": "Le God Mode est protégé par la 2FA. Activez l'authentification à deux facteurs sur votre compte pour accéder à la console d'administration.",
    "twoFaSetupCta": "Configurer la 2FA",
    "overviewTitle": "Vue d'ensemble",
    "overviewSubtitle": "Métriques de la plateforme en temps réel, toutes organisations confondues.",
    "overviewNoAccess": "Vos permissions n'incluent aucune donnée d'aperçu.",
    "kpiTotalUsers": "Utilisateurs totaux",
    "kpiBannedUsers": "Utilisateurs bannis",
    "kpiTotalOrgs": "Organisations",
    "kpiActiveSubs": "Abonnements actifs",
    "kpiTrialOrgs": "Organisations en essai",
    "recentActionsTitle": "Actions admin récentes",
    "recentActionsSubtitle": "Les 10 dernières actions privilégiées.",
    "auditEmpty": "Aucune action admin enregistrée pour l'instant.",
    "auditTitle": "Journal d'audit",
    "auditSubtitle": "Chaque action privilégiée, la plus récente en premier.",
    "auditColTime": "Heure",
    "auditColActor": "Auteur",
    "auditColAction": "Action",
    "auditColTarget": "Cible",
    "auditColIp": "IP",
    "auditTotal": "{count} entrées",
    "prev": "Précédent",
    "next": "Suivant",
    "comingSoon": "Cette section est en construction.",
    "detailBack": "← Retour aux utilisateurs",
    "detailUsername": "Nom d'utilisateur",
    "detailCreatedAt": "Créé le",
    "detailId": "ID utilisateur",
    "roleAdmin": "Admin",
    "roleUser": "Utilisateur",
    "statusBanned": "Banni",
    "statusActive": "Actif",
    "badge2faOn": "2FA activée",
    "badgeVerified": "Vérifié",
    "badgeUnverified": "Non vérifié",
    "banReasonLabel": "Motif",
    "banExpiresLabel": "Expire le",
    "banPermanent": "Permanent",
    "membershipsTitle": "Organisations",
    "membershipsEmpty": "Cet utilisateur n'appartient à aucune organisation.",
    "actionsTitle": "Actions",
    "liftBan": "Lever le bannissement",
    "suspendBan": "Suspendre / bannir",
    "suspendDialogTitle": "Suspendre ou bannir cet utilisateur",
    "suspendDialogBody": "L'utilisateur est déconnecté partout et ne peut plus se connecter. Choisissez une durée ou bannissez définitivement.",
    "reasonLabel": "Motif",
    "reasonPlaceholder": "Motif (facultatif)",
    "durationLabel": "Durée",
    "duration1h": "1 heure",
    "duration24h": "24 heures",
    "duration7d": "7 jours",
    "duration30d": "30 jours",
    "durationPermanent": "Permanent",
    "confirmSuspend": "Suspendre",
    "cancel": "Annuler",
    "confirm": "Confirmer",
    "save": "Enregistrer",
    "editEmail": "Modifier l'e-mail",
    "editEmailTitle": "Modifier l'adresse e-mail",
    "editEmailBody": "Mettez à jour l'e-mail de l'utilisateur. Vous pouvez le marquer comme vérifié.",
    "emailLabel": "Adresse e-mail",
    "markVerified": "Marquer comme vérifié",
    "forceVerify": "Forcer la vérification",
    "reset2fa": "Réinitialiser la 2FA",
    "reset2faTitle": "Réinitialiser l'authentification à deux facteurs ?",
    "reset2faBody": "Cela supprime le secret TOTP et les codes de secours de l'utilisateur. Il devra reconfigurer la 2FA.",
    "revokeAllSessions": "Révoquer toutes les sessions",
    "revokeAllTitle": "Révoquer toutes les sessions ?",
    "revokeAllBody": "L'utilisateur est immédiatement déconnecté de tous les appareils.",
    "impersonate": "Incarner",
    "sessionsTitle": "Sessions actives",
    "sessionDevice": "Appareil",
    "sessionIp": "IP",
    "sessionCreated": "Créée le",
    "sessionExpires": "Expire le",
    "columnActions": "Actions",
    "sessionsEmpty": "Aucune session active.",
    "sessionImpersonated": "Incarnée",
    "revoke": "Révoquer",
    "actionError": "Action échouée.",
    "toastBanned": "Utilisateur suspendu.",
    "toastBanLifted": "Bannissement levé.",
    "toastEmailUpdated": "E-mail mis à jour.",
    "toastForceVerified": "E-mail vérifié.",
    "toast2faReset": "2FA réinitialisée.",
    "toastSessionsRevoked": "Toutes les sessions ont été révoquées.",
    "toastSessionRevoked": "Session révoquée.",
    "orgsTitle": "Organisations",
    "orgsSubtitle": "Tous les comptes de la plateforme.",
    "orgsSearchPlaceholder": "Rechercher par nom…",
    "orgsSearch": "Rechercher",
    "orgsSortCreated": "Plus récentes",
    "orgsSortMembers": "Plus de membres",
    "orgsSortName": "Nom (A–Z)",
    "orgsColName": "Nom",
    "orgsColSlug": "Slug",
    "orgsColMembers": "Membres",
    "orgsColBilling": "Facturation",
    "orgsColTrialEnd": "Fin d'essai",
    "orgsColCreated": "Créée le",
    "orgsEmpty": "Aucune organisation trouvée.",
    "orgsTotal": "{count} organisations",
    "orgStatusActive": "Active",
    "orgStatusTrialing": "Essai",
    "orgStatusExpired": "Expirée",
    "orgDetailBack": "Retour aux organisations",
    "orgDetailSlug": "Slug",
    "orgDetailCreated": "Créée le",
    "orgDetailStripe": "Client Stripe",
    "orgMembersTitle": "Membres",
    "orgAddMember": "Ajouter un membre",
    "orgAddMemberTitle": "Ajouter un membre",
    "orgAddMemberBody": "Ajoutez un utilisateur existant à cette organisation par e-mail. Il rejoint en tant qu’admin ou member (utilisez « Rendre propriétaire » pour transférer la propriété).",
    "orgAddMemberEmailPlaceholder": "utilisateur@exemple.com",
    "orgToastMemberAdded": "Membre ajouté.",
    "orgMemberName": "Nom",
    "orgMemberEmail": "E-mail",
    "orgMemberRole": "Rôle",
    "orgMemberJoined": "Inscrit le",
    "orgMemberActions": "Actions",
    "orgMakeOwner": "Définir propriétaire",
    "orgTransferTitle": "Transférer la propriété ?",
    "orgTransferBody": "Faire de {email} l'unique propriétaire de cette organisation ? Le propriétaire actuel sera rétrogradé en admin.",
    "orgRemoveMember": "Retirer",
    "orgRemoveTitle": "Retirer le membre ?",
    "orgRemoveBody": "Retirer {email} de cette organisation ? Cette action est irréversible.",
    "orgToastRoleSet": "Rôle mis à jour.",
    "orgToastTransferred": "Propriété transférée.",
    "orgToastRemoved": "Membre retiré.",
    "orgToastOverrideSaved": "Dérogation enregistrée.",
    "orgToastOverrideCleared": "Dérogation supprimée.",
    "orgLimitsTitle": "Limites et quota",
    "orgLimitsEdit": "Déroger",
    "orgLimitsEditTitle": "Déroger aux limites de quota",
    "orgLimitsEditBody": "Laissez un champ vide pour hériter de la valeur du forfait. Utilisez -1 pour illimité.",
    "orgLimitsClear": "Supprimer la dérogation",
    "orgLimit_keywords": "Mots-clés",
    "orgLimit_projects": "Projets",
    "orgLimit_seats": "Sièges",
    "orgLimit_integrations": "Intégrations",
    "orgLimit_backlinkRows": "Lignes de backlinks",
    "orgLimit_mcpMonthly": "MCP mensuel",
    "orgLimitExpires": "Expire le",
    "orgLimitNote": "Note",
    "orgLimitNotePlaceholder": "Raison de cette dérogation…",
    "orgLimitExpiresAt": "La dérogation expire le {date}",
    "orgLimitResource": "Ressource",
    "orgLimitPlan": "Valeur du forfait",
    "orgLimitEffective": "Effective",
    "orgLimitOverridden": "Dérogation",
    "orgSubTitle": "Abonnement",
    "orgSubPlan": "Forfait",
    "orgSubStatus": "Statut",
    "orgSubSeats": "Sièges",
    "orgSubPeriodEnd": "Fin de période",
    "orgSubStripeSub": "Abonnement Stripe",
    "orgSubNone": "Aucun abonnement enregistré.",
    "billingTitle": "Supervision financière",
    "billingSubtitle": "Facturation par locataire, correspondance Stripe et revenus en un coup d'œil.",
    "billingStripeOff": "Stripe non configuré",
    "billingKpi_active": "Actifs",
    "billingKpi_trialing": "En essai",
    "billingKpi_past_due": "En retard",
    "billingKpi_canceled": "Annulés",
    "billingKpiMrr": "MRR",
    "billingKpiMrrEstimate": "Estimation",
    "billingSearchPlaceholder": "Rechercher des organisations…",
    "billingFilter_all": "Tous les statuts",
    "billingFilter_active": "Actifs",
    "billingFilter_trialing": "En essai",
    "billingFilter_past_due": "En retard",
    "billingFilter_canceled": "Annulés",
    "billingFilter_none": "Sans abonnement",
    "billingColCustomer": "Client Stripe",
    "billingColSeats": "Sièges",
    "billingColPeriodEnd": "Fin de période",
    "billingPanelTitle": "Supervision Stripe",
    "billingPanelBody": "Forcer la synchronisation d'un webhook manqué, prolonger l'essai, appliquer un coupon ou accorder un accès gracieux — sans quitter le tableau de bord.",
    "billingResync": "Resynchroniser depuis Stripe",
    "billingResyncTitle": "Resynchroniser l'abonnement depuis Stripe ?",
    "billingResyncBody": "Récupère l'abonnement en direct depuis Stripe et écrase le statut et la période locaux. À utiliser lorsqu'un webhook a été manqué.",
    "billingResyncOk": "Abonnement resynchronisé.",
    "billingExtendTrial": "Prolonger l'essai",
    "billingExtendTitle": "Prolonger l'essai",
    "billingExtendBody": "Ajoute des jours à la fin de l'essai (à partir de la fin actuelle, ou d'aujourd'hui si l'essai a déjà expiré).",
    "billingExtendDays": "Jours à ajouter",
    "billingExtendOk": "Essai prolongé.",
    "billingApplyCoupon": "Appliquer un coupon",
    "billingCouponTitle": "Appliquer un coupon Stripe",
    "billingCouponBody": "Attache un coupon Stripe EXISTANT à l'abonnement actif, ou au client lorsqu'il n'y a pas d'abonnement actif.",
    "billingCouponId": "ID du coupon",
    "billingCouponOk": "Coupon appliqué.",
    "billingGrantComp": "Accorder un accès gracieux",
    "billingCompTitle": "Accorder un accès gracieux",
    "billingCompBody": "Geste applicatif, indépendant de Stripe : accorde l'accès jusqu'à la date choisie et, avec un forfait, applique ses limites en surcharge.",
    "billingCompPlan": "Limites du forfait",
    "billingCompPlanNone": "Accès uniquement (sans limites de forfait)",
    "billingCompUntil": "Accès jusqu'au",
    "billingCompNote": "Note",
    "billingCompNotePlaceholder": "Motif de la gratuité (consigné dans le journal d'audit)",
    "billingCompOk": "Accès gracieux accordé.",
    "navExport": "Export & Métriques",
    "navStaff": "Staff",
    "auditFilterActor": "E-mail de l'acteur",
    "auditFilterAction": "Action",
    "auditFilterTarget": "Type de cible",
    "auditFilterAll": "Tous",
    "auditFilterSince": "Du",
    "auditFilterUntil": "Au",
    "auditFilterApply": "Appliquer",
    "auditFilterReset": "Réinitialiser",
    "exportTitle": "Export & Métriques",
    "exportSubtitle": "Téléchargez les données de la plateforme et consultez les estimations clés.",
    "exportDownloadsTitle": "Exports structurés",
    "exportDownloadsSubtitle": "Téléchargez chaque jeu de données en CSV ou JSON pour vos tableaux de bord externes.",
    "exportDataset_users": "Utilisateurs",
    "exportDataset_organizations": "Organisations",
    "exportDataset_subscriptions": "Abonnements",
    "exportDataset_audit": "Journal d'audit",
    "metricsTitle": "Métriques clés",
    "metricsEstimateNote": "Estimations — dérivées des données locales, pas du revenu facturé",
    "metricTotalUsers": "Utilisateurs totaux",
    "metricTotalOrgs": "Organisations totales",
    "metricActiveSubs": "Abonnements actifs",
    "metricChurnProxy": "Attrition (estimation)",
    "metricCollabOrgs": "Orgs avec collaborateurs",
    "metricEngagedOrgs": "Orgs en essai ou actives",
    "metricBillableOrgs": "Orgs avec client Stripe",
    "staffTwoFaTitle": "Sécurisez votre compte",
    "staffTwoFaBody": "La double authentification est obligatoire avant d'accéder au dash de management.",
    "staffTitle": "Staff SYS",
    "staffCreate": "Créer un staff",
    "staffPromote": "Promouvoir un utilisateur",
    "staffRemove": "Retirer",
    "staffPermissions": "Permissions",
    "staffNoTwoFa": "2FA absent",
    "staffEmpty": "Aucun staff",
    "signOut": "Se déconnecter"
  },
  "Impersonation": {
    "banner": "Vous incarnez {user}",
    "stop": "Quitter"
  },
  "Common": {
    "save": "Enregistrer",
    "cancel": "Annuler",
    "loading": "Chargement…",
    "continue": "Continuer",
    "or": "ou"
  },
  "Auth": {
    "signupTitle": "Créer un compte",
    "signupSubtitle": "Démarre ton espace SEO Insight",
    "loginTitle": "SEO Insight",
    "loginSubtitle": "Connecte-toi à ton espace",
    "nameLabel": "Nom",
    "emailLabel": "E-mail",
    "emailPlaceholder": "m@exemple.com",
    "passwordLabel": "Mot de passe",
    "forgotPassword": "Mot de passe oublié ?",
    "createAccountButton": "Créer le compte",
    "signInButton": "Se connecter",
    "sendMagicLinkButton": "Recevoir un lien magique",
    "magicLinkSent": "Lien de connexion envoyé — vérifie ta boîte mail.",
    "continueWithGoogle": "Continuer avec Google",
    "continueWithGitHub": "Continuer avec GitHub",
    "alreadyHaveAccount": "Déjà un compte ?",
    "signInLink": "Se connecter",
    "noAccount": "Pas de compte ?",
    "createAccountLink": "Créer un compte",
    "emailOrUsernameLabel": "Email ou nom d'utilisateur",
    "usernameLabel": "Nom d'utilisateur",
    "usernameRequired": "(requis)",
    "usernameMissing": "Choisis un nom d'utilisateur pour continuer.",
    "usernamePlaceholder": "ton_handle",
    "usernameHint": "Lettres, chiffres, _ et . — 3 à 30 caractères.",
    "usernameInvalid": "3 à 30 caractères : lettres, chiffres, _ et . uniquement.",
    "usernameTaken": "Ce nom d'utilisateur est déjà pris.",
    "usernameChecking": "Vérification de la disponibilité…",
    "usernameAvailable": "Nom d'utilisateur disponible.",
    "verifyEmailTitle": "Vérifie ton email",
    "verifyEmailBody": "On a envoyé un lien de confirmation à <strong>{email}</strong>. Clique dessus pour activer ton compte, puis connecte-toi.",
    "backToLogin": "Retour à la connexion",
    "signupFailed": "Échec de l'inscription.",
    "loginFailed": "Échec de la connexion.",
    "magicLinkFailed": "Échec de l'envoi du lien.",
    "bannedUser": "Votre compte a été suspendu. Contactez le support si vous pensez qu'il s'agit d'une erreur.",
    "invitedTitle": "Tu as été invité",
    "invitedJoinAs": "Rejoins <orgName></orgName> en tant que <role></role>.",
    "invitedSignInPrompt": "Connecte-toi ou crée un compte avec <email></email> pour accepter.",
    "invitedSignInPromptNoEmail": "Connecte-toi ou crée un compte pour accepter.",
    "youWereInvitedTitle": "Tu as été invité",
    "youWereInvitedBody": "Tu as été invité à rejoindre <orgName></orgName> en tant que <role></role>.",
    "acceptButton": "Accepter",
    "rejectButton": "Refuser",
    "acceptFailed": "Impossible d'accepter l'invitation.",
    "rejectFailed": "Impossible de refuser l'invitation.",
    "seatBlockedTitle": "Pas de siège disponible",
    "seatBlockedBody": "L'espace {org} n'a plus de siège disponible sur son forfait actuel. Le propriétaire a été prévenu — tu recevras un email dès qu'une place se libère.",
    "seatBlockedMeanwhile": "En attendant, ton propre espace de travail t'attend.",
    "invitationUnavailableTitle": "Invitation indisponible",
    "invitationUnavailableBody": "Cette invitation est invalide, a expiré ou a été annulée. Demande à la personne qui t'a invité de t'en renvoyer une nouvelle.",
    "goToApp": "Aller à l'application",
    "wrongAccountTitle": "Mauvais compte",
    "wrongAccountBody": "Cette invitation a été envoyée à <invitedEmail></invitedEmail>, mais tu es connecté avec <currentEmail></currentEmail>. Déconnecte-toi puis reconnecte-toi avec <invitedEmail></invitedEmail> pour accepter.",
    "signInWithAnotherAccount": "Se connecter avec un autre compte",
    "roleOwner": "propriétaire",
    "roleAdmin": "administrateur",
    "roleStaff": "membre",
    "emailNormalizedNotice": "Les alias (+tag, points) sont normalisés : ce compte utilisera {email}.",
    "accountExists": "Un compte existe déjà avec cette adresse. Connecte-toi plutôt.",
    "nameInvalid": "Indique ton nom (100 caractères max).",
    "emailInvalid": "Indique une adresse email valide.",
    "passwordTooWeak": "Mot de passe trop faible : 14 caractères minimum avec majuscule, minuscule, chiffre et symbole.",
    "strengthWeak": "Faible",
    "strengthFair": "Moyen",
    "strengthGood": "Bon",
    "strengthStrong": "Fort",
    "pwNeedLength": "14 caractères minimum",
    "pwNeedLower": "Une minuscule",
    "pwNeedUpper": "Une majuscule",
    "pwNeedDigit": "Un chiffre",
    "pwNeedSymbol": "Un symbole"
  },
  "Nav": {
    "checklist": "La checklist",
    "keywords": "Mots-clés",
    "pages": "Pages",
    "inventory": "Inventaire",
    "backlink": "Backlink",
    "content": "Contenu",
    "gsc": "Search Console",
    "gscManage": "Connexion & santé",
    "support": "Support",
    "settings": "Paramètres",
    "overview": "Vue d'ensemble",
    "reservoir": "Réservoir",
    "recherche": "Recherche",
    "planning": "Planning",
    "profile": "Profil",
    "online": "En ligne",
    "stats": "Stats",
    "myTickets": "Mes tickets",
    "staffInbox": "Inbox staff",
    "account": "Compte",
    "team": "Équipe",
    "integrations": "Intégrations",
    "upgradeToPro": "Passer à Pro",
    "billing": "Facturation",
    "notifications": "Notifications",
    "signOut": "Se déconnecter",
    "godMode": "God Mode"
  },
  "Pages": {
    "breadcrumb": "Pages",
    "inventory": "Inventaire",
    "noSites": "Sélectionnez un site pour voir l'inventaire des pages.",
    "crawlButton": "Crawler le site",
    "crawling": "Crawl en cours…",
    "crawlStarted": "Crawl lancé",
    "searchPlaceholder": "Rechercher une page…",
    "filterIssue": "Filtrer par issue",
    "filterIssueAll": "Toutes les issues",
    "colPath": "URL",
    "colStatus": "Statut",
    "colTitle": "Titre",
    "colDescription": "Description",
    "colH1": "H1",
    "colIssues": "Problèmes",
    "colKeywords": "Mots-clés",
    "chars": "{count} car.",
    "toastDone": "{pages} pages crawlées · {errors} en erreur · {mapped} mots-clés mappés · {unmapped} sans page",
    "toastFailed": "Crawl échoué",
    "errorMissingUrl": "Renseignez l'URL du site avant de lancer un crawl.",
    "errorAlreadyRunning": "Un crawl est déjà en cours pour ce site.",
    "phase": {
      "discover": "Découverte du sitemap…",
      "crawl": "Crawl des pages…",
      "map": "Mapping des mots-clés…",
      "done": "Terminé"
    },
    "issues": {
      "title-missing": "Title manquant",
      "title-long": "Title trop long",
      "title-short": "Title trop court",
      "description-missing": "Description manquante",
      "description-long": "Description trop longue",
      "description-short": "Description trop courte",
      "h1-missing": "H1 manquant",
      "h1-multiple": "H1 multiples",
      "noindex": "Noindex",
      "canonical-mismatch": "Canonical divergente",
      "error": "Erreur"
    },
    "emptyTitle": "Aucune page",
    "emptyDescription": "Lancez un crawl pour constituer l'inventaire. Prérequis : l'URL du site doit être renseignée dans les paramètres.",
    "sheetLoading": "Chargement…",
    "sheetNotFound": "Page introuvable.",
    "sheetStatus": "Statut HTTP",
    "sheetCanonical": "Canonical",
    "sheetRobots": "Robots",
    "sheetLang": "Langue",
    "sheetWordCount": "Nombre de mots",
    "sheetKeywords": "Mots-clés ciblant cette page",
    "sheetNoKeywords": "Aucun mot-clé n'est associé à cette page.",
    "sheetViewReservoir": "Voir au réservoir"
  },
  "Activation": {
    "title": "Démarrage",
    "progress": "{done} sur {total}",
    "optional": "Optionnel",
    "done": "Terminé",
    "dismiss": "Masquer la checklist",
    "resume": "Reprendre le parcours guidé",
    "restoreTitle": "Checklist de démarrage",
    "restoreDescription": "Réaffichez la checklist d'activation dans la barre latérale.",
    "restore": "Réafficher",
    "noSiteTitle": "Aucun site ne vous est encore attribué",
    "noSiteDescription": "Vous n'avez encore accès à aucun site, et seuls les propriétaires et administrateurs peuvent en créer un. Demandez à l'un d'eux de créer un site ou de vous en partager un — la checklist reprendra ensuite toute seule.",
    "steps": {
      "create-site": {
        "title": "Ajoutez votre site",
        "description": "Créez votre premier projet : domaine, langue et pays cible.",
        "cta": "Ajouter un site"
      },
      "connect-gsc": {
        "title": "Connectez Search Console",
        "description": "Reliez votre propriété Google Search Console pour vos données réelles.",
        "cta": "Connecter GSC"
      },
      "add-keywords": {
        "title": "Ajoutez vos mots-clés",
        "description": "Importez un CSV ou ajoutez vos premiers mots-clés au réservoir.",
        "cta": "Ajouter des mots-clés"
      },
      "enrich-keywords": {
        "title": "Enrichissez vos mots-clés",
        "description": "Récupérez volumes, CPC et concurrence sur vos mots-clés.",
        "cta": "Enrichir"
      },
      "target-country": {
        "title": "Ciblez un pays",
        "description": "Choisissez un pays sur un mot-clé et générez votre premier plan.",
        "cta": "Créer un plan"
      },
      "invite-teammate": {
        "title": "Invitez un coéquipier",
        "description": "Travaillez à plusieurs sur vos projets SEO.",
        "cta": "Inviter"
      }
    }
  },
  "Onboarding": {
    "welcomeTitle": "Bienvenue sur SEO Insight",
    "welcomeSubtitle": "Configurons ton espace de travail en une minute.",
    "stepCounter": "Étape {current} sur {total}",
    "siteTitle": "Ajoute ton site",
    "siteHelp": "Tes mots-clés, tes pages et tes backlinks s'y rattachent tous. Choisis le pays cible avec soin : il pilote les suggestions de mots-clés et la ventilation Search Console.",
    "siteSubmit": "Créer le site",
    "siteError": "La création du site a échoué. Réessaie ou reconnecte-toi.",
    "gscTitle": "Tes vraies données de recherche",
    "gscHelp": "Search Console remonte les requêtes sur lesquelles ton site apparaît déjà dans Google — sans que tu aies rien à saisir.",
    "gscConnectHelp": "Connecte ton compte Google pour retrouver ici les propriétés Search Console que tu as vérifiées.",
    "gscConnect": "Connecter Google Search Console",
    "gscReconnectHelp": "Ton compte Google est connecté, mais sans l'accès Search Console. Reconnecte-le en cochant la case Search Console sur l'écran Google.",
    "gscReconnect": "Reconnecter Google Search Console",
    "gscSelectLabel": "Choisis la propriété Search Console qui correspond à ce site.",
    "gscSelectPlaceholder": "Sélectionner une propriété",
    "gscConfirm": "Utiliser cette propriété",
    "gscIncomplete": "La liste est peut-être incomplète : un de tes comptes Google n'a pas répondu.",
    "gscUnavailable": "Impossible de lister tes propriétés Search Console pour l'instant — Google n'a pas répondu. Cela ne veut pas dire que tu n'en as aucune : réessaie dans un moment.",
    "gscRetry": "Réessayer",
    "gscEmpty": "Aucune propriété vérifiée sur ton compte Google. C'est normal si ton site vient d'être mis en ligne : ajoute-le d'abord à Search Console, tu pourras revenir ici plus tard.",
    "gscLinkAnother": "Lier un autre compte Google",
    "gscLinkError": "La connexion Google a échoué — réessaie.",
    "gscActionError": "La requête a échoué — réessaie.",
    "gscSkip": "Mon site est trop récent pour avoir des données",
    "gscSkipHelp": "Aucun souci : cette étape est facultative et t'attendra dans ta checklist d'activation.",
    "keywordsTitle": "Remplis ton réservoir de mots-clés",
    "keywordsHelp": "Tout le reste s'appuie dessus : la recherche, la planification et les briefs de contenu y puisent.",
    "keywordsImportHelp": "Tu as déjà une liste ? Importe ton export — Mangools, Semrush, SE Ranking ou Ahrefs. Le format est détecté automatiquement.",
    "keywordsImport": "Importer une liste de mots-clés",
    "keywordsImportUnavailable": "L'import de fichier n'est pas disponible sur cette instance. Tu peux quand même ajouter des mots-clés à la main ci-dessous.",
    "keywordsManualHelp": "Pas encore de liste ? Saisis un mot-clé sur lequel tu veux te positionner.",
    "keywordsManualPlaceholder": "ex. chaussures de randonnée imperméables",
    "keywordsManualAdd": "Ajouter",
    "keywordsAdded": "{count, plural, one {# mot-clé ajouté} other {# mots-clés ajoutés}}.",
    "keywordsQuotaLink": "Changer de forfait",
    "keywordsEmptyTerm": "Saisis d'abord un mot-clé.",
    "keywordsAddError": "L'ajout du mot-clé a échoué — réessaie.",
    "keywordsContinue": "Continuer",
    "keywordsSkip": "Je n'ai pas encore de mots-clés",
    "keywordsSkipHelp": "Tu pourras y revenir : cette étape t'attendra dans ta checklist d'activation.",
    "mangoolsHelp": "Tu as déjà fait ta recherche dans Mangools ? Importe tes listes enregistrées telles quelles — avec leurs volumes, leur difficulté et leur CPC.",
    "mangoolsOpen": "Importer depuis Mangools",
    "mangoolsConnectHelp": "Colle ton token API Mangools pour retrouver ici tes listes enregistrées. Il reste chiffré, et il sert aussi à l'enrichissement.",
    "mangoolsLoading": "Chargement de tes listes Mangools…",
    "mangoolsEmpty": "Ton compte Mangools ne contient aucune liste enregistrée. Crée-en une depuis KWFinder puis reviens ici — ou importe un fichier ci-dessous.",
    "mangoolsRetry": "Réessayer",
    "mangoolsListMeta": "{count, plural, one {# mot-clé} other {# mots-clés}} · mise à jour le {date}",
    "mangoolsThemeLabel": "Thème pour « {list} »",
    "mangoolsThemePlaceholder": "Nom du thème",
    "mangoolsThemeHelp": "Chaque liste cochée range ses mots-clés dans un thème. Le nom de la liste est proposé : garde-le, saisis le nom d'un thème existant pour les y rattacher, ou vide le champ pour importer sans thème.",
    "mangoolsImport": "{count, plural, one {Importer la liste cochée} other {Importer les # listes cochées}}",
    "mangoolsImporting": "Import en cours…",
    "mangoolsCountryHint": "Mangools ne révèle le pays d'une liste qu'au moment de l'import. Une liste hors de tes pays cibles sera importée quand même — sur SON pays, dans la langue du site ({lang}), le format Mangools ne transportant aucune langue.",
    "mangoolsNoTargetCountries": "Ton site ne déclare aucun pays cible : chaque liste sera importée sur SON pays, dans la langue du site ({lang}). Ajoute un pays cible depuis Projets → ton site pour que le rapprochement se fasse tout seul.",
    "mangoolsAlready": "{count, plural, one {Cette liste était déjà dans ton réservoir} other {Ces # listes étaient déjà dans ton réservoir}} : aucun nouveau mot-clé créé, mais les volumes et les courbes viennent d'être rafraîchis.",
    "mangoolsNothing": "Aucun mot-clé n'a été importé — le détail par liste est ci-dessus.",
    "mangoolsErrorNoConnector": "Ton compte Mangools n'est plus connecté : recolle ton token pour reprendre.",
    "mangoolsErrorQuota": "Ton compte Mangools a atteint sa limite de requêtes. Réessaie plus tard, ou importe un fichier en attendant.",
    "mangoolsErrorUpstream": "Mangools n'a pas répondu. Réessaie dans un moment.",
    "mangoolsErrorTooManyLists": "Trop de listes cochées d'un coup : n'en garde pas plus de 25 par import.",
    "mangoolsErrorSiteNotFound": "Ce site est introuvable. Recharge la page, puis réessaie.",
    "mangoolsVerdictOffTarget": "« {list} » : ton site cible {targets}, cette liste est en {country}. Ses mots-clés ont été importés sur {country}, dans la langue du site ({lang}) — le format Mangools ne transporte aucune langue.",
    "mangoolsVerdictNoTargets": "« {list} » : ton site ne déclare aucun pays cible. Ses mots-clés ont été importés sur {country}, le pays de la liste, dans la langue du site ({lang}).",
    "mangoolsVerdictMixed": "« {list} » : rien n'a été importé. Cette liste mélange plusieurs pays ({countries}) et un mot-clé n'en porte qu'un seul. Nettoie-la chez Mangools pour n'y garder qu'un pays, ou coche plutôt une autre liste.",
    "mangoolsVerdictUnknown": "« {list} » : rien n'a été importé. Aucun pays lisible sur ses mots-clés — on ne devine pas. Vérifie la localisation de la liste chez Mangools.",
    "enrichTitle": "Ajoute les volumes de recherche (facultatif)",
    "enrichHelp": "Connecte Mangools pour obtenir volume, difficulté et CPC sur tes mots-clés. Tu peux passer cette étape et le faire plus tard depuis les Réglages.",
    "enrichPlaceholder": "Token API Mangools",
    "enrichWhereToken": "Où trouver ce token ?",
    "enrichConnect": "Connecter",
    "enrichSkip": "Passer cette étape",
    "enrichSkipHelp": "Cette étape est facultative : sans elle, tes mots-clés restent simplement sans volumes. SE Ranking fonctionne aussi — il se branche depuis Réglages → Intégrations.",
    "enrichConnectedTitle": "Mangools est connecté",
    "enrichConnectedHelp": "Les volumes arriveront sur tes mots-clés dès que tu lanceras un enrichissement depuis le réservoir.",
    "enrichContinue": "Continuer",
    "enrichEmptyToken": "Colle d'abord ton token.",
    "enrichInvalid": "Ce token a été refusé. Vérifie que tu l'as copié en entier.",
    "enrichForbidden": "Seul un propriétaire ou un administrateur peut connecter un outil.",
    "enrichFailed": "La connexion a échoué. Réessaie dans un instant.",
    "targetTitle": "Planifie ton premier mot-clé",
    "targetHelp": "Planifier un mot-clé pour un pays le fait entrer dans ton plan de contenu et débloque le circuit de brief.",
    "targetProposal": "On planifie « {term} » pour {country} — ton mot-clé au plus fort volume.",
    "targetNoKeyword": "Ton réservoir est encore vide : il n'y a donc rien à planifier. Choisis « Je planifierai plus tard » ci-dessous, puis peuple-le depuis Mots-clés → Réservoir.",
    "targetNoCountry": "Ce site n'a aucun pays cible : il n'y a donc rien sur quoi planifier. Choisis « Je planifierai plus tard » ci-dessous, puis ajoutes-en un depuis Projets → ton site.",
    "targetConfirm": "Planifier",
    "targetFailed": "La planification a échoué. Réessaie dans un instant.",
    "targetDefer": "Je planifierai plus tard",
    "targetDeferHelp": "Rien n'est perdu : cette étape t'attendra dans ta checklist d'activation.",
    "signOut": "Se déconnecter",
    "deferLater": "Je le ferai plus tard",
    "noOrgTitle": "Aucune organisation",
    "noOrgDescription": "Ton compte n'appartient à aucune organisation : il n'y a donc aucun espace de travail à configurer, et le parcours d'entrée n'a rien à te proposer. Tu en as probablement été retiré. Demande une nouvelle invitation, ou déconnecte-toi pour utiliser un autre compte."
  },
  "Billing": {
    "title": "Facturation",
    "currentPlan": "Forfait actuel",
    "statusActive": "Actif",
    "statusTrialing": "Essai",
    "statusExpired": "Expiré",
    "statusCanceled": "Annulé",
    "trialDaysLeft": "{days, plural, one {# jour restant d'essai} other {# jours restants d'essai}}",
    "trialEndedOn": "Essai terminé le {date}",
    "renewsOn": "Renouvellement le {date}",
    "endsOn": "Se termine le {date}",
    "monthly": "Mensuel",
    "annual": "Annuel",
    "annualSavings": "Économise 20 %",
    "perMonth": "/mois",
    "billedAnnually": "Facturé annuellement ({price}/an)",
    "upgrade": "Mettre à niveau",
    "choosePlan": "Choisir ce forfait",
    "currentLabel": "Ton forfait",
    "manageBilling": "Gérer la facturation",
    "openPortal": "Ouvrir le portail client",
    "cancelPlan": "Annuler l'abonnement",
    "restorePlan": "Restaurer l'abonnement",
    "lockedTitle": "Ton essai est terminé",
    "lockedSubtitle": "Choisis un forfait pour continuer à travailler — tes données sont en sécurité et t'attendent.",
    "lockedMemberHint": "Demande à un propriétaire ou un admin de ton espace de travail de choisir un forfait.",
    "contactUs": "Contacte-nous",
    "enterpriseDesc": "Quotas sur mesure, SLA, support dédié.",
    "planSoloDesc": "Pour les freelances et les projets perso.",
    "planStarterDesc": "Pour les freelances établis.",
    "planProDesc": "Le forfait de référence pour les professionnels.",
    "planAgencyDesc": "Marque blanche et 10 sièges pour les agences.",
    "featKeywords": "{count} mots-clés suivis",
    "featProjects": "{count, plural, one {# projet} other {# projets}}",
    "featSeats": "{count, plural, one {# siège} other {# sièges inclus}}",
    "featIntegrations": "{count} intégrations SEO",
    "featIntegrationsUnlimited": "Intégrations SEO illimitées",
    "featBacklinks": "{count} lignes de backlinks",
    "featMcp": "{count} requêtes MCP/mois",
    "checkoutError": "Impossible de lancer le paiement. Réessaie.",
    "noOrgForCheckout": "Ton espace de travail est encore en cours de création. Patiente un instant, puis réessaie.",
    "portalError": "Impossible d'ouvrir le portail de facturation. Réessaie.",
    "mcpUsageTitle": "Requêtes MCP",
    "mcpUsage": "{used} / {limit} requêtes ce mois-ci",
    "mcpUnlimited": "Requêtes illimitées",
    "creditBalance": "{count, plural, one {# crédit} other {# crédits}}",
    "buyPack": "Acheter un pack de crédits",
    "packDesc": "25 $ — 25 000 requêtes",
    "packPurchased": "Pack de crédits ajouté — bonne construction !",
    "serankingTitle": "SE-Ranking",
    "serankingBalance": "{count, plural, one {# synchro} other {# synchros}}",
    "serankingDesc": "9,99 $ — 100 synchros",
    "serankingBuyPack": "Acheter 100 synchros",
    "serankingPackPurchased": "Pack de synchros ajouté — bonne synchro !"
  },
  "Keywords": {
    "dialogTitle": "Confirmer la synchro SE-Ranking",
    "dialogDescription": "Cette action consomme des synchros SE-Ranking pour enrichir les mots-clés sélectionnés.",
    "estimateSyncs": "{count, plural, one {# synchro} other {# synchros}}",
    "estimateKeywords": "{count, plural, one {# mot-clé} other {# mots-clés}}",
    "estimateCountries": "{count, plural, one {# pays} other {# pays}}",
    "skippedCountries": "pays non couvert(s) : {countries}",
    "balanceUnlimited": "Illimité",
    "balanceByok": "Via ta clé SE-Ranking",
    "balanceMetered": "Solde : {count, plural, one {# synchro} other {# synchros}}",
    "buyPackCta": "Acheter un pack (100 · 9,99 $)",
    "buyPackError": "Impossible de lancer le paiement. Réessaie.",
    "confirm": "Confirmer",
    "quotaExceeded": "Quota mots-clés atteint ({current}/{limit}) — passe au forfait supérieur ou libère des mots-clés.",
    "recapEnriched": "{count, plural, one {# enrichi} other {# enrichis}}",
    "recapNoData": "{count} sans données SE-Ranking",
    "recapSkipped": "pays non couvert : {countries}",
    "recapTitle": "Synchro SE-Ranking : {summary}",
    "syncError": "Échec de la synchro SE-Ranking — réessaie plus tard.",
    "targetPageSourceGsc": "Search Console",
    "targetPageSourceContent": "Contenu",
    "targetPageSourceText": "Texte",
    "targetPageSourceManual": "Manuel",
    "targetPageScore": "Score de correspondance : {score}",
    "targetPageAssign": "Assigner une page",
    "targetPageEditAria": "Modifier la page ciblée",
    "targetPageAssignAria": "Assigner une page ciblée",
    "targetPageSearchPlaceholder": "Rechercher une page…",
    "targetPageSearching": "Recherche…",
    "targetPageEmpty": "Aucune page trouvée",
    "targetPageRemove": "Retirer la page",
    "targetPageSetSuccess": "Page ciblée mise à jour",
    "targetPageRemoveSuccess": "Page ciblée retirée",
    "targetPageError": "Échec de la mise à jour de la page ciblée",
    "facetNoPage": "Sans page",
    "promote": {
      "title": "Vers Contenu",
      "description": "{count, plural, one {# mot-clé sélectionné} other {# mots-clés sélectionnés}}",
      "modeOnePage": "1 page (groupe)",
      "modeOnePageHint": "Une seule page : 1 principal + {count, plural, one {# secondaire} other {# secondaires}}.",
      "modePerKeyword": "{count, plural, one {# page (1 par mot-clé)} other {# pages (1 par mot-clé)}}",
      "modePerKeywordHint": "Pour chaque mot-clé : optimiser une page existante ou créer du neuf.",
      "primaryAria": "Mot-clé principal",
      "optimize": "Optimiser",
      "create": "Créer",
      "attach": "Rattacher une page",
      "change": "Changer de page",
      "pickerAria": "Choisir une page cible",
      "recap": "{optimized} optimisé(s) · {created} créé(s) · {merged} fusionné(s)",
      "groupCreated": "Contenu créé",
      "error": "Échec de la promotion vers Contenu",
      "cancel": "Annuler",
      "submit": "Valider",
      "submitBusy": "Traitement…"
    },
    "related": {
      "trigger": "Mots-clés associés",
      "title": "Mots-clés associés",
      "description": "Suggestions liées à « {seed} »",
      "searchPlaceholder": "Filtrer les résultats…",
      "selectAll": "Tout cocher",
      "colTerm": "Mot-clé",
      "colVolume": "Volume",
      "colKd": "KD",
      "colCpc": "CPC",
      "empty": "Aucun mot-clé associé trouvé.",
      "selected": "{count, plural, one {# sélectionné} other {# sélectionnés}}",
      "addReservoir": "Ajouter au Réservoir",
      "addRecherche": "Envoyer en Recherche",
      "addSuccess": "{count, plural, one {# mot-clé ajouté} other {# mots-clés ajoutés}}",
      "addSuccessPartial": "{added, plural, one {# mot-clé ajouté} other {# mots-clés ajoutés}}, {updated, plural, one {# déjà présent mis à jour} other {# déjà présents mis à jour}}",
      "addError": "Échec de l'ajout des mots-clés.",
      "errorQuota": "Quota Mangools atteint pour ce mois. Réessayez plus tard ou vérifiez votre offre Mangools.",
      "errorUpstream": "Mangools est momentanément indisponible. Réessayez dans un instant.",
      "errorLocation": "Aucun pays cible résolu pour ce site — impossible d'interroger Mangools.",
      "noConnectorText": "Connectez votre compte Mangools pour découvrir les mots-clés associés.",
      "noConnectorCta": "Connecter Mangools"
    },
    "semantic": {
      "noSerpConnectText": "Connecte Mangools pour récupérer la SERP automatiquement.",
      "noSerpConnectCta": "Connecter Mangools"
    }
  },
  "Quota": {
    "keywords": "Limite de mots-clés atteinte ({limit}). Passe au forfait supérieur pour en suivre plus.",
    "projects": "Limite de projets atteinte ({limit}). Passe au forfait supérieur pour ajouter plus de sites.",
    "seats": "Tous les sièges sont occupés ({limit}). Passe au forfait supérieur pour inviter plus de monde.",
    "backlinkRows": "Limite de lignes de backlinks atteinte ({limit}).",
    "mcpMonthly": "Quota mensuel de requêtes MCP dépassé.",
    "importTooLarge": "Cet import dépasse ton quota restant ({remaining} restantes).",
    "upgradeCta": "Voir les forfaits"
  },
  "Pricing": {
    "heroTitle": "Un tarif simple qui évolue avec toi",
    "heroSubtitle": "Démarre avec un essai Pro de 14 jours — sans carte bancaire. Choisis un plan quand tu es prêt.",
    "trialBanner": "Essai Pro de 14 jours — sans carte bancaire",
    "compare": "Compare les plans",
    "colKeywords": "Mots-clés suivis",
    "colProjects": "Projets",
    "colSeats": "Sièges inclus",
    "colIntegrations": "Intégrations SEO",
    "colBacklinks": "Lignes de backlinks",
    "colMcp": "Requêtes MCP/mois",
    "unlimited": "Illimité",
    "perMonthEq": "par mois, facturé annuellement",
    "packsNote": "Besoin de plus de requêtes MCP ? Packs de crédits : 25 $ les 25 000 requêtes.",
    "ctaStart": "Démarre ton essai gratuit",
    "ctaGoToBilling": "Gère ton plan",
    "enterprise": "Enterprise",
    "onQuote": "Sur mesure"
  },
  "Tour": {
    "replay": "Revoir ce tour",
    "replayDeferred": "Ce tour attend d'avoir quelque chose à montrer : reviens quand la page affichera des lignes — en retirant un filtre, ou en ajoutant des données.",
    "ui": {
      "progress": "{current} sur {total}",
      "next": "Suivant",
      "previous": "Précédent",
      "done": "Terminer"
    },
    "reservoir": {
      "whatIsIt": {
        "title": "Ton réservoir de mots-clés",
        "body": "Tout ce que tu importes atterrit ici. C'est un espace de travail de recherche, pas un suivi de positions : rien n'est encore engagé."
      },
      "import": {
        "title": "Faire entrer des mots-clés",
        "body": "Dépose un export CSV — Mangools, Semrush, SE Ranking ou Ahrefs — et le format est reconnu tout seul. Tu peux aussi tirer les requêtes de ta Search Console, ou saisir un mot-clé à la main."
      },
      "sync": {
        "title": "Enrichir et rafraîchir",
        "body": "Récupère volume, difficulté et CPC auprès de SE Ranking ou Mangools, et remets tes positions Search Console à jour. La pastille ambre signale une source qui n'a pas été synchronisée depuis plus de sept jours."
      },
      "sources": {
        "title": "D'où vient chaque donnée",
        "body": "Chaque pastille est une source qui a fourni des métriques pour ce mot-clé. Survole-la pour la valeur exacte et sa date, clique-la pour afficher cette source dans les colonnes."
      }
    },
    "recherche": {
      "whatIsIt": {
        "title": "L'étape de tri",
        "body": "Ici tu ne vois que les mots-clés que tu as versés à la recherche. C'est là qu'on décide ce qui mérite du travail."
      },
      "gscColumns": {
        "title": "Tes vraies positions",
        "body": "Cette colonne vient de ta Search Console : la position moyenne que tu occupes déjà. L'éclair marque les quick-wins, entre la 11ᵉ et la 20ᵉ place — les gains les plus rapides."
      },
      "targeting": {
        "title": "Cibler un pays",
        "body": "Bascule en vue Matrice pour croiser tes mots-clés et tes pays cibles. Passe une cellule en « planifié » et le mot-clé rejoint ton plan de contenu pour ce pays."
      }
    },
    "planning": {
      "whatIsIt": {
        "title": "Ton plan de contenu",
        "body": "Chaque ligne est un mot-clé planifié pour un pays. C'est ta file de production."
      },
      "readiness": {
        "title": "Ce qui manque avant de rédiger",
        "body": "Cette colonne On-page, encadrée par SERP à sa gauche et Brief à sa droite, dit où en est la préparation de chaque ligne. Tant que l'une de ces trois n'est pas au vert, la rédaction partirait à l'aveugle."
      },
      "dispatch": {
        "title": "Passer à la rédaction",
        "body": "Clique une ligne pour ouvrir son détail : l'analyse de la SERP, le crawl on-page et le brief à transmettre à la rédaction."
      }
    }
  },
  "Construction": {
    "badge": "En construction",
    "title": "En construction",
    "subtitle": "Cette fonctionnalité arrive bientôt. Elle est encore en cours de développement."
  },
  "TwoFactor": {
    "challengeTitle": "Vérification en deux étapes",
    "challengeSubtitle": "Saisis le code à 6 chiffres de ton application d'authentification.",
    "backupSubtitle": "Saisis l'un de tes codes de secours.",
    "codeLabel": "Code d'authentification",
    "backupCodeLabel": "Code de secours",
    "codePlaceholder": "123456",
    "backupPlaceholder": "xxxxxxxxxx",
    "trustDevice": "Faire confiance à cet appareil pendant 30 jours",
    "verifyButton": "Vérifier",
    "useBackupCode": "Utiliser plutôt un code de secours",
    "useAuthenticator": "Utiliser plutôt ton application d'authentification",
    "invalidCode": "Code invalide. Réessaie.",
    "invalidBackupCode": "Code de secours invalide. Réessaie.",
    "cardTitle": "Authentification à deux facteurs",
    "cardDescription": "Ajoute une seconde étape à la connexion via une application d'authentification (TOTP).",
    "statusEnabled": "Activée",
    "enabledHint": "Ton compte est protégé par une application d'authentification.",
    "statusDisabled": "L'authentification à deux facteurs n'est pas activée.",
    "enableButton": "Activer la double authentification",
    "disableButton": "Désactiver",
    "enrollTitle": "Activer l'authentification à deux facteurs",
    "enrollPasswordPrompt": "Confirme ton mot de passe pour continuer.",
    "passwordLabel": "Mot de passe",
    "enableFailed": "Impossible de démarrer l'activation.",
    "scanTitle": "Scanne le QR code",
    "scanPrompt": "Scanne-le avec ton application d'authentification, puis saisis le code généré pour confirmer.",
    "manualEntry": "Impossible de scanner ? Saisis cette clé manuellement :",
    "copySecret": "Copier la clé",
    "backupCodesTitle": "Codes de secours",
    "backupCodesWarning": "Enregistre-les maintenant. Chacun est utilisable une fois si tu perds ton appareil. Ils ne seront plus affichés.",
    "copyBackupCodes": "Copier les codes",
    "confirmCodeLabel": "Saisis le code à 6 chiffres pour confirmer",
    "confirmButton": "Confirmer et activer",
    "enabledToast": "Authentification à deux facteurs activée.",
    "cancel": "Annuler",
    "continue": "Continuer",
    "disableTitle": "Désactiver l'authentification à deux facteurs",
    "disablePrompt": "Confirme ton mot de passe pour désactiver l'authentification à deux facteurs.",
    "disableFailed": "Impossible de désactiver l'authentification à deux facteurs.",
    "disabledToast": "Authentification à deux facteurs désactivée.",
    "backToLogin": "Revenir à la connexion",
    "needHelp": "Besoin d'aide ?"
  },
  "AddSite": {
    "title": "Nouveau site / projet",
    "description": "Le domaine sur lequel tu travailles (keywords, backlinks scopés dessus).",
    "submitLabel": "Créer le site"
  },
  "NoSiteAccess": {
    "title": "Aucun site ne t'a encore été partagé",
    "body": "Un propriétaire ou un administrateur de ton organisation doit te donner accès à un site depuis Paramètres → Équipe. Une fois que c'est fait, recharge cette page."
  },
  "UsernamePrompt": {
    "title": "Choisissez un nom d'utilisateur",
    "description": "Bienvenue ! Choisissez un nom d'utilisateur pour continuer — c'est votre identifiant public, utilisable pour vous connecter à la place de votre email.",
    "label": "Nom d'utilisateur",
    "placeholder": "ton_handle",
    "hint": "Lettres, chiffres, _ et . — 3 à 30 caractères.",
    "invalid": "3 à 30 caractères : lettres, chiffres, _ et . uniquement.",
    "taken": "Ce nom d'utilisateur est déjà pris.",
    "checking": "Vérification…",
    "available": "Nom d'utilisateur disponible.",
    "submit": "Continuer",
    "submitting": "Enregistrement…",
    "error": "Impossible d'enregistrer ton nom d'utilisateur. Réessaie."
  },
  "Settings": {
    "integrations": {
      "seranking": {
        "title": "SE-Ranking — Utilise ta propre clé API",
        "pitch": "Branche ta clé SE-Ranking pour que les synchros ne consomment plus notre quota — un débit dédié à ton compte.",
        "price": "9,99 $/mois",
        "subscribe": "S'abonner",
        "checkoutError": "Impossible de démarrer le paiement. Réessaie.",
        "active": "Actif",
        "activeDescription": "L'add-on SE-Ranking est actif. Renseigne ta clé API pour l'utiliser.",
        "keyLabel": "Clé API SE-Ranking",
        "keyPlaceholderNew": "sk-…",
        "keyPlaceholderSet": "••••••••••••",
        "save": "Enregistrer",
        "disconnect": "Déconnecter",
        "saved": "Clé SE-Ranking enregistrée.",
        "disconnected": "Clé SE-Ranking déconnectée.",
        "unitsLeft": "Crédits restants sur ton compte : {count}",
        "keyConfiguredByAdmin": "Une clé SE-Ranking est configurée pour cette organisation.",
        "noKeyYet": "Aucune clé SE-Ranking configurée pour l'instant."
      },
      "mangools": {
        "title": "Mangools — Connecte ton token API",
        "pitch": "Branche ton token Mangools pour activer la recherche de mots-clés et l'analyse SERP. Gratuit — tu utilises ton propre compte Mangools.",
        "connected": "Connecté",
        "invalid": "Token invalide",
        "activeDescription": "Ton token Mangools est actif. Tu peux le remplacer ou le déconnecter.",
        "invalidDescription": "Ton token Mangools a été rejeté. Renseigne un nouveau token pour rétablir la connexion.",
        "tokenLabel": "Token API Mangools",
        "tokenPlaceholderNew": "Ton token Mangools",
        "tokenPlaceholderSet": "••••••••••••",
        "getToken": "Obtenir un token →",
        "connect": "Connecter",
        "replace": "Remplacer le token",
        "disconnect": "Déconnecter",
        "saved": "Token Mangools enregistré.",
        "disconnected": "Token Mangools déconnecté.",
        "invalidToken": "Token Mangools refusé. Vérifie-le et réessaie.",
        "forbidden": "Action réservée au propriétaire ou à un administrateur.",
        "configuredByAdmin": "Un token Mangools est configuré pour cette organisation.",
        "noTokenYet": "Aucun token Mangools configuré pour l'instant."
      }
    }
  }
}
