{
  "Common": {
    "loading": "Chargement...",
    "save": "Enregistrer",
    "cancel": "Annuler",
    "add": "Ajouter",
    "delete": "Supprimer",
    "edit": "Modifier",
    "close": "Fermer",
    "submit": "Valider",
    "back": "Retour",
    "language": "Langue",
    "errorTitle": "Une erreur est survenue",
    "errorRetry": "Réessayer"
  },
  "Nav": {
    "dashboard": "Tableau de bord",
    "webVitals": "Web Vitals",
    "labData": "Données de labo",
    "alerts": "Alertes",
    "settings": "Paramètres",
    "admin": "Admin",
    "addNewSite": "Ajouter un site",
    "support": "Support",
    "documentation": "Documentation",
    "sitePlaceholder": "Sélectionner un site",
    "addSiteTitle": "Ajouter un site",
    "addSiteDescription": "Entrez l'URL du site à monitorer",
    "addSitePlaceholder": "https://exemple.com",
    "adding": "Ajout...",
    "upgradeSidebar": "Passer à un plan payant"
  },
  "SiteHeader": {
    "performanceMonitoring": "Suivi des performances"
  },
  "Auth": {
    "appName": "Eleva Speed",
    "login": {
      "title": "Connectez-vous à votre compte",
      "description": "Saisissez votre email pour vous connecter à votre compte.",
      "noAccount": "Pas encore de compte ?",
      "createAccount": "Créer un compte",
      "emailLabel": "Email",
      "passwordLabel": "Mot de passe",
      "forgotPasswordLink": "Mot de passe oublié ?",
      "submit": "Connexion",
      "errorFallback": "Échec de connexion",
      "seePricingPrompt": "Curieux des tarifs ?",
      "seePricingLink": "Voir les plans"
    },
    "signup": {
      "title": "Créez votre compte",
      "description": "Saisissez vos infos ci-dessous pour créer votre compte.",
      "hasAccount": "Déjà un compte ?",
      "signIn": "Se connecter",
      "nameLabel": "Nom",
      "namePlaceholder": "Bastien",
      "emailLabel": "Email professionnel",
      "emailPlaceholder": "vous@votre-entreprise.com",
      "emailHint": "Pas de Gmail, iCloud, Outlook… utilisez votre adresse pro.",
      "passwordLabel": "Mot de passe",
      "submit": "Créer un compte",
      "successToast": "Compte créé !",
      "errorFallback": "Échec de l'inscription",
      "seePricingPrompt": "Curieux des tarifs ?",
      "seePricingLink": "Voir les plans"
    },
    "logout": "Déconnexion",
    "userMenu": {
      "settings": "Paramètres"
    },
    "verifyEmail": {
      "title": "Vérifiez votre email",
      "description": "Nous devons confirmer votre adresse email avant que vous puissiez utiliser Eleva Speed.",
      "emailLabel": "Email",
      "emailPlaceholder": "vous@entreprise.com",
      "sendCode": "Envoyer le code",
      "sending": "Envoi…",
      "otpLabel": "Code à 6 chiffres",
      "otpHelper": "Nous avons envoyé un code à 6 chiffres à {email}. Vérifiez votre boîte de réception et vos spams.",
      "verify": "Vérifier",
      "verifying": "Vérification…",
      "resend": "Renvoyer le code",
      "sentSuccess": "Code envoyé. Vérifiez votre boîte de réception.",
      "sentFailed": "Échec de l'envoi du code. Veuillez réessayer.",
      "verifiedSuccess": "Email vérifié.",
      "verifiedFailed": "Échec de la vérification. Vérifiez le code et réessayez."
    },
    "forgotPassword": {
      "title": "Mot de passe oublié ?",
      "description": "Saisissez votre email et nous vous enverrons un code à 6 chiffres pour réinitialiser votre mot de passe.",
      "emailLabel": "Email",
      "emailPlaceholder": "vous@entreprise.com",
      "submit": "Envoyer le code de réinitialisation",
      "sending": "Envoi…",
      "sentSuccess": "Si un compte existe, un code a été envoyé à votre boîte de réception."
    },
    "resetPassword": {
      "title": "Réinitialiser votre mot de passe",
      "description": "Saisissez le code que nous avons envoyé et votre nouveau mot de passe.",
      "emailLabel": "Email",
      "emailPlaceholder": "vous@entreprise.com",
      "otpLabel": "Code à 6 chiffres",
      "otpHelper": "Saisissez le code envoyé à {email}.",
      "newPasswordLabel": "Nouveau mot de passe",
      "newPasswordPlaceholder": "Au moins 8 caractères",
      "newPasswordHelper": "Utilisez au moins 8 caractères. Mélange de lettres, chiffres et symboles recommandé.",
      "confirmPasswordLabel": "Confirmer le nouveau mot de passe",
      "submit": "Réinitialiser le mot de passe",
      "resetting": "Réinitialisation…",
      "passwordMismatch": "Les mots de passe ne correspondent pas.",
      "passwordTooShort": "Le mot de passe doit comporter au moins 8 caractères.",
      "resetSuccess": "Mot de passe réinitialisé. Vous pouvez maintenant vous connecter.",
      "resetFailed": "Échec de la réinitialisation. Vérifiez le code et réessayez."
    },
    "unverifiedBanner": {
      "title": "Vérifiez votre email",
      "description": "Confirmez {email} pour débloquer l'expérience complète d'Eleva Speed.",
      "verifyNow": "Vérifier maintenant",
      "resend": "Renvoyer le code",
      "resending": "Envoi…",
      "resendSuccess": "Code envoyé. Vérifiez votre boîte de réception.",
      "resendFailed": "Échec du renvoi. Veuillez réessayer."
    }
  },
  "Pricing": {
    "title": "Tarifs",
    "subtitle": "Le monitoring de performance web pensé pour les agences, les équipes e-commerce et les ingénieurs produit. Démarrez gratuitement, passez à un plan payant quand vous dépassez les limites.",
    "ctaSignup": "Démarrer avec {tier}",
    "ctaSignupFree": "S'inscrire gratuitement",
    "ctaDowngradeFree": "Rétrograder vers Free",
    "freeDescription": "Démarrez gratuitement avec l'essentiel.",
    "starterDescription": "Pour les développeurs solo exigeants sur la performance web.",
    "proDescription": "Pour les agences et les équipes qui montent en charge sur leurs audits.",
    "businessDescription": "Pour les grandes équipes avec besoins de marque blanche et de support prioritaire.",
    "enterpriseCallout": "Besoin de plus de 50 sites, de locations custom, du SSO SAML ou d'agents privés ? Contactez-nous pour un devis Enterprise.",
    "comparisonTitle": "Comparer les fonctionnalités",
    "comparisonRows": {
      "feature": "Fonctionnalité",
      "testsPerMonth": "Tests / mois",
      "sites": "Sites monitorés",
      "seats": "Membres d'équipe",
      "retention": "Rétention des données",
      "api": "Accès API",
      "emailAlerts": "Alertes e-mail",
      "slackAlerts": "Alertes Slack / webhook",
      "whiteLabel": "PDF en marque blanche",
      "support": "Support"
    },
    "comparisonValues": {
      "webhookOnly": "Webhook uniquement",
      "supportEmail": "E-mail",
      "supportStandard": "Standard",
      "supportPriority": "Prioritaire"
    },
    "select": "Choisir",
    "recommended": "Recommandé",
    "yearlyHint": "2 mois offerts",
    "currencyLabel": "Devise",
    "extraSeats": {
      "section": "Sièges supplémentaires",
      "ariaLabel": "Sièges supplémentaires pour {tier}",
      "perSeat": "{price} / siège",
      "notAvailable": "—"
    },
    "rows": {
      "extraSeats": "Sièges supplémentaires (add-on)",
      "monitoredSlots": "Slots monitorés",
      "monitoringFrequency": "Fréquence de monitoring",
      "testLocations": "Locations de test",
      "mobileTesting": "Tests sur appareils mobiles"
    },
    "values": {
      "dailyWeeklyMonthly": "Quotidien / Hebdo / Mensuel",
      "hourlyDailyWeeklyMonthly": "Horaire / Quotidien / Hebdo / Mensuel"
    },
    "faqTitle": "Questions fréquentes",
    "faq": {
      "q1": "Puis-je annuler à tout moment ?",
      "a1": "Oui. Annulez depuis le Stripe Customer Portal — votre accès reste actif jusqu'à la fin de la période en cours.",
      "q2": "Que se passe-t-il si je rétrograde ?",
      "a2": "Votre plan change à la fin de la période de facturation en cours. Les sites et les membres au-delà du nouveau quota sont conservés mais en lecture seule jusqu'à ce que vous les réduisiez.",
      "q3": "Proposez-vous un essai gratuit ?",
      "a3": "Notre plan Free est permanent et inclut 15 tests / mois. Aucune carte bancaire requise.",
      "q4": "La TVA est-elle incluse dans le prix ?",
      "a4": "Les prix sont affichés hors taxes. La TVA européenne est calculée au moment du paiement en fonction de votre pays de facturation.",
      "q5": "Puis-je basculer entre mensuel et annuel ?",
      "a5": "Oui, depuis le Stripe Customer Portal. Le changement en cours de période est calculé au prorata automatiquement."
    }
  },
  "Marketing": {
    "nav": {
      "brand": "Eleva Speed",
      "primaryNavLabel": "Navigation principale",
      "pricing": "Tarifs",
      "signIn": "Se connecter",
      "signUp": "Créer un compte",
      "footerTagline": "Eleva Speed — monitoring de performance web."
    }
  },
  "QuickTest": {
    "placeholder": "Entrez une URL à tester...",
    "analyze": "Analyser"
  },
  "Dashboard": {
    "title": "Tableau de bord",
    "hero": {
      "eyebrow": "Intégrité du réseau",
      "headlineHealthy": "Santé globale du réseau optimale.",
      "headlineEmpty": "Ajoutez votre premier site.",
      "monitoredCount": "{count, plural, one {# site monitoré} other {# sites monitorés}}",
      "avgScore": "Score moyen",
      "avgLcp": "LCP moyen"
    },
    "monitoredProperties": {
      "title": "Sites monitorés",
      "subtitle": "Suivi en temps réel pour {count, plural, one {# propriété active} other {# propriétés actives}}.",
      "empty": "Aucun site monitoré. Ajoutez votre premier site pour commencer."
    },
    "stats": {
      "totalRequests": "Requêtes totales",
      "avgFullyLoaded": "Chargement complet moyen",
      "avgTransferSize": "Taille transférée moyenne"
    },
    "siteRow": {
      "perfScore": "Score Perf",
      "lastTest": "Dernier test : {date}",
      "noTest": "Aucun test"
    },
    "addSite": {
      "trigger": "Ajouter un site",
      "title": "Ajouter un site",
      "description": "Entrez l'URL du site à monitorer",
      "placeholder": "https://exemple.com",
      "submitting": "Ajout...",
      "submit": "Ajouter"
    }
  },
  "Tests": {
    "title": "Tests",
    "loading": "Chargement...",
    "empty": "Aucun test. Lancez votre premier test !",
    "columns": {
      "url": "URL",
      "score": "Score",
      "lcp": "LCP",
      "tbt": "TBT",
      "cls": "CLS",
      "status": "Statut",
      "date": "Date"
    },
    "status": {
      "queued": "En file d'attente",
      "running": "En cours",
      "completed": "Terminé",
      "failed": "Échoué"
    }
  },
  "TestReport": {
    "notFound": "Test introuvable.",
    "live": "Rapport de performance en direct",
    "analyzedOn": "Analyse du {date}",
    "rerunAudit": "Re-lancer l'analyse",
    "fullReport": "Rapport complet",
    "queueWaiting": {
      "queued": "Vous êtes #{position} sur {total}",
      "estimatedWait": "environ {seconds, plural, one {# seconde} other {# secondes}} d'attente",
      "inQueue": "En file d'attente...",
      "analyzing": "Analyse en cours...",
      "autoUpdate": "Les résultats apparaîtront automatiquement"
    },
    "failed": "Test échoué",
    "cwv": {
      "title": "Core Web Vitals",
      "subtitle": "Métriques clés de l'expérience utilisateur"
    },
    "details": {
      "title": "Métriques détaillées",
      "requests": "Requêtes",
      "totalSize": "Taille totale"
    },
    "screenshots": "Captures d'écran",
    "screenshot": {
      "afterPageCompleteCheck": "Après chargement complet",
      "largestContentfulPaint": "Largest Contentful Paint",
      "layoutShift": "Décalage de mise en page"
    },
    "gauge": {
      "performance": "Performance"
    },
    "metric": {
      "firstContentfulPaint": "First Contentful Paint",
      "timeToFirstByte": "Temps jusqu'au premier octet",
      "speedIndex": "Speed Index",
      "fullyLoaded": "Chargement complet",
      "domInteractive": "DOM interactif",
      "firstInputDelay": "First Input Delay",
      "largestContentfulPaint": "Largest Contentful Paint",
      "totalBlockingTime": "Total Blocking Time",
      "cumulativeLayoutShift": "Cumulative Layout Shift"
    }
  },
  "Settings": {
    "title": "Paramètres",
    "password": {
      "title": "Changer le mot de passe",
      "currentLabel": "Mot de passe actuel",
      "newLabel": "Nouveau mot de passe",
      "newHint": "Au moins 8 caractères.",
      "confirmLabel": "Confirmer le nouveau mot de passe",
      "revokeOthers": "Déconnecter mes autres sessions",
      "submit": "Mettre à jour le mot de passe",
      "errorTooShort": "Le nouveau mot de passe doit contenir au moins 8 caractères.",
      "errorMismatch": "Les mots de passe ne correspondent pas.",
      "errorFallback": "Impossible de mettre à jour le mot de passe.",
      "successToast": "Mot de passe mis à jour"
    },
    "sessions": {
      "title": "Sessions actives",
      "loading": "Chargement…",
      "empty": "Aucune session active.",
      "current": "Session actuelle",
      "unknownIp": "IP inconnue",
      "createdOn": "Créée le",
      "revoke": "Révoquer",
      "revokeError": "Impossible de révoquer la session.",
      "successToast": "Session révoquée",
      "unknownDevice": "Appareil inconnu",
      "unknownBrowser": "Navigateur",
      "unknownOs": "OS inconnu",
      "deviceOn": "{browser} sur {os}"
    },
    "danger": {
      "title": "Zone dangereuse",
      "description": "La suppression de votre compte est définitive. Toutes vos données — sites, audits, sessions — seront effacées et ne pourront pas être restaurées.",
      "deleteButton": "Supprimer mon compte",
      "dialogTitle": "Supprimer définitivement le compte ?",
      "dialogDescription": "Cette action est irréversible. Pour confirmer, saisissez votre mot de passe actuel.",
      "passwordLabel": "Mot de passe",
      "cancel": "Annuler",
      "confirmDelete": "Supprimer définitivement",
      "errorFallback": "Impossible de supprimer le compte.",
      "successToast": "Compte supprimé"
    },
    "tabs": {
      "profile": "Profil",
      "organization": "Organisation",
      "team": "Équipe",
      "billing": "Facturation",
      "billingDisabled": "Bientôt disponible"
    },
    "profile": {
      "title": "Profil",
      "description": "Les paramètres de votre compte personnel.",
      "nameLabel": "Nom",
      "namePlaceholder": "Votre nom complet",
      "emailLabel": "Email",
      "emailHelper": "Votre email sert d'identifiant de connexion et ne peut pas être modifié ici.",
      "submit": "Enregistrer",
      "submitting": "Enregistrement…",
      "saveSuccess": "Profil enregistré.",
      "saveFailed": "Échec de l'enregistrement du profil."
    },
    "organization": {
      "title": "Organisation",
      "description": "Paramètres de {orgName}. Seuls les admins et propriétaires peuvent modifier.",
      "nameLabel": "Nom de l'organisation",
      "namePlaceholder": "Acme Corp",
      "slugLabel": "Slug",
      "slugHelper": "Le slug est généré automatiquement à partir du nom et ne peut pas être modifié ici.",
      "submit": "Enregistrer",
      "submitting": "Enregistrement…",
      "saveSuccess": "Organisation enregistrée.",
      "saveFailed": "Échec de l'enregistrement de l'organisation.",
      "dangerZone": "Zone dangereuse",
      "dangerZoneDescription": "Actions permanentes. Seul le propriétaire peut les effectuer.",
      "deleteOrg": "Supprimer l'organisation",
      "deleteOrgDescription": "Cette action supprimera définitivement {orgName} ainsi que tous ses sites et tests. Aucun retour en arrière possible.",
      "deleteOrgConfirm": "Tapez \"{orgName}\" pour confirmer",
      "deleteOrgButton": "Supprimer définitivement",
      "deleteOrgFailed": "Échec de la suppression de l'organisation.",
      "transferOwnership": "Transférer la propriété",
      "transferOwnershipDescription": "Promouvoir un admin actuel au statut de propriétaire. Vous serez rétrogradé en admin.",
      "transferOwnershipSelect": "Sélectionnez le nouveau propriétaire",
      "transferOwnershipButton": "Transférer",
      "transferOwnershipFailed": "Échec du transfert de propriété.",
      "transferOwnershipSuccess": "Propriété transférée."
    },
    "team": {
      "title": "Équipe",
      "description": "Membres de {orgName} et invitations en attente.",
      "inviteTitle": "Inviter un nouveau membre",
      "inviteEmailLabel": "Email",
      "inviteEmailPlaceholder": "collegue@entreprise.com",
      "inviteRoleLabel": "Rôle",
      "inviteRoleAdmin": "Administrateur",
      "inviteRoleMember": "Membre",
      "inviteSubmit": "Envoyer l'invitation",
      "inviteSubmitting": "Envoi…",
      "inviteSuccess": "Invitation envoyée à {email}.",
      "inviteFailed": "Échec de l'envoi de l'invitation.",
      "membersTitle": "Membres ({count})",
      "pendingTitle": "Invitations en attente ({count})",
      "noMembers": "Aucun membre.",
      "noPending": "Aucune invitation en attente.",
      "memberRoleChange": "Changer le rôle",
      "memberRemove": "Retirer de l'organisation",
      "memberRemoveConfirm": "Retirer {name} de {orgName} ? L'accès sera perdu immédiatement.",
      "memberRemoveSuccess": "Membre retiré.",
      "memberRemoveFailed": "Échec du retrait du membre.",
      "memberRoleUpdated": "Rôle mis à jour.",
      "memberRoleFailed": "Échec de la mise à jour du rôle.",
      "invitationRevoke": "Révoquer",
      "invitationRevokeConfirm": "Révoquer l'invitation envoyée à {email} ?",
      "invitationRevokeSuccess": "Invitation révoquée.",
      "invitationRevokeFailed": "Échec de la révocation de l'invitation.",
      "invitationExpiresAt": "Expire le {date}"
    },
    "billing": {
      "title": "Facturation",
      "description": "Gérez votre abonnement et consultez vos factures.",
      "currentPlan": "Plan actuel",
      "renewsOn": "Renouvellement le {date}",
      "endsOn": "Se termine le {date}",
      "freeBadge": "Tier gratuit",
      "monthly": "Mensuel",
      "yearly": "Annuel (-17%)",
      "intervalToggle": "Intervalle de facturation",
      "ctaUpgrade": "Passer à {tier}",
      "ctaCurrent": "Plan actuel",
      "ctaDowngrade": "Basculer vers {tier}",
      "ctaContactSales": "Contacter les ventes",
      "managePortal": "Gérer l'abonnement",
      "managePortalDescription": "Mettre à jour la méthode de paiement, consulter les factures ou annuler via le portail Stripe.",
      "cancelInline": "Annuler à la fin de la période",
      "reactivate": "Réactiver l'abonnement",
      "checkoutError": "Impossible de démarrer le paiement. Veuillez réessayer.",
      "portalError": "Impossible d'ouvrir le portail d'abonnement. Veuillez réessayer.",
      "successTitle": "Bienvenue dans {plan}",
      "successDescription": "Votre abonnement est en cours d'activation. Cela prend généralement quelques secondes.",
      "successPolling": "Activation…",
      "successTimeout": "L'activation prend plus de temps que prévu. Rafraîchissez la page dans un instant — votre abonnement apparaîtra ici.",
      "pastDueTitle": "Paiement échoué",
      "pastDueDescription": "Votre dernière facture n'a pas pu être payée. Mettez à jour votre méthode de paiement pour maintenir votre abonnement actif.",
      "cancelScheduledTitle": "Abonnement bientôt terminé",
      "cancelScheduledDescription": "Votre plan {plan} se termine le {date}. Vous serez basculé sur Free.",
      "tierFeatures": {
        "tests": "{n} tests / mois",
        "sites": "{n} sites monitorés",
        "seats": "{n} membres d'équipe",
        "retentionDays": "Rétention {n} jours"
      }
    }
  },
  "Site": {
    "Detail": {
      "title": "Rapport de performance en direct",
      "live": "LIVE",
      "rerunAudit": "Relancer l'audit",
      "analyzing": "Analyse en cours...",
      "testStarted": "Test lancé",
      "tabs": {
        "summary": "Résumé",
        "performance": "Performance",
        "structure": "Structure",
        "waterfall": "Waterfall"
      },
      "device": {
        "mobile": "Mobile",
        "desktop": "Bureau"
      },
      "gauge": {
        "performance": "Performance",
        "accessibility": "Accessibilité",
        "bestPractices": "Bonnes pratiques",
        "seo": "SEO"
      },
      "cwv": {
        "title": "Core Web Vitals",
        "last30Days": "30 derniers jours",
        "lcp": "LCP",
        "lcpSub": "Largest Contentful Paint",
        "fid": "FID",
        "fidSub": "First Input Delay",
        "cls": "CLS",
        "clsSub": "Cumulative Layout Shift"
      },
      "resource": {
        "title": "Transfert de ressources",
        "totalPayload": "Poids total transféré"
      },
      "pageDetails": {
        "totalRequests": "Requêtes totales",
        "transferSize": "Taille transférée",
        "fullyLoaded": "Chargement complet",
        "domInteractive": "DOM interactif"
      },
      "opportunities": {
        "title": "Opportunités prioritaires",
        "fixFirst": "À corriger en priorité",
        "highImpact": "Impact fort",
        "medium": "Moyen",
        "impact": "Impact",
        "saved": "économisés"
      },
      "captures": {
        "title": "Captures",
        "afterComplete": "Après chargement complet",
        "lcp": "Largest Contentful Paint",
        "cls": "Décalage de mise en page"
      },
      "eventsLog": {
        "title": "Journal des événements",
        "testSource": "Source du test",
        "timestamp": "Horodatage",
        "score": "Score",
        "status": "Statut",
        "latency": "Latence",
        "mobileEmulation": "Émulation mobile",
        "desktopChrome": "Chrome bureau",
        "statusCompleted": "Terminé",
        "statusFailed": "Échoué",
        "statusRunning": "En cours"
      },
      "cadence": {
        "title": "Audit planifié",
        "description": "Lance un audit automatique à intervalle régulier. Le cadre est appliqué côté serveur via cron.",
        "next": "Prochain audit :",
        "none": "Désactivé",
        "daily": "Tous les jours",
        "weekly": "Toutes les semaines",
        "disabledToast": "Monitoring désactivé",
        "enabledToast": "Monitoring {cadence} activé",
        "updateError": "Impossible de mettre à jour la cadence"
      },
      "empty": {
        "noTests": "Aucun test <bold>{device}</bold> pour ce site.",
        "launchTest": "Lancer un test {device}",
        "testLaunched": "Test {device} lancé"
      },
      "queue": {
        "position": "Vous êtes #{position} sur {total}",
        "estimatedWait": "environ {seconds, plural, one {# seconde} other {# secondes}} d'attente",
        "analyzing": "Analyse en cours..."
      },
      "cwvStatus": {
        "good": "Bon",
        "needsImprovement": "À améliorer",
        "poor": "Médiocre"
      }
    }
  },
  "PerformanceMetrics": {
    "title": "Métriques de performance",
    "browserTimings": "Temps du navigateur",
    "metrics": {
      "fcp": "First Contentful Paint",
      "si": "Speed Index",
      "lcp": "Largest Contentful Paint",
      "tbt": "Total Blocking Time",
      "cls": "Cumulative Layout Shift"
    },
    "timings": {
      "ttfb": "Temps jusqu'au premier octet",
      "domInteractive": "DOM interactif",
      "domContentLoaded": "DOM Content Loaded",
      "fullyLoaded": "Chargement complet"
    }
  },
  "StructureAudits": {
    "opportunitiesTitle": "Opportunités",
    "opportunitiesDescription": "Ces suggestions peuvent accélérer le chargement de votre page. Elles n'affectent pas directement le score de performance.",
    "diagnosticsTitle": "Diagnostics",
    "diagnosticsDescription": "Plus d'informations sur les performances de votre application. Ces valeurs n'affectent pas directement le score de performance."
  },
  "Waterfall": {
    "empty": "Aucun waterfall disponible.",
    "columns": {
      "resource": "Ressource",
      "status": "Statut",
      "size": "Taille",
      "time": "Temps",
      "waterfall": "Waterfall"
    },
    "summary": "{count} requêtes · {ms} ms au total",
    "timings": {
      "blocked": "Bloqué",
      "dns": "DNS",
      "connect": "Connexion",
      "ssl": "SSL",
      "send": "Envoi",
      "ttfb": "TTFB",
      "download": "Téléchargement"
    }
  },
  "Admin": {
    "title": "Admin",
    "backToDashboard": "← Retour au tableau de bord",
    "nav": {
      "users": "Utilisateurs",
      "orgs": "Orgs",
      "sites": "Sites",
      "tests": "Tests",
      "leads": "Leads"
    },
    "orgs": {
      "title": "Organisations",
      "description": "Toutes les organisations sur Eleva Speed avec plan, statut de facturation et MRR.",
      "totalMRR": "MRR total",
      "view": "Voir",
      "columns": {
        "org": "Organisation",
        "plan": "Plan",
        "status": "Statut",
        "mrr": "MRR (€)",
        "members": "Membres",
        "sites": "Sites",
        "tests": "Tests",
        "created": "Créée"
      }
    },
    "orgDetail": {
      "orgId": "ID Org",
      "backToList": "Retour à la liste",
      "plan": "Plan",
      "status": "Statut",
      "sites": "Sites",
      "tests": "Tests (lifetime)",
      "endsOn": "Se termine le {date}",
      "stripeCustomer": "Client Stripe",
      "openInStripe": "Ouvrir dans Stripe",
      "membersTitle": "Membres ({count})"
    },
    "leads": {
      "title": "Leads",
      "empty": "Aucun lead pour le moment — capture non encore branchée.",
      "columns": {
        "email": "Email",
        "source": "Source",
        "siteUrl": "URL du site",
        "consent": "Consentement",
        "created": "Créé le"
      }
    },
    "tests": {
      "title": "Tests",
      "columns": {
        "hostname": "Hôte",
        "device": "Appareil",
        "status": "Statut",
        "perf": "Perf",
        "created": "Créé le",
        "completed": "Terminé le"
      },
      "status": {
        "queued": "En file d'attente",
        "running": "En cours",
        "completed": "Terminé",
        "failed": "Échoué"
      }
    },
    "sites": {
      "title": "Sites",
      "columns": {
        "hostname": "Hôte",
        "owner": "Propriétaire",
        "label": "Libellé",
        "latestScore": "Dernier score",
        "tests": "Tests",
        "created": "Créé le"
      }
    },
    "users": {
      "title": "Utilisateurs",
      "banned": "banni",
      "roles": {
        "admin": "Admin",
        "user": "Utilisateur"
      },
      "columns": {
        "email": "Email",
        "name": "Nom",
        "role": "Rôle",
        "status": "Statut",
        "sites": "Sites",
        "tests": "Tests",
        "created": "Créé le"
      }
    }
  },
  "Home": {
    "redirecting": "Redirection..."
  },
  "LocaleSwitcher": {
    "label": "Langue",
    "en": "English",
    "fr": "Français",
    "es": "Español"
  },
  "Errors": {
    "generic": "Une erreur est survenue",
    "notFound": "Page introuvable",
    "unauthorized": "Non autorisé"
  },
  "Org": {
    "switcher": {
      "currentOrg": "Organisation active",
      "searchPlaceholder": "Rechercher une organisation…",
      "createNew": "+ Créer une nouvelle organisation",
      "noResults": "Aucune organisation trouvée.",
      "switching": "Basculement…",
      "switchFailed": "Impossible de basculer d'organisation.",
      "roleOwner": "Propriétaire",
      "roleAdmin": "Administrateur",
      "roleMember": "Membre"
    }
  },
  "Onboarding": {
    "title": "Créer une nouvelle organisation",
    "description": "Les organisations vous permettent de séparer vos espaces de travail — par exemple un espace partagé en équipe à côté de votre espace personnel.",
    "nameLabel": "Nom de l'organisation",
    "namePlaceholder": "Acme Corp",
    "submit": "Créer l'organisation",
    "submitting": "Création…",
    "createFailed": "Impossible de créer l'organisation.",
    "existingTitle": "Ou basculer vers l'une de vos organisations existantes",
    "existingSwitchLabel": "Basculer vers cette organisation"
  },
  "Invitation": {
    "title": "Rejoindre {orgName}",
    "youWereInvited": "{inviterEmail} vous a invité à rejoindre {orgName} en tant que {role}.",
    "accept": "Accepter l'invitation",
    "reject": "Refuser",
    "accepting": "Adhésion…",
    "rejecting": "Refus…",
    "acceptFailed": "Impossible d'accepter l'invitation.",
    "rejectFailed": "Impossible de refuser l'invitation.",
    "notFoundTitle": "Invitation introuvable",
    "notFoundDescription": "Cette invitation a peut-être expiré ou été révoquée. Demandez à la personne qui vous a invité d'en envoyer une nouvelle.",
    "expiredTitle": "Invitation expirée",
    "expiredDescription": "Cette invitation n'est plus valide. Demandez au propriétaire de l'organisation d'en envoyer une nouvelle.",
    "alreadyMember": "Vous êtes déjà membre de cette organisation."
  },
  "Quota": {
    "close": "Fermer",
    "upgradeComingSoon": "Upgrade — bientôt disponible",
    "exhausted": {
      "tests": {
        "title": "Limite mensuelle de tests atteinte",
        "description": "Vous avez utilisé {used} sur {limit} tests ce mois-ci sur le plan {plan}. Passez à {tier} pour davantage de tests."
      },
      "sites": {
        "title": "Limite de sites atteinte",
        "description": "Vous avez ajouté {used} sur {limit} sites sur le plan {plan}. Passez à {tier} pour ajouter plus de sites."
      },
      "seats": {
        "title": "Limite de membres atteinte",
        "description": "Vous avez {used} sur {limit} membres sur le plan {plan}. Passez à {tier} pour inviter plus de coéquipiers."
      }
    }
  },
  "Billing": {
    "usage": {
      "tests": "Tests ce mois-ci",
      "sites": "Sites monitorés",
      "seats": "Membres d'équipe"
    }
  }
}
