{
  "forfeit": {
    "title": "Match perdu par forfait",
    "badge": "Forfait {{team}}",
    "badgeShort": "Forfait",
    "badgeTitle": "Match perdu par forfait par {{team}} : défaite 0‑3, 0‑25 à chaque set",
    "note": "Match perdu par forfait par {{team}} : défaite 0‑3 (0‑25 à chaque set), sans feuille de statistiques.",
    "penaltyOne": "{{team}} a aussi {{count}} point de pénalité au classement de la saison.",
    "penaltyMany": "{{team}} a aussi {{count}} points de pénalité au classement de la saison."
  },
  "rankingPenalty": {
    "markOne": "Pénalité de {{count}} point",
    "markMany": "Pénalité de {{count}} points",
    "ptsOne": "pt",
    "ptsMany": "pts",
    "noteIntro": "Pénalité de classement :",
    "noteOutro": "Points retirés par décision administrative, déjà déduits du total."
  },
  "adminViewAs": {
    "titlePlayer": "Voir comme un joueur",
    "titleCoach": "Voir comme un coach",
    "introPlayer": "Choisissez le joueur dont vous voulez voir l'espace : son tableau de bord et son équipe, tels qu'il les voit.",
    "introCoach": "Choisissez l'équipe et la compétition dont vous voulez voir l'espace coach, tel que le voit son entraîneur.",
    "ownPlayer": "Ma fiche",
    "lastPick": "Dernier choix",
    "searchPlayer": "Joueur",
    "searchTeam": "Équipe",
    "placeholderPlayer": "Nom du joueur…",
    "placeholderTeam": "Nom de l'équipe…",
    "noResult": "Aucun résultat.",
    "otherTeam": "Autre équipe",
    "competition": "Compétition",
    "noCompetition": "Aucune compétition pour cette équipe.",
    "cancel": "Annuler",
    "confirmCoach": "Voir cet espace",
    "close": "Fermer",
    "bannerLabel": "Vue administrateur",
    "bannerPlayer": "vous voyez l'espace de",
    "bannerCoach": "vous voyez l'espace coach de",
    "change": "Changer"
  },
  "scrollHint": {
    "left": "Faire défiler le tableau vers la gauche",
    "right": "Faire défiler le tableau vers la droite",
    "barLeft": "Faire défiler vers la gauche",
    "barRight": "Faire défiler vers la droite"
  },
  "loader": {
    "label": "Chargement…"
  },
  "loadError": {
    "message": "Ces données n'ont pas pu être chargées.",
    "stale": "La mise à jour a échoué : les données affichées sont celles du chargement précédent.",
    "retry": "Réessayer"
  },
  "nav": {
    "lockedHint": "Réservé à un abonnement supérieur",
    "home": "Accueil",
    "features": "Fonctionnalités",
    "understand": "Comprendre les stats",
    "pricing": "Tarifs",
    "contact": "Contact",
    "login": "Connexion",
    "register": "Nous contacter",
    "createAccount": "Créer un compte",
    "myDashboard": "Ma saison",
    "dashboard": "Actualité",
    "fanHome": "Accueil",
    "coachDashboard": "Mon tableau de bord",
    "players": "Joueurs",
    "teams": "Équipes",
    "myTeam": "Mon équipe",
    "plans": {
      "admin": "Administrateur",
      "free_visitor": "Visiteur",
      "free_fan": "Fan gratuit",
      "premium_fan": "Fan Premium",
      "analyst_fan": "Fan Analyste",
      "media_pending": "Média (en attente)",
      "media": "Média",
      "free_player": "Joueur gratuit",
      "premium_player": "Joueur Premium",
      "analyst_player": "Joueur Analyste",
      "premium_coach": "Coach Premium",
      "premium_total": "Premium Total"
    },
    "admin": {
      "title": "Administration",
      "access": "Accès par profil",
      "playerDashboard": "Voir comme un joueur",
      "playerTeam": "Mon équipe (joueur)",
      "coachDashboard": "Voir comme un coach"
    },
    "competitions": "Compétitions",
    "statistics": "Statistiques",
    "bestPerformances": "Meilleures performances",
    "nationalities": "Nationalités",
    "mvpRanking": "Classement MVP",
    "compareCompetitions": "Comparaison de compétitions",
    "decisiveSectors": "Secteurs déterminants",
    "seasonRecords": "Records par saison",
    "dreamTeams": "Équipes de rêve",
    "teamContinuity": "Continuité d'effectif",
    "divisionMobility": "Mobilité entre divisions",
    "ageExperience": "Âge et expérience des effectifs",
    "scouting": "Scouting",
    "myProfile": "Mon profil",
    "myPlayerProfile": "Ma fiche joueur",
    "mySpace": "Mon espace",
    "logout": "Déconnexion",
    "notifications": "Notifications",
    "markAllRead": "Tout marquer lu",
    "noNotifications": "Aucune notification",
    "language": "Langue",
    "gender": "Genre",
    "genderScopeLabel": "Championnat",
    "genderMale": "Masculin",
    "genderFemale": "Féminin",
    "coverage": "Couverture des statistiques",
    "userMenuAria": "Menu du compte",
    "playerHeights": "Taille des joueurs",
    "titleRace": "Course à la première place",
    "toggleMenu": "Ouvrir ou fermer le menu",
    "sectionRankings": "Classements",
    "sectionLeagueAnalysis": "Analyses de championnat",
    "sectionData": "Données",
    "groupExplore": "Explorer",
    "pagesCount": "{{count}} pages",
    "discoverOffer": "Découvrir l'offre {{offer}}",
    "offerFanPremium": "Fan Premium",
    "offerPlayerPremium": "Joueur Premium",
    "offerAnalyst": "Fan Analyste",
    "offerPlayerAnalyst": "Joueur Analyste",
    "homeAdvantage": "Avantage du terrain",
    "settings": "Notifications"
  },
  "login": {
    "welcomeTitle": "Bienvenue sur",
    "welcomeSubtitle": "Connectez-vous pour accéder à vos statistiques, suivre vos performances et piloter votre progression.",
    "featureStatsTitle": "Statistiques mises à jour pendant les matchs",
    "featureStatsText": "Suivez vos performances match après match",
    "featureTeamTitle": "Gestion d'équipe",
    "featureTeamText": "Coordonnez et analysez votre collectif",
    "featureProgressTitle": "Progression continue",
    "featureProgressText": "Identifiez vos axes d'amélioration",
    "secureNote": "Connexion sécurisée et données protégées",
    "title": "Connexion",
    "subtitle": "Connectez-vous à votre compte VolleyTracker",
    "emailLabel": "Email",
    "emailPlaceholder": "votre.email@example.com",
    "emailRequired": "L'email est requis",
    "emailInvalid": "L'email doit être valide",
    "passwordLabel": "Mot de passe",
    "passwordRequired": "Le mot de passe est requis",
    "passwordMinLength": "Le mot de passe doit contenir au moins 6 caractères",
    "submit": "Se connecter",
    "submitting": "Connexion en cours…",
    "forgotPassword": "Mot de passe oublié ?",
    "noAccount": "Inscriptions à la reprise des championnats —",
    "signUp": "nous contacter",
    "errorInvalidCredentials": "Email ou mot de passe incorrect",
    "errorGeneric": "Une erreur est survenue. Veuillez réessayer.",
    "errorTooManyAttempts": "Trop de tentatives de connexion. Patientez quelques instants.",
    "errorEmailNotVerified": "Votre adresse email n'est pas encore confirmée.",
    "errorAwaitingValidation": "Votre compte n’a pas encore été validé par un administrateur. Vous recevrez un email dès qu'il sera actif.",
    "verificationHint": "Cliquez sur le lien reçu par email pour activer votre compte. Vous pouvez aussi en redemander un.",
    "verificationResend": "Renvoyer le lien",
    "verificationResending": "Envoi en cours…",
    "verificationResent": "Si votre adresse est associée à un compte non confirmé, un nouveau lien vient d'être envoyé.",
    "submitCooldown": "Réessayez dans {{seconds}} s"
  },
  "requestAccess": {
    "earlyAccess": "Accès anticipé",
    "heroTitlePrefix": "Rejoignez la",
    "heroTitleHighlight": "bêta privée",
    "heroSubtitle": "Demandez votre invitation pour découvrir la plateforme en avant-première. Réponse sous 48 heures en général.",
    "featureStatsTitle": "Stats avancées",
    "featureStatsText": "Plus de 50 statistiques par joueur",
    "featureAccessText": "Découvrez des outils exclusifs pour le volley pro",
    "featureContactTitle": "Échange direct",
    "featureContactText": "Contact privilégié avec l'équipe produit",
    "infoNote": "Réponse sous 48 heures en général",
    "formTitle": "Demander un accès",
    "formSubtitle": "Remplissez ce formulaire et notre équipe vous recontacte rapidement.",
    "successTitle": "Demande envoyée",
    "successText": "Merci pour votre intérêt. Nous examinons votre demande et vous recontactons rapidement avec vos identifiants.",
    "backToLogin": "Retour à la connexion",
    "firstnameLabel": "Prénom",
    "firstnamePlaceholder": "Votre prénom",
    "firstnameError": "Prénom requis (min. 2 caractères)",
    "lastnameLabel": "Nom",
    "lastnamePlaceholder": "Votre nom",
    "lastnameError": "Nom requis (min. 2 caractères)",
    "emailLabel": "Email",
    "emailPlaceholder": "votre@email.com",
    "emailError": "Email valide requis",
    "profileLabel": "Votre profil",
    "profileError": "Sélectionnez votre profil",
    "profilePlayer": "Joueur",
    "profileCoach": "Coach",
    "profileClub": "Club / Dirigeant",
    "profileAgent": "Agent",
    "profileFan": "Fan",
    "profileOther": "Autre",
    "optional": "(optionnel)",
    "clubLabel": "Club / Structure",
    "clubPlaceholder": "Nom de votre club ou structure",
    "messageLabel": "Message",
    "messagePlaceholder": "Dites-nous pourquoi vous souhaitez accéder à VolleyTracker…",
    "submit": "Envoyer ma demande",
    "submitting": "Envoi en cours…",
    "haveAccount": "Vous avez déjà un compte ?",
    "signIn": "Se connecter",
    "errorConflict": "Un conflit est survenu avec cette adresse email.",
    "errorInvalidData": "Données invalides. Veuillez vérifier votre saisie.",
    "errorGeneric": "Une erreur est survenue. Veuillez réessayer.",
    "comingSoonBadge": "Bientôt",
    "comingSoonHint": "Les profils coach, club et agent ne sont pas encore ouverts : la plateforme démarre avec les joueurs et les fans. Votre demande est enregistrée et nous vous recontacterons dès leur ouverture."
  },
  "loginModal": {
    "close": "Fermer"
  },
  "authGuard": {
    "accountNotValidated": "Votre compte n'est pas encore validé. Consultez vos emails pour finaliser son activation."
  },
  "contact": {
    "authTitle": "Votre avis compte",
    "authSubtitle": "Aidez-nous à améliorer VolleyTracker en partageant vos retours.",
    "featureBugTitle": "Signaler un bug",
    "featureBugText": "Un problème ? Décrivez-le, on s'en occupe",
    "featureIdeaTitle": "Proposer une amélioration",
    "featureIdeaText": "Vos idées façonnent la plateforme",
    "featureQuestionTitle": "Poser une question",
    "featureQuestionText": "Nous répondons en général sous 48 heures",
    "privacyNote": "Vos données ne servent qu'à vous répondre",
    "publicTitle": "Contactez-nous",
    "publicSubtitle": "Une question, une suggestion ou un besoin particulier ? Notre équipe est à votre écoute pour vous accompagner.",
    "featureEmailTitle": "Email",
    "featureResponseTitle": "Réponse rapide",
    "featureResponseText": "Nous répondons en général sous 48 heures",
    "featureIdeasTitle": "Vos idées comptent",
    "featureIdeasText": "Aidez-nous à construire le meilleur outil",
    "headerTitleAuth": "Envoyez-nous un retour",
    "headerTitlePublic": "Envoyez-nous un message",
    "headerSubtitleAuth": "Votre retour nous aide à améliorer la plateforme.",
    "headerSubtitlePublic": "Remplissez ce formulaire et nous vous répondrons rapidement.",
    "loggedInAs": "Connecté en tant que",
    "successTitleAuth": "Retour envoyé",
    "successTitlePublic": "Message envoyé",
    "successTextAuth": "Merci pour votre retour. Notre équipe le prendra en compte rapidement.",
    "successTextPublic": "Merci pour votre message. Nous l'avons bien reçu et nous vous répondrons dans les plus brefs délais.",
    "backToHome": "Retour à l'accueil",
    "nameLabel": "Nom",
    "namePlaceholder": "Votre nom",
    "nameError": "Nom requis (min. 2 caractères)",
    "emailLabel": "Email",
    "emailPlaceholder": "votre@email.com",
    "emailError": "Email valide requis",
    "categoryLabel": "Catégorie",
    "categoryPlaceholder": "Choisir une catégorie",
    "categoryError": "Catégorie requise",
    "categoryBug": "Bug",
    "categoryImprovement": "Amélioration",
    "categoryQuestion": "Question",
    "categoryOther": "Autre",
    "subjectLabel": "Sujet",
    "subjectPlaceholder": "Objet de votre message",
    "subjectError": "Sujet requis",
    "messageLabel": "Message",
    "messagePlaceholderAuth": "Décrivez votre retour en détail…",
    "messagePlaceholderPublic": "Décrivez votre demande, suggestion ou question…",
    "messageError": "Message requis (max. 1000 caractères)",
    "submitAuth": "Envoyer mon retour",
    "submitPublic": "Envoyer mon message",
    "submitting": "Envoi en cours…",
    "errorTooMany": "Trop de messages envoyés. Veuillez réessayer plus tard.",
    "errorInvalidData": "Données invalides. Veuillez vérifier votre saisie.",
    "errorGeneric": "Une erreur est survenue. Veuillez réessayer."
  },
  "cookieConsent": {
    "bannerAriaLabel": "Consentement aux cookies",
    "bannerTitle": "Cookies & vie privée",
    "bannerDescBefore": "Nous utilisons des cookies de ",
    "bannerDescStrong": "mesure d'audience",
    "bannerDescAfter": " pour comprendre comment le site est utilisé et l'améliorer. Les cookies strictement nécessaires au fonctionnement restent toujours actifs. Vous pouvez accepter, refuser ou personnaliser vos choix.",
    "learnMore": "En savoir plus",
    "customise": "Personnaliser",
    "refuseAll": "Tout refuser",
    "acceptAll": "Tout accepter",
    "prefsTitle": "Préférences cookies",
    "close": "Fermer",
    "prefsIntro": "Gérez votre consentement par catégorie. Vous pouvez modifier ces choix à tout moment via le lien « Cookies » en bas de page.",
    "necessaryTitle": "Strictement nécessaires",
    "alwaysActive": "Toujours actifs",
    "necessaryDesc": "Session, authentification (JWT) et sécurité (CSRF). Indispensables au fonctionnement du site, ils sont exemptés de consentement et ne peuvent pas être désactivés.",
    "analyticsTitle": "Mesure d'audience",
    "analyticsDesc": "Statistiques de fréquentation (pages vues, domaine de provenance, actions sur le site) pour améliorer le site, via PostHog (serveurs dans l'Union européenne). Si vous êtes connecté, elles sont rattachées à un identifiant technique de votre compte, jamais à votre nom ni à votre email. Aucune donnée n'est revendue ni utilisée à des fins publicitaires.",
    "savePreferences": "Enregistrer mes choix"
  },
  "heroBanner": {
    "label": "Plateforme d'analyse du volley professionnel",
    "requestAccess": "Nous contacter",
    "rankingsNotStarted": "La saison n'a pas encore commencé. Les classements apparaîtront après la première journée."
  },
  "landing": {
    "kpi": {
      "stale": "Derniers chiffres connus",
      "staleSince": "Derniers chiffres connus, relevés le {{date}}",
      "players": "Joueurs répertoriés",
      "games": "Matchs analysés",
      "stats": "Performances individuelles relevées",
      "seasons": "Première saison couverte"
    },
    "coverage": {
      "titlePart1": "Trois championnats, ",
      "titleHighlight": "depuis 2013",
      "male": "Masculin",
      "female": "Féminin",
      "firstDivision": "Première division",
      "secondDivision": "Deuxième division",
      "note": "Depuis le 2 septembre 2026, ces championnats s'appellent Alterna VOLSTAR (1re division masculine), Saforelle VOLSTAR (1re division féminine) et VOLSTAR Masculine 2 (2e division masculine)."
    },
    "capabilities": {
      "titlePart1": "Le volley français, ",
      "titleHighlight": "sous tous les angles",
      "titlePart2": ".",
      "followTitle": "Suivre",
      "followText": "Un joueur, match après match et saison après saison, avec ses tendances et ses paliers.",
      "compareTitle": "Comparer",
      "compareText": "Deux joueurs, deux équipes, deux championnats, sur toutes les dimensions statistiques.",
      "rankTitle": "Classer",
      "rankText": "Par poste, par statistique, par compétition ou par saison, dans chaque division.",
      "exploreTitle": "Explorer",
      "exploreText": "Records, régularité, domicile et extérieur, saison régulière et play-offs."
    },
    "audiences": {
      "titlePart1": "Une plateforme conçue pour tout ",
      "titleHighlight": "l'écosystème du volley",
      "players": {
        "title": "Joueurs",
        "description": "Suivez votre progression, comparez-vous aux meilleurs de votre division et analysez votre évolution saison après saison."
      },
      "fans": {
        "title": "Fans",
        "description": "Comprenez les performances des joueurs, explorez les statistiques des trois championnats et découvrez les records et tendances."
      }
    },
    "features": {
      "titlePart1": "Des ",
      "titleHighlight": "fonctionnalités",
      "titlePart2": " pensées pour la performance",
      "subtitle": "Que vous suiviez un club ou votre propre saison : les statistiques officielles de chaque match, lues et mises en forme.",
      "switchLabel": "Type de compte",
      "switchFan": "Je suis fan",
      "switchPlayer": "Je suis joueur",
      "leadFan": "Suivez votre club, ses matchs et tout le championnat.",
      "leadPlayer": "Votre saison, vos chiffres, et votre place parmi les joueurs de votre poste.",
      "emailStats": {
        "title": "Les stats de vos matchs, par email",
        "description": "Abonnez-vous à une compétition, une équipe ou un match : après chaque soirée, vous recevez les résultats et les statistiques dans votre boîte mail.",
        "check1": "Score, sets et classement après chaque match",
        "check2": "Les meilleurs de la soirée, secteur par secteur",
        "check3": "Un seul email par jour, même quand plusieurs matchs se jouent",
        "exampleLink": "Voir un exemple d'email",
        "imageAlt": "Exemple d'email de statistiques de match VolleyTracker"
      },
      "matchDetail": {
        "title": "Chaque match, décortiqué",
        "description": "Score set par set, compositions, performances : la fiche de chaque match met les deux équipes face à face, secteur par secteur.",
        "check1": "Attaque, service, réception, bloc : les deux équipes comparées",
        "check2": "Les compositions de départ de chaque set",
        "check3": "Les meilleures performances du match",
        "imageAlt": "Fiche de match VolleyTracker : comparaison des deux équipes"
      },
      "championship": {
        "title": "Lire le championnat",
        "description": "Classements, records, course au titre : replacez chaque résultat dans l'histoire du championnat, saison après saison.",
        "check1": "Combien de victoires il faut pour finir premier",
        "check2": "Classements des joueurs et des équipes par secteur",
        "check3": "Records de saison et de match",
        "imageAlt": "Course à la première place en première division masculine"
      },
      "playerAnalysis": {
        "title": "Analyse complète d'un joueur",
        "description": "Consultez plus de 50 statistiques par joueur : indicateurs, tendances, classements et dernier match. Suivez l'évolution sur plusieurs saisons et identifiez les axes de progression.",
        "check1": "Tableau de bord personnalisé avec indicateurs clés",
        "check2": "Historique multi-saisons avec tendances",
        "check3": "Plus de 50 statistiques détaillées par joueur",
        "imageAlt": "Tableau de bord joueur VolleyTracker"
      },
      "comparison": {
        "title": "Comparer deux joueurs",
        "description": "Comparez n'importe quels joueurs côte à côte sur toutes les dimensions statistiques. Identifiez les différences clés et prenez des décisions éclairées.",
        "check1": "Comparaison face-à-face sur tous les critères",
        "check2": "Indicateurs de différence (+/−) instantanés",
        "check3": "Filtres par saison, compétition et poste",
        "imageAlt": "Comparaison face-à-face VolleyTracker"
      },
      "tracking": {
        "title": "Suivi de performance",
        "description": "Suivez la progression d'un joueur match après match avec des courbes de tendance claires. Identifiez les montées en puissance et les baisses de régime.",
        "check1": "Courbes d'évolution match par match",
        "check2": "Moyenne mobile et tendances",
        "check3": "Comparaison inter-saisons",
        "imageAlt": "Suivi de performance et évolution VolleyTracker"
      }
    },
    "socialProof": {
      "officialData": {
        "title": "Données sourcées",
        "description": "Chaque statistique est reprise de la feuille de match publiée par la ligue. Les indicateurs calculés, comme le score Global, sont signalés et leur méthode est publiée."
      },
      "builtByPro": {
        "title": "Conçu par un joueur pro",
        "description": "Développé par un joueur professionnel qui comprend les besoins du terrain."
      },
      "freshStats": {
        "title": "Stats après chaque match",
        "description": "Les statistiques sont récupérées dès leur publication officielle après chaque journée."
      },
      "secure": {
        "title": "Sécurisé & confidentiel",
        "description": "Vos données et analyses restent privées. Accès authentifié et contrôlé."
      }
    },
    "beta": {
      "titlePart1": "L'ouverture est prévue pour la ",
      "titleHighlight": "reprise des championnats",
      "subtitle": "Les inscriptions ne sont pas encore ouvertes.",
      "cardTitle": "Ouverture à la reprise des championnats",
      "cardText": "La plateforme est prête et alimentée après chaque journée. Les inscriptions ouvriront avec la reprise ; d'ici là, écrivez-nous.",
      "badgeFeatures": "Trois championnats couverts",
      "badgeTeam": "Statistiques après chaque journée",
      "badgeRoadmap": "Résultats et classements en accès libre",
      "cta": "Nous contacter",
      "note": "Une question, une demande ? Le formulaire de contact arrive directement chez nous."
    },
    "hero": {
      "titleStart": "De la feuille de match",
      "titleAccent": "à la carrière",
      "subtitle": "Toutes les stats du volley pro français depuis 2013.",
      "subtitleSearch": "Cherchez un joueur ou une équipe.",
      "createAccount": "Créer un compte"
    },
    "search": {
      "label": "Rechercher un joueur ou une équipe",
      "placeholder": "Chercher un joueur ou une équipe",
      "clear": "Effacer la recherche",
      "noResults": "Aucun résultat",
      "matchesOne": "{{count}} match",
      "matchesMany": "{{count}} matchs",
      "seasonsOne": "{{count}} saison",
      "seasonsMany": "{{count}} saisons",
      "championshipsOne": "{{count}} championnat",
      "championshipsMany": "{{count}} championnats",
      "loading": "Chargement…",
      "viewProfile": "Voir la fiche",
      "stats": {
        "seasons": "Saisons",
        "matches": "Matchs",
        "victories": "Victoires",
        "points": "Points",
        "blocks": "Blocs",
        "receptions": "Réceptions",
        "attacks": "Attaques",
        "services": "Services"
      }
    },
    "records": {
      "label": "Exemples issus de la base VolleyTracker",
      "pointsRecord": "points — record sur une saison",
      "blocksRecord": "blocs — record historique",
      "attackRecord": "efficacité attaque — meilleure saison",
      "statsPerPlayer": "statistiques analysées par joueur"
    },
    "rankings": {
      "cat": {
        "points": {
          "m": "Meilleur marqueur",
          "f": "Meilleure marqueuse"
        },
        "blocks": {
          "m": "Meilleur bloqueur",
          "f": "Meilleure contreuse"
        },
        "aces": {
          "m": "Meilleur serveur",
          "f": "Meilleure serveuse"
        },
        "attack": {
          "m": "Meilleur attaquant",
          "f": "Meilleure attaquante"
        },
        "reception": {
          "m": "Meilleur réceptionneur",
          "f": "Meilleure réceptionneuse"
        },
        "setters": {
          "m": "Meilleur passeur",
          "f": "Meilleure passeuse"
        }
      },
      "unit": {
        "points": "pts",
        "blocks": "blocs",
        "aces": "aces",
        "attack": "% eff.",
        "reception": "% pos.",
        "setters": "% eff. équipe"
      },
      "division": {
        "1": {
          "m": "Division 1 masculine",
          "f": "Division 1 féminine"
        },
        "2": {
          "m": "Division 2 masculine",
          "f": "Division 2 féminine"
        }
      }
    },
    "strip": {
      "title": "Les championnats, en continu",
      "text": "Records, leaders et derniers résultats, actualisés après chaque journée."
    }
  },
  "forgotPassword": {
    "title": "Mot de passe oublié",
    "subtitle": "Entrez votre adresse email, un lien de réinitialisation vous sera envoyé.",
    "emailLabel": "Adresse email",
    "emailPlaceholder": "votre.email@example.com",
    "emailRequired": "L'email est requis",
    "emailInvalid": "L'email doit être valide",
    "submit": "Envoyer le lien",
    "submitting": "Envoi en cours…",
    "backToLogin": "Retour à la connexion",
    "genericError": "Une erreur est survenue. Veuillez réessayer."
  },
  "resetPassword": {
    "title": "Nouveau mot de passe",
    "subtitle": "Choisissez un nouveau mot de passe.",
    "checkingLink": "Vérification du lien…",
    "passwordLabel": "Mot de passe",
    "passwordPlaceholder": "Nouveau mot de passe",
    "passwordRequired": "Le mot de passe est requis",
    "submit": "Réinitialiser",
    "submitting": "Réinitialisation…",
    "backToLogin": "Retour à la connexion",
    "invalidLink": "Lien de réinitialisation invalide.",
    "invalidOrExpiredLink": "Ce lien de réinitialisation est invalide ou a expiré.",
    "genericError": "Une erreur est survenue. Veuillez réessayer."
  },
  "setPassword": {
    "title": "Bienvenue sur",
    "greetingWithName": "Bonjour {{name}}, définissez votre mot de passe pour activer votre compte.",
    "greeting": "Définissez votre mot de passe pour activer votre compte.",
    "activationSubtitle": "Activation de votre compte",
    "checkingLink": "Vérification du lien…",
    "passwordLabel": "Mot de passe",
    "passwordPlaceholder": "Choisissez un mot de passe",
    "passwordRequired": "Le mot de passe est requis",
    "submit": "Définir mon mot de passe",
    "submitting": "Enregistrement…",
    "backToLogin": "Retour à la connexion",
    "invalidLink": "Lien d'invitation invalide.",
    "invalidOrExpiredLink": "Ce lien d'invitation est invalide ou a expiré.",
    "successRedirect": "Votre mot de passe a été défini. Vous allez être redirigé vers la connexion…",
    "genericError": "Une erreur est survenue. Veuillez réessayer."
  },
  "pricing": {
    "betaLabel": "Ouverture prochaine",
    "heroTitle": "Accédez à l'analyse avancée",
    "heroTitleHighlight": "du volley",
    "heroSubtitle": "Les inscriptions ouvriront à la reprise des championnats. D'ici là, classements, calendriers, résultats et feuilles de match restent consultables librement.",
    "betaTitle": "Ouverture à la reprise des championnats",
    "betaDescription": "Les inscriptions ouvriront avec la reprise des championnats. Les tarifs seront annoncés à ce moment-là.",
    "betaFeatures": {
      "earlyAccess": {
        "title": "Trois championnats",
        "text": "Première division masculine, deuxième division masculine et première division féminine"
      },
      "directContact": {
        "title": "Après chaque journée",
        "text": "Les statistiques sont reprises dès leur publication officielle"
      },
      "onboarding": {
        "title": "Joueur par joueur",
        "text": "Le détail de chaque feuille de match, secteur par secteur"
      },
      "preferentialTerms": {
        "title": "Accès libre maintenu",
        "text": "Classements, calendriers et résultats resteront gratuits"
      }
    },
    "pricingNote": "Les tarifs seront communiqués à l'ouverture des inscriptions, prévue pour la reprise des championnats.",
    "requestAccess": "Nous contacter",
    "faqTitle": "Questions fréquentes",
    "faq": {
      "whyInvitation": {
        "question": "Quand pourrai-je créer un compte ?",
        "answer": "À la reprise des championnats. Les inscriptions sont fermées d'ici là — la plateforme, elle, continue d'enregistrer chaque rencontre."
      },
      "pricingAvailability": {
        "question": "Quand les tarifs seront-ils annoncés ?",
        "answer": "À l'ouverture des inscriptions. Une part de la plateforme — classements, calendriers, résultats et feuilles de match — restera accessible sans abonnement."
      },
      "dataSecurity": {
        "question": "Mes données sont-elles sécurisées ?",
        "answer": "Oui. Les échanges avec le site sont chiffrés (HTTPS), les mots de passe ne sont jamais stockés en clair — seule leur version hachée est conservée — et la session repose sur un cookie que les scripts de la page ne peuvent pas lire. Vos données sont traitées conformément au RGPD, comme le détaille notre",
        "privacyLink": "politique de confidentialité"
      },
      "playerPrivacy": {
        "question": "Je suis joueur : qui a accès à mon analyse et à ma comparaison ?",
        "answer": "Vous seul, et seulement avec l'abonnement Joueur Premium : votre analyse, votre comparaison à votre poste, votre Score Global détaillé, votre évolution et votre classement ne sont visibles par aucun autre abonné. Votre réussite, votre efficacité et la qualité de votre réception s'ouvrent sur votre fiche avec Joueur Premium, et ne sont visibles par aucun autre joueur ni abonné fan. Vos matchs, votre parcours et vos totaux, repris des feuilles de match publiées, restent consultables comme sur n'importe quel site de résultats."
      },
      "accessRequest": {
        "question": "Comment vous joindre en attendant ?",
        "answer": "Par le formulaire de contact. C'est le seul canal ouvert pour le moment, et il arrive directement chez nous."
      }
    },
    "ctaTitle": "Une question d'ici l'ouverture ?",
    "ctaSubtitle": "Écrivez-nous : le formulaire de contact arrive directement chez nous.",
    "login": "Se connecter",
    "legalNote": "Prix en euros, TVA non applicable (article 293 B du CGI). Abonnements : rétractation possible pendant 14 jours, le service déjà fourni restant dû au prorata. Passeports : accès immédiat valant renonciation au droit de rétractation. Résiliation en ligne : voir les",
    "legalCgv": "conditions générales de vente",
    "legalCgu": "conditions générales d'utilisation",
    "sales": {
      "heroLabel": "Abonnements",
      "heroTitle": "Toutes les statistiques",
      "heroTitleHighlight": "du volley français",
      "heroSubtitle": "Trois offres, au mois ou à la saison (12 mois). Résiliables à tout moment depuis votre espace client ; l'accès reste ouvert jusqu'au terme de la période payée.",
      "adminPreview": "Aperçu administrateur — ventes fermées au public",
      "loading": "Chargement des offres…",
      "unavailable": "Les abonnements ne sont pas disponibles pour le moment. Réessayez dans quelques instants.",
      "checkoutCancelled": "Paiement interrompu. Aucun montant n'a été débité, vous pouvez reprendre quand vous le souhaitez.",
      "periodLabel": "Périodicité",
      "periodMonthly": "Au mois",
      "periodSeason": "À la saison (12 mois)",
      "periodSaveUpTo": "jusqu'à −{{percent}} %",
      "currentPlan": "Votre offre",
      "selectedPlan": "Offre choisie",
      "perMonth": "par mois",
      "perSeason": "pour 12 mois",
      "seasonEquivalent": "soit {{amount}} par mois",
      "seasonSaving": "{{amount}} d'économie sur un an (−{{percent}} %)",
      "includesFan": "Tout Fan Premium, plus :",
      "includesAnalyst": "Tout Fan Analyste, plus :",
      "includesPlayer": "Tout Joueur Premium, plus les analyses de championnat :",
      "offers": {
        "fan": {
          "title": "Fan Premium",
          "subtitle": "Pour suivre votre club au plus près : ses matchs, ses joueurs, et tout le championnat autour.",
          "features": {
            "profiles": "Fiches joueurs et équipes détaillées, saison par saison",
            "records": "Records de saison, meilleurs joueurs par secteur, tops des matchs",
            "mvp": "Classement MVP et statistiques globales des joueurs et des matchs",
            "team": "Suivre une équipe : votre club en tête de l'accueil et le résumé de ses matchs par email"
          }
        },
        "analyst": {
          "title": "Fan Analyste",
          "subtitle": "Pour lire le championnat dans son ensemble, au-delà de votre club : effectifs, tendances, dynamiques.",
          "features": {
            "demographics": "Âge et expérience des effectifs",
            "heights": "Taille des joueurs par poste, saison et championnat",
            "nationalities": "Nationalités : évolution et fiches pays",
            "rosters": "Continuité des effectifs et mobilité entre divisions",
            "comparison": "Comparaison de compétitions",
            "titleRace": "Secteurs déterminants et course à la première place",
            "analysisTab": "Onglet Analyse de chaque compétition et avantage du terrain",
            "emails": "Les stats des matchs par email : jusqu'à 3 compétitions et 5 équipes, un email par jour de match"
          }
        },
        "player": {
          "title": "Joueur Premium",
          "subtitle": "Pour analyser vos propres performances, saison après saison.",
          "features": {
            "window": "Analyses de la saison en cours et de la précédente — les plus anciennes avec un Passeport",
            "analysis": "L'analyse complète de votre propre fiche",
            "globalScore": "Votre Score Global détaillé, secteur par secteur",
            "comparison": "Comparaisons par poste, face-à-face et récap des saisons",
            "emails": "Votre rapport de statistiques par email après chaque match",
            "statsDetail": "Votre réussite, votre efficacité, votre réception et vos moyennes, sur toute votre carrière",
            "opponents": "Vos bilans contre chaque équipe adverse"
          },
          "privacyNote": "Votre analyse détaillée n'est visible que par vous."
        },
        "playerAnalyst": {
          "title": "Joueur Analyste",
          "subtitle": "Pour analyser vos performances et lire le championnat dans son ensemble : effectifs, tendances, dynamiques."
        }
      },
      "ctaSubscribe": "S'abonner",
      "ctaLogin": "Se connecter",
      "ctaCreateAccount": "Créer un compte",
      "ctaManage": "Gérer mon abonnement",
      "ctaChange": "Changer de formule",
      "ctaLinkPlayer": "Demander le rattachement",
      "guestHint": "Un compte est nécessaire pour souscrire.",
      "wrongPersonaFan": "Offre réservée aux comptes fan. Votre compte est un compte joueur : les offres joueur incluent déjà le contenu fan, Fan Premium dans Joueur Premium et Fan Analyste dans Joueur Analyste.",
      "wrongPersonaPlayer": "Offre réservée aux comptes joueur rattachés à leur fiche : elle porte sur l'analyse de vos propres performances.",
      "notBillable": "Ce type de compte ne souscrit pas en ligne. Contactez-nous pour l'offre correspondante.",
      "adminNoCheckout": "Aperçu : la souscription se fait depuis un compte fan ou joueur.",
      "playerNotLinked": "Votre compte n'est pas encore rattaché à une fiche joueur. Cette offre porte sur l'analyse de vos propres performances : elle ne vous apporterait rien tant que le rattachement n'est pas fait.",
      "renewalNotice": "Reconduction tacite pour une durée identique (1 mois ou 12 mois), résiliable à tout moment.",
      "freeTitle": "Un compte gratuit, sans carte bancaire",
      "freeDescription": "Fan ou joueur, le compte gratuit donne accès aux classements, calendriers, résultats et feuilles de match. L'abonnement ouvre l'analyse.",
      "securePayment": "Paiement sécurisé par Stripe : aucune donnée bancaire ne transite par nos serveurs.",
      "errors": {
        "billingClosed": "Les abonnements ne sont pas encore ouverts à la souscription. Ils le seront très prochainement.",
        "generic": "Le paiement n'a pas pu être initialisé. Réessayez dans un instant.",
        "portal": "L'espace de gestion est momentanément indisponible. Réessayez dans un instant."
      },
      "faq": {
        "cancel": {
          "question": "Puis-je résilier à tout moment ?",
          "answer": "Oui, depuis votre profil, avec le bouton « Résilier mon abonnement ». La résiliation prend effet au terme de la période en cours : votre accès reste ouvert jusque-là, et rien ne vous est prélevé ensuite. Dans les 14 jours qui suivent la souscription, vous pouvez aussi vous rétracter en nous écrivant : nous vous remboursons, déduction faite du service déjà fourni au prorata."
        },
        "playerLink": {
          "question": "Comment ma fiche joueur est-elle rattachée à mon compte ?",
          "answer": "Après votre inscription, notre équipe vérifie qu'il s'agit bien de vous avant de relier votre compte à votre fiche. L'offre Joueur Premium se souscrit une fois ce rattachement fait."
        }
      },
      "withdrawalNotice": "Accès immédiat après paiement. Vous gardez 14 jours pour vous rétracter : le service déjà fourni reste dû, au prorata.",
      "playerNoCurrentSeason": "Votre fiche ne compte pas de saison en cours : l'abonnement porte sur la saison en cours et la précédente. Les Passeports ouvrent en revanche les analyses de vos saisons passées.",
      "ctaSeePassport": "Voir les Passeports",
      "hero": {
        "fan": {
          "title": "Suivez le volley français",
          "highlight": "dans le détail",
          "subtitle": "Votre compte gratuit reste gratuit. L'abonnement ouvre les statistiques détaillées, au mois ou sur 12 mois, résiliable à tout moment."
        },
        "player": {
          "title": "Analysez vos propres",
          "highlight": "performances",
          "subtitle": "Saison après saison, sur votre fiche. Au mois ou sur 12 mois, résiliable à tout moment."
        }
      },
      "badges": {
        "mostComplete": "La plus complète"
      },
      "free": {
        "title": "Gratuit",
        "subtitle": {
          "fan": "Votre compte, sans abonnement.",
          "player": "Votre compte joueur, sans abonnement."
        },
        "price": "0 €",
        "noCard": "sans carte bancaire",
        "ctaCreate": "Créer un compte gratuit",
        "current": "Votre compte actuel",
        "included": "Inclus dans votre abonnement",
        "features": {
          "rankings": "Classements et calendriers",
          "results": "Résultats et feuilles de match",
          "matchSheets": "Fiche publique des joueurs",
          "ownProfile": "Les statistiques de votre propre fiche, match par match"
        }
      },
      "complimentaryNotice": "Votre accès Premium offert court jusqu'au {{date}}. Souscrire maintenant prend le relais immédiatement."
    },
    "passport": {
      "label": "Achat unique",
      "title": "Passeports",
      "description": "L'abonnement Joueur Premium couvre la saison en cours et la précédente. Les Passeports ouvrent les analyses de vos saisons plus anciennes : un seul paiement, sans abonnement ni reconduction, accès tant que votre compte existe. C'est aussi l'offre des joueurs sans saison en cours, retraités ou partis à l'étranger.",
      "scopes": {
        "last3": "Passeport 3 saisons",
        "career": "Passeport Carrière"
      },
      "scopeDescriptions": {
        "last3": "Vos trois saisons archivées les plus récentes encore fermées, figées le jour de l'achat.",
        "career": "Toutes vos saisons archivées, y compris celles qui le deviendront."
      },
      "oneTime": "paiement unique",
      "careerFuture": "Couvre aussi les saisons qui passeront aux archives plus tard : vous ne rachetez jamais votre passé.",
      "cta": "Acheter ce Passeport",
      "withdrawalNotice": "Accès immédiat après paiement. Le Passeport étant un contenu numérique fourni aussitôt, vous renoncez à votre droit de rétractation de 14 jours : une case à cocher vous le fera confirmer sur la page de paiement.",
      "states": {
        "guest": "Le Passeport porte sur votre propre fiche : connectez-vous avec votre compte joueur.",
        "notPlayer": "Les Passeports sont réservés aux comptes joueur, sur leur propre fiche.",
        "notLinked": "Votre compte n'est pas encore rattaché à votre fiche joueur.",
        "nothingArchived": "Aucune de vos saisons n'est archivée : l'abonnement Joueur Premium couvre déjà tout votre parcours en base.",
        "allUnlocked": "Vos Passeports couvrent déjà toutes vos saisons archivées.",
        "unavailable": "Les Passeports ne sont pas disponibles pour le moment."
      },
      "seasonsCount": "{{count}} saisons ouvertes",
      "seasonsCountOne": "1 saison ouverte",
      "kept": "+ {{seasons}}, couvertes par votre abonnement : gardées avec le Passeport, sans supplément, même après la fin de l'abonnement.",
      "keptOne": "+ {{seasons}}, couverte par votre abonnement : gardée avec le Passeport, sans supplément, même après la fin de l'abonnement.",
      "moreSeasons": "+ {{count}} autres",
      "hideSeasons": "Masquer",
      "careerBadge": "Toutes vos saisons, présentes et à venir",
      "offerChanged": "Vos saisons couvertes ont changé depuis l'affichage de la page : les formules ci-dessus sont à jour. Vérifiez-les avant de payer.",
      "contents": {
        "title": "Ce que le Passeport ouvre, pour chaque saison couverte",
        "analysis": {
          "title": "Analyse :",
          "text": "votre positionnement face aux joueurs de votre poste, vos performances selon le match (domicile, enjeu, adversaire), votre forme et votre régularité."
        },
        "globalScore": {
          "title": "Score Global et classement :",
          "text": "votre note de 0 à 100 secteur par secteur, et votre rang parmi les joueurs de votre poste."
        },
        "comparison": {
          "title": "Comparaison :",
          "text": "face aux joueurs de votre poste, en face-à-face, et le récapitulatif de vos saisons."
        },
        "evolution": {
          "title": "Évolution :",
          "text": "vos courbes match par match et saison par saison."
        },
        "lineups": {
          "title": "Titularisation et rotations :",
          "text": "votre temps de jeu et vos positions de départ, set par set."
        },
        "free": "Sans Passeport, vos matchs, votre parcours et vos statistiques de base restent visibles sur toutes vos saisons."
      }
    },
    "access": {
      "faqLink": "Voir ce que voit chaque profil",
      "title": "Qui voit quoi",
      "intro": "Ce que chaque profil peut consulter sur VolleyTracker. Le tableau est calculé à partir des règles d'accès du site : il dit exactement ce qui s'affiche.",
      "contentHeader": "Contenu",
      "columns": {
        "visitor": "Sans compte",
        "free_fan": "Fan gratuit",
        "premium_fan": "Fan Premium",
        "analyst_fan": "Fan Analyste",
        "free_player": "Joueur gratuit",
        "premium_player": "Joueur Premium",
        "analyst_player": "Joueur Analyste"
      },
      "rows": {
        "public": "Classements, calendriers, résultats et fiche publique des joueurs",
        "matchDetail": "Détail des matchs : statistiques par joueur, MVP",
        "profileSummary": "Fiches joueurs et équipes : synthèse, matchs, parcours",
        "playerDetail": "Fiches joueurs en détail : total de chaque geste, points par match, palmarès, coéquipiers",
        "advancedStats": "Records, meilleurs joueurs par secteur, classement MVP, statistiques globales",
        "leagueAnalytics": "Analyses de championnat : équipes classées par secteur, âge, tailles, nationalités, mobilité, comparaisons",
        "playerInsights": "Analyse, comparaison à son poste, Score Global détaillé, évolution et classement (saison en cours et précédente)",
        "archives": "Analyses des saisons plus anciennes",
        "playerOwnData": "Rythme de saison",
        "playerStatsDetail": "Réussite, efficacité, qualité de réception, fautes de service et de réception et moyennes d'un joueur",
        "playerOpponents": "Résultats par équipe adverse",
        "statsEmail": "Rapport de statistiques par email après chaque match"
      },
      "cell": {
        "own": "Sa fiche",
        "passport": "Passeport"
      },
      "legend": {
        "all": "Accès à toutes les fiches",
        "own": "uniquement sur la fiche du joueur rattaché au compte",
        "passport": "avec un Passeport (3 saisons ou Carrière), achat unique, sur sa propre fiche",
        "none": "Pas d'accès"
      },
      "compareTitle": "Ce que chaque formule ouvre",
      "compareIntro": "Calculé à partir des règles d'accès du site : le tableau dit exactement ce qui s'affiche avec chaque compte."
    },
    "audience": {
      "switchLabel": "Type de compte",
      "fan": "Je suis fan",
      "player": "Je suis joueur"
    },
    "chooser": {
      "fan": {
        "title": "Je suis fan",
        "text": "Suivez les championnats français dans le détail : chaque match, chaque joueur, et l'analyse des effectifs.",
        "cta": "Voir les offres fans"
      },
      "player": {
        "title": "Je suis joueur",
        "text": "Analysez vos propres performances, saison après saison, et rouvrez vos saisons plus anciennes avec un Passeport.",
        "cta": "Voir les offres joueurs"
      }
    }
  },
  "features": {
    "heroBadge": "Fonctionnalités",
    "heroTitle": "Commencez gratuitement,",
    "heroTitleHighlight": "montez",
    "heroTitleEnd": "quand vous en avez besoin",
    "heroSubtitle": "Fan ou joueur, chaque offre reprend tout le contenu de la précédente et y ajoute un usage précis. Voici ce que chacune ajoute, et ce qu'elle ne contient pas.",
    "switchLabel": "Type de compte",
    "switchFan": "Je suis fan",
    "switchPlayer": "Je suis joueur",
    "level": "Niveau {{n}}",
    "tags": {
      "free": "Gratuit"
    },
    "visitor": {
      "lead": "Même sans compte,",
      "text": "les résultats, classements et calendriers de chaque saison, les fiches de match, les fiches publiques des joueurs et des équipes, l'historique des confrontations et les fiches « Comprendre les stats » restent consultables."
    },
    "offers": {
      "fanFree": {
        "title": "Fan gratuit",
        "pitch": "Suivre le championnat, chaque match et chaque joueur, sans rien payer.",
        "groups": {
          "championship": "Le championnat",
          "matches": "Les matchs",
          "profiles": "Joueurs et équipes"
        },
        "items": {
          "standings": "Classements, calendriers et journées",
          "home": "Accueil : la journée, les résultats, les prochains matchs, les meilleurs de la journée",
          "myCompetitions": "Vos championnats choisis, les autres masqués",
          "matchSheet": "Feuille de match complète : stats de chaque joueur, comparaison des équipes, analyse",
          "matchMvp": "MVP et meilleures performances du match",
          "lineups": "Compositions de départ, set par set",
          "playerSummary": "Fiche de chaque joueur en volume : matchs, sets, titularisations, points",
          "teamProfile": "Fiche équipe : saison, matchs, résultats, effectifs, histoire",
          "directory": "Annuaire des joueurs, des équipes, et recherche rapide"
        },
        "not": "Le total des attaques, contres, réceptions et services d'un joueur, ses points par match et les classements par secteur sont dans Fan Premium."
      },
      "fanPremium": {
        "title": "Fan Premium",
        "pitch": "Suivre les joueurs et votre équipe dans le détail, et savoir qui domine.",
        "inherit": "Tout le compte gratuit, plus :",
        "groups": {
          "profiles": "Les fiches en détail",
          "rankings": "Les classements",
          "team": "Votre équipe"
        },
        "items": {
          "fullPlayerProfiles": "Fiches joueurs détaillées : total des attaques, contres, réceptions et services, points par match, résultats, carrière, palmarès, coéquipiers, records",
          "teamStats": "Statistiques et records de chaque équipe",
          "competitionStats": "Onglet Statistiques de chaque compétition",
          "bestPerformances": "Meilleures performances par secteur, sur la saison ou sur un match",
          "recordsMvp": "Records par saison et classement MVP",
          "nationalities": "Joueurs par nationalité",
          "favoriteTeam": "Votre club en tête de l'accueil, et « Mon équipe » dans le menu",
          "teamEmail": "Le résumé de chacun de ses matchs par email"
        },
        "not": "Les analyses de championnat et les stats des matchs par email sont dans Fan Analyste. Le bilan par adversaire, les onglets d'analyse et la lecture des chiffres d'un joueur (réussite, efficacité, qualité de réception, fautes de service et de réception, moyennes par set) restent réservés au joueur, sur sa propre fiche."
      },
      "fanAnalyst": {
        "title": "Fan Analyste",
        "pitch": "Lire le championnat lui-même : effectifs, tendances, dynamiques.",
        "inherit": "Tout Fan Premium, plus :",
        "groups": {
          "championship": "Les analyses de championnat",
          "emails": "Les stats des matchs par email"
        },
        "items": {
          "analysisTab": "Onglet Analyse de chaque compétition : équipes classées secteur par secteur, comparaison par poste",
          "titleRace": "Secteurs déterminants, course à la première place",
          "ageHeight": "Âge, expérience et taille des effectifs",
          "continuityMobility": "Continuité des effectifs, mobilité entre divisions",
          "homeAdvantage": "Avantage du terrain, évolution des nationalités",
          "compareCompetitions": "Deux compétitions comparées",
          "matchEmails": "Jusqu'à 3 compétitions, 5 équipes et 100 matchs suivis",
          "oneEmailPerDay": "Un seul email par jour de match, quel que soit le nombre de matchs"
        },
        "not": "Les onglets d'analyse d'un joueur (Analyse, Comparaison, Score Global détaillé…) et la lecture de ses chiffres (réussite, efficacité, qualité de réception…) restent réservés au joueur lui-même, sur sa fiche."
      },
      "playerFree": {
        "title": "Joueur gratuit",
        "pitch": "Votre fiche vous appartient : vos matchs et votre carrière ne se paient pas.",
        "groups": {
          "season": "Ma saison",
          "ownProfile": "Votre fiche : vos matchs et vos totaux",
          "rest": "Le reste du championnat"
        },
        "items": {
          "nextMatch": "Prochain match, et votre bilan contre cet adversaire",
          "form": "Votre forme, votre calendrier et le classement de votre équipe",
          "milestones": "Vos prochains paliers de carrière",
          "statsArrived": "Un avis dès que les stats de votre match sont arrivées",
          "matchesResults": "Vos matchs, vos résultats et vos totaux, match par match et saison par saison",
          "career": "Votre carrière, le rythme de vos saisons, votre palmarès",
          "teammatesOpponents": "Vos coéquipiers",
          "missingSheet": "Une feuille de stats manque : envoyez-la",
          "fanFree": "Tout ce qu'ouvre le compte Fan gratuit",
          "seasonHook": "Votre efficacité d'attaque de la saison en cours (votre réception positive si vous êtes libéro)"
        },
        "not": "Votre réussite, votre efficacité match par match, la qualité de votre réception, vos moyennes, vos bilans contre chaque adversaire, vos records et le rapport par email après chaque match sont dans Joueur Premium. Compte rattaché à votre fiche requis, après vérification."
      },
      "playerPremium": {
        "title": "Joueur Premium",
        "pitch": "Analyser votre jeu, vous situer à votre poste, recevoir votre rapport après chaque match.",
        "inherit": "Tout le compte gratuit, plus :",
        "groups": {
          "ownProfile": "Sur votre fiche",
          "emails": "Par email",
          "championship": "Tout le championnat"
        },
        "items": {
          "analysis": "Analyse : contextes de match, régularité, forme dans le temps",
          "globalScore": "Score Global détaillé et classement à votre poste",
          "comparison": "Comparaison par poste, face-à-face avec les équipes et les joueurs, récap des saisons",
          "usage": "Titularisation, rotations, évolution",
          "setters": "Distribution (passeurs) ou connexions avec vos passeurs (attaquants)",
          "confrontation": "Onglet Confrontation sur la fiche d'un autre joueur : vous face à lui",
          "postMatchReport": "Votre rapport après chaque match : stats, moyennes, records",
          "correctionNotice": "Un avis quand vos chiffres sont corrigés",
          "fanPremiumContent": "Tout le contenu Fan Premium, sans supplément",
          "statsDetail": "Votre réussite, votre efficacité, la qualité de votre réception, vos fautes et vos moyennes, match par match et sur toute votre carrière",
          "opponents": "Vos bilans contre chaque équipe adverse, à domicile et à l'extérieur"
        },
        "not": "Les analyses couvrent la saison en cours et la précédente ; vos statistiques détaillées, toute votre carrière. Sur la fiche d'un autre joueur, vous voyez ses totaux, pas sa réussite ni son efficacité. Les analyses de championnat sont dans Joueur Analyste ; suivre une équipe et les stats des matchs par email restent des offres fans."
      },
      "playerAnalyst": {
        "title": "Joueur Analyste",
        "pitch": "Votre analyse, et le championnat lu dans son ensemble : effectifs, tendances, dynamiques.",
        "inherit": "Tout Joueur Premium, plus :",
        "groups": {
          "championship": "Analyses de championnat"
        },
        "not": "Les stats des matchs par email (compétitions, équipes, matchs suivis) restent une offre fan."
      }
    },
    "passports": {
      "title": "Passeports",
      "text": "Vos saisons plus anciennes, rouvertes sur votre fiche : Passeport 3 saisons ou Passeport Carrière. Un seul achat, sans abonnement, ouvert aussi aux joueurs qui n'ont pas de saison en cours."
    },
    "privacy": {
      "title": "Ce que voient les autres",
      "text": "Un abonné fan voit vos matchs, votre carrière, vos totaux et vos records. Votre réussite, votre efficacité, la qualité de votre réception, votre analyse, votre comparaison et votre Score Global détaillé ne sont ouverts à aucun autre joueur ni abonné fan : ils sont à vous."
    },
    "digestExample": {
      "text": "À quoi ressemblent les stats des matchs par email ?",
      "link": "Voir des exemples"
    },
    "media": {
      "title": "Journalistes et rédactions",
      "text": "L'offre Média, sur devis et après validation, reprend le contenu Fan Analyste et y ajoute les compositions des équipes, le bilan par adversaire sur toutes les fiches et une licence de publication des captures et des chiffres. Elle ne comprend pas les stats des matchs par email.",
      "link": "Nous écrire"
    },
    "pricingCta": {
      "title": "Les prix sont sur la page Tarifs",
      "text": "Cette page dit ce que contient chaque offre. Les montants, les durées et le détail ligne par ligne sont sur les pages Tarifs, une pour les fans, une pour les joueurs.",
      "fans": "Tarifs fans",
      "players": "Tarifs joueurs"
    },
    "signup": {
      "openText": "Le compte gratuit se crée en une minute, sans carte bancaire.",
      "closedText": "Les inscriptions ne sont pas ouvertes pour le moment. Vous avez déjà un compte ?",
      "createFan": "Créer un compte fan gratuit",
      "createPlayer": "Créer un compte joueur gratuit",
      "login": "Se connecter"
    }
  },
  "register": {
    "title": "Créer un compte",
    "subtitle": "Rejoignez VolleyTracker et accédez aux statistiques du volley pro français",
    "firstnameLabel": "Prénom",
    "firstnameRequired": "Le prénom est requis",
    "lastnameLabel": "Nom",
    "lastnameRequired": "Le nom est requis",
    "nameMinLength": "Minimum 2 caractères",
    "emailLabel": "Email",
    "emailAriaLabel": "Adresse email",
    "emailRequired": "L'email est requis",
    "emailInvalid": "L'email n'est pas valide",
    "passwordLabel": "Mot de passe",
    "passwordRequired": "Le mot de passe est requis",
    "showPassword": "Afficher le mot de passe",
    "hidePassword": "Masquer le mot de passe",
    "confirmPasswordLabel": "Confirmer le mot de passe",
    "confirmPasswordRequired": "La confirmation est requise",
    "passwordsMismatch": "Les mots de passe ne correspondent pas",
    "accountTypeLabel": "Type de compte",
    "accountTypeRequired": "Veuillez sélectionner un type de compte",
    "freeNoCard": "Gratuit, sans carte bancaire",
    "visitorTitle": "Visiteur",
    "visitorDescription": "Accès public",
    "playerTitle": "Joueur",
    "playerDescription": "Retrouver ma fiche et mes statistiques de match",
    "playerPlusTitle": "Joueur+",
    "playerPlusDescription": "Stats avancées",
    "coachTitle": "Coach",
    "coachDescription": "Tableau de bord de l'équipe",
    "totalTitle": "Total",
    "totalDescription": "Accès complet",
    "playerIdLabel": "ID Joueur (optionnel)",
    "playerIdAriaLabel": "ID Joueur",
    "playerIdHint": "Si vous êtes joueur et connaissez votre ID dans notre base",
    "teamIdLabel": "ID équipe (optionnel)",
    "teamIdAriaLabel": "ID équipe",
    "teamIdHint": "Si vous êtes coach, indiquez l'ID de votre équipe",
    "termsAccept": "J'accepte les",
    "termsCgu": "Conditions générales d'utilisation",
    "termsAnd": "et j'ai pris connaissance de la",
    "termsPrivacy": "Politique de confidentialité",
    "termsGdpr": "Mes données seront traitées conformément au RGPD.",
    "termsRequired": "Vous devez accepter les conditions pour continuer",
    "ageConfirm": "Je certifie avoir au moins 15 ans.",
    "ageRequired": "Vous devez avoir au moins 15 ans pour créer un compte",
    "submit": "Créer mon compte",
    "submitting": "Création en cours…",
    "haveAccount": "Vous avez déjà un compte ?",
    "signIn": "Se connecter",
    "successMessage": "Compte créé avec succès ! Redirection vers la page de connexion…",
    "errorGeneric": "Une erreur est survenue lors de la création du compte",
    "fanTitle": "Fan",
    "fanDescription": "Suivre les compétitions, les équipes et les joueurs",
    "coachScoutNote": "Vous êtes coach, club ou agent ?",
    "coachScoutLink": "Nous contacter",
    "verifyTitle": "Confirmez votre adresse email",
    "verifyMessage": "Votre compte est créé. Pour l'activer, cliquez sur le lien que nous venons d'envoyer à",
    "verifySpam": "Le message peut mettre quelques minutes à arriver. Pensez à vérifier vos spams.",
    "verifyResend": "Renvoyer le lien",
    "verifyResending": "Envoi en cours…",
    "verifyResendDone": "Si votre adresse est associée à un compte non confirmé, un nouveau lien vient d'être envoyé.",
    "verifyBackToLogin": "Retour à la connexion",
    "registrationClosed": "Les inscriptions sont momentanément fermées. Réessayez plus tard ou écrivez-nous via le formulaire de contact.",
    "claimTitle": "Votre fiche joueur",
    "claimLead": "Choisissez la fiche qui vous correspond. Elle sera rattachée à votre compte une fois votre demande confirmée par un message Instagram ou Messenger — ou examinée manuellement si vous n'avez ni l'un ni l'autre —, puis validée par notre équipe.",
    "claimSkip": "Je ne trouve pas ma fiche : je m'inscris sans, et je vous écrirai.",
    "verifyClaimNext": "Ensuite, connectez-vous : vous y trouverez le message à copier et à envoyer au compte Instagram @{{account}} pour confirmer le rattachement de votre fiche.",
    "verifyClaimNextFacebook": "Ensuite, connectez-vous : vous y trouverez le message à copier et à envoyer sur Messenger à la page Facebook de VolleyTracker pour confirmer le rattachement de votre fiche.",
    "verifyClaimNextManual": "Votre demande de rattachement sera examinée manuellement par notre équipe, sans pièce d'identité. Vous recevrez un email dès qu'elle sera tranchée.",
    "acquisitionLabel": "Comment nous avez-vous connus ?",
    "optional": "(facultatif)",
    "acquisitionPlaceholder": "Choisir une réponse",
    "googleBannerTitle": "Inscription avec Google",
    "googleUseOther": "Utiliser une autre adresse",
    "googleExpired": "Votre connexion Google a expiré. Recommencez avec le bouton Google.",
    "googleAccountExists": "Un compte existe déjà avec cette adresse : connectez-vous avec Google depuis la page de connexion."
  },
  "positions": {
    "RA": {
      "short": "RA",
      "label": "Réceptionneur-Attaquant",
      "plural": "Réceptionneurs-Attaquants",
      "labelF": "Réceptionneuse-Attaquante",
      "pluralF": "Réceptionneuses-Attaquantes"
    },
    "CE": {
      "short": "CE",
      "label": "Central",
      "plural": "Centraux",
      "labelF": "Centrale",
      "pluralF": "Centrales"
    },
    "PO": {
      "short": "PO",
      "label": "Pointu",
      "plural": "Pointus",
      "labelF": "Pointue",
      "pluralF": "Pointues"
    },
    "PA": {
      "short": "PA",
      "label": "Passeur",
      "plural": "Passeurs",
      "labelF": "Passeuse",
      "pluralF": "Passeuses"
    },
    "LI": {
      "short": "LI",
      "label": "Libéro",
      "plural": "Libéros"
    },
    "other": {
      "short": "?",
      "label": "Inconnu",
      "plural": "Autres",
      "labelF": "Inconnue"
    }
  },
  "matchCalendar": {
    "close": "Fermer",
    "round": "Journée",
    "typeLabel": "Type",
    "phaseLabel": "Phase",
    "opponent": "Adversaire",
    "preMatch": "Voir l'avant-match",
    "matchStats": "Voir les statistiques du match",
    "type": {
      "league": "Championnat",
      "cup": "Coupe"
    },
    "phase": {
      "regular": "Saison régulière",
      "playoffs": "Phase finale",
      "other": "Autre phase"
    },
    "previousMonth": "Mois précédent",
    "nextMonth": "Mois suivant",
    "home": "Domicile",
    "away": "Extérieur",
    "homeLong": "À domicile contre {{opponent}}",
    "awayLong": "À l'extérieur chez {{opponent}}",
    "viewLabel": "Affichage des matchs à venir",
    "list": "Liste",
    "calendar": "Calendrier"
  },
  "rounds": {
    "title": "Journées",
    "subtitle": "Résultats et calendrier, journée par journée, chaque division à côté des autres.",
    "loading": "Chargement des journées…",
    "loadingShort": "Chargement…",
    "error": "Les journées n'ont pas pu être chargées.",
    "gamesError": "Les matchs de cette journée n'ont pas pu être chargés.",
    "retry": "Réessayer",
    "empty": "Aucune journée disponible pour l'instant.",
    "noGames": "Aucun match dans cette journée.",
    "round": "Journée {{number}}",
    "playoffRound": "Phase finale · match {{number}}",
    "previous": "Journée précédente",
    "next": "Journée suivante",
    "choose": "Choisir une journée",
    "allPlayedOne": "1 match joué",
    "nonePlayedOne": "1 match à jouer",
    "versus": "–",
    "dateTbc": "Date à confirmer",
    "searchPlaceholder": "Numéro ou date (ex. 12, octobre)",
    "allPlayed": "{{games}} matchs joués",
    "nonePlayed": "{{games}} matchs à jouer",
    "somePlayed": "{{finished}} {finished, plural, one {match joué} other {matchs joués}} sur {{games}}",
    "backToCurrent": "Journée en cours",
    "fullCompetition": "Classement et statistiques de la compétition",
    "statsAvailable": "Statistiques disponibles",
    "status": {
      "finished": "Terminé",
      "in_progress": "En cours",
      "result_pending": "En attente",
      "not_played": "Non joué"
    }
  },
  "dashboard": {
    "loading": "Chargement de l'accueil…",
    "loadingShort": "Chargement…",
    "error": {
      "title": "Une erreur est survenue",
      "retry": "Réessayer",
      "loadFailed": "Impossible de charger les données de l'accueil."
    },
    "matchDay": {
      "label": "Journée en cours",
      "gameweek": "Journée {{number}}",
      "dayFinished": "journée terminée",
      "firstKickoff": "premier match à {{time}}",
      "summary": {
        "inProgress": "{{count}} en cours",
        "finishedOne": "{{count}} terminé",
        "finishedMany": "{{count}} terminés",
        "pending": "{{count}} en attente",
        "scheduled": "{{count}} à venir"
      },
      "status": {
        "scheduled": "À venir",
        "in_progress": "En cours",
        "finished": "Terminé",
        "result_pending": "En attente"
      },
      "kickoff": "Début du match",
      "inProgressDetail": "Score publié en fin de match",
      "pendingDetail": "Résultat en cours d'import",
      "previous": "Matchs précédents",
      "next": "Matchs suivants",
      "cardLabel": "{{home}} contre {{away}}, {{status}}, {{competition}}",
      "emptyTitle": "Aucun match programmé",
      "emptyText": "Aucun match dans les deux prochaines semaines. Les rencontres apparaîtront ici dès la publication du calendrier.",
      "span": "Du {{from}} au {{to}}"
    },
    "seasonReview": {
      "eyebrow": "Saison {{season}}",
      "title": "Intersaison",
      "resume": "Reprise le {{date}}",
      "notPublished": "Le calendrier de la nouvelle saison n'est pas encore publié.",
      "champion": "Champion · {{competition}}",
      "finalSingle": "Finale gagnée {{score}} contre {{opponent}}",
      "finalSeries": "Finale gagnée {{wins}}–{{losses}} contre {{opponent}}",
      "finalGoldenSet": "Finale gagnée au set en or contre {{opponent}}",
      "revisit": "Revoir la saison {{season}}"
    },
    "rankLabel": "{{rank}}e au classement",
    "competitionLink": "Voir la compétition {{name}}",
    "playoffs": "Play-offs",
    "matches": {
      "title": "Matchs",
      "tabResults": "Derniers résultats",
      "tabUpcoming": "À venir",
      "allRounds": "Toutes les journées",
      "resultsEmpty": "Aucun match joué pour l'instant. Les résultats apparaîtront après la première journée.",
      "upcomingEmpty": "Aucun match n'est encore programmé. Le calendrier apparaîtra dès sa publication.",
      "resultsError": "Les résultats n'ont pas pu être chargés.",
      "upcomingError": "Les prochains matchs n'ont pas pu être chargés.",
      "titleUpcoming": "Prochains matchs"
    },
    "performers": {
      "title": "Les meilleurs de la journée",
      "titleWithGameweek": "Les meilleurs de la {{gameweek}}",
      "gameweekNumber": "journée {{number}}",
      "topScorers": "Points",
      "topAces": "Aces",
      "topAttack": "Attaque",
      "topReception": "Réception",
      "mvps": "MVP",
      "pts": "pts",
      "emptyData": "Aucune donnée disponible",
      "emptyMvp": "Aucun MVP disponible",
      "notStarted": "La saison n'a pas encore commencé. Les performances apparaîtront après la première journée."
    },
    "records": {
      "title": "Records de la saison",
      "labels": {
        "topScorer": "Meilleur marqueur",
        "topAces": "Aces",
        "topBlocker": "Blocs",
        "topAttacker": "Attaque"
      },
      "units": {
        "topScorer": "pts",
        "topAces": "aces",
        "topBlocker": "blocs",
        "topAttacker": "pts"
      },
      "notStarted": "Les records apparaîtront après la première journée.",
      "afterOneGameweek": "après {{count}} journée",
      "afterGameweeks": "après {{count}} journées"
    },
    "scope": {
      "label": "Mes championnats",
      "hiddenOne": "{{names}} masqué",
      "hiddenMany": "{{names}} masqués",
      "show": "Afficher ici",
      "showingAll": "Tous les championnats",
      "back": "Voir seulement mes championnats",
      "resultsEmpty": "Aucun résultat récent dans vos championnats.",
      "upcomingEmpty": "Aucun match à venir dans vos championnats pour le moment."
    },
    "lineup": {
      "title": "Plateau de la saison",
      "intro": "Avant la première journée : chaque équipe située par rapport à la saison {{season}}.",
      "introNoPrevious": "Avant la première journée : les équipes de la saison.",
      "competitionLink": "Calendrier et fiche de la compétition",
      "status": {
        "champion": "Champion {{season}}",
        "stayedFirst": "1er en {{season}}",
        "stayed": "{{rank}}e en {{season}}",
        "stayedNoRank": "Présent en {{season}}",
        "promotedFirst": "Promu de {{from}} (1er)",
        "promoted": "Promu de {{from}} ({{rank}}e)",
        "promotedNoRank": "Promu de {{from}}",
        "relegatedFirst": "Relégué de {{from}} (1er)",
        "relegated": "Relégué de {{from}} ({{rank}}e)",
        "relegatedNoRank": "Relégué de {{from}}",
        "new": "Nouveau venu"
      }
    },
    "locked": {
      "badge": "Premium",
      "title": "Réservé à l'offre Premium",
      "cta": "Découvrir Premium",
      "included": "Inclus dans Premium",
      "performers": "Meilleur marqueur, serveur, attaquant, réceptionneur et MVP de chaque match de la dernière journée.",
      "records": "Meilleur marqueur, serveur, bloqueur et attaquant de chaque compétition."
    },
    "standings": {
      "title": "Classements",
      "computedSource": "Recalculé d'après les résultats, en attendant le classement officiel.",
      "team": "Équipe",
      "points": "Pts",
      "won": "V",
      "lost": "D",
      "fullRanking": "Classement complet",
      "notStarted": "Le classement apparaîtra après la première journée."
    },
    "kpis": {
      "sentence": "VolleyTracker couvre <b>{{players}}</b> joueurs, <b>{{teams}}</b> équipes, <b>{{games}}</b> matchs et <b>{{competitions}}</b> compétitions."
    },
    "shortcuts": {
      "title": "Accès rapide",
      "competitions": "Compétitions",
      "teams": "Équipes",
      "players": "Joueurs",
      "compare": "Comparer"
    },
    "club": {
      "eyebrow": "Mon équipe",
      "nextGame": "Prochain match",
      "noNextGame": "Aucun match programmé pour le moment"
    }
  },
  "coachDashboard": {
    "phase": {
      "label": "Phases prises en compte",
      "all": "Toute la saison",
      "regular": "Saison régulière",
      "qualification": "Phases annexes",
      "playoffs": "Play-offs"
    },
    "title": "Tableau de bord coach",
    "loading": "Chargement…",
    "errorTitle": "Une erreur est survenue",
    "retry": "Réessayer",
    "contextLabel": "Contexte",
    "competition": "Compétition",
    "season": "Saison",
    "team": "Équipe",
    "role": "Rôle",
    "emptyTitle": "Aucune affectation",
    "emptyText": "Vous n'avez aucune affectation équipe/compétition. Contactez un administrateur.",
    "errorLoadAssignment": "Impossible de charger votre affectation. Contactez un administrateur.",
    "errorLoadAssignments": "Impossible de charger vos affectations."
  },
  "playerDashboard": {
    "validation": {
      "title": "Compte en attente de validation",
      "text": "Votre compte a bien été créé mais doit être validé par un administrateur avant de pouvoir accéder au tableau de bord.",
      "hint": "Vous recevrez un email lorsque votre compte sera activé."
    },
    "loading": "Chargement de votre tableau de bord…",
    "errorTitle": "Une erreur est survenue",
    "retry": "Réessayer",
    "retryAria": "Réessayer le chargement",
    "opponentUnknown": "Adversaire inconnu",
    "errors": {
      "noPlayer": "Aucun joueur associé à votre compte.",
      "forbidden": "Accès non autorisé.",
      "sessionExpired": "Session expirée, veuillez vous reconnecter.",
      "loadProfile": "Impossible de charger votre profil.",
      "loadDashboard": "Impossible de charger les données du tableau de bord."
    },
    "notif": {
      "matchTodayTitle": "Match aujourd'hui !",
      "matchSoonTitle": "Prochain match dans {{count}} jour",
      "matchSoonTitlePlural": "Prochain match dans {{count}} jours",
      "accountPendingTitle": "Compte en attente de validation",
      "accountPendingMsg": "Votre compte doit être validé par un administrateur."
    },
    "header": {
      "myProfile": "Ma fiche",
      "lastSeasonLabel": "Dernière saison :"
    },
    "nextMatch": {
      "kicker": "Prochain match",
      "record": "Votre bilan contre eux",
      "recordValue": "{{wins}} V · {{losses}} D",
      "recordSub": "sur {{count}} {count, plural, one {match disputé} other {matchs disputés}}",
      "firstMeeting": "Première rencontre",
      "form": "Leur forme · {{rank}}e",
      "formFirst": "Leur forme · 1er",
      "formSub": "{{won}} {won, plural, one {victoire} other {victoires}}, {{lost}} {lost, plural, one {défaite} other {défaites}}",
      "link": "Tous vos matchs à venir"
    },
    "form": {
      "title": "Votre forme",
      "metricAria": "Statistique affichée",
      "chartAria": "Vos 5 derniers matchs, du plus ancien au plus récent : {{values}}",
      "average": "moy. saison {{value}}",
      "summary": "{{above}} match(s) sur {{total}} au-dessus de votre moyenne de la saison",
      "link": "Voir votre évolution",
      "empty": "Votre forme apparaîtra après votre premier match avec feuille de statistiques.",
      "metric": {
        "points": "Points",
        "attack": "Attaque",
        "block": "Bloc",
        "aces": "Aces",
        "reception": "Réception"
      },
      "previousSeason": "Saison {{season}} : la nouvelle saison n'a pas encore commencé pour vous."
    },
    "milestones": {
      "title": "Vos prochains paliers",
      "matches": "{{target}} matchs",
      "sets": "{{target}} sets",
      "points": "{{target}} points",
      "blocks": "{{target}} blocs",
      "aces": "{{target}} aces",
      "receptions": "{{target}} réceptions",
      "remaining": "encore {{count}}",
      "scope": "En carrière, sur les matchs suivis par VolleyTracker."
    },
    "standings": {
      "title": "Votre équipe au classement",
      "nextOpponent": "prochain adv.",
      "points": "{{count}} pts",
      "link": "Classement complet"
    },
    "sheet": {
      "missing": "Feuille de stats manquante : {{home}} – {{away}} ({{date}})",
      "missingHint": "Le club ou le statisticien l'a peut-être : transmettez-la, nous la vérifions avant de l'intégrer.",
      "dismiss": "Je ne l'ai pas",
      "send": "Envoyer",
      "public": "Votre fiche publique, visible sans compte",
      "publicIndexable": "Les moteurs de recherche peuvent la référencer.",
      "publicMinor": "Elle ne peut pas être partagée tant que vous avez moins de 18 ans, et n'apparaît ni dans les effectifs publics ni dans les moteurs de recherche.",
      "publicAction": "Voir",
      "title": "Votre fiche",
      "share": "Votre carte de joueur, prête à partager",
      "shareAction": "Partager",
      "report": "Une erreur sur votre fiche ?",
      "reportAction": "Signaler",
      "reportSubject": "Erreur sur ma fiche joueur"
    },
    "calendar": {
      "title": "Votre calendrier",
      "noUpcoming": "Aucun match à venir pour l'instant.",
      "tabUpcoming": "À venir",
      "tabPlayed": "Déjà joués",
      "linkPlayed": "Tous vos matchs joués",
      "noPlayed": "Aucun match joué pour l'instant.",
      "resultPending": "Résultat en attente",
      "win": "Victoire",
      "loss": "Défaite"
    },
    "statsBanner": {
      "kicker": "Vos stats sont arrivées",
      "win": "Victoire",
      "loss": "Défaite",
      "vs": "contre",
      "at": "à",
      "points": "pts",
      "sets": "sets",
      "attack": "en attaque",
      "aces": "aces",
      "blocks": "blocs",
      "receptions": "réceptions",
      "positive": "positives",
      "viewMatch": "Voir le match",
      "viewStats": "Voir les stats",
      "emailUpsell": "Recevez le rapport complet par email après chaque match (Premium)",
      "close": "Masquer ces stats",
      "set": "set",
      "ace": "ace",
      "block": "bloc",
      "reception": "réception"
    }
  },
  "settings": {
    "loading": "Chargement des paramètres…",
    "premiumOnlyText": "Les rapports de statistiques par email font partie de l'offre Premium. Votre compte gratuit conserve l'accès à vos statistiques sur le site.",
    "seePlans": "Voir les offres",
    "postMatchTitle": "Rapport post-match",
    "postMatchText": "Recevoir un email avec vos statistiques après chaque match",
    "statsCorrectionTitle": "Correction de stats",
    "statsCorrectionText": "Recevoir un email quand vos statistiques sont corrigées",
    "saving": "Enregistrement…",
    "loadError": "Impossible de charger vos préférences",
    "saveSuccess": "Préférences enregistrées",
    "saveError": "Erreur lors de la sauvegarde",
    "favoriteTeam": {
      "title": "Mon équipe",
      "intro": "Le club que vous suivez : son prochain match en tête de l'accueil, son classement ouvert d'emblée, et le lien « Mon équipe » du menu.",
      "playerDefault": "Votre équipe, choisie par défaut",
      "change": "Changer",
      "chooseOther": "Suivre une autre équipe",
      "remove": "Ne plus suivre",
      "pickerLabel": "Équipe suivie",
      "pickerPlaceholder": "Choisir une équipe",
      "pickerSearch": "Rechercher une équipe ou une ville…",
      "cancel": "Annuler",
      "genderM": "Masculin",
      "genderF": "Féminin",
      "saved": "Équipe suivie enregistrée",
      "removed": "Vous ne suivez plus d'équipe",
      "emailTitle": "Résumé de match par email",
      "emailText": "Après chaque match de votre équipe, une fois ses statistiques importées : le score, les meilleurs joueurs des deux équipes et quelques chiffres. Inclus dans Fan Premium, désinscription en un clic dans chaque email.",
      "emailNeedsTeam": "Choisissez d'abord l'équipe que vous suivez.",
      "premiumTitle": "Réservé à l'offre Fan Premium",
      "premiumText": "Suivre une équipe fait partie de l'offre Fan Premium : votre club en tête de l'accueil et, si vous le souhaitez, le résumé de ses matchs par email."
    },
    "title": "Notifications",
    "subtitle": "Choisissez ce que vous recevez par email",
    "notificationsEmail": "Notifications email",
    "premiumOnlyTitle": "Réservé à l'offre Premium",
    "save": "Enregistrer"
  },
  "userProfile": {
    "loading": "Chargement du profil…",
    "retry": "Réessayer",
    "edit": "Modifier",
    "firstname": "Prénom",
    "lastname": "Nom",
    "email": "Email",
    "memberSince": "Membre depuis",
    "emailAdminHelp": "Contactez un administrateur pour modifier votre adresse email.",
    "cancel": "Annuler",
    "save": "Enregistrer",
    "saving": "Enregistrement…",
    "noLinkedPlayer": "Aucun joueur lié",
    "noLinkedPlayerText": "Votre compte n'est pas encore lié à un profil de joueur.",
    "noLinkedPlayerHelp": "Choisissez votre fiche et confirmez la demande par un message Instagram ou Messenger — ou, sans l'un ni l'autre, par un examen manuel — pour accéder à vos statistiques personnelles.",
    "password": "Mot de passe",
    "changePassword": "Changer le mot de passe",
    "currentPassword": "Mot de passe actuel",
    "newPasswordLabel": "Nouveau mot de passe",
    "confirmPassword": "Confirmer le mot de passe",
    "updating": "Modification…",
    "deleteAccountText": "Cette action est irréversible. Toutes vos données seront définitivement supprimées.",
    "deleteConfirmQuestion": "Êtes-vous sûr de vouloir supprimer votre compte ?",
    "deleteSubscriptionWarning": "Votre abonnement en cours sera résilié immédiatement, sans remboursement de la période restante. Pour garder l'accès jusqu'à l'échéance, résiliez l'abonnement sans supprimer votre compte.",
    "deleteCancelledSubscriptionWarning": "Votre abonnement est déjà résilié mais reste actif jusqu'au {{date}} : supprimer votre compte y met fin immédiatement, sans remboursement.",
    "deletePassportWarning": "Vos Passeports sont attachés à votre compte : ils seront perdus avec lui, sans remboursement.",
    "deletePasswordLabel": "Entrez votre mot de passe pour confirmer",
    "passwordPlaceholder": "Mot de passe",
    "confirmDelete": "Confirmer la suppression",
    "deleting": "Suppression…",
    "roleSuperAdmin": "Super administrateur",
    "rolePlayer": "Joueur",
    "roleCoach": "Coach",
    "rolePremium": "Premium",
    "roleAnalyst": "Fan Analyste",
    "loadError": "Erreur lors du chargement du profil",
    "updateError": "Erreur lors de la mise à jour du profil",
    "passwordChangeError": "Erreur lors du changement de mot de passe",
    "deleteError": "Erreur lors de la suppression du compte",
    "passwordsMismatch": "Les mots de passe ne correspondent pas",
    "subscriptionCancelled": "Votre abonnement ne sera pas reconduit. Votre accès reste ouvert jusqu'à la date ci-dessus.",
    "subscriptionScheduledChange": "Changement programmé : à partir du {{date}}, votre abonnement passera à {{plan}}, au tarif de {{price}}. D'ici là, votre formule actuelle reste active et rien de plus n'est prélevé.",
    "subscriptionPastDue": "Le dernier prélèvement n'a pas abouti. Votre accès n'est pas interrompu : ouvrez « Gérer mon abonnement » pour confirmer le paiement ou changer de moyen de paiement.",
    "subscriptionManage": "Gérer mon abonnement",
    "subscriptionUnavailable": "Les informations d'abonnement ne sont pas disponibles pour le moment.",
    "subscriptionError": "L'espace de gestion est momentanément indisponible. Réessayez dans un instant.",
    "sections": {
      "access": "Mon accès",
      "player": "Ma fiche joueur",
      "account": "Compte",
      "security": "Sécurité",
      "notifications": "Notifications"
    },
    "viewAnalyses": "Voir mes analyses",
    "subscriptionCancelShort": "Résilier mon abonnement",
    "viewMyProfile": "Voir ma fiche",
    "name": "Nom",
    "changeShort": "Changer",
    "accountLabel": "Compte",
    "deleteAccountShort": "Suppression définitive",
    "delete": "Supprimer",
    "upgradeTitle": "Compléter mon accès",
    "upgradePremium": "L'analyse complète de votre fiche, saison en cours et précédente.",
    "upgradePlayerAnalyst": "Les analyses de championnat en plus de votre fiche : âge, tailles, nationalités, mobilité, comparaisons.",
    "upgradeSeeOffer": "Voir l'offre",
    "upgradeBuy": "Acheter",
    "upgradeCareer": "Ouvre les {{count}} saisons restantes ({{range}}) et les suivantes",
    "upgradeCareerOne": "Ouvre la saison restante ({{range}}) et les suivantes",
    "upgradeLast3": "Ouvre {{range}}",
    "status": {
      "active": "Actif",
      "renewsOn": "Se renouvelle le {{date}}",
      "endsOn": "Accès jusqu'au {{date}}",
      "granted": "Accès offert par VolleyTracker",
      "freePlayer": "Vos statistiques, match par match",
      "freeFan": "Classements, résultats et feuilles de match",
      "noCurrentSeason": "Pas de saison en cours sur votre fiche",
      "perMonth": "{{amount}} / mois",
      "perYear": "{{amount}} / 12 mois",
      "nextCharge": "Prochain prélèvement le {{date}}",
      "complimentaryUntil": "Offert jusqu'au {{date}}"
    },
    "tiles": {
      "openSeasons": "Saisons ouvertes",
      "openSplit": "{{subscription}} abonnement · {{passport}} Passeport",
      "analysis": "Analyse",
      "analysisDetail": "Score Global, comparaisons, évolution",
      "closed": "Fermée",
      "archives": "Archives",
      "closedCount": "{{count}} fermées",
      "closedCountOne": "1 fermée",
      "purchases": "Mes achats",
      "passportCount": "{{count}} Passeports",
      "subscription": "Abonnement",
      "unavailable": "Non disponible",
      "needsCurrentSeason": "Réservé à une saison en cours",
      "included": "Inclus",
      "notIncluded": "Non inclus",
      "detailedStats": "Stats détaillées",
      "detailedStatsDetail": "Matchs, fiches, records",
      "leagueAnalyses": "Analyses championnat",
      "withAnalyst": "Avec Fan Analyste",
      "withFanPremium": "Avec Fan Premium",
      "statsAndAnalyses": "Stats et analyses",
      "statsAndAnalysesDetail": "Matchs, fiches, records, championnats",
      "boughtOn": "Acheté le {{date}} · {{amount}}",
      "passportBoughtOn": "{{name}} le {{date}}"
    },
    "upgradeOffers": "{{count}} offres",
    "upgradeOffer": "1 offre",
    "upgradeToAnalyst": "Passer à Fan Analyste",
    "seeFanOffers": "Voir les offres fans",
    "passportMoreInfo": "Ce que contient un Passeport",
    "history": {
      "filters": {
        "search": "Rechercher",
        "toggle": "Filtres",
        "from": "Du",
        "to": "Au",
        "types": "Types de lignes",
        "reset": "Effacer les filtres",
        "noResult": "Aucune ligne ne correspond à ces critères.",
        "perPage": "Par page",
        "all": "Tout",
        "range": "{{from}}–{{to}} sur {{total}}",
        "page": "Page {{current}} / {{total}}",
        "prev": "Page précédente",
        "next": "Page suivante"
      },
      "categories": {
        "payment": "Paiements",
        "subscription": "Souscriptions",
        "renewal": "Renouvellements",
        "change": "Changements",
        "cancellation": "Résiliations",
        "end": "Fins d'abonnement",
        "passport": "Passeports",
        "refund": "Remboursements",
        "failure": "Prélèvements échoués"
      },
      "show": "Voir l'historique",
      "hide": "Masquer l'historique",
      "error": "L'historique n'a pas pu être chargé. Réessayez dans un instant.",
      "empty": "Aucun achat pour l'instant.",
      "refundOf": "Remboursement",
      "planChange": "Changement de formule",
      "prorataFrom": "écart de prix au prorata depuis {{label}}",
      "prorata": "écart de prix au prorata",
      "newPeriodFrom": "nouvelle période, moins le temps non utilisé sur {{label}}",
      "notCharged": "{{amount}} non prélevé",
      "planChangeApplied": "Changement de formule effectué",
      "subscriptionEnded": "Fin de l'abonnement",
      "renewal": "Renouvellement",
      "subscription": "Souscription",
      "planChangeScheduled": "Changement de formule programmé",
      "planChangeUnscheduled": "Changement programmé annulé",
      "fromPlan": "depuis {{label}}",
      "effectiveOn": "prévu le {{date}}",
      "cancellation": "Demande de résiliation",
      "cancellationReverted": "Résiliation annulée",
      "accessUntil": "accès jusqu'au {{date}}",
      "refunded": "Remboursé",
      "disputed": "Paiement contesté · accès suspendu",
      "disputedNote": "Ce paiement a été contesté auprès de votre banque. Si c'est une erreur, écrivez-nous à",
      "void": "Annulée",
      "failed": "Prélèvement échoué",
      "partial": "remboursement partiel",
      "invoice": "Facture",
      "on": {
        "passport": "Acheté le {{date}}",
        "payment": "Payé le {{date}}",
        "invoiceFailed": "Facture du {{date}}, non prélevée",
        "invoiceVoid": "Facture du {{date}}, annulée",
        "refund": "Le {{date}}",
        "cancellation": "Le {{date}}",
        "cancellation_reverted": "Le {{date}}",
        "plan_change_scheduled": "Le {{date}}",
        "plan_change_unscheduled": "Le {{date}}",
        "plan_change_applied": "Le {{date}}",
        "subscription_ended": "Le {{date}}",
        "payment_failed": "Le {{date}}"
      }
    },
    "deleteReasonLegend": "Pourquoi partez-vous ?",
    "optional": "(facultatif)",
    "deleteReasons": {
      "not_using": "Je n'utilise plus VolleyTracker",
      "too_expensive": "C'est trop cher",
      "missing_data": "Il manque des données ou des fonctionnalités",
      "data_quality": "Les statistiques ne me semblent pas fiables",
      "stopped_volley": "J'ai arrêté de jouer ou de suivre le volley",
      "privacy": "Je ne souhaite plus que mes données soient ici",
      "other": "Autre raison"
    },
    "deleteCommentLabel": "Précision sur votre départ",
    "deleteCommentPlaceholder": "Un mot pour nous aider à progresser (facultatif)",
    "deletedTitle": "Votre compte est supprimé",
    "deletedText": "Votre compte et vos données personnelles ont été effacés. Tout abonnement en cours est résilié : vous ne serez plus prélevé.",
    "deletedEmailSent": "Un email de confirmation vient d'être envoyé à",
    "deletedFootnote": "Merci d'avoir utilisé VolleyTracker. Vous pouvez recréer un compte à tout moment.",
    "deletedLeave": "Revenir à l'accueil",
    "linkMyProfile": "Rattacher ma fiche",
    "subscriptionComplimentary": "Votre accès Premium vous est offert jusqu'au {{date}}. Aucun prélèvement ne suivra : à cette date, votre compte repassera au palier gratuit.",
    "subscriptionComplimentaryCta": "Voir les offres pour le garder",
    "claim": {
      "pendingTitle": "Demande {{reference}} en attente — fiche {{player}}",
      "pendingInstagram": "Il vous reste à envoyer le message de confirmation au compte Instagram de VolleyTracker, depuis votre compte @{{handle}}.",
      "pendingFacebook": "Il vous reste à envoyer le message de confirmation sur Messenger à la page Facebook de VolleyTracker, depuis votre profil « {{handle}} ».",
      "pendingManual": "Sans compte Instagram ni Facebook, votre demande est examinée manuellement par un administrateur, sur votre attestation sur l'honneur et sans pièce d'identité. Rien à faire de votre côté : nous vous écrivons par email si besoin, et dès qu'elle est tranchée.",
      "viewMessage": "Voir le message à envoyer",
      "viewRequest": "Voir ma demande",
      "rejectedTitle": "Votre demande {{reference}} n'a pas été validée",
      "rejectedReason": "Motif : {{reason}}.",
      "rejectedRetry": "Vous pouvez faire une nouvelle demande."
    },
    "google": {
      "label": "Google",
      "linked": "Compte Google lié : « Continuer avec Google » vous connecte.",
      "notLinked": "Liez votre compte Google pour vous connecter en un clic.",
      "linking": "Liaison en cours…",
      "success": "Compte Google lié. Vous pourrez vous connecter avec Google.",
      "alreadyLinked": "Ce compte Google est déjà lié à un autre compte VolleyTracker.",
      "error": "La liaison avec Google a échoué. Réessayez.",
      "deleteConfirm": "Confirmez avec le compte Google lié à votre compte :",
      "deleteOrPassword": "ou avec votre mot de passe :",
      "passwordHint": "Compte créé avec Google ? Vous n'avez pas de mot de passe connu :",
      "passwordHintLink": "en définir un",
      "confirmPassword": "Confirmez avec le mot de passe de votre compte VolleyTracker :",
      "confirmLink": "Lier ce compte Google",
      "invalidPassword": "Mot de passe incorrect.",
      "emailNotVerified": "Votre adresse n'est pas encore confirmée : confirmez-la d'abord (lien reçu par email), ou choisissez le compte Google de cette même adresse.",
      "unlink": "Délier",
      "unlinkConfirmPassword": "Confirmez avec le mot de passe de votre compte VolleyTracker. Vous vous connecterez ensuite avec votre adresse email et ce mot de passe.",
      "unlinkSubmit": "Délier ce compte Google",
      "unlinking": "Déliaison en cours…",
      "unlinked": "Compte Google délié. Connectez-vous désormais avec votre adresse email et votre mot de passe.",
      "unlinkInvalidPassword": "Mot de passe incorrect. Compte créé avec Google ? Définissez d'abord un mot de passe avec « Mot de passe oublié »."
    }
  },
  "federationFilter": {
    "label": "Fédération",
    "allFederations": "Toutes les fédérations",
    "oneFederation": "1 fédération",
    "federationCount": "{{count}} fédérations",
    "clearAll": "Tout effacer",
    "searchPlaceholder": "Rechercher une fédération…",
    "noResults": "Aucune fédération trouvée",
    "selectAll": "Tout sélectionner",
    "clear": "Effacer"
  },
  "lastGameWidget": {
    "goldenSet": "Set en or",
    "title": "Dernier match",
    "retry": "Réessayer",
    "empty": "Pas encore de match joué",
    "viewMatchTitle": "Voir le match",
    "details": "Détails",
    "viewStatsTitle": "Voir les statistiques",
    "stats": "Stats",
    "home": "Domicile",
    "away": "Extérieur",
    "win": "Victoire",
    "loss": "Défaite",
    "loadError": "Impossible de charger le dernier match."
  },
  "searchableSelect": {
    "selectPlaceholder": "Sélectionner…",
    "searchPlaceholder": "Rechercher…",
    "noResults": "Aucun résultat",
    "selectedCount": "{{count}} {count, plural, one {sélectionné} other {sélectionnés}}",
    "clearOne": "Retirer {{label}} du filtre"
  },
  "mvpRankings": {
    "pageTitle": "Classement MVP",
    "pageSubtitle": "Tous les MVP des matchs de volleyball professionnel français",
    "filterSeason": "Saison",
    "allSeasons": "Toutes les saisons",
    "filterType": "Type",
    "optionAll": "Tous",
    "filterFederation": "Fédération",
    "filterCompetition": "Compétition",
    "optionAllFeminine": "Toutes",
    "filterTeam": "Équipe",
    "filterPosition": "Poste",
    "filterPlayer": "Joueur",
    "searchPlaceholder": "Rechercher…",
    "clearSearch": "Effacer la recherche",
    "reset": "Réinitialiser",
    "viewRanking": "Classement",
    "viewList": "Tous les MVP",
    "noMvp": "Aucun MVP trouvé",
    "colPlayer": "Joueur",
    "colPosition": "Poste",
    "colTeam": "Équipe",
    "colMvp": "MVP",
    "colLast": "Dernier",
    "showMore": "Afficher {{count}} de plus",
    "shownOf": "{{shown}} sur {{total}}"
  },
  "matchStatistics": {
    "filters": "Filtres",
    "editFilters": "Modifier",
    "closeFilters": "Fermer",
    "viewMatch": "Voir le match",
    "title": "Statistiques des matchs",
    "subtitle": "Records et classements des matchs et sets",
    "filterSeason": "Saison",
    "allSeasons": "Toutes les saisons",
    "filterFederation": "Fédération",
    "filterCompetition": "Compétition",
    "allCompetitions": "Toutes les compétitions",
    "loading": "Chargement des statistiques…",
    "retry": "Réessayer",
    "emptyTitle": "Aucune donnée disponible",
    "emptyText": "Aucune statistique trouvée pour les critères sélectionnés.",
    "notStarted": "Aucun match joué n'alimente encore cette page. Les statistiques apparaîtront après la première journée.",
    "tabMatches": "Matchs",
    "tabSets": "Sets & tie-breaks",
    "errorLoading": "Erreur lors du chargement",
    "errorLoadingStats": "Erreur lors du chargement des statistiques de matchs",
    "categories": {
      "longestMatches": {
        "label": "Matchs les plus longs",
        "unit": "points"
      },
      "shortestMatches": {
        "label": "Matchs les plus courts",
        "unit": "points"
      },
      "biggestSetGap": {
        "label": "Sets avec le plus grand écart",
        "unit": "pts d'écart"
      },
      "longestSets": {
        "label": "Sets les plus longs",
        "unit": "points"
      },
      "longestTiebreaks": {
        "label": "Tie-breaks les plus longs",
        "unit": "points"
      }
    }
  },
  "nationalities": {
    "title": "Nationalités",
    "unknown": "Inconnue",
    "subtitle": "Distribution et évolution des nationalités dans les championnats",
    "filters": {
      "federation": "Fédération",
      "competition": "Compétition",
      "all": "Toutes",
      "season": "Saison",
      "allSeasons": "Toutes les saisons",
      "lastSeasonOnly": "Dernière saison disputée — l'historique complet fait partie de l'offre Fan Analyste"
    },
    "loading": "Chargement des données…",
    "error": {
      "title": "Une erreur est survenue",
      "retry": "Réessayer",
      "seasonsFailed": "Impossible de charger les saisons",
      "distributionFailed": "Impossible de charger les données de nationalités"
    },
    "summary": {
      "players": "Joueurs",
      "nationalities": "Nationalités",
      "competitions": "Compétition(s)"
    },
    "tabs": {
      "overview": "Vue d'ensemble",
      "evolution": "Évolution",
      "teams": "Équipes",
      "positions": "Postes",
      "details": "Détails"
    },
    "overview": {
      "title": "Répartition des nationalités - {{season}}",
      "top10": "Top 10 des nationalités",
      "empty": "Aucune donnée disponible pour cette sélection"
    },
    "bubble": {
      "tooltip": "{{nationality}} : {{count}} {count, plural, one {joueur} other {joueurs}} ({{percentage}})"
    },
    "table": {
      "rank": "#",
      "nationality": "Nationalité",
      "players": "Joueurs",
      "percentage": "%",
      "distribution": "Répartition"
    },
    "evolution": {
      "frenchVsForeign": "Français et étrangers par saison",
      "emptyEvolution": "Aucune donnée d'évolution disponible",
      "diversity": "Indice de diversité (nationalités distinctes)",
      "emptyDiversity": "Aucune donnée de diversité disponible",
      "summary": "Récapitulatif par saison",
      "season": "Saison",
      "french": "Français",
      "foreign": "Étrangers",
      "total": "Total",
      "nationalities": "Nationalités",
      "foreignPct": "% Étrangers"
    },
    "teams": {
      "ratioTitle": "Ratio étrangers par équipe",
      "ranking": "Classement",
      "team": "Équipe",
      "comp": "Comp.",
      "french": "Français",
      "foreign": "Étrangers",
      "total": "Total",
      "foreignPctShort": "% Étr.",
      "frenchPctShort": "% Fr.",
      "empty": "Aucune donnée disponible"
    },
    "positions": {
      "playersCount": "{{count}} {count, plural, one {joueur} other {joueurs}}",
      "frenchTooltip": "Français : {{count}}",
      "foreignTooltip": "Étrangers : {{count}}",
      "legendFrench": "Français ({{count}})",
      "legendForeign": "Étrangers ({{count}})",
      "empty": "Aucune donnée disponible"
    },
    "details": {
      "globalTitle": "Répartition globale - {{season}}",
      "playersCount": "{{count}} {count, plural, one {joueur} other {joueurs}}"
    },
    "modal": {
      "totalPlayers": "{{count}} {count, plural, one {joueur} other {joueurs}} au total",
      "playersBySeason": "Joueurs par saison",
      "positions": "Postes",
      "recruiters": "Clubs recruteurs",
      "seasonTooltip": "{{season}} : {{count}} {count, plural, one {joueur} other {joueurs}}",
      "playersTitle": "Joueurs ({{count}})",
      "empty": "Aucun joueur trouvé"
    },
    "charts": {
      "playersAxis": "Nombre de joueurs",
      "distinctNationalities": "Nationalités distinctes",
      "playersShort": "Joueurs",
      "french": "Français",
      "foreign": "Étrangers",
      "nationalitiesLine": "Nationalités"
    }
  },
  "playersList": {
    "header": {
      "title": "Joueurs",
      "subtitle": "Découvrez tous les joueurs suivis sur VolleyTracker",
      "playerLabel": "joueur",
      "playersLabel": "joueurs"
    },
    "search": {
      "placeholder": "Rechercher un joueur…",
      "clear": "Effacer"
    },
    "filters": {
      "title": "Filtres",
      "advancedTitle": "Filtres avancés",
      "open": "Ouvrir les filtres",
      "resetAria": "Réinitialiser les filtres",
      "reset": "Réinitialiser",
      "apply": "Appliquer",
      "close": "Fermer",
      "position": "Poste",
      "allPositions": "Tous les postes",
      "searchPosition": "Rechercher un poste…",
      "nationality": "Nationalité",
      "allNationalities": "Toutes les nationalités",
      "searchNationality": "Rechercher une nationalité…",
      "minHeight": "Taille min.",
      "minHeightFull": "Taille minimale",
      "team": "Équipe",
      "allTeams": "Toutes les équipes",
      "competition": "Compétition",
      "allCompetitions": "Toutes",
      "age": "Âge",
      "ageMin": "Min",
      "ageMax": "Max",
      "years": "ans",
      "searchTeam": "Rechercher une équipe…",
      "searchCompetition": "Rechercher un championnat…"
    },
    "table": {
      "photo": "Photo",
      "name": "Nom",
      "position": "Poste",
      "height": "Taille",
      "nationality": "Nationalité",
      "actions": "Actions",
      "view": "Voir",
      "team": "Équipe",
      "lastTeam": "Dernière équipe connue",
      "lastTeamHint": "Dernière équipe connue (saison {{season}})"
    },
    "grid": {
      "viewProfile": "Voir le profil"
    },
    "loading": "Chargement…",
    "pagination": {
      "aria": "Pagination des joueurs",
      "of": "sur",
      "show": "Afficher",
      "prev": "Page précédente",
      "next": "Page suivante",
      "pageAria": "Page {{page}}"
    },
    "empty": {
      "title": "Aucun joueur trouvé",
      "text1": "Aucun joueur ne correspond à vos critères.",
      "text2": "Essayez de modifier vos filtres.",
      "resetFilters": "Réinitialiser les filtres",
      "includeInactive": "Inclure les joueurs inactifs"
    },
    "error": {
      "loadFailed": "Impossible de charger les joueurs depuis l'API"
    },
    "active": {
      "label": "Joueurs actifs",
      "hint": "Seulement les joueurs inscrits dans une compétition en cours. Décocher pour inclure les joueurs des saisons passées."
    }
  },
  "scouting": {
    "title": "Scouting",
    "subtitle": "Recherche avancée de joueurs par critères statistiques",
    "filters": {
      "title": "Critères de recherche",
      "search": "Recherche",
      "searchPlaceholder": "Nom du joueur…",
      "clearSearch": "Effacer la recherche",
      "position": "Poste",
      "allPositions": "Tous les postes",
      "nationality": "Nationalité",
      "nationalityPlaceholder": "Toutes",
      "searchShort": "Rechercher…",
      "height": "Taille (cm)",
      "age": "Âge",
      "min": "Min",
      "max": "Max",
      "seasons": "Saisons",
      "seasonModeAnyTitle": "Le joueur a joué au moins une des saisons sélectionnées",
      "seasonModeAny": "Au moins une",
      "seasonModeAllTitle": "Le joueur a joué toutes les saisons sélectionnées",
      "seasonModeAll": "Toutes",
      "allSeasons": "Toutes les saisons",
      "noSeason": "Aucune saison",
      "clearAll": "Tout effacer",
      "federation": "Fédération",
      "allFederations": "Toutes les fédérations",
      "competition": "Compétition",
      "allCompetitions": "Toutes les compétitions",
      "noCompetition": "Aucune compétition",
      "teams": "Équipes",
      "allTeams": "Toutes les équipes",
      "noTeam": "Aucune équipe",
      "sectors": {
        "volume": "Volume de jeu",
        "points": "Points",
        "block": "Bloc",
        "service": "Service",
        "attack": "Attaque",
        "reception": "Réception"
      },
      "fields": {
        "minSetsPlayed": "Sets joués (min)",
        "minGamesPlayed": "Matchs joués (min)",
        "minStarterGames": "Titu. matchs (min)",
        "minStarterGamesPct": "Titu. matchs % (min)",
        "minStarterSets": "Titu. sets (min)",
        "minStarterSetsPct": "Titu. sets % (min)",
        "minTotalPoints": "Points au total (min)",
        "minPointsPerSet": "Points/set (min)",
        "minPointsPerGame": "Points/match (min)",
        "minTotalBlocks": "Blocs au total (min)",
        "minBlocksPerSet": "Blocs/set (min)",
        "minBlocksPerGame": "Blocs/match (min)",
        "minAcesPerSet": "Aces/set (min)",
        "minServicePerSet": "Services/set (min)",
        "minServicePerGame": "Services/match (min)",
        "minTotalSpikes": "Attaques au total (min)",
        "minSpikesPerSet": "Attaques/set (min)",
        "minSpikesPerGame": "Attaques/match (min)",
        "minSpikeEfficiency": "Efficacité % (min)",
        "minSpikeSuccessRate": "Réussite % (min)",
        "minReceptionPerSet": "Réceptions/set (min)",
        "minReceptionPerGame": "Réceptions/match (min)",
        "minPositiveReception": "Réception + % (min)",
        "minExcellentReception": "Réception # % (min)",
        "minReceptionEfficiency": "Efficacité réc. (min)"
      },
      "tooltips": {
        "minStarterGames": "Nombre de matchs où le joueur est titulaire (démarre le set 1 en position P1-P6)",
        "minStarterGamesPct": "Titularisations matchs / Matchs joués × 100. Ex : 8 titu. sur 10 matchs = 80 %",
        "minStarterSets": "Nombre de sets où le joueur démarre en position P1-P6. Exclut les entrées en remplacement (-1)",
        "minStarterSetsPct": "Titularisations sets / Sets joués × 100. Ex : 60 sets titu. sur 80 joués = 75 %"
      }
    },
    "actions": {
      "search": "Rechercher",
      "reset": "Réinitialiser"
    },
    "results": {
      "playerFound": "joueur trouvé",
      "playersFound": "joueurs trouvés",
      "tableView": "Vue tableau",
      "cardsView": "Vue cartes",
      "perPage": "/ page",
      "loading": "Recherche en cours…",
      "emptyTitle": "Aucun joueur trouvé",
      "emptyText": "Essayez de modifier vos critères de recherche",
      "colTeam": "Éq.",
      "colCompetition": "Comp.",
      "colPlayer": "Joueur",
      "years": "ans"
    },
    "table": {
      "gamesPlayed": {
        "label": "MJ",
        "title": "Matchs joués"
      },
      "setsPlayed": {
        "label": "Sets",
        "title": "Sets joués"
      },
      "starterGames": {
        "label": "TM",
        "title": "Titularisations matchs"
      },
      "starterGamesPct": {
        "label": "TM%",
        "title": "Titularisations matchs (%)"
      },
      "starterSets": {
        "label": "TS",
        "title": "Titularisations sets"
      },
      "starterSetsPct": {
        "label": "TS%",
        "title": "Titularisations sets (%)"
      },
      "totalPoints": {
        "label": "Pts",
        "title": "Points au total"
      },
      "avgPointsPerSet": {
        "label": "Pts/S",
        "title": "Points par set"
      },
      "totalBlocks": {
        "label": "Bl",
        "title": "Blocs au total"
      },
      "avgBlocksPerSet": {
        "label": "Bl/S",
        "title": "Blocs par set"
      },
      "totalServices": {
        "label": "Sv",
        "title": "Services au total"
      },
      "avgAcesPerSet": {
        "label": "Ac/S",
        "title": "Aces par set"
      },
      "servicePerSet": {
        "label": "Sv/S",
        "title": "Services par set"
      },
      "totalReceptions": {
        "label": "Réc",
        "title": "Réceptions au total"
      },
      "spikeSuccessRate": {
        "label": "Réu%",
        "title": "Réussite attaque (%)"
      },
      "spikeEfficiency": {
        "label": "Eff%",
        "title": "Efficacité attaque (%)"
      },
      "positiveReceptionPct": {
        "label": "R+%",
        "title": "Réception positive (%)"
      },
      "excellentReceptionPct": {
        "label": "R#%",
        "title": "Réception excellente (%)"
      }
    },
    "cards": {
      "effLabel": "Eff."
    },
    "pagination": {
      "of": "sur"
    }
  },
  "teamsList": {
    "title": "Équipes",
    "subtitle": "Découvrez toutes les équipes suivies sur VolleyTracker",
    "teamSingular": "équipe",
    "teamPlural": "équipes",
    "errorTitle": "Une erreur est survenue",
    "retry": "Réessayer",
    "loadError": "Erreur lors du chargement des équipes",
    "searchPlaceholder": "Rechercher…",
    "searchAriaLabel": "Rechercher une équipe ou une ville",
    "clear": "Effacer",
    "clearSearchAriaLabel": "Effacer la recherche",
    "filterCompetitionAriaLabel": "Filtrer par compétition",
    "allCompetitions": "Toutes les compétitions",
    "sortAriaLabel": "Trier par",
    "sortNameAsc": "Nom (A → Z)",
    "sortNameDesc": "Nom (Z → A)",
    "sortCityAsc": "Ville (A → Z)",
    "sortCityDesc": "Ville (Z → A)",
    "resetFiltersTitle": "Réinitialiser les filtres",
    "resetFiltersAria": "Réinitialiser les filtres ({{count}})",
    "displayLabel": "Affichage",
    "gridViewTitle": "Vue grille",
    "gridViewAria": "Affichage en grille",
    "listViewTitle": "Vue liste",
    "listViewAria": "Affichage en liste",
    "resultsTotal": "sur {{total}}",
    "noResultsTitle": "Aucune équipe trouvée",
    "noResultsText": "Essayez de modifier vos critères de recherche",
    "clearFilters": "Effacer les filtres",
    "colLogo": "Logo",
    "colTeam": "Équipe",
    "colClub": "Club",
    "colCity": "Ville",
    "previous": "Précédent",
    "next": "Suivant",
    "searchCompetition": "Rechercher une compétition",
    "season": {
      "kpiLabel": "équipes cette saison",
      "toggleAria": "Équipes affichées",
      "current": "Saison en cours",
      "all": "Toutes les équipes",
      "hint": "Équipes des compétitions en cours. La recherche porte sur toutes les équipes, y compris celles des saisons passées."
    }
  },
  "competitionsList": {
    "title": "Compétitions",
    "subtitle": "Classements, statistiques et résultats du volleyball professionnel français",
    "compare": "Comparer",
    "competitionSingular": "compétition",
    "competitionPlural": "compétitions",
    "kpiActive": "en cours",
    "seasonSingular": "saison",
    "seasonPlural": "saisons",
    "errorTitle": "Une erreur est survenue",
    "retry": "Réessayer",
    "loadError": "Erreur lors du chargement des compétitions",
    "activeSectionTitle": "En cours",
    "viewCompetitionAria": "Voir la compétition {{name}}",
    "searchPlaceholder": "Rechercher une compétition…",
    "clear": "Effacer",
    "clearSearchAria": "Effacer la recherche",
    "filterTypeAria": "Filtrer par type",
    "allTypes": "Tous les types",
    "searchType": "Rechercher un type…",
    "filterSeasonAria": "Filtrer par saison",
    "allSeasons": "Toutes les saisons",
    "searchSeason": "Rechercher une saison…",
    "sortAria": "Trier par",
    "sortRecent": "Plus récentes",
    "sortOldest": "Plus anciennes",
    "sortNameAsc": "Nom (A-Z)",
    "sortNameDesc": "Nom (Z-A)",
    "sortByType": "Par type",
    "resetFiltersTitle": "Réinitialiser les filtres",
    "resetFiltersAria": "Réinitialiser les filtres ({{count}})",
    "viewModeGroupAria": "Mode d'affichage",
    "gridViewTitle": "Vue grille",
    "gridViewAria": "Affichage en grille",
    "timelineViewTitle": "Vue chronologique",
    "timelineViewAria": "Affichage chronologique",
    "resultsTotal": "sur {{total}}",
    "noResultsTitle": "Aucune compétition trouvée",
    "noResultsText": "Essayez de modifier vos critères de recherche",
    "clearFilters": "Effacer les filtres",
    "statusActive": "En cours",
    "timelineItemAria": "Compétition {{name}} - {{season}}",
    "viewDetails": "Voir les détails",
    "prevPageAria": "Page précédente",
    "previous": "Précédent",
    "paginationAria": "Pagination",
    "goToPageAria": "Aller à la page {{page}}",
    "nextPageAria": "Page suivante",
    "next": "Suivant"
  },
  "teamCompositionsTab": {
    "modeMatch": "Par match",
    "modeSet": "Par set",
    "loading": "Chargement des compositions…",
    "empty": "Aucune composition disponible pour cette saison.",
    "summaryCompositions": "Compositions différentes",
    "summaryMatchesAnalyzed": "Matchs analysés",
    "summarySetsAnalyzed": "Sets analysés",
    "sortLabel": "Trier par",
    "sortMatchesCount": "Fréquence (matchs)",
    "sortMatchWinRate": "% victoire matchs",
    "sortSetsCount": "Fréquence (sets)",
    "sortSetWinRate": "% victoire sets",
    "showStat": "Afficher la stat",
    "statNone": "Aucun",
    "statPoints": "Points",
    "statAttacks": "Attaques",
    "statReceptions": "Réceptions",
    "statBlocks": "Blocs",
    "statServices": "Services",
    "statAces": "Aces",
    "statFaults": "Fautes",
    "setterInRotationSuffix": "en {{pos}}",
    "matchSingular": "match",
    "matchPlural": "matchs",
    "setSingular": "set",
    "setPlural": "sets",
    "percentOfMatches": "{{pct}} % des matchs",
    "percentOfSets": "{{pct}} % des sets",
    "net": "Filet",
    "rankingPlayers": "Joueurs",
    "rankingPositions": "Postes",
    "record": "Bilan",
    "setsLabel": "Sets",
    "matchesLabel": "Matchs",
    "winAbbr": "V",
    "lossAbbr": "D",
    "showMatches": "Voir les matchs ({{count}})",
    "hideMatches": "Masquer les matchs ({{count}})",
    "showSets": "Voir les sets ({{count}})",
    "hideSets": "Masquer les sets ({{count}})",
    "setNumber": "Set {{number}}",
    "competitionLabel": "Compétition",
    "competitionsError": "Les compétitions de cette équipe n'ont pas pu être chargées.",
    "emptyHint": "Cette compétition n'a peut-être pas encore de match joué : choisissez-en une autre ci-dessus.",
    "statsScopeMatch": "Statistiques du match entier : si la composition a changé en cours de match, elles couvrent aussi les autres compositions alignées.",
    "statsScopeSet": "Statistiques du match entier : la feuille de match ne les détaille pas par set, elles sont reprises pour chaque composition alignée pendant le match."
  },
  "teamDreamTeamTab": {
    "competitions": "Compétitions",
    "checkAll": "Tout cocher",
    "codesHint": "Ne garde que les compétitions dont le code est coché. Utile par exemple pour se limiter à LAM/LBM sans mélanger avec les coupes d'Europe.",
    "loading": "Calcul de l'équipe de rêve…",
    "loadError": "Impossible de charger l'équipe de rêve",
    "emptyTitle": "Aucun joueur du club n'a encore de score Global dans les compétitions retenues.",
    "emptyHint": "Un score Global ne se calcule qu'à partir d'un nombre minimal de matchs joués dans une compétition. L'équipe de rêve apparaîtra quand les joueurs du club l'auront atteint.",
    "emptyHintFiltered": "Les compétitions cochées n'en fournissent pas encore. Cocher toutes les compétitions inclut l'historique complet du club.",
    "cardTitle": "Équipe de rêve historique",
    "aggregates": "Agrège {{count}} {{word}} du club",
    "competitionSingular": "compétition",
    "competitionPlural": "compétitions",
    "intro": "Les meilleurs joueurs ayant porté le maillot, retenus par leur plus haut score Global jamais obtenu dans un groupe de référence (poste × compétition). Le badge sur chaque joueur indique la compétition source du score.",
    "methodSummary": "Comment cette équipe est composée",
    "step1Title": "Récupération de l'historique.",
    "step1Before": "On parcourt",
    "step1AllCompetitions": "toutes les compétitions",
    "step1After": "auxquelles le club a participé",
    "step1FilterPrefix": "restreintes au filtre actuel :",
    "step1CountPrefix": "soit",
    "step1RetainedSingular": "compétition retenue",
    "step1RetainedPlural": "compétitions retenues",
    "step2Title": "Score Global par groupe de référence.",
    "step2Before": "Pour chaque compétition, on calcule le score Global 0-100 de chaque joueur, en le comparant aux autres joueurs du",
    "step2Strong": "même poste dans la même compétition",
    "step2After": "(méthode percentile au rang moyen). Le score combine 5 secteurs (Attaque, Service, Bloc, Réception, Contributions, plus Distribution pour les passeurs), avec des pondérations spécifiques au poste.",
    "step3Title": "Filtre par équipe.",
    "step3Text": "On ne garde, dans chaque groupe, que les joueurs ayant porté le maillot du club dans cette compétition (lien via leur participation déclarée).",
    "step4Title": "Meilleure occurrence par joueur.",
    "step4Before": "Un joueur peut avoir joué plusieurs saisons pour le club. On retient sa",
    "step4Strong": "meilleure saison",
    "step4After": "(score Global le plus élevé), peu importe la compétition — le badge sur sa carte indique cette source.",
    "step5Title": "Sélection finale.",
    "step5Before": "Par poste, les meilleurs scores remplissent les",
    "step5Starters": "7 titulaires",
    "step5Then": ", puis le",
    "step5Bench": "banc",
    "step5BenchSlots": "(mêmes slots).",
    "step5After": "Un joueur n'occupe qu'un seul slot — s'il a brillé sur deux postes, on garde sa meilleure attribution.",
    "caveatTitle": "Score relatif au groupe d'origine.",
    "caveatText": "Un 85 obtenu en LAM 24/25 et un 85 obtenu en LBM 18/19 ne sont pas strictement comparables — les groupes de référence diffèrent en niveau. Le badge compétition source permet de remettre chaque score dans son contexte. Pour comparer à niveau égal, utilisez le filtre par code de compétition.",
    "net": "Filet",
    "benchTitle": "Banc",
    "scoreFrom": "Score issu de {{comp}}",
    "globalScoreTitle": "Score Global {{score}}/100"
  },
  "teamProfile": {
    "tabHistory": "Histoire du club",
    "loadingProfile": "Chargement du profil de l'équipe…",
    "backToList": "Retour à la liste des équipes",
    "winShort": "V",
    "lossShort": "D",
    "recordLabel": "Bilan : {{wins}} {wins, plural, one {victoire} other {victoires}}, {{losses}} {losses, plural, one {défaite} other {défaites}}",
    "backToTeams": "Toutes les équipes",
    "tabSeason": "Saison actuelle",
    "tabLastSeason": "Dernière saison",
    "tabMatches": "Matchs",
    "tabResults": "Résultats",
    "tabStats": "Statistiques",
    "tabRecords": "Records",
    "tabLineups": "Compositions",
    "tabDreamTeam": "Équipe de rêve",
    "tabRosters": "Effectifs",
    "tabSelectLabel": "Onglet du profil équipe",
    "tabPickerKicker": "Onglet {{index}} sur {{count}}",
    "errorMissingId": "ID de l'équipe manquant",
    "errorLoading": "Erreur lors du chargement du profil de l'équipe",
    "follow": {
      "follow": "Suivre cette équipe",
      "following": "Équipe suivie",
      "followed": "Vous suivez {{team}}",
      "unfollowed": "Vous ne suivez plus {{team}}",
      "unfollow": "Arrêter de suivre",
      "premiumOffer": "Premium",
      "modalTitle": "Suivre {{team}}",
      "oneTeamRule": "Vous ne pouvez suivre qu'une seule équipe à la fois.",
      "loadingCurrent": "Recherche de l'équipe que vous suivez…",
      "currentLabel": "Équipe suivie actuellement",
      "replaceWarning": "En suivant {{team}}, vous arrêterez de suivre {{current}}.",
      "benefit": "L'équipe suivie est mise en avant sur votre accueil : son prochain match en tête, son classement ouvert d'emblée.",
      "confirm": "Suivre",
      "cancel": "Annuler",
      "unfollowTitle": "Arrêter de suivre {{team}} ?",
      "unfollowText": "{{team}} ne sera plus mise en avant sur votre accueil. Vous pourrez la suivre à nouveau à tout moment.",
      "hint": "Son prochain match en tête de votre accueil, et le résumé de chacun de ses matchs par email si vous le souhaitez."
    },
    "questionsSearch": {
      "label": "Questions",
      "aria": "Questions sur la fiche de l'équipe (raccourci : /)"
    }
  },
  "teamHistoryTab": {
    "loading": "Chargement de l'histoire du club…",
    "error": "Impossible de charger l'histoire du club pour le moment.",
    "empty": "Pas encore assez de saisons dans nos archives pour raconter l'histoire de ce club.",
    "rankFirst": "1er",
    "rankOther": "{{rank}}e",
    "summary": {
      "title": "Le club en chiffres",
      "seasonsTopTier": "saisons en 1re division",
      "seasonsArchives": "saisons dans nos archives",
      "bestRank": "meilleur classement",
      "title1": "titre",
      "titles": "titres",
      "identities": "noms · logos"
    },
    "identities": {
      "title": "Logos et noms au fil des saisons",
      "since": "depuis {{season}}"
    },
    "milestones": {
      "title": "Les grandes dates",
      "note": "Tout est déduit des classements et des noms par saison, depuis 2012-2013, début de nos archives : rien n'est saisi à la main."
    },
    "rows": {
      "dates": "du {{from}} au {{to}}",
      "attendanceDetail": "contre {{opponent}}, le {{date}}",
      "homeStreak": "invaincu à domicile pendant {{length}} matchs, record du club",
      "winStreak": "{{length}} victoires d'affilée, record du club",
      "attendance": "record d'affluence à domicile : {{spectators}} spectateurs",
      "pointsRecord": "record de points du club ({{points}} pts)",
      "departureTo": "vers {{destination}}",
      "departure": {
        "administrative_relegation": "rétrogradé par la DNACG",
        "liquidation": "club disparu (liquidation)",
        "voluntary_withdrawal": "retrait volontaire du championnat",
        "merger": "fusion",
        "sporting_relegation": "relégué",
        "unknown": "quitte le championnat"
      },
      "finalWon": "vainqueur des play-offs de {{championship}}",
      "finalLost": "finaliste des play-offs de {{championship}}",
      "finalPlayed": "finale des play-offs de {{championship}}",
      "finalWonAgainst": "finale gagnée contre {{opponent}}",
      "finalLostAgainst": "battu en finale par {{opponent}}",
      "finalAgainst": "finale face à {{opponent}}",
      "first": "première saison dans nos archives",
      "levelDebut": "premier pas en {{championship}}",
      "levelReturn": "retour en {{championship}}",
      "levelArrival": "première saison en {{championship}}",
      "champion": "champion de {{championship}}",
      "promoted": "promu",
      "relegated": "relégué",
      "becomes": "devient {{name}}",
      "newLogo": "nouveau logo",
      "and": " et ",
      "ordinalFirst": "1er",
      "ordinalOther": "{{rank}}e",
      "rankRegular": "{{rank}} de la saison régulière",
      "rankRegularOf": "{{rank}} de la saison régulière de {{championship}}",
      "best": "meilleur classement du club",
      "worst": "le plus bas classement du club"
    },
    "positions": {
      "title": "Les piliers de chaque poste",
      "pickPosition": "Poste",
      "gamesValue": "{{value}} matchs",
      "note": "Les joueurs qui ont disputé le plus de matchs à chaque poste sous les couleurs du club, depuis 2013-2014. Le nombre de matchs est la seule mesure qui compare équitablement les postes : la base ne compte pas les passes, et un libéro ne marque pas."
    },
    "players": {
      "receptions": "Le plus de réceptions",
      "receptionsValue": "{{value}} réc.",
      "title": "Les joueurs qui ont marqué le club",
      "pickCategory": "Catégorie de joueurs",
      "pill": {
        "games": "Matchs",
        "points": "Points",
        "receptions": "Réceptions",
        "seasons": "Fidélité"
      },
      "games": "Le plus de matchs",
      "points": "Le plus de points",
      "seasons": "La plus longue fidélité",
      "gamesValue": "{{value}} matchs",
      "pointsValue": "{{value}} pts",
      "seasonsValue": "{{value}} saisons",
      "note": "Matchs joués, points marqués, réceptions et saisons sous les couleurs du club, depuis 2013-2014."
    }
  },
  "teamRostersTab": {
    "loading": "Chargement des effectifs…",
    "error": "Impossible de charger les effectifs de l'équipe.",
    "empty": "Aucun effectif enregistré pour cette équipe.",
    "title": "Effectifs par compétition",
    "note": "Âge au 1er janvier de l'année où la saison s'achève. Matchs et sets joués sous ce maillot, dans cette compétition.",
    "expandAll": "Tout déplier",
    "collapseAll": "Tout replier",
    "playersCount": "{{count}} joueurs",
    "playersCountOne": "1 joueur",
    "colNumber": "N°",
    "colPlayer": "Joueur",
    "colPosition": "Poste",
    "colNationality": "Nat.",
    "colHeight": "Taille",
    "colAge": "Âge",
    "colSets": "Sets",
    "colGames": "Matchs",
    "ageValue": "{{age}} ans"
  },
  "teamCurrentSeasonTab": {
    "loading": "Chargement de la saison…",
    "title": "Saison actuelle de {{team}}",
    "summaryTitle": "Résumé de la saison",
    "gamesPlayed": "Matchs joués",
    "record": "Bilan",
    "recordValue": "{{wins}}V - {{losses}}D",
    "winPercentage": "{{percent}} % de victoires",
    "upcomingTitle": "Matchs à venir",
    "loadingMatches": "Chargement des matchs…",
    "noUpcoming": "Aucun match à venir pour cette équipe dans la saison actuelle.",
    "viewPreview": "Voir l'avant-match",
    "viewPreviewShort": "Avant-match",
    "showMoreUpcoming": "Voir tous les matchs à venir (+{{count}})",
    "showLessUpcoming": "Afficher moins",
    "noUpcomingNamed": "Aucun match à venir pour cette équipe en {{competition}} ({{season}}).",
    "competitionUnknown": "La compétition en cours de cette équipe n'a pas pu être déterminée : les informations ci-dessous peuvent être incomplètes.",
    "dateToBeConfirmed": "Date à définir",
    "notStarted": "Aucun match joué pour l'instant. Le bilan apparaîtra après la première journée."
  },
  "teamMatchesTab": {
    "loading": "Chargement des matchs…",
    "filterSeason": "Saison",
    "allSeasons": "Toutes les saisons",
    "filterCompetition": "Compétition",
    "allCompetitions": "Toutes les compétitions",
    "filterResult": "Résultat",
    "allResults": "Tous",
    "resultWins": "Victoires",
    "resultLosses": "Défaites",
    "resetFilters": "Réinitialiser les filtres",
    "matchesFoundSingular": "{{count}} match trouvé",
    "matchesFoundPlural": "{{count}} matchs trouvés",
    "noMatches": "Aucun match trouvé avec les filtres sélectionnés.",
    "matchCountSingular": "{{count}} match",
    "matchCountPlural": "{{count}} matchs",
    "viewMatchDetail": "Voir le détail du match",
    "home": "Domicile",
    "away": "Extérieur",
    "resultWin": "V",
    "resultLoss": "D",
    "dateToBeConfirmed": "Date à définir",
    "notStarted": "Aucun match joué pour l'instant. Les rencontres apparaîtront après la première journée.",
    "onlyAwayFromHome": "Matchs délocalisés seulement"
  },
  "teamResultsTab": {
    "subTabMatches": "Matchs",
    "subTabRankings": "Classements",
    "loadingResults": "Chargement des résultats…",
    "filterByCompetition": "Filtrer par compétition",
    "allCompetitions": "Toutes les compétitions",
    "searchCompetition": "Rechercher une compétition…",
    "reset": "Réinitialiser",
    "globalStats": "Statistiques globales",
    "matchesPlayed": "Matchs joués",
    "wins": "Victoires",
    "losses": "Défaites",
    "homeRecord": "Bilan domicile",
    "awayRecord": "Bilan extérieur",
    "winShort": "V",
    "lossShort": "D",
    "resultsBySeason": "Résultats par saison",
    "tableSeason": "Saison",
    "tableMatches": "Matchs",
    "tableWins": "Victoires",
    "tableLosses": "Défaites",
    "tableWinPercentage": "% Victoires",
    "tableWinPercentageShort": "% V",
    "favoriteTeams": "Équipes favorites",
    "favoriteTeamsDescription": "Équipes contre lesquelles nous avons plus de victoires que de défaites",
    "nemesisTeams": "Bêtes noires",
    "nemesisTeamsDescription": "Équipes contre lesquelles nous avons plus de défaites que de victoires",
    "matchesLabel": "matchs",
    "winsLabel": "victoires",
    "lossesLabel": "défaites",
    "matchLabelOne": "match",
    "winLabelOne": "victoire",
    "lossLabelOne": "défaite",
    "showAllOpponents": "Voir toutes les équipes (+{{count}})",
    "showLessOpponents": "Afficher moins",
    "winPercentageText": "{{percent}} % de victoires",
    "lossPercentageText": "{{percent}} % de défaites",
    "noResultsData": "Aucune donnée de résultats disponible avec les filtres sélectionnés.",
    "loadingRankings": "Chargement des classements…",
    "seasonRankingsTitle": "Classements de saison régulière",
    "noSeasonRankings": "Aucun classement de saison régulière disponible.",
    "record": "Bilan",
    "winPercentageShort": "% victoires",
    "sets": "Sets",
    "pts": "pts",
    "evolutionTitle": "Évolution saison après saison",
    "evolutionSubtitle": "Trajectoire de l'équipe au fil des saisons",
    "metricRank": "Position",
    "metricWins": "Victoires",
    "metricPoints": "Points",
    "metricWinRate": "% victoires",
    "competition": "Compétition",
    "all": "Toutes",
    "noDataForFilter": "Aucune donnée à afficher pour ce filtre.",
    "axisRank": "Position au classement",
    "axisWins": "Victoires",
    "axisPoints": "Points",
    "axisWinRate": "% de victoires",
    "notStarted": "Aucun match joué pour l'instant. Les résultats apparaîtront après la première journée."
  },
  "teamRecordsTab": {
    "loading": "Chargement des records de l'équipe…",
    "allTime": "Tous les temps",
    "season": "Saison",
    "match": "Match",
    "filters": "Filtres",
    "clearFilters": "Effacer les filtres",
    "position": "Poste",
    "allPositions": "Tous les postes",
    "competitionType": "Type de compétition",
    "allCompetitions": "Toutes les compétitions",
    "compLAM": "Première division masculine",
    "compLBM": "Deuxième division masculine",
    "compLAF": "Première division féminine",
    "compLBF": "Deuxième division féminine",
    "nationality": "Nationalité",
    "allNationalities": "Toutes les nationalités",
    "nationalitiesCount": "{{count}} {count, plural, one {nationalité} other {nationalités}}",
    "searchPlaceholder": "Rechercher…",
    "noNationality": "Aucune nationalité",
    "clearAll": "Tout effacer",
    "ageRange": "Tranche d'âge",
    "min": "Min",
    "max": "Max",
    "groupTotals": "Totaux",
    "groupPerSet": "Par set",
    "groupPerMatch": "Par match",
    "groupPercentages": "Pourcentages",
    "groupDifferential": "Différentiels",
    "groupFaults": "Fautes",
    "eligibilityPrefix": "Réussite et efficacité à l'attaque : minimum",
    "eligibilityActions": "{{count}} attaques",
    "eligibilityScopeMatch": "sur le match",
    "eligibilityScopeCumulated": "cumulées",
    "eligibilitySuffix": "pour être éligible.",
    "noData": "Aucune donnée",
    "noRecords": "Aucun record disponible pour cette équipe.",
    "seasonSingular": "saison",
    "seasonPlural": "saisons",
    "coverageRange": "Records cumulés sur {{count}} saisons présentes dans la base, de {{first}} à {{last}}.",
    "coverageSingle": "Records calculés sur la seule saison {{season}} présente dans la base.",
    "coverageFiltered": "Périmètre restreint par les filtres actifs.",
    "records": {
      "totalPoints": "Points totaux",
      "breakPoints": "Break points",
      "blockPoints": "Points au bloc",
      "servicePoints": "Aces",
      "totalReception": "Réceptions",
      "totalService": "Services",
      "totalSpikes": "Attaques",
      "gamesPlayed": "Matchs joués",
      "setsPlayed": "Sets joués",
      "bestDifferential": "Meilleur différentiel",
      "worstDifferential": "Pire différentiel",
      "positiveReceptionPercentage": "% réception positive",
      "excellentReceptionPercentage": "% réception excellente",
      "attackSuccessRate": "Réussite à l'attaque",
      "attackEfficiency": "Efficacité à l'attaque",
      "receptionFaults": "Fautes de réception",
      "spikeFaults": "Fautes d'attaque",
      "serviceFaults": "Fautes de service",
      "pointsPerSet": "Points / set",
      "blocksPerSet": "Blocs / set",
      "acesPerSet": "Aces / set",
      "receptionsPerSet": "Réceptions / set",
      "servicesPerSet": "Services / set",
      "spikesPerSet": "Attaques / set",
      "pointsPerMatch": "Points / match",
      "blocksPerMatch": "Blocs / match",
      "acesPerMatch": "Aces / match",
      "receptionsPerMatch": "Réceptions / match",
      "servicesPerMatch": "Services / match",
      "spikesPerMatch": "Attaques / match"
    },
    "notStarted": "Aucun match joué pour l'instant. Les records apparaîtront après la première journée.",
    "emptyFiltered": "Aucun record ne correspond aux filtres sélectionnés."
  },
  "teamStatsTab": {
    "loading": "Chargement des statistiques…",
    "noSeasons": "Aucune statistique disponible pour cette équipe.",
    "seasonLabel": "Saison / compétition :",
    "subTabs": {
      "players": "Statistiques joueurs",
      "teamGlobal": "Statistiques globales",
      "sectorRankings": "Classement par secteur"
    },
    "players": {
      "title": "Statistiques des joueurs",
      "compSelectNone": "Aucune compétition",
      "compSelectCount": "{{selected}} / {{total}} compétitions",
      "compSelectAll": "Toutes",
      "compSelectReduce": "Réduire",
      "filters": "Filtres",
      "reset": "Réinitialiser",
      "removeChip": "Retirer {{name}}",
      "profileSection": "Profil joueur",
      "position": "Poste",
      "allPositions": "Tous",
      "nationality": "Nationalité",
      "allNationalities": "Toutes",
      "minHeight": "Taille min (cm)",
      "maxHeight": "Taille max (cm)",
      "minAge": "Âge min",
      "maxAge": "Âge max",
      "thresholdsSection": "Seuils statistiques",
      "loadingPlayers": "Chargement des statistiques des joueurs…",
      "searchPlaceholder": "Rechercher un joueur…",
      "clearSearch": "Effacer la recherche",
      "perPage": "{{size}} / page",
      "error": "Erreur lors du chargement des statistiques des joueurs",
      "empty": "Aucune statistique de joueur disponible pour les compétitions sélectionnées.",
      "emptyFiltered": "Aucun joueur ne correspond aux filtres actifs.",
      "resetFilters": "Réinitialiser les filtres",
      "prevPage": "← Précédent",
      "nextPage": "Suivant →",
      "pageInfo": "Page {{current}} / {{total}}"
    },
    "statSectors": {
      "playVolume": "Volume de jeu",
      "points": "Points",
      "block": "Bloc",
      "service": "Service",
      "attack": "Attaque",
      "reception": "Réception"
    },
    "statFilters": {
      "minSetsPlayed": "Sets joués (min)",
      "minGamesPlayed": "Matchs joués (min)",
      "minStarterGames": "Titu. matchs (min)",
      "minStarterGamesPct": "Titu. matchs % (min)",
      "minStarterSets": "Titu. sets (min)",
      "minStarterSetsPct": "Titu. sets % (min)",
      "minTotalPoints": "Points au total (min)",
      "minPointsPerSet": "Points/set (min)",
      "minPointsPerGame": "Points/match (min)",
      "minTotalBlocks": "Blocs au total (min)",
      "minBlocksPerSet": "Blocs/set (min)",
      "minBlocksPerGame": "Blocs/match (min)",
      "minAcesPerSet": "Aces/set (min)",
      "minServicePerSet": "Services/set (min)",
      "minServicePerGame": "Services/match (min)",
      "minTotalSpikes": "Attaques au total (min)",
      "minSpikesPerSet": "Attaques/set (min)",
      "minSpikesPerGame": "Attaques/match (min)",
      "minSpikeEfficiency": "Efficacité % (min)",
      "minSpikeSuccessRate": "Réussite % (min)",
      "minReceptionPerSet": "Réceptions/set (min)",
      "minReceptionPerGame": "Réceptions/match (min)",
      "minPositiveReception": "Réception + % (min)",
      "minExcellentReception": "Réception # % (min)",
      "minReceptionEfficiency": "Efficacité réc. (min)"
    },
    "columns": {
      "rank": "Rang",
      "player": "Joueur",
      "matches": "Matchs",
      "sets": "Sets",
      "diffWinLost": "Δ +/−",
      "totalPoints": "Points totaux",
      "contribution": "% Contribution",
      "apport": "% Apport",
      "pointsPerMatch": "Pts / match",
      "pointsPerSet": "Pts / set",
      "spikes": "Att. tentées",
      "spikePoints": "Att. gagnantes",
      "spikePointsPerSet": "Att. / set",
      "spikeSuccess": "Réussite att.",
      "spikeEfficiency": "Efficacité att.",
      "receptions": "Réceptions",
      "receptionFaults": "Fautes de réc.",
      "receptionPositive": "Réceptions positives",
      "receptionExcellent": "Réceptions excellentes",
      "receptionEfficiency": "Eff. réception",
      "receptionEfficiencyTooltip": "Efficacité = (excellentes − fautes) / réceptions × 100 (peut être négative)",
      "blocks": "Blocs",
      "blocksPerSet": "Blocs / set",
      "services": "Services",
      "servicesPerMatch": "Serv. / match",
      "servicesPerSet": "Serv. / set",
      "aces": "Aces",
      "acesPerMatch": "Aces / match",
      "acesPerSet": "Aces / set",
      "serviceFaults": "Fautes serv.",
      "serviceFaultsPerMatch": "Fautes serv. / match",
      "serviceFaultsPerSet": "Fautes serv. / set",
      "serviceEfficiency": "Efficacité service",
      "totalErrors": "Fautes totales",
      "errorsPerSet": "Fautes / set"
    },
    "advanced": {
      "toggle": "Statistiques avancées par joueur",
      "player": "Joueur",
      "legendExcellent": "Excellent",
      "legendGood": "Bon",
      "legendWarning": "À améliorer",
      "efficiencyRatios": {
        "title": "Ratios d'efficacité",
        "killErr": "Points/fautes att.",
        "killErrTooltip": "Attaques gagnantes / erreurs d'attaque",
        "aceFault": "Ace/faute",
        "aceFaultTooltip": "Aces / Fautes de service",
        "ptsErr": "Pts/fautes",
        "ptsErrTooltip": "Points marqués / erreurs totales",
        "legendNoError": "∞ = Aucune erreur"
      },
      "advancedAttack": {
        "title": "Attaque avancée",
        "killPct": "% réussite",
        "killPctTooltip": "Pourcentage d'attaques gagnantes",
        "blockedPct": "% Bloqué",
        "blockedPctTooltip": "Pourcentage d'attaques bloquées",
        "attPerSet": "Att/set",
        "attPerSetTooltip": "Nombre d'attaques par set",
        "legendKillHigh": "% réussite ≥ 50 %",
        "legendKillMid": "% réussite 40-50 %",
        "legendBlockedHigh": "% Bloqué >15 %"
      },
      "advancedService": {
        "title": "Service avancé",
        "acesPerSet": "Aces/set",
        "acesPerSetTooltip": "Aces par set",
        "faultsPerSet": "Fautes/set",
        "faultsPerSetTooltip": "Fautes de service par set",
        "ratio": "Ratio",
        "ratioTooltip": "Ratio Aces / Fautes",
        "legendAcesHigh": "Aces/set ≥ 0,5",
        "legendFaultsHigh": "Fautes/set >1"
      },
      "teamImpact": {
        "title": "Impact équipe",
        "playTime": "% Sets disputés",
        "playTimeTooltip": "Part des sets joués par l'équipe que le joueur a disputés. Un set compte s'il a été débuté sur le terrain ; pour un libéro, tous les sets d'apparition comptent (la LNV ne lui attribue jamais de position de départ).",
        "inProgress": "+{{count}} {count, plural, one {entrée en cours} other {entrées en cours}}",
        "inProgressTooltip": "Sets où le joueur est entré en cours de jeu. Comptés à part : la feuille de match n'indique pas la durée de ces passages.",
        "contrib": "% Contrib.",
        "contribTooltip": "Pourcentage de contribution aux points",
        "ptsPerSet": "Pts/set",
        "ptsPerSetTooltip": "Points par set joué",
        "legendBars": "Barres = proportion visuelle"
      }
    },
    "teamGlobal": {
      "phase": {
        "label": "Période",
        "regular": "Saison régulière",
        "qualification": "Phases annexes",
        "playoffs": "Play-offs",
        "all": "Toute la saison"
      },
      "title": "Statistiques globales de l'équipe",
      "loading": "Chargement des statistiques de l'équipe…",
      "error": "Erreur lors du chargement des stats de l'équipe",
      "results": {
        "officialRank": "{{rank}}e",
        "rankingPointsRegularOnly": "Points de classement : saison régulière uniquement",
        "title": "Résultats",
        "gamesPlayed": "Matchs joués",
        "wins": "Victoires",
        "losses": "Défaites",
        "rankingPoints": "Points au classement"
      },
      "sets": {
        "title": "Sets",
        "setsWon": "Sets gagnés",
        "setsLost": "Sets perdus",
        "setsCoefficient": "Coefficient sets"
      },
      "points": {
        "title": "Points",
        "totalPoints": "Points totaux",
        "pointsPerMatch": "Points / match",
        "pointsPerSet": "Points / set"
      },
      "attack": {
        "title": "Attaque",
        "spikePoints": "Attaques gagnantes",
        "spikePointsPerMatch": "Points d'attaque / match",
        "spikePointsPerSet": "Points d'attaque / set",
        "totalSpikes": "Attaques totales",
        "spikesPerMatch": "Attaques / match",
        "spikesPerSet": "Attaques / set",
        "efficiency": "Efficacité",
        "spikeFaults": "Fautes d'attaque",
        "spikeFaultsPerMatch": "Fautes d'attaque / match",
        "spikeFaultsPerSet": "Fautes d'attaque / set",
        "spikeBlocked": "Attaques contrées",
        "spikeBlockedPerMatch": "Attaques contrées / match",
        "spikeBlockedPerSet": "Attaques contrées / set"
      },
      "block": {
        "title": "Bloc",
        "blocks": "Blocs réussis",
        "blocksPerMatch": "Blocs / match",
        "blocksPerSet": "Blocs / set"
      },
      "service": {
        "title": "Service",
        "aces": "Aces",
        "acesPerMatch": "Aces / match",
        "acesPerSet": "Aces / set",
        "totalServices": "Services totaux",
        "efficiency": "% d'aces",
        "serviceFaults": "Fautes de service",
        "serviceFaultsPerMatch": "Fautes de service / match",
        "serviceFaultsPerSet": "Fautes de service / set"
      },
      "faults": {
        "title": "Fautes",
        "totalFaults": "Fautes (att. + serv. + réc.)",
        "faultsPerMatch": "Fautes (att. + serv. + réc.) / match",
        "faultsPerSet": "Fautes (att. + serv. + réc.) / set"
      }
    },
    "sectorRankings": {
      "loading": "Chargement des classements par secteur…",
      "title": "Classements de toutes les équipes par secteur",
      "infoMessage": "Consultez les classements détaillés des équipes dans chaque secteur de jeu",
      "topTitle": "Meilleurs classements de l'équipe"
    },
    "sectorTabs": {
      "breakPoints": "Break points",
      "differencePoints": "Différence de points",
      "attack": "Attaque",
      "block": "Bloc",
      "service": "Service",
      "reception": "Réception",
      "faults": "Fautes"
    },
    "panels": {
      "breakPointsTitle": "Break points",
      "differencePointsTitle": "Différence de points",
      "attackTitle": "Attaque",
      "blockTitle": "Bloc",
      "serviceTitle": "Service",
      "receptionTitle": "Réception",
      "faultsTitle": "Fautes (moins c'est mieux)",
      "total": "Total",
      "perMatch": "Par match",
      "perSet": "Par set",
      "attackPointsTotal": "Points d'attaque (total)",
      "attackPointsPerMatch": "Points d'attaque (par match)",
      "attackPointsPerSet": "Points d'attaque (par set)",
      "attackSuccess": "Réussite d'attaque",
      "attackEfficiency": "Efficacité d'attaque",
      "attackBlockedTotal": "Attaque contrée (total)",
      "attackBlockedPerMatch": "Attaque contrée (par match)",
      "attackBlockedPerSet": "Attaque contrée (par set)",
      "attackFaultsTotal": "Faute d'attaque (total)",
      "attackFaultsPerMatch": "Faute d'attaque (par match)",
      "attackFaultsPerSet": "Faute d'attaque (par set)",
      "blockTotal": "Blocs (total)",
      "blockPerMatch": "Blocs (par match)",
      "blockPerSet": "Blocs (par set)",
      "acesTotal": "Aces (total)",
      "acesPerMatch": "Aces (par match)",
      "acesPerSet": "Aces (par set)",
      "serviceEfficiency": "Efficacité au service",
      "serviceFaultsTotal": "Fautes de service (total)",
      "serviceFaultsPerMatch": "Fautes de service (par match)",
      "serviceFaultsPerSet": "Fautes de service (par set)",
      "receptionExcellent": "Réceptions excellentes",
      "receptionPositive": "Réceptions positives",
      "receptionFaultsTotal": "Fautes de réception (total)",
      "receptionFaultsPerMatch": "Fautes de réception (par match)",
      "receptionFaultsPerSet": "Fautes de réception (par set)",
      "receptionEfficiency": "Efficacité en réception",
      "receptionEfficiencyTooltip": "Efficacité = (excellentes − fautes) / réceptions × 100 (peut être négative)",
      "faultsFormulaTitle": "Formule :",
      "faultsFormula": "Fautes totales = Fautes de service + Fautes d'attaque + Fautes de réception",
      "faultsFormulaDesc": "Ce classement regroupe l'ensemble des fautes directes commises par chaque équipe : les fautes au service (service dans le filet ou hors limites), les fautes en attaque (attaque hors limites, dans le filet ou infraction) et les fautes en réception (réception ratée ou hors contrôle).",
      "faultsTotal": "Fautes (total)",
      "faultsPerMatch": "Fautes (par match)",
      "faultsPerSet": "Fautes (par set)"
    },
    "topRankings": {
      "breakPointsTotal": "Break points (total)",
      "breakPointsPerMatch": "Break points (par match)",
      "differencePointsTotal": "Différence de points (total)",
      "differencePointsPerMatch": "Différence de points (par match)",
      "attackPointsTotal": "Points d'attaque (total)",
      "attackPointsPerMatch": "Points d'attaque (par match)",
      "attackPointsPerSet": "Points d'attaque (par set)",
      "attackSuccess": "Réussite d'attaque",
      "attackEfficiency": "Efficacité d'attaque",
      "blockTotal": "Blocs (total)",
      "blockPerMatch": "Blocs (par match)",
      "acesTotal": "Aces (total)",
      "acesPerMatch": "Aces (par match)",
      "serviceEfficiency": "Efficacité au service",
      "receptionExcellent": "Réceptions excellentes",
      "receptionPositive": "Réceptions positives",
      "receptionEfficiency": "Efficacité en réception",
      "serviceFaultsPerMatch": "Fautes de service (par match)",
      "serviceFaultsPerSet": "Fautes de service (par set)",
      "faultsTotal": "Fautes (total)",
      "faultsPerMatch": "Fautes (par match)",
      "faultsPerSet": "Fautes (par set)"
    },
    "noCompetition": "Aucune compétition n'est rattachée à cette équipe : les statistiques ne peuvent pas être calculées.",
    "competitionsError": "Les compétitions de cette équipe n'ont pas pu être chargées. Réessayez dans un instant.",
    "sectorRankingsError": "Les classements par secteur n'ont pas pu être chargés.",
    "noStatsYet": "Aucune statistique n'est encore disponible pour cette compétition. Les données apparaîtront après la première journée.",
    "ownSeason": {
      "title": "Votre saison dans l'équipe",
      "profileLink": "Votre fiche",
      "note": "Visible de vous uniquement : le détail de vos coéquipiers reste sur leur fiche, réservé à chacun."
    }
  },
  "playerRankingsTab": {
    "loading": "Chargement des classements…",
    "title": "Classement historique",
    "seasonSingular": "saison",
    "seasonPlural": "saisons",
    "description": "Classements par rapport aux autres joueurs du même poste dans la même compétition.",
    "descriptionF": "Classements par rapport aux autres joueuses du même poste dans la même compétition.",
    "sectors": {
      "points": "Points",
      "service": "Service",
      "attack": "Attaque",
      "block": "Bloc",
      "reception": "Réception",
      "distribution": "Distribution"
    },
    "categories": {
      "totalPoints": "Points",
      "avgPointsPerMatch": "Pts/m",
      "pointsPerSet": "Pts/set",
      "breakPoints": "Break pts",
      "diffWinLost": "Diff +/−",
      "totalService": "Services",
      "totalAces": "Aces",
      "serviceEfficiency": "Eff. serv.",
      "attacksPerSet": "Att./set",
      "spikeEfficiency": "Réu. att.",
      "totalBlocks": "Blocs",
      "blocksPerSet": "Blocs/set",
      "totalReception": "Réceptions",
      "positiveReception": "Récep. +",
      "excellentReception": "Récep. #",
      "receptionEfficiency": "Eff. récep.",
      "teamSpikeSuccessRate": "Réu. attaque équipe",
      "teamSpikeEfficiency": "Eff. attaque équipe",
      "winRateAsStarter": "Taux de victoires titulaire"
    },
    "tooltips": {
      "serviceEfficiency": "Formule : (aces - fautes) / total services × 100. Peut être négatif.",
      "receptionEfficiency": "Efficacité = (excellentes − fautes) / réceptions × 100 (peut être négative)",
      "teamSpikeSuccessRate": "Taux de réussite en attaque de l'équipe quand ce passeur est titulaire.",
      "teamSpikeSuccessRateF": "Taux de réussite en attaque de l'équipe quand cette passeuse est titulaire.",
      "teamSpikeEfficiency": "Efficacité offensive de l'équipe quand ce passeur est titulaire.",
      "teamSpikeEfficiencyF": "Efficacité offensive de l'équipe quand cette passeuse est titulaire.",
      "winRateAsStarter": "Pourcentage de matchs gagnés quand ce passeur est titulaire.",
      "winRateAsStarterF": "Pourcentage de matchs gagnés quand cette passeuse est titulaire."
    },
    "topBadge": "Top {{n}} : {{count}} fois",
    "best": "Meilleur :",
    "ordinalFirst": "er",
    "ordinalFirstF": "re",
    "ordinalOther": "e",
    "tableSeason": "Saison",
    "tableCompetition": "Compétition",
    "tablePosition": "Poste",
    "empty": "Aucune donnée de classement disponible pour ce joueur",
    "emptyF": "Aucune donnée de classement disponible pour cette joueuse"
  },
  "playerRotationsTab": {
    "loading": "Chargement des rotations…",
    "title": "Rotations (positions de départ)",
    "courtView": "Vue terrain - carrière",
    "careerDescription": "Fréquence des positions de départ sur l'ensemble de la carrière ({{count}} sets démarrés)",
    "net": "Filet",
    "legendFrequent": "Fréquent",
    "legendRare": "Rare",
    "legendNever": "Jamais",
    "seasonDetail": "Détail par saison",
    "seasonDetailDescription": "Nombre de sets démarrés à chaque position, par saison",
    "tableSeason": "Saison",
    "tableSets": "Sets",
    "career": "Carrière",
    "empty": "Aucune donnée de rotation disponible pour ce joueur",
    "emptyF": "Aucune donnée de rotation disponible pour cette joueuse",
    "liberoTitle": "Pas de rotation pour un libéro",
    "liberoTitleF": "Pas de rotation pour une libéro",
    "liberoExplanation": "Le libéro n'occupe aucune place prédéfinie dans la composition de départ : il remplace le central sur la ligne arrière et entre ou sort au fil des rotations. Les feuilles de match l'inscrivent donc comme « entré en cours de set », sans position P1 à P6.",
    "liberoExplanationF": "La libéro n'occupe aucune place prédéfinie dans la composition de départ : elle remplace la centrale sur la ligne arrière et entre ou sort au fil des rotations. Les feuilles de match l'inscrivent donc comme « entrée en cours de set », sans position P1 à P6."
  },
  "playerTitularisationTab": {
    "loading": "Chargement des données de titularisation…",
    "title": "Titularisation par saison",
    "seasonSingular": "saison",
    "seasonPlural": "saisons",
    "tableSeason": "Saison",
    "teamMatches": "Matchs équipe",
    "teamMatchesTooltip": "Matchs terminés joués par le club du joueur pendant sa présence (depuis son arrivée, jusqu'à son départ)",
    "teamMatchesTooltipF": "Matchs terminés joués par le club de la joueuse pendant sa présence (depuis son arrivée, jusqu'à son départ)",
    "matchesPlayed": "Matchs joués",
    "matchesStarted": "Matchs titulaire",
    "starterRate": "% Titulaire",
    "setsStarted": "Sets titulaire",
    "totalSets": "Total sets",
    "setStartRate": "% Sets titulaire",
    "subbedOut": "Sorties",
    "subbedOutTooltip": "Titulaire au set 1 mais absent d'au moins un set suivant (sorti en cours de match)",
    "subbedOutTooltipF": "Titulaire au set 1 mais absente d'au moins un set suivant (sortie en cours de match)",
    "subbedIn": "Entrées",
    "subbedInTooltip": "Remplaçant au set 1 mais a démarré au moins un set suivant (entré dans le 7 de départ en cours de match)",
    "subbedInTooltipF": "Remplaçante au set 1 mais a démarré au moins un set suivant (entrée dans le 7 de départ en cours de match)",
    "enteredMidSet": "Entrée mid-set",
    "enteredMidSetTooltip": "N'a démarré aucun set mais a joué : entré en remplacement en cours de set",
    "enteredMidSetTooltipF": "N'a démarré aucun set mais a joué : entrée en remplacement en cours de set",
    "careerTotal": "Total carrière",
    "empty": "Aucune donnée de titularisation disponible pour ce joueur",
    "emptyF": "Aucune donnée de titularisation disponible pour cette joueuse"
  },
  "playerCareerTab": {
    "progressionColValue": "Valeur",
    "progressionColDelta": "Écart avec la saison préc.",
    "deltaPointsUnit": " pts",
    "loading": "Chargement de la carrière…",
    "title": "Parcours professionnel",
    "seasonCountSingular": "{{count}} saison",
    "seasonCountPlural": "{{count}} saisons",
    "minSetsLabel": "Sets minimum par match :",
    "matchesWithMinSetsHint": "Matchs avec {{count}}+ sets joués",
    "filterExplanationPrefix": "Seuls les matchs où le joueur a joué au moins",
    "filterExplanationPrefixF": "Seuls les matchs où la joueuse a joué au moins",
    "setCountSingular": "{{count}} set",
    "setCountPlural": "{{count}} sets",
    "filterExplanationMid": "sont comptabilisés. Toutes les statistiques (totaux, moyennes, pourcentages) et la",
    "filterProgressionWord": "progression",
    "filterExplanationSuffix": "sont recalculées en fonction de ce filtre.",
    "colTeam": "Équipe",
    "shirtNumber": "n° {{numbers}}",
    "shirtNumberTitle": "Numéro de maillot : {{numbers}}",
    "colPosition": "Poste",
    "colTeamMatches": "M. Équipe",
    "colMatchesPlayed": "M. Joués",
    "colMatchesStarted": "M. Titu.",
    "colSets": "Sets",
    "colPoints": "Points",
    "colPointsPerMatch": "Pts/match",
    "colPointsPerSet": "Pts/set",
    "colTeamSuccess": "Réu. éq.",
    "colTeamSuccessTooltip": "Taux de réussite en attaque de l'équipe quand ce passeur joue",
    "colTeamSuccessTooltipF": "Taux de réussite en attaque de l'équipe quand cette passeuse joue",
    "colTeamEff": "Eff. éq.",
    "colTeamEffTooltip": "Efficacité en attaque de l'équipe quand ce passeur joue",
    "colTeamEffTooltipF": "Efficacité en attaque de l'équipe quand cette passeuse joue",
    "colWinStarter": "Win% titu.",
    "colWinStarterTooltip": "Pourcentage de victoires quand ce passeur est titulaire",
    "colWinStarterTooltipF": "Pourcentage de victoires quand cette passeuse est titulaire",
    "colBlocks": "Blocs",
    "colBlocksPerMatch": "Blocs/match",
    "colBlocksPerSet": "Blocs/set",
    "colSpikes": "Attaques",
    "colSpikesPerMatch": "Att/match",
    "colSpikesPerSet": "Att/set",
    "colSpikeSuccess": "Réussite Att.",
    "colSpikeEff": "Eff. Att.",
    "colReceptions": "Récep.",
    "colReceptionFaults": "Fautes Réc.",
    "colReceptionPositive": "% Réc. Pos.",
    "colReceptionExcellent": "% Réc. Exc.",
    "colReceptionEff": "Eff. Réc.",
    "colReceptionEffTooltip": "Efficacité = (excellentes − fautes) / réceptions × 100 (peut être négative)",
    "colServices": "Services",
    "colServicesPerMatch": "Serv/match",
    "colServicesPerSet": "Serv/set",
    "colAces": "Aces",
    "colServiceFaults": "Fautes Serv.",
    "colDiff": "+/−",
    "colDiffTooltip": "Bilan de ses actions : points gagnés moins points perdus, sur la saison",
    "colErrors": "Fautes",
    "colErrorsTooltip": "Fautes totales : attaque, service et réception",
    "na": "Non renseigné",
    "total": "Total",
    "rhythmTitle": "Rythme de saison",
    "rhythmIntro": "Comparaison du calendrier de chaque saison : durée du premier au dernier match, nombre de semaines avec un match, et semaines « surchargées » (≥ 2 matchs dans la même semaine ISO).",
    "rhythmColSeason": "Saison",
    "rhythmColDuration": "Durée",
    "rhythmColActiveWeeks": "Sem. actives",
    "rhythmColOverloadWeeks": "Sem. surchargées",
    "rhythmColDensity": "Densité",
    "rhythmMatchesPlayedSingular": "{{count}} match joué",
    "rhythmMatchesPlayedPlural": "{{count}} matchs joués",
    "rhythmDaysSingular": "{{count}} jour",
    "rhythmDaysPlural": "{{count}} jours",
    "rhythmWeeksSingular": "{{count}} semaine",
    "rhythmWeeksPlural": "{{count}} semaines",
    "rhythmDensityUnit": "match/sem.",
    "rhythmDetailTitle": "Semaines à 2 matchs ou plus",
    "rhythmDetailCountSingular": "{{count}} match",
    "rhythmDetailCountPlural": "{{count}} matchs",
    "rhythmWeekShort": "Sem. {{week}} · {{year}}",
    "progressionTitle": "Progression saison par saison",
    "progressionExplanationPrefix": "Progression calculée sur les matchs où le joueur a joué au moins",
    "progressionExplanationPrefixF": "Progression calculée sur les matchs où la joueuse a joué au moins",
    "progressionExplanationSuffix": ".",
    "seasonA": "Saison A :",
    "seasonB": "Saison B :",
    "radarSameSeason": "Sélectionnez deux saisons différentes pour comparer",
    "colMetric": "Métrique",
    "metricPtsPerMatch": "Pts/match",
    "metricBlksPerMatch": "Blocs/match",
    "metricAces": "Aces",
    "metricSpikeEff": "Eff. attaque",
    "metricSpikeSuccess": "Réussite att.",
    "metricReceptionPositive": "Réc. positive",
    "metricReceptionExcellent": "Réc. excellente",
    "metricTotalPoints": "Points totaux",
    "metricMatchesPlayed": "Matchs joués",
    "metricTeamSpikeSuccess": "Réu. att. équipe",
    "metricTeamSpikeEff": "Eff. att. équipe",
    "radarTeamSpikeSuccess": "Réu. att. éq.",
    "radarTeamSpikeEff": "Eff. att. éq.",
    "emptyState": "Aucune donnée de carrière disponible pour ce joueur",
    "emptyStateF": "Aucune donnée de carrière disponible pour cette joueuse",
    "summaryScopeCta": "Voir les offres",
    "scopeWhy": "Pourquoi ?",
    "minSetsHelp": "Comment ce filtre fonctionne",
    "minSetsOptionPlural": "Au moins {{count}} sets par match",
    "minSetsOptionSingular": "Au moins {{count}} set par match",
    "scopeLineShort": "Stats partielles",
    "scopeLine": "Toutes les statistiques ne sont pas affichées ici.",
    "metricReceptionEff": "Eff. réception",
    "metricTotalReceptions": "Réceptions",
    "metricReceptionFaults": "Fautes de réception",
    "passport": {
      "title": "Passeports",
      "summaryLead": "Vos statistiques restent toutes visibles ici. Pour {{count}} saisons ({{first}} à {{last}}), l'analyse détaillée des onglets",
      "summaryLeadOne": "Vos statistiques restent toutes visibles ici. Pour la saison {{first}}, l'analyse détaillée des onglets",
      "summaryTail": "est archivée : un Passeport la rouvre. Ces saisons portent un cadenas dans le tableau.",
      "summaryTailOne": "est archivée : un Passeport la rouvre. Elle porte un cadenas dans le tableau.",
      "cta": "Voir les Passeports",
      "rowTag": "Analyse archivée",
      "rowHint": "Statistiques visibles ici. L'analyse détaillée de cette saison (onglets Analyse, Évolution, Comparaison…) s'ouvre avec un Passeport."
    },
    "rhythmLockedLast3": "Rythme archivé · s'ouvre avec le Passeport 3 saisons",
    "rhythmLockedCareer": "Rythme archivé · s'ouvre avec le Passeport Carrière",
    "sectorTabsLabel": "Secteur affiché",
    "sectorLockedTitle": "Réservé aux abonnés",
    "sectors": {
      "volume": "Volume",
      "points": "Points",
      "distribution": "Distribution",
      "block": "Bloc",
      "attack": "Attaque",
      "reception": "Réception",
      "service": "Service",
      "contributions": "+/−",
      "errors": "Fautes"
    },
    "summaryScopeNote": "Le total des attaques, contres, réceptions et services de ce joueur et ses points par match font partie de l'offre Premium. Les moyennes, taux de réussite, efficacités, aces, fautes et la qualité de réception et de distribution restent visibles par le joueur seul, sur sa propre fiche.",
    "summaryScopeNoteF": "Le total des attaques, contres, réceptions et services de cette joueuse et ses points par match font partie de l'offre Premium. Les moyennes, taux de réussite, efficacités, aces, fautes et la qualité de réception et de distribution restent visibles par la joueuse seule, sur sa propre fiche.",
    "factsScopeNote": "Les moyennes, taux de réussite, efficacités, aces, fautes et la qualité de réception et de distribution de ce joueur ne sont visibles que par lui, sur sa propre fiche.",
    "factsScopeNoteF": "Les moyennes, taux de réussite, efficacités, aces, fautes et la qualité de réception et de distribution de cette joueuse ne sont visibles que par elle, sur sa propre fiche.",
    "sectorLockedOwnTitle": "Réservé au joueur, sur sa fiche",
    "sectorLockedOwnTitleF": "Réservé à la joueuse, sur sa fiche"
  },
  "playerTitlesTab": {
    "subTabIndividual": "Titres individuels",
    "subTabTeam": "Titres équipe",
    "loadingIndividual": "Chargement des distinctions…",
    "mvpSectionTitle": "Titres MVP",
    "mvpBadgeSingular": "{{count}} titre MVP",
    "mvpBadgePlural": "{{count}} titres MVP",
    "statReceptions": "Réceptions",
    "statReceptionFaults": "Fautes réc.",
    "statReceptionPositive": "Réc. positive",
    "statReceptionExcellent": "Réc. excellente",
    "statPoints": "Points",
    "statDiff": "Diff +/−",
    "statSpikeSuccess": "Réussite att.",
    "statSpikeEff": "Eff. att.",
    "statBlocks": "Blocs",
    "statAces": "Aces",
    "statTeamSpikeSuccess": "Réussite att. équipe",
    "statTeamSpikeEff": "Eff. att. équipe",
    "emptyIndividual": "Aucun titre individuel pour ce joueur",
    "emptyIndividualF": "Aucun titre individuel pour cette joueuse",
    "loadingTeam": "Chargement des titres équipe…",
    "titlesSectionTitle": "Titres",
    "titleCountSingular": "{{count}} titre",
    "titleCountPlural": "{{count}} titres",
    "finalCountSingular": "{{count}} finale",
    "finalCountPlural": "{{count}} finales",
    "champion": "Champion",
    "finalist": "Finaliste",
    "finalGames": "Matchs de finale ({{count}})",
    "regularSeasonSuffix": "saison régulière",
    "wonWithoutFinalPhase": "Titre acquis au classement de la saison régulière, sans phase finale",
    "wonOnRegularSeasonPlayoffsFinal": "Titre attribué au 1er de la saison régulière : la finale des play-offs, s'il y en a eu une, ne décidait pas du titre",
    "finalFallback": "Finale",
    "resultWin": "V",
    "resultLoss": "D",
    "emptyTeam": "Aucun titre équipe pour ce joueur",
    "emptyTeamF": "Aucun titre équipe pour cette joueuse",
    "mvpDisclaimer": "Ce décompte provient des feuilles de match publiées par la Ligue Nationale de Volley. Il peut être incomplet : la distinction de meilleur joueur n'est pas toujours renseignée sur la feuille, et les rencontres dont les statistiques n'ont pas été publiées ne sont pas comptabilisées. VolleyTracker n'est pas affilié à la LNV.",
    "mvpDisclaimerF": "Ce décompte provient des feuilles de match publiées par la Ligue Nationale de Volley. Il peut être incomplet : la distinction de meilleure joueuse n'est pas toujours renseignée sur la feuille, et les rencontres dont les statistiques n'ont pas été publiées ne sont pas comptabilisées. VolleyTracker n'est pas affilié à la LNV.",
    "missingSheetsLinkSingular": "Voir le match de ses équipes joué sans feuille de stats",
    "missingSheetsLinkPlural": "Voir les {{count}} matchs de ses équipes joués sans feuille de stats"
  },
  "playerMatchesTab": {
    "filtersToggle": "Filtres",
    "filtersActiveOne": "{{count}} actif",
    "filtersActiveMany": "{{count}} actifs",
    "subTabs": {
      "label": "Matchs joués ou à venir",
      "played": "Matchs joués",
      "upcoming": "Matchs à venir"
    },
    "upcoming": {
      "title": "Matchs à venir",
      "loading": "Chargement des matchs à venir…",
      "error": "Les matchs à venir n'ont pas pu être chargés.",
      "retry": "Réessayer",
      "empty": "Aucun match à venir pour ce joueur.",
      "emptyF": "Aucun match à venir pour cette joueuse."
    },
    "title": "Matchs du joueur",
    "titleF": "Matchs de la joueuse",
    "matchCountSingular": "{{count}} match",
    "matchCountPlural": "{{count}} matchs",
    "lockedBandAria": "Voir les offres Premium pour accéder au détail",
    "lockedChip": "Premium",
    "ownProfileChip": "Sa fiche",
    "ownProfileChipTitle": "Réservé au joueur, sur sa propre fiche",
    "ownProfileChipTitleF": "Réservé à la joueuse, sur sa propre fiche",
    "summaryScopeCta": "Voir les offres",
    "scopeWhy": "Pourquoi ?",
    "moreOptions": "Plus d'options",
    "missingSheetsChip": "{{count}} sans feuille",
    "scopeLineShort": "Stats partielles",
    "scopeLine": "Toutes les statistiques ne sont pas affichées ici.",
    "competition": "Compétition",
    "display": "Affichage",
    "allCompetitions": "Toutes les compétitions",
    "perPage": "{{count}} / page",
    "reset": "Réinitialiser",
    "statFiltersToggle": "Filtres stats",
    "clearStatFilters": "Effacer les filtres stats",
    "matchesOfTotalSingular": "{{count}} match sur {{total}}",
    "matchesOfTotalPlural": "{{count}} matchs sur {{total}}",
    "fullNames": "Noms complets",
    "shortNames": "Noms courts",
    "loading": "Chargement des matchs…",
    "colMatch": "Match",
    "colScore": "Score",
    "colPositionStart": "Poste / départ",
    "sectorVolume": "Volume de jeu",
    "sectorDistribution": "Distribution",
    "sectorContributions": "Contributions",
    "sectorService": "Service",
    "sectorReception": "Réception",
    "sectorAttack": "Attaque",
    "sectorBlock": "Bloc",
    "colSuccessRate": "Réu%",
    "colEfficiency": "Eff%",
    "colAttacks": "Att",
    "colAttacksPerSet": "Att/S",
    "colBlocked": "Blo",
    "colBlockedRate": "Blo%",
    "colErrors": "Fautes",
    "colErrorsRate": "Fautes %",
    "colPoints": "Pts",
    "colBreakPoints": "BP",
    "colWinLoss": "G/P",
    "colTotalErrorsTitle": "Fautes totales : attaque, service et réception",
    "colTotal": "Tot",
    "colAces": "Aces",
    "colPositiveReception": "Pos%",
    "colExcellentReception": "Exc%",
    "colPerSet": "/Set",
    "vs": "–",
    "viewMatchDetail": "Voir le détail du match",
    "starter": "Titulaire",
    "bench": "Banc",
    "noMatches": "Aucun match trouvé avec les filtres sélectionnés",
    "prev": "← Précédent",
    "next": "Suivant →",
    "pageInfo": "Page {{current}} / {{total}}",
    "enteredMidSet": "Entré",
    "enteredMidSetF": "Entrée",
    "setNumber": "Set {{number}}",
    "resultVictory": "Victoire",
    "resultDefeat": "Défaite",
    "searchLabel": "Adversaire",
    "searchPlaceholder": "Équipe ou joueur adverse",
    "searchPlaceholderF": "Équipe ou joueuse adverse",
    "suggestionsTeams": "Équipes",
    "suggestionsPlayers": "Joueurs",
    "suggestionsPlayersF": "Joueuses",
    "noOpponentFound": "Aucun adversaire trouvé dans ces matchs",
    "playerTeam": "Équipe du joueur",
    "playerTeamF": "Équipe de la joueuse",
    "allPlayerTeams": "Toutes ses équipes",
    "searchPlayerTeam": "Rechercher une équipe",
    "removeOpponent": "Retirer le filtre {{name}}",
    "clearSearch": "Effacer la recherche",
    "stage": "Phase",
    "allStages": "Toutes les phases",
    "stages": {
      "regular": "Saison régulière",
      "play_in": "Play-in",
      "round_of_16": "Huitièmes de finale",
      "quarter": "Quarts de finale",
      "semi": "Demi-finales",
      "final": "Finale",
      "finals_other": "Autres matchs de phase finale"
    },
    "playoffsFinal": "Finale des play-offs",
    "playoffsFinalHint": "Le titre se décidait au classement de la saison régulière : cette finale ne l'attribuait pas.",
    "filterFields": {
      "minSetsPlayed": "Sets joués (min)",
      "maxSetsPlayed": "Sets joués (max)",
      "isStarter": "Titulaire (1=oui, 0=non)",
      "minTeamSpikeSuccessRate": "Réussite att. éq. % (min)",
      "minTeamSpikeEfficiency": "Eff. att. éq. % (min)",
      "minTeamTotalSpikes": "Att. totales éq. (min)",
      "minTeamSpikeFaults": "Fautes att. éq. (min)",
      "minTeamSpikeBlocked": "Att. contrées éq. (min)",
      "minTeamSpikeBlockedRate": "Att. contrées éq. % (min)",
      "minTeamSpikeFaultRate": "Fautes att. éq. % (min)",
      "minTotalSpikes": "Attaques (min)",
      "minSpikePoints": "Points att. (min)",
      "minSpikeFaults": "Fautes att. (min)",
      "minSpikeBlocked": "Att. contrées (min)",
      "minSpikeSuccessRate": "Réussite att. % (min)",
      "minSpikeEfficiency": "Efficacité att. % (min)",
      "minBlockPoints": "Blocs (min)",
      "minServices": "Services (min)",
      "minServiceFaults": "Fautes serv. (min)",
      "minServicePoints": "Aces (min)",
      "minReceptions": "Réceptions (min)",
      "minReceptionFaults": "Fautes réc. (min)",
      "minPositiveReceptions": "Réc. positive % (min)",
      "minExcellentReceptions": "Réc. excellente % (min)"
    },
    "notStarted": "Aucun match joué pour l'instant. Les rencontres apparaîtront après la première journée.",
    "noStatsSheet": "Pas de feuille de stats",
    "noStatsSheetHint": "Rencontre de l'équipe jouée sans feuille de statistiques publiée : la participation du joueur ne peut pas être vérifiée.",
    "noStatsSheetHintF": "Rencontre de l'équipe jouée sans feuille de statistiques publiée : la participation de la joueuse ne peut pas être vérifiée.",
    "missingSheetsCountSingular": "1 match de ses équipes joué sans feuille de stats",
    "missingSheetsCountPlural": "{{count}} matchs de ses équipes joués sans feuille de stats",
    "missingSheetsHint": "Toutes compétitions confondues. Ces matchs ne comptent dans aucun total : sans feuille de match, la participation du joueur ne peut pas être vérifiée.",
    "missingSheetsHintF": "Toutes compétitions confondues. Ces matchs ne comptent dans aucun total : sans feuille de match, la participation de la joueuse ne peut pas être vérifiée.",
    "missingSheetsShow": "Voir le détail",
    "missingSheetsHide": "Masquer le détail",
    "missingSheetsPending": "En attente de publication",
    "contributeSheet": "Transmettre la feuille de stats",
    "contributeSheetAria": "Transmettre la feuille de stats du match {{home}} – {{away}} du {{date}}",
    "sheetContributed": "Feuille transmise",
    "sortButton": "Trier : {{label}}",
    "sortSheetTitle": "Trier les matchs",
    "sortDirectionLabel": "Sens du tri",
    "sortDirection": {
      "date": {
        "desc": "Plus récents d'abord",
        "asc": "Plus anciens d'abord"
      },
      "result": {
        "desc": "Victoires d'abord",
        "asc": "Défaites d'abord"
      },
      "value": {
        "desc": "Plus haut d'abord",
        "asc": "Plus bas d'abord"
      }
    },
    "sortOptions": {
      "diffWinLost": "+/−",
      "services": "Services",
      "receptionFaults": "Fautes de réception",
      "excellentReceptions": "Réception excellente",
      "totalSpikes": "Attaques",
      "spikeSuccessRate": "Réussite en attaque",
      "date": "Date",
      "result": "Résultat",
      "totalPoints": "Points",
      "teamSpikeEfficiency": "Eff. attaque de l'équipe",
      "teamSpikeSuccessRate": "Réussite attaque de l'équipe",
      "spikeEfficiency": "Efficacité en attaque",
      "servicePoints": "Aces",
      "blockPoints": "Blocs",
      "receptions": "Réceptions",
      "positiveReceptions": "Réception positive"
    },
    "picker": {
      "button": "Stats",
      "title": "Stats affichées",
      "count": "{{count}} / {{max}}",
      "close": "Fermer",
      "hint": "L'ordre de sélection est l'ordre d'affichage. Retire une stat pour en choisir une autre.",
      "missingSingular": "Encore {{count}} stat à choisir.",
      "missingPlural": "Encore {{count}} stats à choisir.",
      "reset": "Par défaut",
      "apply": "Valider"
    },
    "card": {
      "diffWinLost": "+/−",
      "services": "Services",
      "totalSpikes": "Attaques",
      "spikeSuccessRate": "Réussite att.",
      "points": "Points",
      "spikeEfficiency": "Eff. attaque",
      "aces": "Aces",
      "blocks": "Blocs",
      "receptions": "Réceptions",
      "positiveReception": "Réc. positive",
      "excellentReception": "Réc. excellente",
      "receptionFaults": "Fautes réc.",
      "teamSpikeEfficiency": "Eff. équipe",
      "teamSpikeSuccessRate": "Réussite équipe",
      "showDetail": "Toutes les stats",
      "hideDetail": "Masquer le détail"
    },
    "summaryScopeNote": "Seuls les points marqués (les réceptions pour un libéro), les sets joués et la titularisation sont affichés. Le nombre d'attaques, de contres, de réceptions et de services de chaque match fait partie de l'offre Premium ; aces, fautes, réussite, efficacité, qualité de réception, contributions et positions de départ restent visibles par le joueur seul, sur sa propre fiche.",
    "summaryScopeNoteF": "Seuls les points marqués (les réceptions pour une libéro), les sets joués et la titularisation sont affichés. Le nombre d'attaques, de contres, de réceptions et de services de chaque match fait partie de l'offre Premium ; aces, fautes, réussite, efficacité, qualité de réception, contributions et positions de départ restent visibles par la joueuse seule, sur sa propre fiche.",
    "factsScopeNote": "Aces, fautes, réussite, efficacité, qualité de réception, contributions et positions de départ de chaque match ne sont visibles que par le joueur, sur sa propre fiche.",
    "factsScopeNoteF": "Aces, fautes, réussite, efficacité, qualité de réception, contributions et positions de départ de chaque match ne sont visibles que par la joueuse, sur sa propre fiche.",
    "sortLabel": "Trier par",
    "sortAscending": "Ordre croissant, inverser",
    "sortDescending": "Ordre décroissant, inverser"
  },
  "statsScopeWhy": {
    "title": "Pourquoi des stats manquent",
    "close": "Fermer",
    "alreadyAll": "Votre abonnement affiche déjà tout ce qui peut l'être.",
    "premiumTitle": "Avec Premium",
    "premiumIntro": "Ouvert sur toutes les fiches de joueurs :",
    "cta": "Voir les offres",
    "ownTitle": "Réservé au joueur, sur sa fiche",
    "ownTitleF": "Réservé à la joueuse, sur sa fiche",
    "ownIntroSummary": "Aucune offre ne les ouvre sur la fiche d'un autre joueur.",
    "ownIntroSummaryF": "Aucune offre ne les ouvre sur la fiche d'une autre joueuse.",
    "ownIntroFacts": "Ce sont des lectures de son jeu, pas des faits de match : seul le joueur les voit.",
    "ownIntroFactsF": "Ce sont des lectures de son jeu, pas des faits de match : seule la joueuse les voit.",
    "tags": {
      "pointsPerMatch": "Points par match",
      "diffWinLost": "+/−",
      "spikes": "Attaques",
      "blocks": "Contres",
      "receptions": "Réceptions",
      "services": "Services",
      "aces": "Aces",
      "errors": "Fautes",
      "averages": "Moyennes",
      "successRate": "Réussite",
      "efficiency": "Efficacité",
      "receptionQuality": "Qualité de réception",
      "skillErrors": "Fautes de service et de réception",
      "distribution": "Distribution",
      "attackDetail": "Détail des attaques",
      "breakPoints": "Break points",
      "startPositions": "Positions de départ",
      "receptionErrors": "Fautes de réception",
      "serviceErrors": "Fautes de service"
    },
    "playerPremiumTitle": "Avec Joueur Premium",
    "playerPremiumIntro": "Ouvert sur votre fiche, sur toute votre carrière :",
    "playerCta": "Voir l'offre joueur"
  },
  "statsSheetContribution": {
    "title": "Transmettre la feuille de stats",
    "intro": "Vous disposez de la feuille de statistiques de ce match ? Transmettez-la au service client de VolleyTracker : elle sera vérifiée avant toute intégration.",
    "matchLabel": "Match concerné",
    "sourceLabel": "D'où provient cette feuille ?",
    "sourcePlaceholder": "Ex. site de la FFVB, club, feuille papier photographiée",
    "sourceHint": "Le site, le club ou le support d'où vous tenez le document.",
    "producerLabel": "Qui l'a produite ?",
    "producerPlaceholder": "Ex. e-marque officielle, statisticien du club, logiciel DataVolley",
    "producerHint": "La personne, l'organisme ou le logiciel à l'origine des statistiques.",
    "sheetLegend": "Feuille de stats",
    "sheetHint": "Joignez le fichier, indiquez un lien vers la feuille, ou les deux.",
    "fileChoose": "Choisir un fichier",
    "fileReplace": "Remplacer le fichier",
    "fileRemove": "Retirer le fichier {{name}}",
    "fileHint": "PDF, JPG, PNG, WEBP, DataVolley (.dvw), XLSX ou CSV — {{maxSizeMb}} Mo maximum.",
    "fileSizeMb": "{{value}} Mo",
    "fileSizeKb": "{{value}} Ko",
    "linkLabel": "Lien vers la feuille",
    "messageLabel": "Message",
    "optional": "facultatif",
    "messagePlaceholder": "Précisions utiles : feuille partielle, set manquant, contexte…",
    "attestationLabel": "J'atteste avoir le droit de transmettre ce document.",
    "cancel": "Annuler",
    "close": "Fermer",
    "submit": "Transmettre",
    "submitting": "Envoi en cours…",
    "success": "Merci ! La feuille de stats a été transmise au service client.",
    "errors": {
      "sourceRequired": "Indiquez d'où provient la feuille.",
      "sourceTooLong": "La provenance ne doit pas dépasser {{maxSource}} caractères.",
      "producerRequired": "Indiquez qui a produit la feuille.",
      "producerTooLong": "Le producteur ne doit pas dépasser {{maxProducer}} caractères.",
      "linkInvalid": "Le lien doit être une adresse web commençant par http:// ou https://.",
      "messageTooLong": "Le message ne doit pas dépasser {{maxMessage}} caractères.",
      "fileOrLinkRequired": "Joignez le fichier de la feuille ou indiquez un lien vers celle-ci.",
      "fileExtension": "Format non accepté : PDF, JPG, PNG, WEBP, DataVolley (.dvw), XLSX ou CSV.",
      "fileSize": "Le fichier dépasse {{maxSizeMb}} Mo.",
      "fileEmpty": "Le fichier est vide.",
      "attestationRequired": "Attestez avoir le droit de transmettre ce document.",
      "tooManyRequests": "Trop d'envois de feuilles de stats en peu de temps. Réessayez plus tard.",
      "notFound": "Ce match est introuvable.",
      "rejected": "La feuille n'a pas pu être acceptée. Vérifiez le formulaire."
    }
  },
  "playerResultsTab": {
    "subTabMatches": "Matchs",
    "subTabRankings": "Classements",
    "loadingResults": "Chargement des résultats…",
    "allCompetitions": "Toutes les compétitions",
    "clearAll": "Tout effacer",
    "globalResultsTitle": "Résultats globaux (toutes saisons)",
    "matchesPlayed": "Matchs joués",
    "wins": "Victoires",
    "losses": "Défaites",
    "winRate": "Taux de victoires",
    "home": "Domicile",
    "away": "Extérieur",
    "resultsBySeason": "Résultats par saison",
    "noDataPlayer": "Aucune donnée disponible pour ce joueur.",
    "noDataPlayerF": "Aucune donnée disponible pour cette joueuse.",
    "matchesCount": "{{count}} {count, plural, one {match} other {matchs}}",
    "winShort": "V",
    "lossShort": "D",
    "teamsBeaten": "Équipes battues",
    "teamsLost": "Équipes victorieuses",
    "teamsLostToTitle": "Équipes contre lesquelles le joueur a perdu",
    "teamsLostToTitleF": "Équipes contre lesquelles la joueuse a perdu",
    "opponentTeams": "Équipes adverses",
    "sortByLabel": "Trier par",
    "sortMatches": "Matchs",
    "sortWins": "Victoires",
    "sortWinRate": "% victoire",
    "noWins": "Aucune victoire enregistrée.",
    "noLosses": "Aucune défaite enregistrée.",
    "errorLoading": "Erreur lors du chargement des résultats.",
    "loadingRankings": "Chargement des classements…",
    "seasonRankingsTitle": "Classements de saison régulière",
    "noSeasonRankings": "Aucun classement de saison régulière disponible.",
    "record": "Bilan",
    "winPercentage": "% victoires",
    "sets": "Sets",
    "pts": "pts",
    "favoriteTeamLabel": "Équipe favorite",
    "nemesisTeamLabel": "Bête noire",
    "opponentsLockedText": "Vos bilans contre chaque équipe adverse, à domicile et à l'extérieur, saison après saison : ils s'ouvrent avec Joueur Premium. Votre bilan contre votre prochain adversaire reste sur votre tableau de bord.",
    "opponentsLockedCta": "Voir l'offre joueur"
  },
  "playerProfile": {
    "loading": "Chargement du profil du joueur…",
    "loadingShort": "Chargement…",
    "backToList": "Retour à la liste des joueurs",
    "backToPlayers": "Tous les joueurs",
    "yearsSuffix": "ans",
    "lastKnownTeam": "Dernière équipe connue",
    "errorMissingId": "ID du joueur manquant",
    "errorLoad": "Erreur lors du chargement du profil du joueur",
    "status": {
      "empty": "Aucun match joué",
      "active": "Saison en cours"
    },
    "tabs": {
      "synthese": "Synthèse",
      "comparaison": "Comparaison",
      "matchs": "Matchs",
      "resultats": "Résultats",
      "carriere": "Carrière",
      "palmares": "Palmarès",
      "analyse": "Analyse",
      "coequipiers": "Coéquipiers",
      "coequipiersF": "Coéquipières",
      "records": "Records",
      "titularisation": "Titularisation",
      "rotations": "Rotations",
      "evolution": "Évolution",
      "faceAFace": "Face à face",
      "classement": "Classement",
      "confrontation": "Confrontations"
    },
    "restricted": {
      "parcours": "Parcours",
      "confrontation": "Confrontation",
      "season": "Saison",
      "teams": "Équipe(s)",
      "competitions": "Compétition(s)",
      "position": "Poste",
      "emptyCareer": "Aucun parcours disponible.",
      "matches": "Matchs",
      "wins": "Victoires",
      "losses": "Défaites",
      "emptyVersus": "Aucun match en commun.",
      "noOwnPlayer": "Vous n'avez pas de fiche joueur rattachée : les confrontations directes ne peuvent pas être calculées."
    },
    "premiumBadge": "Premium",
    "premiumLockedHint": "réservé à l'offre Premium",
    "tabSelectLabel": "Onglet de la fiche joueur",
    "tabPickerKicker": "Onglet {{index}} sur {{count}}",
    "questionsSearch": {
      "label": "Questions",
      "aria": "Questions sur la fiche (raccourci : /)"
    },
    "card": {
      "open": "Carte du joueur",
      "dialogLabel": "Carte du joueur à partager",
      "close": "Fermer la carte",
      "hint": "Faites une capture d'écran de la carte pour la publier.",
      "shareLink": "Partager le lien de la fiche",
      "career": "Carrière",
      "careerSpan": "{{count}} saisons · {{first}} → {{last}}",
      "careerSpanOne": "1 saison · {{first}}",
      "distinctionCohort": "sur {{count}} {{position}}",
      "settingsLabel": "Personnaliser la carte",
      "scopeLabel": "Saison affichée",
      "ringLabel": "Anneau autour des initiales",
      "ring": {
        "position": "Couleur du poste",
        "flag": "Couleurs du drapeau"
      },
      "statsLabel": "Chiffres affichés",
      "distinctionsLabel": "Top 5 du poste",
      "statInRanking": "« {{stat}} » figure déjà dans un classement de la carte : pas de tuile en double.",
      "noDistinction": "Aucun classement dans le top 5 du poste sur cette saison.",
      "distinctionsPremium": "Avec Premium, affichez vos places dans le top 5 de votre poste.",
      "stat": {
        "points": "Points",
        "receptions": "Réceptions",
        "matches": "Matchs",
        "starts": "Titulaire",
        "sets": "Sets",
        "seasons": "Saisons",
        "pointsPerMatch": "Points / match",
        "attackEfficiency": "Eff. attaque",
        "attackSuccess": "Réussite attaque",
        "aces": "Aces",
        "acesPerSet": "Aces / set",
        "blocks": "Blocs",
        "blocksPerSet": "Blocs / set",
        "positiveReception": "Réception +",
        "excellentReception": "Réception ++"
      }
    },
    "share": {
      "button": "Partager",
      "copied": "Lien de la fiche publique copié",
      "copyFailed": "Copie impossible. Adresse de la fiche publique : {{url}}",
      "viewOwnPublic": "Voir ma fiche publique",
      "viewPublic": "Voir la fiche publique",
      "newTab": "s'ouvre dans un nouvel onglet",
      "hintLabel": "À propos de la fiche publique",
      "hintIndexed": "La fiche publique est la version visible sans compte : c'est elle que référencent les moteurs de recherche.",
      "hintNoindex": "La fiche publique est la version visible sans compte. Elle n'est pas référencée par les moteurs de recherche avant 18 ans.",
      "minorOwn": "Votre fiche publique ne peut pas être partagée tant que vous avez moins de 18 ans. Elle reste visible sans compte, mais n'apparaît ni dans les effectifs publics ni dans les moteurs de recherche."
    },
    "archivedSeasons": {
      "title": "{{count}} saisons archivées.",
      "cta": "Voir les Passeports",
      "short": "Les analyses de ces saisons s'ouvrent avec un Passeport, un achat unique.",
      "show": "Voir lesquelles",
      "hide": "Masquer",
      "range": "{{first}} à {{last}} ({{count}})",
      "titleOne": "1 saison archivée.",
      "optionSuffixLast3": "Passeport 3 saisons",
      "optionSuffixCareer": "Passeport Carrière"
    }
  },
  "playerSynthesisTab": {
    "emptyTitle": "Aucune stat encore inscrite",
    "emptyDesc": "Les statistiques de {{name}} apparaîtront dès son premier match suivi.",
    "defaultPlayer": "Ce joueur",
    "defaultPlayerF": "Cette joueuse",
    "scopeActiveShort": "Saison en cours",
    "scopeLastSeasonShort": "Dernière saison jouée",
    "storyNowKicker": "En ce moment",
    "storyPastKicker": "Ses derniers matchs · jusqu'au {{date}}",
    "storyFormLead": "{{wins}} victoires sur ses {{count}} derniers matchs",
    "storyFormLeadOneWin": "1 victoire sur ses {{count}} derniers matchs",
    "storyFormLeadNoWin": "Aucune victoire sur ses {{count}} derniers matchs",
    "storyFormLeadSingleWin": "Victoire lors de son dernier match",
    "storyFormLeadSingleLoss": "Défaite lors de son dernier match",
    "storyFormAveragePoints": "{{value}} pts par match joué",
    "storyFormAverageReceptions": "{{value}} réceptions par match joué",
    "linkMatches": "Voir tous ses matchs",
    "linkCareer": "Sa carrière saison par saison",
    "linkComparison": "Voir la comparaison au poste",
    "storyRankKicker": "Face aux {{position}} · {{competition}}",
    "storyRankLead": "Son meilleur classement : {{stat}}, #{{rank}} sur {{count}}",
    "rankNote": "Rang parmi les joueurs du même poste ; les pourcentages et moyennes ne classent que ceux qui ont assez joué.",
    "showDetail": "Voir le détail",
    "hideDetail": "Masquer le détail",
    "storySeasonLead": "{{volume}} en {{matches}}",
    "storySeasonLeadStarted": "{{volume}} en {{matches}}, dont {{started}} comme titulaire",
    "countPoints": "{{count}} points",
    "countPointOne": "1 point",
    "countReceptions": "{{count}} réceptions",
    "countReceptionOne": "1 réception",
    "countMatches": "{{count}} matchs",
    "countMatchOne": "1 match",
    "countSets": "{{count}} sets joués",
    "countSetOne": "1 set joué",
    "pts": "pts",
    "blocks": "blocs",
    "aces": "aces",
    "success": "réussite",
    "efficiency": "efficacité",
    "kpiPerSet": "{{value}} / set",
    "kpiAttackEfficiency": "Efficacité attaque",
    "kpiAttackSub": "Réussite {{rate}} · {{points}} pts sur {{total}}",
    "kpiWinningBlocks": "Blocs",
    "kpiAttacks": "Attaques",
    "kpiServices": "Services",
    "kpiReceptions": "Réceptions",
    "kpiAces": "Aces",
    "kpiPositiveReception": "Réception positive",
    "kpiExcellentReceptionSub": "{{value}} % excellente",
    "starter": "Titulaire",
    "substitute": "Remplaçant",
    "substituteF": "Remplaçante",
    "oneSet": "1 set",
    "sets": "{{count}} sets",
    "notPlayed": "Pas entré en jeu",
    "notPlayedF": "Pas entrée en jeu",
    "receptions": "réc.",
    "positive": "positive",
    "positiveTitle": "Réception positive (%)",
    "excellent": "excellente",
    "excellentTitle": "Réception excellente (%)",
    "receptionEfficiencyTitle": "Efficacité en réception : (excellentes − fautes) / réceptions",
    "attackSuccessTitle": "Réussite en attaque : points / attaques",
    "attackEfficiencyTitle": "Efficacité en attaque : (points − fautes − contrées) / attaques",
    "teamSuccess": "réussite éq.",
    "teamSuccessTitle": "Réussite en attaque de son équipe : points / attaques",
    "teamEfficiency": "efficacité éq.",
    "teamEfficiencyTitle": "Efficacité en attaque de son équipe : (points − fautes − contrées) / attaques",
    "activityAverages": "{{perMatch}} / match · {{perSet}} / set",
    "activityAveragePerMatch": "{{perMatch}} / match",
    "kpiReceptionSub": "{{value}} % excellente · {{faults}} fautes",
    "kpiReceptionSubOneFault": "{{value}} % excellente · 1 faute",
    "kpiTeamAttackEfficiency": "Efficacité attaque équipe",
    "kpiTeamAttackSub": "Réussite {{rate}}",
    "fault": "faute",
    "faults": "fautes",
    "receptionFaultsTitle": "Fautes de réception",
    "kpiInfoLabel": "Comment cette valeur est calculée",
    "kpiTeamAttackInfo": "Calculée uniquement sur les matchs commencés comme titulaire : en entrant en cours de match, un passeur ne distribue qu'une partie des ballons de l'équipe.",
    "kpiTeamAttackInfoF": "Calculée uniquement sur les matchs commencés comme titulaire : en entrant en cours de match, une passeuse ne distribue qu'une partie des ballons de l'équipe.",
    "kpiReceptionEfficiency": "Efficacité réception",
    "kpiReceptionFaultRate": "{{rate}} de fautes",
    "kpiReceptionEfficiencyInfo": "(Réceptions excellentes − fautes) / réceptions. C'est la mesure qui pèse le plus dans son score de réception.",
    "kpiReceptionShare": "Part des réceptions de l'équipe",
    "kpiReceptionShareSub": "{{mine}} sur {{team}}",
    "kpiReceptionShareInfo": "Réceptions prises, rapportées à toutes celles de l'équipe, sur les seuls matchs avec entrée en jeu. Le rang compare aux coéquipiers sur ces mêmes matchs.",
    "kpiReceptionShareInfoF": "Réceptions prises, rapportées à toutes celles de l'équipe, sur les seuls matchs avec entrée en jeu. Le rang compare aux coéquipières sur ces mêmes matchs.",
    "kpiAcesSub": "{{perSet}} / set · {{services}} {services, plural, one {service} other {services}} · {{faults}} {faults, plural, one {faute} other {fautes}}",
    "kpiReceptionShareSubFirst": "{{mine}} sur {{team}} · 1er de l'équipe",
    "kpiReceptionShareSubFirstF": "{{mine}} sur {{team}} · 1re de l'équipe",
    "kpiReceptionShareSubRank": "{{mine}} sur {{team}} · {{rank}}e de l'équipe",
    "kpiReceptionEfficiencySub": "Efficacité {{value}}",
    "kpiReceptionEfficiencyLabel": "Efficacité",
    "premium": "Premium",
    "lockedAria": "Statistique réservée au Premium — voir les offres",
    "lockedCta": "Débloquer avec Premium",
    "ownProfileOnly": "Réservé au joueur, sur sa fiche",
    "ownProfileOnlyF": "Réservé à la joueuse, sur sa fiche",
    "kpiReceptionShareLink": "Voir la répartition dans l'équipe",
    "kpiHookTag": "En clair cette saison",
    "kpiHookSub": "Réussite, match par match et saison par saison avec Joueur Premium",
    "storyRankPreviewLead": "Ton rang parmi les joueurs de ton poste",
    "rankPreviewOffer": "Ton rang dans chaque secteur, saison après saison, avec Joueur Premium.",
    "rankPreviewCta": "Voir l'offre joueur"
  },
  "statRankings": {
    "totalPoints": "Points",
    "pointsPerSet": "Points / set",
    "totalAces": "Aces",
    "serviceEfficiency": "Eff. service",
    "spikeEfficiency": "Eff. attaque",
    "totalBlocks": "Blocs",
    "blocksPerSet": "Blocs / set",
    "breakPoints": "Break points",
    "diffWinLost": "+/−",
    "positiveReception": "Réception +",
    "excellentReception": "Réception ++",
    "receptionEfficiency": "Eff. réception",
    "teamSpikeEfficiency": "Eff. attaque équipe",
    "teamSpikeSuccessRate": "Réussite attaque équipe"
  },
  "playerStatsTab": {
    "noAppearance": {
      "badge": "Non entré en jeu",
      "title": "Non entré en jeu",
      "text": "Le joueur faisait partie du groupe sur cette compétition, sans entrer en jeu : aucune statistique n'a été enregistrée."
    },
    "loading": "Chargement des statistiques…",
    "sectionTitle": "Statistiques par compétition",
    "competitionsTracked": "{{count}} {count, plural, one {compétition suivie} other {compétitions suivies}}",
    "empty": "Aucune statistique disponible pour ce joueur",
    "kpi": {
      "totalReceptions": "Réceptions totales",
      "receptionsPerMatch": "Réc. / match",
      "receptionsPerSet": "Réc. / set",
      "positiveReceptionPct": "% Réc. positives",
      "excellentReceptionPct": "% Réc. excellentes",
      "receptionFaults": "Fautes réception",
      "receptionFaultPct": "% Fautes réc.",
      "totalPoints": "Points totaux",
      "avgPerMatch": "Moy. / match",
      "avgPerSet": "Moy. / set",
      "attackPoints": "Pts attaque",
      "attackSuccess": "Réussite attaque",
      "attackEfficiency": "Efficacité attaque",
      "blocks": "Blocs",
      "blocksPerSet": "Blocs / set",
      "aces": "Aces",
      "acesPerSet": "Aces / set"
    },
    "headerKpi": {
      "matchs": "Matchs",
      "recPositivePct": "% Réc +",
      "recExcellentPct": "% Réc ++",
      "faults": "Fautes",
      "ptsPerMatch": "Pts/match",
      "attackEff": "Eff. att.",
      "blocksPerSet": "Blocs/set",
      "acesPerSet": "Aces/set"
    },
    "comparison": {
      "title": "Comparaison avec les autres joueurs du poste \"{{position}}\"",
      "sortLabel": "Tri : {{sort}}",
      "resetSort": "Reset tri",
      "highlightLegend": "Ligne surlignée = joueur actuel",
      "searchPlaceholder": "Rechercher un joueur…",
      "perPage": "{{count}} / page"
    },
    "sortLabels": {
      "name": "Nom",
      "gamesPlayed": "Matchs",
      "totalPoints": "Points",
      "avgPointsPerSet": "Pts/set",
      "avgPointsPerMatch": "Pts/match",
      "spikeEfficiency": "Efficacité attaque"
    },
    "columns": {
      "rank": "Rang",
      "player": "Joueur",
      "matches": "Matchs",
      "sets": "Sets",
      "receptionsTotal": "Totales",
      "receptionPosPct": "% Pos",
      "receptionExcPct": "% Exc",
      "receptionFaults": "Fautes",
      "diffWinLost": "Δ +/−",
      "totalPoints": "Points totaux",
      "faults": "Fautes",
      "ptsPerMatch": "Pts / match",
      "ptsPerSet": "Pts / set",
      "faultsPerMatch": "Fautes / match",
      "faultsPerSet": "Fautes / set",
      "attackWinning": "Att. gagnantes",
      "attackWinningPerSet": "Att. gagnantes / set",
      "attackTotal": "Att. totales",
      "attackPerSet": "Att. / set",
      "attackBlocked": "Att. contrées",
      "attackBlockedPct": "Att. contrées %",
      "attackBlockedPerSet": "Att. contrées / set",
      "attackFaults": "Fautes att.",
      "attackFaultsPct": "Fautes att. %",
      "attackFaultsPerSet": "Fautes att. / set",
      "attackSuccess": "Réussite att.",
      "attackEfficiency": "Efficacité att.",
      "receptionTotalShort": "Tot. réc.",
      "receptionPosPctShort": "Réc. % pos.",
      "receptionExcPctShort": "Réc. % exc.",
      "receptionFaultsShort": "Réc. fautes",
      "blocks": "Blocs",
      "blocksPerMatch": "Blocs / match",
      "blocksPerSet": "Blocs / set",
      "aces": "Aces",
      "acesPerSet": "Aces / set",
      "serviceFaults": "Fautes service",
      "serviceFaultsPerSet": "Fautes service / set",
      "services": "Services",
      "servicesPerSet": "Services / set",
      "acesPct": "% Aces",
      "serviceFaultsPct": "% Fautes service",
      "serviceEfficiency": "Efficacité service",
      "apport": "Apport %",
      "contribution": "Contribution %"
    },
    "tooltips": {
      "apportFormula": "Formule : (points - erreurs) / points × 100. Erreurs = fautes service + fautes attaque + attaques contrées + fautes réception",
      "contributionFormula": "Formule : points du joueur / points totaux de l'équipe × 100"
    },
    "pagination": {
      "prev": "Précédent",
      "next": "Suivant",
      "pageInfo": "Page {{current}} / {{total}}"
    }
  },
  "playerAnalysisTab": {
    "loading": "Chargement de l'analyse…",
    "header": "Analyse avancée",
    "noData": "Aucune donnée d'analyse disponible pour ce joueur",
    "noDataF": "Aucune donnée d'analyse disponible pour cette joueuse",
    "subtabsAria": "Sections de l'analyse",
    "noMatchYet": "Aucun match joué pour l'instant. Cette analyse apparaîtra après la première journée.",
    "noMatchForFilters": "Aucun match ne correspond aux filtres ci-dessus.",
    "contextFilters": {
      "minSetsPlayed": "Min. sets joués",
      "minPointsScored": "Min. points marqués",
      "all": "Tous",
      "updating": "Mise à jour…"
    },
    "subtabs": {
      "regularite": {
        "own": "Quelle est ma régularité ?",
        "other": "Régularité"
      },
      "face": {
        "own": "Face aux autres",
        "other": "Face aux autres"
      },
      "explorer": "Explorer les matchs",
      "forme": {
        "own": "Quand suis-je en forme ?",
        "other": "Forme dans le temps"
      },
      "profil": {
        "own": "Mon profil",
        "other": "Profil"
      },
      "matchs": {
        "own": "Dans quels matchs ?",
        "other": "Selon les matchs"
      }
    },
    "sections": {
      "positioning": "Positionnement",
      "pointsDistribution": "Répartition des points",
      "recurrentPerf": "Performances récurrentes",
      "bestWorst": "Meilleur / pire du match",
      "bestWorstF": "Meilleure / pire du match",
      "keyPoints": "Points clés",
      "careerSynthesis": "Synthèse carrière",
      "homeAway": "Domicile / Extérieur",
      "attendance": "Affluence",
      "seasonPhase": "Phase de saison",
      "closeDominated": "Matchs serrés / dominés",
      "regularPlayoffs": "Régulier / Play-offs",
      "winLoss": "Victoires / défaites",
      "byOpponent": "Par adversaire",
      "faults": "Analyse des fautes",
      "stability": "Stabilité",
      "advancedRegularity": "Régularité avancée",
      "bestMonth": "Meilleur mois",
      "peakPeriods": "Périodes de pic",
      "refMatches": "Matchs de référence",
      "bestAvgMonth": "Meilleur mois moyen",
      "worstAvgMonth": "Pire mois moyen",
      "monthlyTrends": "Tendances mensuelles",
      "winStreak": "Série de victoires",
      "lossStreak": "Série de défaites",
      "setterDistribution": "Distribution passeur",
      "setterDistributionF": "Distribution passeuse",
      "customSelection": "Sélection personnalisée",
      "matchByMatch": "Match par match",
      "seasonProgression": "Progression par saison"
    },
    "common": {
      "matches": "Matchs",
      "avgPtsPerMatch": "Moy. pts/match",
      "ptsPerMatch": "Pts/match",
      "blocksPerMatch": "Blocs/match",
      "acesPerMatch": "Aces/match",
      "attackEff": "Eff. attaque",
      "totalPointsCol": "Points totaux",
      "phase": "Phase",
      "result": "Résultat",
      "context": "Contexte",
      "home": "Domicile",
      "away": "Extérieur",
      "wins": "Victoires",
      "losses": "Défaites",
      "pts": "pts",
      "perfIndex": "Indice perf.",
      "opponent": "Adversaire",
      "team": "Équipe",
      "perMatch": "/match",
      "perSet": "/set",
      "faults": "fautes",
      "blocked": "bloquées",
      "attacksUnit": "attaques",
      "servicesUnit": "services",
      "date": "Date",
      "score": "Score",
      "points": "Points",
      "resultWin": "V",
      "resultLoss": "D",
      "playoffsBadge": "Play-offs",
      "vs": "–",
      "loading": "Chargement…"
    },
    "sectors": {
      "contributions": "Contributions",
      "attack": "Attaque",
      "block": "Bloc",
      "service": "Service",
      "reception": "Réception"
    },
    "percentile": {
      "title": "Positionnement au poste",
      "description": "Pour chaque indicateur, la place occupée parmi les joueurs du même poste dans la compétition choisie. Le but : voir d'un coup d'œil les points forts et les points faibles face à des joueurs comparables (et pas à un attaquant ou un libéro, ce qui n'aurait pas de sens).",
      "descriptionF": "Pour chaque indicateur, la place occupée parmi les joueuses du même poste dans la compétition choisie. Le but : voir d'un coup d'œil les points forts et les points faibles face à des joueuses comparables (et pas à une attaquante ou une libéro, ce qui n'aurait pas de sens).",
      "helpShow": "Comment lire ce graphique ?",
      "helpHide": "Masquer l'aide",
      "helpQ1": "Le percentile, c'est quoi ?",
      "helpP1": "Être au 74ᵉ percentile sur les blocs par set veut dire que 74 % des joueurs du même poste font moins bien sur ce critère (et 26 % font mieux). Plus le chiffre est haut, meilleure est la position.",
      "helpP1F": "Être au 74ᵉ percentile sur les blocs par set veut dire que 74 % des joueuses du même poste font moins bien sur ce critère (et 26 % font mieux). Plus le chiffre est haut, meilleure est la position.",
      "helpLi1": "≥ 75 — clairement au-dessus de la moyenne du poste",
      "helpLi2": "50 — pile au milieu (autant de joueurs au-dessus qu'en dessous)",
      "helpLi2F": "50 — pile au milieu (autant de joueuses au-dessus qu'en dessous)",
      "helpLi3": "≤ 25 — clairement en dessous de la moyenne",
      "helpQ2": "Comment lire la barre ?",
      "helpP2": "La barre va du plus faible (à gauche) au meilleur (à droite) du groupe. Le petit trait vertical, c'est la médiane (le joueur qui se situe pile au milieu). Le cercle coloré, c'est ce joueur.",
      "helpP2F": "La barre va de la plus faible (à gauche) à la meilleure (à droite) du groupe. Le petit trait vertical, c'est la médiane (la joueuse qui se situe pile au milieu). Le cercle coloré, c'est cette joueuse.",
      "helpQ3": "Pourquoi un seuil de sets joués ?",
      "helpP3": "Un joueur qui a joué seulement 2 sets dans la saison fausserait la comparaison (ses moyennes sont du bruit). Le seuil exclut ces cas pour ne garder que les joueurs qui ont eu un vrai temps de jeu.",
      "helpP3F": "Une joueuse qui a joué seulement 2 sets dans la saison fausserait la comparaison (ses moyennes sont du bruit). Le seuil exclut ces cas pour ne garder que les joueuses qui ont eu un vrai temps de jeu.",
      "competition": "Compétition",
      "minVolume": "Volume min. (sets joués par les autres joueurs)",
      "minVolumeF": "Volume min. (sets joués par les autres joueuses)",
      "noThreshold": "Aucun seuil",
      "setsThreshold": "≥ {{count}} sets",
      "errorLoad": "Impossible de charger le positionnement.",
      "cohortWith": "Comparé à {{size}} joueurs du poste {{position}} avec ≥ {{minSets}} sets joués.",
      "cohortWithF": "Comparée à {{size}} joueuses du poste {{position}} avec ≥ {{minSets}} sets joués.",
      "cohortTooSmall": "Groupe trop petit ({{size}} joueurs) — les valeurs brutes restent affichées mais le percentile n'est pas calculé pour éviter une fausse précision.",
      "cohortTooSmallF": "Groupe trop petit ({{size}} joueuses) — les valeurs brutes restent affichées mais le percentile n'est pas calculé pour éviter une fausse précision.",
      "percentileLabel": "{{value}}ᵉ percentile",
      "naTooSmall": "groupe trop petit",
      "naInsufficient": "donnée insuffisante",
      "valueSelf": "ce joueur",
      "valueMedian": "médiane",
      "valueRange": "min–max",
      "tooltipMedian": "Joueur qui se situe pile au milieu du classement du groupe sur ce critère.",
      "tooltipMedianF": "Joueuse qui se situe pile au milieu du classement du groupe sur ce critère.",
      "tooltipRange": "Le moins bon et le meilleur joueur du groupe sur ce critère.",
      "tooltipRangeF": "La moins bonne et la meilleure joueuse du groupe sur ce critère.",
      "barMedianTitle": "Médiane du groupe : {{value}}",
      "barPlayerTitle": "Ce joueur : {{value}}",
      "verdict": {
        "elite": "Élite",
        "above": "Au-dessus",
        "median": "Médian",
        "below": "En dessous",
        "low": "Bas"
      },
      "narrative": {
        "topBest": "Parmi les tout meilleurs du poste",
        "topBestF": "Parmi les toutes meilleures du poste",
        "betterThan9of10": "Mieux que 9 joueurs sur 10 du poste",
        "betterThan9of10F": "Mieux que 9 joueuses sur 10 du poste",
        "betterThan3of4": "Mieux que 3 joueurs sur 4 du poste",
        "betterThan3of4F": "Mieux que 3 joueuses sur 4 du poste",
        "betterThanPct": "Mieux que {{p}} % des joueurs du poste",
        "betterThanPctF": "Mieux que {{p}} % des joueuses du poste",
        "midPack": "À peu près au milieu du peloton",
        "worseThanPct": "{{p}} % des joueurs du poste font mieux",
        "worseThanPctF": "{{p}} % des joueuses du poste font mieux",
        "bottomQuarter": "Dans le quart le plus bas du poste",
        "amongLowest": "Parmi les plus bas du poste"
      },
      "valueSelfF": "cette joueuse",
      "barPlayerTitleF": "Cette joueuse : {{value}}"
    },
    "pointsDistribution": {
      "title": "Répartition des points",
      "description": "Distribution des points marqués par type d'action",
      "allCompetitions": "Toutes compétitions",
      "totalPoints": "Total points",
      "lamTitle": "1re division masculine",
      "lbmTitle": "2e division masculine"
    },
    "distribution": {
      "title": "Distribution (passeur)",
      "titleF": "Distribution (passeuse)",
      "description": "Impact du passeur sur l'attaque de l'équipe",
      "descriptionF": "Impact de la passeuse sur l'attaque de l'équipe",
      "globalView": "Vue globale",
      "teamSpikeSuccess": "Réussite attaque équipe",
      "teamSpikeEfficiency": "Efficacité attaque équipe",
      "teamSpikesPerSet": "Attaques équipe/set",
      "winRateStarter": "Taux de victoires titulaire",
      "gamesStarter": "{{count}} {count, plural, one {match titulaire} other {matchs titulaire}}",
      "teamBlockedRate": "Taux blocs équipe",
      "homeVsAway": "Domicile / extérieur",
      "winVsLoss": "Victoires / défaites",
      "colTeamAttackEff": "Eff. attaque équipe",
      "colAttackSuccess": "Réussite attaque",
      "colAttacksPerSet": "Att./set",
      "colBlockRate": "Taux blocs"
    },
    "homeAway": {
      "title": "Performance à domicile et à l'extérieur",
      "description": "Comparaison des performances à domicile et à l'extérieur",
      "insight": "• Le joueur performe mieux {{where}} (+{{diff}} pts/match)",
      "insightF": "• La joueuse performe mieux {{where}} (+{{diff}} pts/match)",
      "betterHome": "à domicile",
      "betterAway": "à l'extérieur"
    },
    "spectator": {
      "title": "Impact de l'affluence",
      "description": "Comparaison des performances selon l'affluence (médiane : {{median}} spectateurs, sur {{total}} matchs)",
      "insight": "• Meilleur en {{level}} affluence (+{{diff}} pts/match)",
      "insightF": "• Meilleure en {{level}} affluence (+{{diff}} pts/match)",
      "levelHigh": "forte",
      "levelLow": "faible",
      "colAttendance": "Affluence",
      "colAvgSpectators": "Spectateurs moy.",
      "highAttendance": "Forte affluence",
      "lowAttendance": "Faible affluence"
    },
    "faults": {
      "title": "Analyse des fautes",
      "description": "Ratio fautes/actions par secteur sur {{total}} matchs — {{perMatch}} fautes/match en moyenne",
      "colSector": "Secteur",
      "colFaults": "Fautes",
      "colActions": "Actions",
      "colRate": "Taux",
      "colFaultsPerMatch": "Fautes/match",
      "faultsInWins": "Fautes en victoire",
      "faultsInLosses": "Fautes en défaite",
      "ratioPointsFaults": "Ratio pts/fautes",
      "perMatchShort": "/m"
    },
    "gameweekPhase": {
      "title": "Performance par phase de saison",
      "description": "Comparaison des performances en début, milieu et fin de saison",
      "start": "Début de saison",
      "middle": "Milieu de saison",
      "end": "Fin de saison"
    },
    "closeness": {
      "title": "Matchs serrés et matchs dominés",
      "description": "Performances selon le type de match ({{total}} matchs analysés)",
      "colMatchType": "Type de match",
      "close": "Matchs serrés (3-2 / 2-3)",
      "dominant": "Matchs dominés (3-0 / 0-3)",
      "tieBreak": "Tie-breaks (5e set)",
      "byScore": "Détail par score",
      "scoreLabel": "Score {{score}}",
      "matchesCount": "{{count}} {count, plural, one {match} other {matchs}}",
      "ptsPerMatchShort": "{{value}} pts/m"
    },
    "regularPlayoffs": {
      "title": "Saison régulière, play-offs et finale",
      "description": "Comparaison des performances en saison régulière, en play-offs et en finale",
      "insight": "• Le joueur performe mieux {{where}} (+{{diff}} pts/match)",
      "insightF": "• La joueuse performe mieux {{where}} (+{{diff}} pts/match)",
      "betterPlayoffs": "en play-offs",
      "betterRegular": "en saison régulière",
      "regular": "Saison régulière",
      "playoffs": "Play-offs",
      "finals": "Finale"
    },
    "winLoss": {
      "title": "Performance dans les victoires et dans les défaites",
      "description": "Comparaison des performances selon que l'équipe gagne ou perd",
      "insight": "• Performance {{level}} en victoire (+{{diff}} pts/match)",
      "levelSuperior": "supérieure",
      "levelSimilar": "similaire"
    },
    "stability": {
      "title": "Stabilité et régularité",
      "description": "Constance des performances sur {{total}} matchs",
      "matches10plus": "Matchs 10+ pts",
      "matches3plusBlocks": "Matchs 3+ blocs",
      "matches45eff": "Matchs 45 %+ eff."
    },
    "bestMonth": {
      "title": "Meilleur mois de performance",
      "filterMinMatches": "Min. matchs/mois",
      "filterMinSets": "Min. sets/match",
      "filterNone": "Aucun",
      "empty": "Aucun mois ne respecte les seuils choisis. Abaisser le minimum de matchs ou de sets/match pour en afficher.",
      "viewMatches": "Voir le détail des matchs ({{count}})",
      "descNonSetter": "Période de pic de forme sur la saison",
      "descSetter": "Mois où l'équipe a attaqué le plus efficacement quand le joueur distribuait",
      "descSetterF": "Mois où l'équipe a attaqué le plus efficacement quand la joueuse distribuait",
      "label": "Meilleur mois",
      "ptsMatchVsSeason": "pts/match par rapport à la moyenne de la saison",
      "ppIndexVsSeason": "pt d'indice distribution par rapport à la moyenne de la saison",
      "setterExplainer": "Indice distribution = (efficacité attaque équipe + réussite attaque équipe) / 2",
      "month": "Mois",
      "matchesPlayed": "Matchs joués",
      "points": "Points",
      "spikeSuccess": "Réussite attaque",
      "spikesCount": "{{points}} / {{total}} attaques",
      "spikeEff": "Eff. attaque",
      "spikeBreakdown": "{{points}} pts · {{faults}} {faults, plural, one {faute} other {fautes}} · {{blocked}} {blocked, plural, one {contrée} other {contrées}}",
      "aces": "Aces",
      "service": "Service",
      "serviceBreakdown": "{{faults}} {faults, plural, one {faute} other {fautes}}",
      "teamSpikeEff": "Eff. attaque équipe",
      "teamSpikeSuccess": "Réussite attaque équipe",
      "teamBlockedPct": "% attaques bloquées",
      "block": "Bloc",
      "receptionPositive": "Réception positive",
      "receptionExcellent": "Réception excellente",
      "modalTitle": "Matchs de {{month}}",
      "close": "Fermer",
      "setsPlayedSuffix": "{{count}} {count, plural, one {set joué} other {sets joués}}",
      "statSuccess": "Réussite {{value}} %",
      "statEff": "Eff. {{value}} %",
      "statAttackLine": "{{points}}/{{total}} att. · {{faults}} {faults, plural, one {faute} other {fautes}} · {{blocked}} {blocked, plural, one {contrée} other {contrées}}",
      "acesUnit": "{count, plural, one {ace} other {aces}}",
      "blocksUnit": "{count, plural, one {bloc} other {blocs}}",
      "receptionUnit": "réc.",
      "teamEffLine": "Eff. équipe : {{value}} %",
      "teamSuccessLine": "Réussite : {{value}} %",
      "teamBlockedLine": "Bloquées : {{value}} %",
      "ownBlocks": "{{count}} {count, plural, one {bloc perso} other {blocs perso}}",
      "servicesUnit": "{count, plural, one {service} other {services}}",
      "attacksUnit": "attaques",
      "faultsUnit": "{count, plural, one {faute} other {fautes}}"
    },
    "rollingPeriod": {
      "title": "Périodes de pic de forme (fenêtres glissantes)",
      "description": "Meilleures séquences de performances sur 2 et 3 mois consécutifs",
      "insight": "• Période de pic : {{period}}",
      "colWindow": "Fenêtre",
      "colPeriod": "Période",
      "twoMonths": "2 mois",
      "threeMonths": "3 mois"
    },
    "opponent": {
      "title": "Performance par adversaire",
      "description": "Adversaires les plus favorables et les plus contraignants (min. 2 matchs)",
      "deltaVsAvg": "Écart à la moy.",
      "effAttackShort": "Eff. att.",
      "top5": "Top 5 adversaires"
    },
    "topMatches": {
      "title": "Matchs de référence (meilleures performances)",
      "description": "Les {{count}} meilleures performances individuelles selon l'indice de performance",
      "vs": "contre {{opponent}}",
      "ptsStat": "{{count}} pts",
      "blksStat": "{{count}} blocs",
      "acesStat": "{{count}} aces",
      "effStat": "{{value}} % eff.",
      "indexStat": "indice"
    },
    "advancedStability": {
      "title": "Régularité avancée",
      "description": "Mesure de la constance des performances",
      "profileInsight": "• Profil : {{rating}}",
      "explainerPre": "On commence par calculer un indice de performance pour chaque match :",
      "formula": "points + 1,5 × blocs + aces − (fautes attaque + fautes service)",
      "explainerPost": "On compare ensuite chaque match à la moyenne du joueur et on mesure la dispersion : plus le joueur tourne souvent au-dessus de sa moyenne avec peu d'écart entre matchs, plus son profil est régulier.",
      "explainerPostF": "On compare ensuite chaque match à la moyenne de la joueuse et on mesure la dispersion : plus la joueuse tourne souvent au-dessus de sa moyenne avec peu d'écart entre matchs, plus son profil est régulier.",
      "thresholds": "Profil : Très régulier (≥ 70 % matchs > moyenne et écart-type indice < 3) · Régulier (≥ 60 % et < 5) · Modéré (autres cas) · Irrégulier (< 40 % ou > 8) · Très irrégulier (< 30 % ou > 10).",
      "profile": "Profil",
      "pctAboveAvg": "% matchs > moyenne",
      "stdDevPts": "Écart-type pts/match",
      "stdDevIndex": "Écart-type indice perf.",
      "tipProfile": "Étiquette de régularité dérivée du % de matchs au-dessus de la moyenne et de l'écart-type de l'indice de performance. Voir les seuils ci-dessus.",
      "tipPctAbove": "Part des matchs où l'indice de performance du joueur dépasse sa propre moyenne. Plus c'est élevé, plus il livre régulièrement au-dessus de son standard.",
      "tipPctAboveF": "Part des matchs où l'indice de performance de la joueuse dépasse sa propre moyenne. Plus c'est élevé, plus elle livre régulièrement au-dessus de son standard.",
      "tipStdPts": "Dispersion du nombre de points marqués par match. Faible = marque stable d'un match à l'autre. Élevé = grosses différences (gros matchs et matchs effacés).",
      "tipStdIndex": "Dispersion de l'indice de performance global (points + 1,5 × blocs + aces − fautes). Mesure la régularité de l'apport total, pas seulement de la marque : c'est cet écart-type qui sert de base au profil.",
      "ratingVeryConsistent": "Très régulier",
      "ratingConsistent": "Régulier",
      "ratingModerate": "Modéré",
      "ratingInconsistent": "Irrégulier",
      "ratingVeryInconsistent": "Très irrégulier"
    },
    "bestMonthAvg": {
      "title": "Meilleur mois en moyenne",
      "description": "Performance moyenne sur toutes les saisons pour ce mois",
      "insight": "• Meilleur mois : {{month}} ({{count}} matchs au total)",
      "month": "Mois",
      "pointsPerMatch": "Points/match",
      "blocksPerMatch": "Blocs/match",
      "acesPerMatch": "Aces/match"
    },
    "worstMonthAvg": {
      "title": "Pire mois en moyenne",
      "description": "Performance moyenne sur toutes les saisons pour ce mois",
      "insight": "• Pire mois : {{month}} ({{count}} matchs au total)"
    },
    "monthly": {
      "title": "Tendances par mois de compétition",
      "description": "Quel est le mois de compétition le plus favorable ou défavorable, toutes saisons confondues ?",
      "category": "Catégorie",
      "criteria": "Critère",
      "catResults": "Résultats",
      "catAttack": "Attaque",
      "catBlock": "Blocs",
      "catService": "Service",
      "month": "Mois",
      "matches": "Matchs",
      "wins": "Victoires",
      "losses": "Défaites",
      "spikePtsPerMatch": "Pts attaque/match",
      "efficiency": "Efficacité",
      "blocksPerMatch": "Blocs/match",
      "totalBlocks": "Total blocs",
      "acesPerMatch": "Aces/match",
      "totalAces": "Total aces",
      "colWinPct": "% Victoires",
      "colSpikePtsMatch": "Pts att/match",
      "colSuccess": "Réussite",
      "critMostWins": "Plus de victoires",
      "critMostLosses": "Plus de défaites",
      "critMostMatches": "Plus de matchs",
      "critLeastMatches": "Moins de matchs",
      "critMostSpikePoints": "Plus de points attaque/match",
      "critBestSpikeEfficiency": "Meilleure efficacité attaque",
      "critBestSpikeSuccess": "Meilleure réussite attaque",
      "critMostBlocks": "Plus de blocs/match",
      "critMostAces": "Plus d'aces/match",
      "catReception": "Réception",
      "critBestReceptionEfficiency": "Meilleure efficacité de réception",
      "critBestPositiveReception": "Meilleure réception positive",
      "critBestExcellentReception": "Meilleure réception excellente",
      "critFewestReceptionFaults": "Moins de fautes de réception par match"
    },
    "streak": {
      "winTitle": "Plus longue série de victoires",
      "lossTitle": "Plus longue série de défaites",
      "winDescription": "Série de {{count}} victoires consécutives",
      "lossDescription": "Série de {{count}} défaites consécutives",
      "range": "• Du {{start}} au {{end}}",
      "show": "Afficher les matchs de la série",
      "hide": "Masquer les matchs de la série"
    },
    "mostCommon": {
      "title": "Performances les plus fréquentes",
      "description": "Part des matchs sous chaque seuil et à partir de ce seuil.",
      "descriptionF": "Part des matchs sous chaque seuil et à partir de ce seuil.",
      "pointsTitle": "Nombre de points le plus fréquent",
      "blocksTitle": "Nombre de blocs le plus fréquent",
      "effTitle": "Fourchettes d'efficacité à l'attaque les plus fréquentes",
      "pointsLabel": "{{value}} {value, plural, one {point} other {points}}",
      "blocksLabel": "{{value}} {value, plural, one {bloc} other {blocs}}",
      "rangeLabel": "{{start}} % - {{end}} %",
      "matchesCount": "{{count}} {count, plural, one {match} other {matchs}}",
      "pointsThresholdTitle": "Points par match",
      "blocksThresholdTitle": "Contres par match",
      "effThresholdTitle": "Efficacité à l'attaque par match",
      "pointsBelow": "Moins de {{value}} pts",
      "pointsAbove": "{{value}} pts ou plus",
      "blocksBelow": "Moins de {{value}} contres",
      "blocksAbove": "{{value}} contres ou plus",
      "effBelow": "Moins de {{value}} %",
      "effAbove": "{{value}} % ou plus",
      "blocksNone": "Aucun contre",
      "blocksAtLeastOne": "Au moins 1 contre",
      "minSetsLabel": "Matchs retenus",
      "minSetsOption": "Au moins {{count}} sets joués",
      "receptionsThresholdTitle": "Réceptions par match",
      "receptionsBelow": "Moins de {{value}} réc.",
      "receptionsAbove": "{{value}} réc. ou plus",
      "receptionEffThresholdTitle": "Efficacité en réception par match",
      "positiveThresholdTitle": "Réceptions positives par match",
      "excellentThresholdTitle": "Réceptions excellentes par match",
      "minSetsOptionOne": "Au moins 1 set joué",
      "ungradedNote": "{{count}} matchs ne comptent que pour le nombre de réceptions : sur leur feuille de match, la qualité de réception n'a pas été notée (aucune excellente, positives sur une autre échelle).",
      "ungradedNoteOne": "1 match ne compte que pour le nombre de réceptions : sur sa feuille de match, la qualité de réception n'a pas été notée (aucune excellente, positives sur une autre échelle)."
    },
    "bestWorst": {
      "title": "Meilleur / pire du match",
      "titleF": "Meilleure / pire du match",
      "description": "Pour chaque match, on compare les stats du joueur avec celles de tous les joueurs du match (coéquipiers et adversaires) éligibles (min. 3 sets joués, min. 2 joueurs éligibles). Les égalités comptent : si deux joueurs ont la même valeur au sommet, les deux sont comptés comme « meilleur ».",
      "descriptionF": "Pour chaque match, on compare les stats de la joueuse avec celles de toutes les joueuses du match (coéquipières et adversaires) éligibles (min. 3 sets joués, min. 2 joueuses éligibles). Les égalités comptent : si deux joueuses ont la même valeur au sommet, les deux sont comptées comme « meilleure ».",
      "eligibleSuffix": "Sur {{count}} matchs éligibles.",
      "hint": "Cliquez sur les compteurs pour afficher le détail des matchs",
      "strengths": "Forces",
      "weaknesses": "À travailler",
      "bestSuffix": "meilleur",
      "worstSuffix": "pire",
      "compareOpen": "Comparer avec un autre joueur",
      "compareOpenF": "Comparer avec une autre joueuse",
      "compareClose": "Fermer la comparaison",
      "searchPlaceholder": "Rechercher un joueur…",
      "searchPlaceholderF": "Rechercher une joueuse…",
      "clearComparePlayer": "Effacer le joueur sélectionné",
      "clearComparePlayerF": "Effacer la joueuse sélectionnée",
      "compareLoading": "Chargement des stats du joueur comparé…",
      "compareLoadingF": "Chargement des stats de la joueuse comparée…",
      "compareWith": "Comparaison avec",
      "best": "Meilleur",
      "bestF": "Meilleure",
      "worst": "Pire",
      "emptyThreshold": "Aucun match éligible avec ce seuil. Abaisser le minimum d'actions pour afficher des résultats.",
      "eligibleMatchesSuffix": "sur {{count}} matchs",
      "deltaTooltip": "Écart avec le joueur comparé (en points de %)",
      "deltaTooltipF": "Écart avec la joueuse comparée (en points de %)",
      "ptsSuffix": "{{count}} pts",
      "attackDetail": "{{points}} pts att. · {{faults}} f.att · {{blocked}} bloq.",
      "serviceDetail": "{{faults}} f.serv",
      "receptionDetail": "{{receptions}} réc. · {{faults}} f.réc",
      "sectorLabels": {
        "attack": "Attaque",
        "service": "Service",
        "reception": "Réception",
        "block": "Bloc",
        "contributions": "Contributions"
      },
      "eligibility": {
        "attack": "Min. 1 attaque tentée",
        "service": "Min. 1 service effectué",
        "reception": "Min. 1 réception effectuée",
        "block": "Aucun critère supplémentaire",
        "contributions": "Aucun critère supplémentaire (rendement : min. 1 point)"
      },
      "filterLabels": {
        "minAttacks": "Min. attaques",
        "minServices": "Min. services",
        "minReceptions": "Min. réceptions"
      },
      "statLabels": {
        "spikeEfficiency": "Efficacité attaque",
        "spikeSuccessRate": "Réussite attaque",
        "spikeFaults": "Fautes attaque",
        "spikeBlocked": "Attaques bloquées",
        "totalService": "Nb services",
        "servicePoints": "Aces",
        "serviceFaults": "Fautes service",
        "positiveReceptionPercentage": "Réception positive %",
        "excellentReceptionPercentage": "Réception excellente %",
        "totalReception": "Réceptions effectuées",
        "receptionFaults": "Fautes réception",
        "blockPoints": "Blocs",
        "totalPoints": "Points totaux",
        "diffWinLost": "Différence +/−",
        "rendement": "Rendement %"
      },
      "deltaPoints": "{{delta}} pt"
    },
    "highlights": {
      "title": "Points clés",
      "description": "Analyse synthétique du profil de jeu"
    },
    "careerSummary": {
      "title": "Synthèse carrière multi-saisons",
      "description": "Vue d'ensemble statistique complète",
      "seasons": "Saisons",
      "matchesPlayed": "Matchs joués",
      "totalPoints": "Total points",
      "totalBlocks": "Total blocs",
      "totalAces": "Total aces",
      "avgPtsMatch": "Moy. pts/match"
    },
    "matchup": {
      "title": "Confrontations",
      "description": "Pour chaque match, la liste des joueurs adverses qui jouaient au même poste, stats côte à côte : on voit directement comment ce joueur s'est positionné face à son vis-à-vis.",
      "descriptionF": "Pour chaque match, la liste des joueuses adverses qui jouaient au même poste, stats côte à côte : on voit directement comment cette joueuse s'est positionnée face à son vis-à-vis.",
      "helpShow": "Comment lire ce tableau ?",
      "helpHide": "Masquer l'aide",
      "helpQ1": "Qui est mon vis-à-vis ?",
      "helpP1": "Le vis-à-vis sur un match, c'est tout joueur de l'équipe adverse qui a joué au même poste. Une équipe titularise généralement 2 centraux (ou 2 réceptionneurs, etc.) : il y a donc souvent 2 adversaires par match.",
      "helpP1F": "Le vis-à-vis sur un match, c'est toute joueuse de l'équipe adverse qui a joué au même poste. Une équipe titularise généralement 2 centrales (ou 2 réceptionneuses, etc.) : il y a donc souvent 2 adversaires par match.",
      "helpQ2": "Et la colonne « coéquipier » ?",
      "helpQ2F": "Et la colonne « coéquipière » ?",
      "helpP2": "Les postes centraux et réceptionneurs-attaquants sont généralement doublés dans une équipe. La colonne au fond jaune avec l'icône poignée de main est le coéquipier au même poste sur ce match — utile pour comparer la performance à celle du binôme, pas seulement aux adversaires.",
      "helpP2F": "Les postes de centrale et de réceptionneuse-attaquante sont généralement doublés dans une équipe. La colonne au fond jaune avec l'icône poignée de main est la coéquipière au même poste sur ce match — utile pour comparer la performance à celle du binôme, pas seulement aux adversaires.",
      "helpQ3": "Le petit badge « 2/4 » à côté des valeurs ?",
      "helpP3": "C'est le classement sur cet indicateur parmi tous les joueurs au même poste sur ce match (ce joueur, son binôme et les adversaires). « 1/4 » = meilleur des 4, « 4/4 » = dernier. Le badge devient vert pour le 1er et rouge pour le dernier. Le tooltip au survol précise le contexte.",
      "helpP3F": "C'est le classement sur cet indicateur parmi toutes les joueuses au même poste sur ce match (cette joueuse, son binôme et les adversaires). « 1/4 » = meilleure des 4, « 4/4 » = dernière. Le badge devient vert pour la 1re et rouge pour la dernière. Le tooltip au survol précise le contexte.",
      "helpP4": "Pour les fautes (service, attaque, bloquées), le classement s'inverse : la valeur la plus basse devient 1ᵉʳ — moins de fautes, c'est mieux.",
      "helpP4F": "Pour les fautes (service, attaque, bloquées), le classement s'inverse : la valeur la plus basse devient 1re — moins de fautes, c'est mieux.",
      "helpQ4": "Limites importantes",
      "helpP5": "La confrontation est calculée sur les stats du match entier, pas rotation par rotation. Deux vis-à-vis qui n'étaient pas au filet en même temps ne se sont pas opposés directement. Volume normalisé par sets joués pour éviter les biais.",
      "competition": "Compétition",
      "minVolumeOpp": "Volume min. de l'adversaire",
      "noThreshold": "Aucun seuil",
      "setThreshold1": "≥ 1 set",
      "setThreshold": "≥ {{count}} sets",
      "errorLoad": "Impossible de charger les confrontations.",
      "cohortSummary": "{{shown}} {shown, plural, one {match affiché} other {matchs affichés}} · {{withOpp}} avec un vis-à-vis identifié · {{distinct}} {distinct, plural, one {adversaire} other {adversaires distincts}} au même poste.",
      "noMatchFilter": "Aucun match trouvé pour ce filtre.",
      "rankSummaryTitle": "Sur cette compétition",
      "rankSummaryHint": "Combien de fois ce joueur finit 1er ou dernier de son poste, par stat",
      "rankSummaryHintF": "Combien de fois cette joueuse finit 1re ou dernière de son poste, par stat",
      "firstSmall": "× 1ᵉʳ · {{pct}} %",
      "firstSmallF": "× 1re · {{pct}} %",
      "lastSmall": "× dernier · {{pct}} %",
      "lastSmallF": "× dernière · {{pct}} %",
      "noRankMatch": "Aucun match avec rang calculable",
      "rankBase": "Sur {{count}} matchs avec rang",
      "home": "DOM",
      "away": "EXT",
      "resultWin": "V",
      "resultLoss": "D",
      "resultNone": "–",
      "positionResolved": "Poste résolu sur ce match : {{position}}",
      "noOpponentSamePos": "Aucun adversaire au même poste.",
      "noOpponentSamePosF": "Aucune adversaire au même poste.",
      "self": "Ce joueur",
      "teammateTitle": "Coéquipier",
      "teammateTitleF": "Coéquipière",
      "opponentTitle": "Adversaire",
      "rankTooltip": "Classé {{ord}} sur {{total}} joueurs au même poste sur ce match ({{kpi}}).",
      "rankTooltipF": "Classée {{ord}} sur {{total}} joueuses au même poste sur ce match ({{kpi}}).",
      "ordinalFirst": "1ᵉʳ",
      "ordinalFirstF": "1re",
      "ordinalOther": "{{n}}ᵉ",
      "kpi": {
        "setsPlayed": "Sets",
        "totalReception": "Réceptions",
        "receptionFaults": "F. réception",
        "positiveReceptionPercentage": "R+%",
        "excellentReceptionPercentage": "R#%",
        "totalPoints": "Points",
        "diffWinLost": "Diff. (G−P)",
        "blockPoints": "Blocs",
        "totalService": "Services",
        "servicePoints": "Aces",
        "serviceFaults": "F. service",
        "totalSpikes": "Attaques",
        "spikeFaults": "F. attaque",
        "spikeBlocked": "Bloquées",
        "spikePoints": "Pts att.",
        "spikeSuccessRate": "Réussite att.",
        "spikeEfficiency": "Eff. attaque"
      },
      "selfF": "Cette joueuse"
    },
    "reception": {
      "colPerMatch": "Récep./match",
      "colEfficiency": "Eff. réception",
      "colPositive": "Réc. positive",
      "colExcellent": "Réc. excellente",
      "colFaultsPerMatch": "Fautes/match",
      "colFaults": "Fautes",
      "colReceptions": "Réceptions",
      "colDate": "Date",
      "avgSpectators": "{{count}} spectateurs en moyenne",
      "bestOpponent": "Meilleure réception",
      "worstOpponent": "Réception la plus difficile",
      "stabilityDescription": "Sur {{total}} matchs avec au moins une réception.",
      "highEfficiencyMatches": "Matchs à 30 %+ d'efficacité",
      "positiveAbove50Matches": "Matchs à 50 %+ de réception positive",
      "lowFaultMatches": "Matchs à 0 ou 1 faute",
      "advancedDescription": "Dispersion de l'efficacité de réception d'un match à l'autre, sur {{total}} matchs à au moins {{min}} réceptions.",
      "advancedThresholds": "Seuils d'écart-type, en points d'efficacité : très régulier sous 12, régulier sous 16, irrégulier au-delà de 22, très irrégulier au-delà de 27. Le hasard seul produit déjà environ 13 points sur un match à 20 réceptions.",
      "avgEfficiencyPerMatch": "Efficacité moyenne par match",
      "stdDevEfficiency": "Écart-type de l'efficacité",
      "bestMonthDescription": "Mois avec la meilleure efficacité de réception.",
      "ptsEffVsOverall": "pts d'efficacité par rapport à l'ensemble",
      "rollingDescription": "Fenêtres de 2 et 3 mois consécutifs avec la meilleure efficacité de réception.",
      "topMatchesDescription": "Les {{count}} matchs avec la meilleure efficacité de réception (au moins 10 réceptions).",
      "topMatchEfficiency": "Efficacité {{value}}",
      "topMatchReceptions": "{{count}} réceptions",
      "topMatchPositive": "Positive {{value}}",
      "topMatchFaults": "Fautes : {{count}}",
      "bestMonthAvgDescription": "Mois calendaire, toutes saisons confondues, avec la meilleure efficacité de réception.",
      "worstMonthAvgDescription": "Mois calendaire, toutes saisons confondues, avec la moins bonne efficacité de réception."
    },
    "summaries": {
      "positioning": "Point fort : {{label}} ({{pct}}e centile du poste)",
      "pointsDistribution": "{{spike}} % des points en attaque, {{block}} % au contre, {{service}} % au service",
      "mostCommon": "Au moins {{value}} points dans {{pct}} % des matchs",
      "career": "{{seasons}} saisons, {{matches}} matchs, {{avg}} points par match",
      "careerLibero": "{{seasons}} saisons, {{matches}} matchs",
      "noGap": "Pas d'écart notable",
      "homeBetter": "+{{gap}} pt/match à domicile",
      "awayBetter": "+{{gap}} pt/match à l'extérieur",
      "crowdBetter": "+{{gap}} pt/match devant un public nombreux",
      "smallCrowdBetter": "+{{gap}} pt/match devant un public restreint",
      "bestPhase": "Meilleure période : {{phase}} de saison ({{avg}} pts/match)",
      "phases": {
        "start": "début",
        "middle": "milieu",
        "end": "fin"
      },
      "closeness": "{{close}} pts/match dans les matchs serrés, {{dominant}} dans les matchs dominés",
      "noPlayoffs": "Pas encore de match de playoffs",
      "playoffs": "{{playoffs}} pts/match en playoffs, {{regular}} en saison régulière",
      "winLoss": "{{wins}} pts/match dans les victoires, {{losses}} dans les défaites",
      "bestMonth": "{{month}} {{year}} : {{avg}} pts/match sur {{matches}} matchs",
      "bestMonthAvg": "{{month}} : {{avg}} pts/match en moyenne",
      "worstMonthAvg": "{{month}} : {{avg}} pts/match en moyenne, le plus bas",
      "rollingPeriod": "{{start}} – {{end}} {{year}} : {{avg}} pts/match",
      "monthlyResults": "Meilleur bilan en {{month}} : {{wins}} victoires sur {{matches}} matchs",
      "topMatch": "Record : {{points}} points contre {{opponent}}",
      "faults": "{{perMatch}} fautes par match, surtout {{sector}}",
      "faultSectors": {
        "attack": "en attaque",
        "service": "au service",
        "reception": "en réception"
      },
      "stability": "10 points ou plus dans {{pct}} % des matchs",
      "advancedStability": "Profil « {{rating}} » : {{pct}} % des matchs au-dessus de la moyenne",
      "winStreak": "Jusqu'à {{count}} victoires d'affilée",
      "lossStreak": "Jusqu'à {{count}} défaites d'affilée",
      "opponent": "Le plus à l'aise contre {{best}}, le plus en difficulté contre {{worst}}",
      "distribution": "Efficacité de l'attaque de l'équipe : {{eff}}",
      "bestWorstStrength": "Point fort : {{stat}}, au premier rang du match dans {{pct}} % des matchs",
      "bestWorstWeakness": "À travailler : {{stat}}, au dernier rang du match dans {{pct}} % des matchs",
      "bestWorstNone": "Ni force ni faiblesse marquée face aux autres joueurs du match",
      "mostCommonValue": "Le plus souvent : {{value}} points dans un match ({{pct}} % des matchs)",
      "mostCommonReceptions": "Au moins {{value}} réceptions dans {{pct}} % des matchs"
    }
  },
  "playerComparisonTab": {
    "loading": "Chargement des comparaisons…",
    "header": {
      "title": "Comparaison par compétition",
      "description": "Comparez {{name}} aux autres joueurs de chaque compétition",
      "descriptionF": "Comparez {{name}} aux autres joueuses de chaque compétition"
    },
    "empty": {
      "title": "Aucune compétition",
      "text": "Ce joueur n'a pas encore participé à des compétitions.",
      "textF": "Cette joueuse n'a pas encore participé à des compétitions."
    },
    "selector": {
      "noAppearance": "non entré en jeu",
      "noAppearanceF": "non entrée en jeu",
      "competitionLabel": "Compétition",
      "competitionOption": "{{competition}} avec {{team}}"
    },
    "modes": {
      "byPosition": "Par poste",
      "headToHead": "Face à face",
      "seasonsRecap": "Récap saisons"
    },
    "sectors": {
      "global": "Global",
      "distribution": "Distribution",
      "points": "Points",
      "attack": "Attaque",
      "block": "Bloc",
      "service": "Service",
      "reception": "Réception",
      "general": "Général"
    },
    "sectorsShort": {
      "attack": "Attaque",
      "service": "Service",
      "block": "Bloc",
      "reception": "Réception",
      "contributions": "Contrib.",
      "distribution": "Distrib."
    },
    "seasonsRecap": {
      "setsCount": "{{count}} {count, plural, one {set} other {sets}}",
      "loading": "Chargement du récap multi-saisons…",
      "title": "Récap multi-saisons — {{count}} {count, plural, one {saison} other {saisons}}",
      "description": "Vue rapide des scores de {{name}} pour chaque compétition jouée. Onglets Global et par secteur.",
      "colSeason": "Saison",
      "colCompetition": "Compétition",
      "colPosition": "Poste",
      "colMatches": "M",
      "colSets": "Sets",
      "colGlobal": "Global",
      "colRank": "Rang",
      "colScoreSector": "Score {{sector}}",
      "hintGlobal": "Le score Global est recalculé pour chaque compétition vis-à-vis des joueurs au même poste cette saison-là.",
      "hintGlobalF": "Le score Global est recalculé pour chaque compétition vis-à-vis des joueuses au même poste cette saison-là.",
      "hintSector": "Chaque cellule affiche la valeur de la métrique et le rang du joueur parmi les joueurs du même poste pour cette saison (vert = top 10 %, orange = top 25 %, gris = top 50 %, rouge = en dessous).",
      "hintSectorF": "Chaque cellule affiche la valeur de la métrique et le rang de la joueuse parmi les joueuses du même poste pour cette saison (vert = top 10 %, orange = top 25 %, gris = top 50 %, rouge = en dessous).",
      "tooSmallLegend": "Le marqueur signale une saison dont le groupe de référence est limité : le classement de cette ligne est à interpréter avec prudence.",
      "hintIneligible": "Les saisons grisées sont celles où le volume était insuffisant pour un classement (la raison s'affiche au survol du « — »).",
      "empty": "Aucune compétition trouvée pour ce joueur.",
      "emptyF": "Aucune compétition trouvée pour cette joueuse."
    },
    "competition": {
      "playersCompared": "{{count}} {count, plural, one {joueur comparé} other {joueurs comparés}}",
      "playersComparedF": "{{count}} {count, plural, one {joueuse comparée} other {joueuses comparées}}"
    },
    "position": {
      "multiPrompt": "Ce joueur a évolué à plusieurs postes — comparer en tant que :",
      "multiPromptF": "Cette joueuse a évolué à plusieurs postes — comparer en tant que :",
      "matchCount": "{{count}} {count, plural, one {match} other {matchs}}"
    },
    "period": {
      "title": "Période",
      "reset": "Toute la saison",
      "resetTitle": "Inclure toutes les phases complètes (toute la saison)",
      "phaseComplete": "complète · {{count}} journées",
      "phaseUpTo": "jusqu'à la journée {{limit}} / {{max}}",
      "phaseIncluded": "incluse",
      "phaseRegular": "Saison régulière",
      "phasePlayoffs": "Play-offs"
    },
    "loadingData": "Chargement des données…",
    "refreshing": "Mise à jour…",
    "sectorSelectLabel": "Secteur",
    "filters": {
      "minMatches": "Matchs min.",
      "minSetsPerMatch": "Sets/match min.",
      "minSets": "Sets min.",
      "minPoints": "Nombre de points minimum",
      "minSpikes": "Nombre d'attaques minimum",
      "minBlocks": "Nombre de blocs minimum",
      "minServices": "Nombre de services minimum",
      "minReceptions": "Nombre de réceptions minimum",
      "minStarts": "Titularisations minimum"
    },
    "global": {
      "methodologyButton": "Voir le détail du calcul",
      "calculating": "Calcul du score Global…",
      "ineligibleTitle": "Score non calculé",
      "cohortWarning": "Groupe de référence de {{count}} joueurs (minimum recommandé : {{min}}). Le score reste indicatif.",
      "cohortWarningF": "Groupe de référence de {{count}} joueuses (minimum recommandé : {{min}}). Le score reste indicatif.",
      "scoreCohort": "{{position}} · {{count}} joueurs comparés",
      "scoreCohortF": "{{position}} · {{count}} joueuses comparées",
      "rankLine": "Rang #{{rank}} sur {{total}} joueurs éligibles",
      "rankLineF": "Rang #{{rank}} sur {{total}} joueuses éligibles",
      "leaderboardTitle": "Classement des {{position}} — {{count}} joueurs éligibles",
      "leaderboardTitleF": "Classement des {{position}} — {{count}} joueuses éligibles",
      "colPlayer": "Joueur",
      "colPlayerF": "Joueuse",
      "colMatches": "Matchs",
      "colSets": "Sets",
      "colGlobal": "Global",
      "breakdownTitle": "Décomposition par secteur",
      "breakdownWeight": "poids {{weight}} %",
      "breakdownNotWeighted": "non pondéré",
      "medianMax": "médiane {{median}}{{unit}} · max {{max}}{{unit}}",
      "playersCount": "{{count}} joueurs",
      "playersCountF": "{{count}} joueuses",
      "playersGeneric": "joueurs",
      "playersGenericF": "joueuses",
      "summaryPosition": "Position de {{name}}"
    },
    "table": {
      "player": "Joueur",
      "playerF": "Joueuse",
      "matches": "Matchs",
      "sets": "Sets"
    },
    "pagination": {
      "perPage": "Par page",
      "pageLabel": "Page",
      "firstPage": "Première page",
      "prevPage": "Page précédente",
      "nextPage": "Page suivante",
      "lastPage": "Dernière page"
    },
    "headToHead": {
      "searchPlaceholder": "Rechercher un adversaire…",
      "searchPlaceholderF": "Rechercher une adversaire…",
      "clearOpponent": "Effacer le joueur sélectionné",
      "clearOpponentF": "Effacer la joueuse sélectionnée",
      "loadingStats": "Chargement des statistiques…",
      "delta": "Écart",
      "calculating": "Calcul…",
      "calculatingOpponent": "Calcul adversaire…",
      "vsCohort": "{{position}} · groupe de {{size}}",
      "rankShort": "Rang #{{rank}} / {{total}}",
      "breakdownVsTitle": "Comparatif par secteur",
      "cardMatches": "Matchs",
      "cardSets": "Sets",
      "empty": "Recherchez et sélectionnez un adversaire pour comparer les statistiques face à face.",
      "emptyF": "Recherchez et sélectionnez une adversaire pour comparer les statistiques face à face.",
      "emptyCompetition": "Aucune donnée de comparaison disponible pour cette compétition."
    },
    "tiers": {
      "elite": "Élite",
      "veryGood": "Très bon",
      "good": "Bon",
      "average": "Moyen",
      "below": "En retrait"
    },
    "columns": {
      "points": {
        "totalPoints": "Points",
        "avgPointsPerSet": "Pts/set",
        "avgPointsPerMatch": "Pts/match",
        "totalBreakPoints": "Break points",
        "avgBreakPointsPerMatch": "BP/match",
        "avgBreakPointsPerSet": "BP/set",
        "totalDiffWinLost": "Diff +/−",
        "apportRatio": "% Apport",
        "apportRatioTooltip": "Formule : (points - erreurs) / points × 100. Erreurs = fautes service + fautes attaque + attaques contrées + fautes réception",
        "contributionPercentage": "% Contribution",
        "contributionPercentageTooltip": "Formule : points du joueur / points totaux de l'équipe × 100",
        "contributionPercentageTooltipF": "Formule : points de la joueuse / points totaux de l'équipe × 100"
      },
      "attack": {
        "totalSpikePoints": "Points",
        "totalSpikes": "Attaques",
        "avgSpikePointsPerSet": "Pts/set",
        "avgSpikePerSet": "Att/set",
        "spikeEfficiency": "Réussite %",
        "spikeEfficiency2": "Efficacité %",
        "totalSpikeFaults": "Fautes",
        "spikeFaultRate": "Fautes %",
        "totalSpikeBlocked": "Contrées",
        "spikeBlockedRate": "Contrées %"
      },
      "block": {
        "totalBlockPoints": "Blocs",
        "avgBlocksPerMatch": "Blocs/match",
        "avgBlocksPerSet": "Blocs/set"
      },
      "service": {
        "totalServicePoints": "Aces",
        "totalServices": "Services",
        "avgServePointPerSet": "Aces/set",
        "avgServePerSet": "Serv/set",
        "acePercentage": "Aces %",
        "totalServiceFaults": "Fautes",
        "avgServeFaultPerSet": "Fautes/set",
        "serviceFaultPercentage": "Fautes %",
        "serviceEfficiency": "Efficacité"
      },
      "reception": {
        "receptionEfficiency": "Efficacité",
        "receptionEfficiencyTooltip": "Efficacité = (réceptions parfaites − fautes) / total × 100 (peut être négative)",
        "totalReceptions": "Réceptions",
        "avgReceptionsPerSet": "Réc/set",
        "positiveReceptionPercentage": "% Positive",
        "excellentReceptionPercentage": "% Excellente",
        "totalReceptionFaults": "Fautes",
        "receptionFaultPercentage": "Fautes %"
      },
      "distribution": {
        "teamSpikeSuccessRate": "Réu. att. éq. %",
        "teamSpikeEfficiency": "Eff. att. éq. %",
        "teamSpikesPerSet": "Att. éq./set",
        "teamSpikeBlockedRate": "Blocs éq. %",
        "teamSpikeFaultRate": "Fautes att. éq. %",
        "winRateAsStarter": "Win% titu."
      },
      "general": {
        "avgPointsPerSet": "Pts/set",
        "totalSpikePoints": "Pts attaque",
        "avgSpikePointsPerSet": "Pts Att/set",
        "totalBlockPoints": "Blocs",
        "avgBlocksPerSet": "Blocs/set",
        "totalServicePoints": "Aces",
        "avgServePointPerSet": "Aces/set",
        "positiveReceptionPercentage": "% Réc. Positive",
        "excellentReceptionPercentage": "% Réc. Excellente",
        "receptionFaultPercentage": "% Fautes Réc."
      }
    },
    "methodology": {
      "title": "Méthodologie du score Global",
      "close": "Fermer",
      "purposeTitle": "À quoi sert ce score ?",
      "weightsTitle": "Pondération par poste (en %)",
      "editPreview": "Modifier (aperçu)",
      "adjust": "Ajuster",
      "reset": "Réinitialiser",
      "cancel": "Annuler",
      "applyPreview": "Appliquer (aperçu)",
      "weightsHint": "Chaque ligne fait 100 %. Le score Global d'un joueur est la moyenne pondérée des scores de secteur selon ces pourcentages, en fonction de son poste.",
      "weightsHintF": "Chaque ligne fait 100 %. Le score Global d'une joueuse est la moyenne pondérée des scores de secteur selon ces pourcentages, en fonction de son poste.",
      "previewActiveTitle": "Mode aperçu actif",
      "previewActiveText1": " — les scores sont calculés avec des poids modifiés pour cette session. Rien n'est enregistré ; cliquez sur ",
      "previewActiveText2": " pour revenir aux valeurs par défaut. Pour un changement permanent, utilisez les ",
      "adminToolsLink": "admin tools",
      "weightsError100": "Chaque ligne doit faire 100 % au total.",
      "cols": {
        "position": "Poste",
        "attack": "Attaque",
        "service": "Service",
        "block": "Bloc",
        "reception": "Réception",
        "contributions": "Contributions",
        "distribution": "Distribution",
        "total": "Total"
      },
      "currentPositionHint": "Ligne mise en avant : poste de {{name}} ({{position}}).",
      "editHintWeights1": "Mode aperçu admin : modifiez les valeurs (chaque ligne doit faire 100 %) puis cliquez sur ",
      "editHintWeights2": ". Les scores Global se recalculent immédiatement avec les nouveaux poids, mais ",
      "editHintWeightsStrong": "rien n'est persisté en BDD",
      "editHintWeights3": " — rechargement de la page = retour aux poids par défaut.",
      "sectorsCompositionTitle": "Composition des secteurs",
      "previewInternalTitle": "Mode aperçu interne actif",
      "previewInternalText1": " — les poids des métriques sont modifiés pour cette session. Rien n'est enregistré ; cliquez sur ",
      "previewInternalText2": " pour revenir aux valeurs par défaut.",
      "sectorsCompositionHint": "À l'intérieur d'un secteur, chaque métrique est convertie en percentile (0-100) par rapport aux joueurs du même poste, puis combinée en moyenne pondérée.",
      "sectorsCompositionHintF": "À l'intérieur d'un secteur, chaque métrique est convertie en percentile (0-100) par rapport aux joueuses du même poste, puis combinée en moyenne pondérée.",
      "sectorMetricsError100": "Chaque secteur doit faire 100 % au total avant d'appliquer.",
      "directionLower": "(moins = mieux)",
      "editSectorTotal": "Total : {{sum}} %",
      "editHintSectors1": "Mode aperçu admin : modifiez les poids des métriques (chaque secteur doit faire 100 %), puis ",
      "editHintSectorsApply": "Appliquer",
      "editHintSectors2": ". ",
      "editHintSectorsStrong": "Rien n'est persisté.",
      "editHintSectors3": " Pour un changement permanent : ",
      "rankingMethodTitle": "Méthode de classement",
      "rankingMethodText1a": "Pour chaque métrique, on classe le joueur dans son groupe de référence (joueurs au même poste, même compétition) en utilisant la méthode ",
      "rankingMethodText1aF": "Pour chaque métrique, on classe la joueuse dans son groupe de référence (joueuses au même poste, même compétition) en utilisant la méthode ",
      "rankingMethodMidrank": "percentile au rang moyen",
      "rankingMethodText1b": " :",
      "rankingMethodFormula": "percentile = (nombre de joueurs en-dessous + égalités/2) ÷ taille du groupe × 100",
      "rankingMethodFormulaF": "percentile = (nombre de joueuses en-dessous + égalités/2) ÷ taille du groupe × 100",
      "rankingMethodText2": "Cette méthode gère proprement les égalités (deux joueurs avec la même valeur partagent le même rang moyen) et donne un percentile compris entre 0 et 100. Pour les métriques où « moins = mieux » (fautes, attaques contrées), le percentile est inversé.",
      "rankingMethodText2F": "Cette méthode gère proprement les égalités (deux joueuses avec la même valeur partagent le même rang moyen) et donne un percentile compris entre 0 et 100. Pour les métriques où « moins = mieux » (fautes, attaques contrées), le percentile est inversé.",
      "thresholdsTitle": "Seuils d'éligibilité",
      "thresholdMinMatches": "Minimum de matchs joués (par défaut) :",
      "thresholdMinSets": "Minimum de sets/match en moyenne (par défaut) :",
      "thresholdMinCohort": "Taille minimale du groupe recommandée :",
      "biasesTitle": "Biais connus, à interpréter en contexte",
      "evolutionNote1": "Ce système de notation est ",
      "evolutionNoteStrong": "indicatif",
      "evolutionNote2": " et appelé à évoluer. Les pondérations et formules ci-dessus reflètent un choix éditorial qui peut être ajusté au fil des saisons et des retours.",
      "descriptionText": "Le score Global situe un joueur sur une échelle de 0 à 100 par rapport aux autres joueurs du même poste dans la même compétition. Un score de 80 signifie qu'il est meilleur que 80 % de ses pairs au même poste, sur les secteurs pondérés selon son rôle.",
      "descriptionTextF": "Le score Global situe une joueuse sur une échelle de 0 à 100 par rapport aux autres joueuses du même poste dans la même compétition. Un score de 80 signifie qu'elle est meilleure que 80 % de ses pairs au même poste, sur les secteurs pondérés selon son rôle.",
      "methodText": "Pour chaque secteur, on calcule un percentile (méthode du rang moyen) à partir d'une combinaison pondérée de métriques. Le score d'un secteur est la moyenne des percentiles de ses métriques. Le score Global est la moyenne des scores de secteur, pondérée selon le poste. Les ratios de volume (services, blocs, break points, +/−) sont normalisés par la densité réelle du match (somme des points joués des deux équipes) plutôt que par les sets joués — un joueur en match court 3-0 et un joueur en match long 3-2 sont ainsi comparés à rythme équivalent.",
      "methodTextF": "Pour chaque secteur, on calcule un percentile (méthode du rang moyen) à partir d'une combinaison pondérée de métriques. Le score d'un secteur est la moyenne des percentiles de ses métriques. Le score Global est la moyenne des scores de secteur, pondérée selon le poste. Les ratios de volume (services, blocs, break points, +/−) sont normalisés par la densité réelle du match (somme des points joués des deux équipes) plutôt que par les sets joués — une joueuse en match court 3-0 et une joueuse en match long 3-2 sont ainsi comparées à rythme équivalent.",
      "thresholdsNote": "Un joueur n'apparaît dans le classement que s'il a joué au moins {{matches}} matchs ET au moins {{sets}} sets/match en moyenne. Si le groupe de référence (joueurs éligibles au même poste) compte moins de {{cohort}} joueurs, le score est marqué « groupe trop petit » pour éviter une fausse précision.",
      "thresholdsNoteF": "Une joueuse n'apparaît dans le classement que si elle a joué au moins {{matches}} matchs ET au moins {{sets}} sets/match en moyenne. Si le groupe de référence (joueuses éligibles au même poste) compte moins de {{cohort}} joueuses, le score est marqué « groupe trop petit » pour éviter une fausse précision.",
      "biases": {
        "0": {
          "metric": "+/− (Contributions)",
          "note": "Cette métrique a un biais en faveur des joueurs des équipes dominantes (un joueur médiocre dans une grande équipe a souvent un +/− positif, et inversement). C'est assumé : le +/− reste un signal d'impact équipe pertinent, mais à interpréter en contexte. Normalisé par la densité de match pour comparer à rythme équivalent.",
          "noteF": "Cette métrique a un biais en faveur des joueuses des équipes dominantes (une joueuse médiocre dans une grande équipe a souvent un +/− positif, et inversement). C'est assumé : le +/− reste un signal d'impact équipe pertinent, mais à interpréter en contexte. Normalisé par la densité de match pour comparer à rythme équivalent."
        },
        "1": {
          "metric": "Distribution équipe (passeurs)",
          "metricF": "Distribution équipe (passeuses)",
          "note": "L'efficacité d'attaque de l'équipe quand le passeur est sur le terrain dépend aussi de la qualité des attaquants reçus (donc de l'équipe). Un passeur dans une équipe avec de très bons attaquants apparaîtra mieux noté qu'un passeur excellent dans une équipe faible.",
          "noteF": "L'efficacité d'attaque de l'équipe quand la passeuse est sur le terrain dépend aussi de la qualité des attaquantes servies (donc de l'équipe). Une passeuse dans une équipe avec de très bonnes attaquantes apparaîtra mieux notée qu'une passeuse excellente dans une équipe faible."
        },
        "2": {
          "metric": "Petit groupe",
          "note": "Pour les postes ayant peu de joueurs éligibles dans une compétition (libéros notamment), le rang peut moins discriminer. Le flag « tooSmall » permet au front d'avertir.",
          "noteF": "Pour les postes ayant peu de joueuses éligibles dans une compétition (libéros notamment), le rang peut moins discriminer. Le flag « tooSmall » permet au front d'avertir."
        }
      }
    }
  },
  "playerEvolutionTab": {
    "loading": "Chargement de l'évolution…",
    "patternsLoading": "Chargement des profils…",
    "title": "Évolution des performances",
    "patternsToggle": "Patterns saisonniers",
    "view": {
      "label": "Lecture de l'évolution",
      "match": "Par match",
      "season": "Par saison"
    },
    "season": {
      "setsCount": "{{count}} {count, plural, one {set} other {sets}}",
      "loading": "Chargement de l'évolution par saison…",
      "empty": "Aucune saison jouée à afficher.",
      "intro": "Chaque point est une saison dans une équipe, comparée à la moyenne des joueurs du même poste dans le même championnat et à la moyenne de sa carrière.",
      "introF": "Chaque point est une saison dans une équipe, comparée à la moyenne des joueuses du même poste dans le même championnat et à la moyenne de sa carrière.",
      "sectors": {
        "points": "Points",
        "service": "Service",
        "attack": "Attaque",
        "reception": "Réception",
        "distribution": "Distribution",
        "contributions": "Contributions"
      },
      "metrics": {
        "points": "Points",
        "blocks": "Blocs",
        "aces": "Aces",
        "services": "Services",
        "acePercentage": "% d'aces",
        "serviceEfficiency": "Efficacité service",
        "serviceFaults": "Fautes de service",
        "serviceFaultRate": "% fautes de service",
        "spikes": "Attaques",
        "spikeSuccess": "Réussite attaque",
        "spikeEfficiency": "Efficacité attaque",
        "receptions": "Réceptions",
        "receptionEfficiency": "Efficacité réception",
        "positiveReception": "Réception positive",
        "excellentReception": "Réception excellente",
        "receptionFaults": "Fautes de réception",
        "receptionFaultRate": "% fautes de réception",
        "breakPoints": "Break points",
        "diffWinLost": "+/−",
        "teamSpikes": "Attaques équipe",
        "teamSpikeSuccess": "Réussite attaque équipe",
        "teamSpikeEfficiency": "Efficacité attaque équipe",
        "teamSpikeBlockedRate": "% attaques contrées équipe",
        "teamSpikeFaultRate": "% fautes d'attaque équipe",
        "teamSpikeBlocked": "Attaques contrées équipe",
        "teamSpikeFaults": "Fautes d'attaque équipe"
      },
      "modeLabel": "Lecture des volumes",
      "modes": {
        "total": "Total",
        "perMatch": "Par match",
        "perSet": "Par set"
      },
      "modeSuffix": {
        "total": "(total de la saison)",
        "perMatch": "par match",
        "perSet": "par set"
      },
      "rateHint": "Un pourcentage se lit sur la saison entière : total, par match et par set ne s'y appliquent pas.",
      "totalHint": "Le total dépend du nombre de matchs joués : une saison écourtée ou un transfert le font baisser.",
      "legend": {
        "player": "Le joueur",
        "playerF": "La joueuse",
        "positionAverage": "Moyenne du poste",
        "careerAverage": "Moyenne de sa carrière"
      },
      "sample": "{{count}} {count, plural, one {joueur} other {joueurs}}",
      "sampleF": "{{count}} {count, plural, one {joueuse} other {joueuses}}",
      "smallGroup": "groupe trop petit",
      "attempts": "sur {{count}}",
      "matchesSets": "{{matches}} {matches, plural, one {match} other {matchs}}, {{sets}} {sets, plural, one {set} other {sets}}",
      "belowMinMatches": "Moins de {{count}} matchs : hors de la moyenne du poste",
      "outOfAverage": "hors moyenne",
      "gapPoints": "{{value}} pts",
      "historyTitle": "Saison par saison",
      "cols": {
        "season": "Saison",
        "team": "Équipe",
        "matches": "Matchs",
        "sets": "Sets",
        "value": "Joueur",
        "valueF": "Joueuse",
        "positionAverage": "Moy. poste",
        "gap": "Écart"
      },
      "footnote": "Moyenne du poste : joueurs du même poste dans le même championnat ayant joué au moins 5 matchs (moins en début de saison), chacun comptant pour un ; pour un pourcentage, au moins 20 tentatives dans la saison. Distribution d'un passeur : sur ses seuls matchs commencés.",
      "footnoteF": "Moyenne du poste : joueuses du même poste dans le même championnat ayant joué au moins 5 matchs (moins en début de saison), chacune comptant pour une ; pour un pourcentage, au moins 20 tentatives dans la saison. Distribution d'une passeuse : sur ses seuls matchs commencés."
    },
    "empty": "Aucune donnée d'évolution disponible pour ce joueur",
    "emptyF": "Aucune donnée d'évolution disponible pour cette joueuse",
    "patternEmpty": "Aucun profil disponible pour cette configuration",
    "filters": {
      "competitions": "Compétitions",
      "minSets": "Sets min.",
      "minPoints": "Points min.",
      "maxPoints": "Points max.",
      "location": "Lieu",
      "result": "Résultat",
      "phase": "Phase",
      "all": "Tous",
      "allF": "Toutes",
      "home": "Domicile",
      "away": "Extérieur",
      "win": "Victoires",
      "loss": "Défaites",
      "regularSeason": "Saison régulière",
      "qualification": "Phases annexes",
      "playoffs": "Play-offs",
      "selectedCount": "{{count}} {count, plural, one {sélectionnée} other {sélectionnées}}"
    },
    "patterns": {
      "align": "Alignement",
      "alignGameweek": "Journée",
      "alignMonth": "Mois",
      "seasons": "Saisons",
      "seasonsAll": "Toutes",
      "seasonsLast2": "2 dernières",
      "seasonsLast3": "3 dernières",
      "seasonsLast4": "4 dernières",
      "normalization": "Normalisation",
      "normPercent": "% de la moyenne",
      "normZscore": "Z-score",
      "smoothing": "Lissage",
      "smoothNone": "Aucun",
      "smooth3": "3 bins",
      "smooth5": "5 bins"
    },
    "sectors": {
      "points": "Points",
      "attack": "Attaque",
      "reception": "Réception",
      "distribution": "Distribution"
    },
    "metrics": {
      "pointsPerMatch": "Points / match",
      "pointsPerSet": "Points / set",
      "blocksPerSet": "Blocs / set",
      "aces": "Aces",
      "spikeSuccess": "Réussite att. (%)",
      "spikeEfficiency": "Eff. att. (%)",
      "totalSpikes": "Attaques",
      "spikesPerSet": "Attaques / set",
      "receptionEfficiency": "Eff. réception (%)",
      "receptionEfficiencyTooltip": "Efficacité = (Réceptions parfaites − Fautes) / Total × 100 (peut être négative)",
      "positiveReception": "Réception + (%)",
      "totalReception": "Total réceptions",
      "excellentReception": "Réception # (%)",
      "teamSpikeSuccess": "Réussite att. équipe (%)",
      "teamSpikeEfficiency": "Efficacité att. équipe (%)",
      "teamSpikesPerSet": "Attaques équipe/set",
      "teamSpikeBlockedRate": "Att. bloquées équipe (%)",
      "teamSpikeFaultRate": "Fautes att. équipe (%)",
      "teamSpikeBlockedPerSet": "Att. bloquées éq./set",
      "teamSpikeFaultsPerSet": "Fautes att. éq./set"
    },
    "kpi": {
      "selectionAvg": "Moyenne de la sélection",
      "currentForm": "Forme actuelle (5 derniers)",
      "avg10": "Moyenne 10 derniers",
      "seasonAvg": "Moyenne saison",
      "delta": "Écart (5 derniers matchs / saison)",
      "deltaVsPattern": "Écart au profil historique"
    },
    "legend": {
      "win": "Victoire",
      "loss": "Défaite",
      "movingAverage": "Moyenne mobile (5 matchs)",
      "seasonAverage": "Moyenne saison",
      "bestMatch": "Meilleur match",
      "worstMatch": "Pire match"
    },
    "patternLegend": {
      "seasonCurrent": "{{season}} (actuelle)",
      "previousSeasons": "Saisons précédentes",
      "historicalMean": "Moyenne historique",
      "variability": "Variabilité (± écart-type)"
    },
    "chart": {
      "axisPointsVsAverage": "Écart à la moyenne (pts, 1 = moyenne)",
      "datasetMatchCount": "Nombre de matchs",
      "axisCompetitionMonth": "Mois de compétition",
      "axisMatches": "Matchs",
      "axisRatioVsAverage": "Rapport à la moyenne",
      "axisZscore": "Z-score",
      "pointTooltip": "{{label}} : {{val}} ({{delta}} par rapport à la moy.)",
      "tooltipBestMatch": "Meilleur match",
      "tooltipWorstMatch": "Pire match",
      "months": {
        "0": "Oct",
        "1": "Nov",
        "2": "Déc",
        "3": "Jan",
        "4": "Fév",
        "5": "Mar",
        "6": "Avr",
        "7": "Mai"
      }
    },
    "insight": {
      "dip": "Creux",
      "peak": "Pic",
      "description": "{{type}} récurrent {{range}} : {{support}}/{{total}} saisons, {{delta}}"
    }
  },
  "playerRecordsTab": {
    "loading": "Chargement des records…",
    "topTitle": "Top 5 performances",
    "loadingPerformances": "Chargement des performances…",
    "viewMatch": "Voir le match",
    "scope": {
      "match": "Match",
      "season": "Saison"
    },
    "scopeDesc": {
      "matchPre": "Top 5 des meilleures performances réalisées sur",
      "matchStrong": "un seul match",
      "seasonPre": "Top 5 des statistiques cumulées sur",
      "seasonStrong": "toute la saison"
    },
    "filters": {
      "competitions": "Compétitions",
      "selectAll": "Toutes",
      "selectNone": "Aucune",
      "selectLast": "Dernière",
      "search": "Rechercher…",
      "noCompetition": "Aucune compétition trouvée",
      "result": "Résultat",
      "resultAll": "Tous",
      "resultVictory": "Victoire",
      "resultDefeat": "Défaite",
      "period": "Période",
      "periodAll": "Tout",
      "periodCurrentSeason": "Saison en cours",
      "periodLast3Months": "3 derniers mois",
      "periodLast12Months": "12 derniers mois",
      "phase": "Type de match",
      "phaseAll": "Tous",
      "phaseRegular": "Saison régulière",
      "phasePlayoffs": "Play-offs",
      "phaseQualification": "Phases annexes",
      "minActions": "Minimum d'actions",
      "reset": "Réinitialiser les filtres"
    },
    "mobile": {
      "category": "Catégorie",
      "sector": "Secteur",
      "display": "Affichage"
    },
    "season": {
      "matches": "Matchs",
      "starter": "Titulaire",
      "sets": "Sets",
      "avgPerMatch": "Moy/match",
      "avgPerMatchTooltip": "Calculée sur les matchs où le joueur a joué au moins 1 point",
      "avgPerMatchTooltipF": "Calculée sur les matchs où la joueuse a joué au moins 1 point",
      "overMatches": "sur {{count}} {count, plural, one {match} other {matchs}}"
    },
    "detail": {
      "totalReceptions": "Réceptions totales :",
      "pointsAttacks": "Points / attaques :",
      "successEfficiency": "Réussite : {{success}} % | Efficacité : {{efficiency}} %",
      "faultsBlocked": "{{faults}} faute(s), {{blocked}} contrée(s)",
      "points": "Points :",
      "errors": "Erreurs :"
    },
    "empty": {
      "noPerformance": "Aucune performance trouvée",
      "noRecord": "Aucun record disponible",
      "noRecordText": "Les performances de ce joueur ne sont pas encore disponibles.",
      "noRecordTextF": "Les performances de cette joueuse ne sont pas encore disponibles."
    },
    "emptyMessage": {
      "withFilters": "Aucune performance trouvée avec ces filtres. Essayez d'élargir les critères de recherche.",
      "noSector": "Aucune performance enregistrée pour ce secteur."
    },
    "competitionsLabel": {
      "none": "Aucune sélection",
      "all": "Toutes les compétitions",
      "one": "1 compétition",
      "multiple": "{{count}} compétitions"
    },
    "categories": {
      "contributions": "Contributions",
      "attack": "Attaque",
      "service": "Service",
      "block": "Blocs",
      "reception": "Réception",
      "distribution": "Distribution"
    },
    "variants": {
      "total": "Total",
      "per_set": "Par set",
      "per_match": "Par match"
    },
    "groups": {
      "points": "Points",
      "total_errors": "Erreurs",
      "team_contribution": "Contribution équipe",
      "apport_ratio": "Ratio d'apport",
      "error_ratio": "Ratio erreurs",
      "highest_yield": "Meilleur rendement",
      "lowest_yield": "Pire rendement",
      "spikes": "Attaques",
      "spike_points": "Pts attaque",
      "spike_faults": "Fautes attaque",
      "spike_blocked": "Attaques contrées",
      "spike_success_rate": "Réussite attaque",
      "spike_efficiency": "Efficacité attaque",
      "aces": "Aces",
      "services": "Services",
      "service_faults": "Fautes service",
      "service_efficiency": "Efficacité service",
      "blocks": "Blocs",
      "receptions": "Réceptions",
      "reception_faults": "Fautes réception",
      "reception_percentage": "Réception positive",
      "excellent_reception_percentage": "Réception excellente",
      "team_spike_success_rate": "Réu. attaque équipe",
      "team_spike_efficiency": "Eff. attaque équipe",
      "team_spikes_per_set": "Attaques équipe/set"
    },
    "badges": {
      "general": "Général",
      "service": "Service",
      "block": "Bloc",
      "attack": "Attaque",
      "errors": "Erreurs",
      "reception": "Réception",
      "contribution": "Contribution",
      "stats": "Stats"
    },
    "error": {
      "loadFailed": "Erreur lors du chargement des performances"
    }
  },
  "playerTeammatesTab": {
    "loading": "Chargement des coéquipiers…",
    "loadingF": "Chargement des coéquipières…",
    "teammates": "Coéquipiers",
    "teammatesF": "Coéquipières",
    "description": "Joueurs ayant évolué dans les mêmes équipes",
    "descriptionF": "Joueuses ayant évolué dans les mêmes équipes",
    "competitions": "Compétitions",
    "loadError": "Impossible de charger les coéquipiers",
    "loadErrorF": "Impossible de charger les coéquipières",
    "subTabAll": "Coéquipiers",
    "subTabAllF": "Coéquipières",
    "subTabDreamTeam": "Équipe de rêve",
    "subTabWins": "Victoires",
    "subTabSetters": "Avec les passeurs",
    "subTabSettersF": "Avec les passeuses",
    "searchPlaceholder": "Rechercher un coéquipier…",
    "searchPlaceholderF": "Rechercher une coéquipière…",
    "clearSearch": "Effacer la recherche",
    "viewByCompetition": "Par compétition",
    "viewAll": "Tous",
    "viewAllF": "Toutes",
    "teammateWordSingular": "coéquipier",
    "teammateWordSingularF": "coéquipière",
    "teammateWordPlural": "coéquipiers",
    "teammateWordPluralF": "coéquipières",
    "competitionWordSingular": "compétition",
    "competitionWordPlural": "compétitions",
    "setterWordSingular": "passeur",
    "setterWordSingularF": "passeuse",
    "setterWordPlural": "passeurs",
    "setterWordPluralF": "passeuses",
    "matchWordSingular": "match",
    "matchWordPlural": "matchs",
    "metaNationality": "Nationalité",
    "metaHeight": "Taille",
    "metaAge": "Âge",
    "ageValue": "{{age}} ans",
    "noResults": "Aucun coéquipier ne correspond à votre recherche",
    "noResultsF": "Aucune coéquipière ne correspond à votre recherche",
    "emptyTitle": "Aucun coéquipier trouvé",
    "emptyTitleF": "Aucune coéquipière trouvée",
    "emptyText": "Ce joueur n'a pas encore de coéquipiers enregistrés dans le système",
    "emptyTextF": "Cette joueuse n'a pas encore de coéquipières enregistrées dans le système",
    "dreamTitle": "Équipe de rêve",
    "dreamSubtitle": "Les meilleurs coéquipiers de toutes les saisons partagées",
    "dreamSubtitleF": "Les meilleures coéquipières de toutes les saisons partagées",
    "dreamLoading": "Composition de l'équipe de rêve…",
    "dreamTeamLoadError": "Impossible de charger l'équipe de rêve",
    "dreamEmpty": "Pas assez de coéquipiers éligibles pour composer une équipe de rêve sur la sélection actuelle.",
    "dreamEmptyF": "Pas assez de coéquipières éligibles pour composer une équipe de rêve sur la sélection actuelle.",
    "eligibleTeammates": "coéquipiers éligibles",
    "eligibleTeammatesF": "coéquipières éligibles",
    "allCompetitions": "Toutes les compétitions",
    "compSelectedSingular": "{{count}} compétition sélectionnée",
    "compSelectedPlural": "{{count}} compétitions sélectionnées",
    "filterByCompetition": "Filtrer par compétition",
    "selectAll": "Tout sélectionner",
    "dreamMethodSummary": "Comment ce classement est calculé",
    "dreamStep1Title": "Identification des coéquipiers.",
    "dreamStep1TitleF": "Identification des coéquipières.",
    "dreamStep1Before": "On parcourt toutes les compétitions sélectionnées où",
    "dreamStep1Mid": "a joué. Pour chacune, on récupère tous les joueurs ayant participé à la",
    "dreamStep1MidF": "a joué. Pour chacune, on récupère toutes les joueuses ayant participé à la",
    "dreamStep1Strong": "même équipe",
    "dreamStep1Mid2": ", c'est-à-dire déclarés dans la même",
    "dreamStep1Mid2F": ", c'est-à-dire déclarées dans la même",
    "dreamStep1Em": "(compétition, club)",
    "dreamStep1After": ". Le critère est large : on n'exige pas d'avoir été sur la feuille de match ensemble — un coéquipier au sens roster suffit.",
    "dreamStep1AfterF": ". Le critère est large : on n'exige pas d'avoir été sur la feuille de match ensemble — une coéquipière au sens roster suffit.",
    "dreamStep2Title": "Score Global VolleyTracker.",
    "dreamStep2Before": "Pour chaque coéquipier, on récupère son",
    "dreamStep2BeforeF": "Pour chaque coéquipière, on récupère son",
    "dreamStep2Strong": "Score Global",
    "dreamStep2After": "(0-100) tel qu'il est calculé dans le profil joueur classique : un percentile au rang moyen sur les joueurs au même poste dans la même compétition, pondéré par secteur selon le poste.",
    "dreamStep2AfterF": "(0-100) tel qu'il est calculé dans le profil joueur classique : un percentile au rang moyen sur les joueuses au même poste dans la même compétition, pondéré par secteur selon le poste.",
    "dreamStep3Title": "Groupe de référence.",
    "dreamStep3Before": "Le score d'un joueur est mesuré par rapport à",
    "dreamStep3BeforeF": "Le score d'une joueuse est mesuré par rapport à",
    "dreamStep3Strong": "tous les joueurs de son poste dans la compétition",
    "dreamStep3StrongF": "toutes les joueuses de son poste dans la compétition",
    "dreamStep3After": "(et non par rapport aux autres coéquipiers). C'est exactement le même 85 que celui affiché ailleurs dans l'app — directement comparable.",
    "dreamStep3AfterF": "(et non par rapport aux autres coéquipières). C'est exactement le même 85 que celui affiché ailleurs dans l'app — directement comparable.",
    "dreamStep4Title": "Pondérations par poste (Score Global).",
    "dreamWeightPO": "Pointu(e) : Attaque 50 % · Service 20 % · Bloc 10 % · Contributions 20 %",
    "dreamWeightPOF": "Pointue : Attaque 50 % · Service 20 % · Bloc 10 % · Contributions 20 %",
    "dreamWeightRA": "Réceptionneur-Attaquant : Attaque 30 % · Réception 30 % · Service 10 % · Bloc 10 % · Contributions 20 %",
    "dreamWeightRAF": "Réceptionneuse-Attaquante : Attaque 30 % · Réception 30 % · Service 10 % · Bloc 10 % · Contributions 20 %",
    "dreamWeightCE": "Central : Bloc 40 % · Attaque 25 % · Service 15 % · Contributions 20 %",
    "dreamWeightCEF": "Centrale : Bloc 40 % · Attaque 25 % · Service 15 % · Contributions 20 %",
    "dreamWeightPA": "Passeur(se) : Distribution équipe 50 % · Contributions 20 % · Service 15 % · Bloc 10 % · Attaque 5 %",
    "dreamWeightPAF": "Passeuse : Distribution équipe 50 % · Contributions 20 % · Service 15 % · Bloc 10 % · Attaque 5 %",
    "dreamWeightLI": "Libéro : Réception 95 % · Contributions 5 %",
    "dreamStep4After": "Chaque secteur est lui-même une combinaison pondérée d'indicateurs (par ex. Attaque = 45 % efficacité + 30 % réussite + 25 % points/set).",
    "dreamStep5Title": "Meilleure occurrence retenue.",
    "dreamStep5Before": "Si un coéquipier est apparu dans",
    "dreamStep5BeforeF": "Si une coéquipière est apparue dans",
    "dreamStep5Strong1": "plusieurs compétitions sélectionnées",
    "dreamStep5Mid": "(joueur qui a évolué avec la cible sur plusieurs saisons), on garde sa",
    "dreamStep5MidF": "(joueuse qui a évolué avec la cible sur plusieurs saisons), on garde sa",
    "dreamStep5Strong2": "meilleure note",
    "dreamStep5After": ". La compétition d'origine de cette note est affichée en badge sur sa carte (ex.",
    "dreamStep5Em": "LAM 23/24",
    "dreamStep6Title": "Sélection finale.",
    "dreamStep6Text": "Pour chaque poste, les meilleurs Scores Globaux remplissent le 7 titulaire (1 PA · 1 PO · 2 RA · 2 CE · 1 LI), puis le banc (mêmes slots). Un joueur ayant changé de poste entre saisons n'apparaît qu'une fois (à sa meilleure attribution).",
    "dreamStep6TextF": "Pour chaque poste, les meilleurs Scores Globaux remplissent le 7 titulaire (1 PA · 1 PO · 2 RA · 2 CE · 1 LI), puis le banc (mêmes slots). Une joueuse ayant changé de poste entre saisons n'apparaît qu'une fois (à sa meilleure attribution).",
    "dreamCaveatTitle": "Groupes de référence hétérogènes, assumés.",
    "dreamCaveatBefore": "Un 85 en LAM 24/25 et un 85 en LBM 18/19 ne sont pas",
    "dreamCaveatEm": "strictement",
    "dreamCaveatMid": "équivalents — le niveau du groupe de référence change. Le badge compétition source sur chaque carte permet de juger en contexte. Une icône",
    "dreamCaveatAfter": "apparaît quand le groupe d'un poste est petit (< 4 coéquipiers retenus).",
    "dreamCaveatAfterF": "apparaît quand le groupe d'un poste est petit (< 4 coéquipières retenues).",
    "net": "Filet",
    "benchTitle": "Banc",
    "warningTooSmall": "Peu de coéquipiers retenus à ce poste — confiance limitée",
    "warningTooSmallF": "Peu de coéquipières retenues à ce poste — confiance limitée",
    "scoreObtainedIn": "Score Global obtenu en {{comp}}",
    "globalScoreTitle": "Score Global : {{score}}/100",
    "winsTitle": "Victoires avec coéquipiers",
    "winsTitleF": "Victoires avec coéquipières",
    "winsSubtitle": "Avec qui gagne-t-on le plus ?",
    "winsLoadError": "Impossible de charger les statistiques de victoires",
    "minMatchesLabel": "Minimum de matchs ensemble",
    "matchesOption": "{{count}} {count, plural, one {match} other {matchs}}",
    "loadingStats": "Chargement des statistiques…",
    "winsEmptyText": "Aucun coéquipier avec {{min}}+ matchs ensemble",
    "winsEmptyTextF": "Aucune coéquipière avec {{min}}+ matchs ensemble",
    "reduceMinHint": "Essayez de réduire le nombre minimum de matchs",
    "columnTeammate": "Coéquipier",
    "columnTeammateF": "Coéquipière",
    "columnMatches": "Matchs",
    "columnWins": "Victoires",
    "columnLosses": "Défaites",
    "columnWinRate": "% Victoires",
    "settersTitle": "Performance avec passeurs",
    "settersTitleF": "Performance avec passeuses",
    "settersSubtitle": "Avec quel passeur je performe le mieux ?",
    "settersSubtitleF": "Avec quelle passeuse je performe le mieux ?",
    "settersLoadError": "Impossible de charger les performances avec les passeurs",
    "settersLoadErrorF": "Impossible de charger les performances avec les passeuses",
    "settersMethodSummary": "Comment les stats sont attribuées",
    "settersMethodP1Before": "Pour chaque match, les stats de",
    "settersMethodP1Mid": "sont attribuées",
    "settersMethodP1Strong": "uniquement au passeur titulaire",
    "settersMethodP1StrongF": "uniquement à la passeuse titulaire",
    "settersMethodP1After": "de l'équipe — celui qui a démarré le match (position de départ entre 1 et 6 au set 1, ou au premier set joué).",
    "settersMethodP1AfterF": "de l'équipe — celle qui a démarré le match (position de départ entre 1 et 6 au set 1, ou au premier set joué).",
    "settersMethodP2": "Si un passeur remplaçant entre en cours de match, il n'est pas comptabilisé comme partenaire : la LNV ne permet pas de savoir combien de ballons chaque passeur a réellement distribués. On préfère cette simplification à une attribution arbitraire.",
    "settersMethodP2F": "Si une passeuse remplaçante entre en cours de match, elle n'est pas comptabilisée comme partenaire : la LNV ne permet pas de savoir combien de ballons chaque passeuse a réellement distribués. On préfère cette simplification à une attribution arbitraire.",
    "settersCaveatTitle": "Cas limite assumé.",
    "settersCaveatText": "Si le passeur titulaire est remplacé tôt dans un match (blessure, méforme), la totalité des stats du joueur sur ce match reste créditée au titulaire de départ. Les matchs sans passeur titulaire identifiable sur la feuille de match sont exclus.",
    "settersCaveatTextF": "Si la passeuse titulaire est remplacée tôt dans un match (blessure, méforme), la totalité des stats de la joueuse sur ce match reste créditée à la titulaire de départ. Les matchs sans passeuse titulaire identifiable sur la feuille de match sont exclus.",
    "loadingPerf": "Chargement des performances…",
    "settersEmptyText": "Aucun passeur avec {{min}}+ matchs ensemble",
    "settersEmptyTextF": "Aucune passeuse avec {{min}}+ matchs ensemble",
    "scoreLabel": "Score",
    "starterBadgeTitle": "Stats agrégées uniquement sur les matchs où ce passeur a démarré comme titulaire",
    "starterBadgeTitleF": "Stats agrégées uniquement sur les matchs où cette passeuse a démarré comme titulaire",
    "starterBadge": "Titulaire",
    "starterMatchesCount": "{{count}} {count, plural, one {match titulaire} other {matchs titulaires}}",
    "setsCount": "{{count}} {count, plural, one {set} other {sets}}",
    "lowSampleWarning": "Échantillon faible",
    "qsSuccess": "Réussite",
    "qsEfficiency": "Efficacité",
    "qsPointsPerSet": "Pts/set",
    "qsBlocksPerSet": "Blocs/set",
    "detailsWith": "Détails avec {{name}}",
    "comparisonTitle": "Comparaison avec vos moyennes globales",
    "compAttackSuccess": "Réussite attaque",
    "compAttackEfficiency": "Efficacité attaque",
    "compPointsPerSet": "Points par set",
    "compBlocksPerSet": "Blocs par set",
    "vsAverage": "par rapport à la moyenne",
    "withThisSetter": "Avec ce passeur",
    "withThisSetterF": "Avec cette passeuse",
    "globalAverage": "Moyenne globale",
    "attackDetailTitle": "Détail attaque",
    "abTotalSpikes": "Attaques tentées",
    "abSpikePoints": "Attaques marquantes",
    "abSpikeBlocked": "Attaques contrées",
    "abSpikeFaults": "Fautes d'attaque",
    "abSpikesPerMatch": "Attaques / match",
    "abSpikesPerSet": "Attaques / set",
    "connectionScoreTitle": "Score de connexion",
    "connectionScoreDesc": "Ce score mesure votre compatibilité avec ce passeur en combinant : efficacité d'attaque (40 %), points par set (30 %) et blocs par set (30 %).",
    "connectionScoreDescF": "Ce score mesure votre compatibilité avec cette passeuse en combinant : efficacité d'attaque (40 %), points par set (30 %) et blocs par set (30 %).",
    "lowSampleNote": "Score pondéré (faible échantillon)",
    "viewProfileOf": "Voir le profil de {{name}}"
  },
  "playerCustomSelection": {
    "title": "Sélection custom",
    "description": "Filtrer les matchs selon des critères, ajuster la sélection à la main si besoin, et obtenir les moyennes calculées sur ces matchs.",
    "loadingMatches": "Chargement des matchs…",
    "filters": {
      "title": "Filtres",
      "resetAll": "Tout réinitialiser",
      "competition": "Compétition",
      "season": "Saison",
      "month": "Mois",
      "allFeminine": "Toutes",
      "allMasculine": "Tous",
      "dateFrom": "Du",
      "dateTo": "Au",
      "playerTeam": "Équipe du joueur",
      "playerTeamF": "Équipe de la joueuse",
      "opponentTeam": "Équipe adverse",
      "location": "Lieu",
      "home": "Dom.",
      "away": "Ext.",
      "result": "Résultat",
      "resultWin": "V",
      "resultLoss": "D",
      "starter": "Titulaire",
      "yes": "Oui",
      "no": "Non",
      "phase": "Phase",
      "phaseRegular": "Régulière",
      "phaseQualification": "Phases annexes",
      "phasePlayoffs": "Play-offs",
      "finalOnly": "Finale uniquement",
      "minSetsPlayed": "Sets joués (min)",
      "maxSetsPlayed": "Sets joués (max)",
      "minSpectators": "Spectateurs (min)",
      "maxSpectators": "Spectateurs (max)",
      "advancedToggle": "Filtres stats avancés",
      "sectors": {
        "attack": "Attaque",
        "block": "Bloc",
        "service": "Service",
        "reception": "Réception"
      },
      "stats": {
        "minSpikePoints": "Points att. (min)",
        "minSpikeSuccessRate": "Réussite att. % (min)",
        "minSpikeEfficiency": "Efficacité att. % (min)",
        "minBlockPoints": "Blocs (min)",
        "minServicePoints": "Aces (min)",
        "minPositiveReceptions": "Réc. positive % (min)",
        "minExcellentReceptions": "Réc. excellente % (min)"
      }
    },
    "summary": {
      "counts": "{{filtered}} match(s) après filtres / {{total}} total",
      "selectFiltered": "Sélectionner les matchs filtrés",
      "checkAll": "Tout cocher",
      "uncheckAll": "Tout décocher"
    },
    "matchList": {
      "mobileLine": "{{sets}} sets · {{points}} pts",
      "starter": "Titulaire",
      "bench": "Remplaçant",
      "benchF": "Remplaçante",
      "title": "Matchs ({{count}})",
      "hide": "Masquer la liste",
      "show": "Afficher la liste",
      "colDate": "Date",
      "colCompetition": "Compét.",
      "colOpponent": "Adversaire",
      "colLocation": "Lieu",
      "colResult": "Résultat",
      "colSets": "Sets",
      "colPoints": "Pts",
      "colStarter": "Tit.",
      "colPhase": "Phase",
      "homeTitle": "Domicile",
      "awayTitle": "Extérieur",
      "final": "Finale",
      "playoffsFinal": "Finale des play-offs",
      "playoffsFinalHint": "Le titre se décidait au classement de la saison régulière : cette finale ne l'attribuait pas.",
      "playoffsShort": "PO",
      "empty": "Aucun match ne correspond aux filtres."
    },
    "noMatches": "Aucun match disponible pour ce joueur.",
    "noMatchesF": "Aucun match disponible pour cette joueuse.",
    "aside": {
      "close": "Fermer",
      "title": "Stats sur la sélection",
      "matches": "{{count}} {count, plural, one {match} other {matchs}}",
      "sets": "{{count}} {count, plural, one {set} other {sets}}",
      "starters": "{{count}} tit.",
      "empty": "Cocher au moins un match pour voir les moyennes."
    },
    "kpi": {
      "pointsPerMatch": "Points / match",
      "pointsPerSet": "Points / set",
      "attackSuccess": "Réussite att.",
      "attackEfficiency": "Eff. att.",
      "acesPerMatch": "Aces / match",
      "blocksPerMatch": "Blocs / match",
      "positiveReception": "Réc. positive",
      "excellentReception": "Réc. excellente",
      "ptsUnit": "{{count}} {count, plural, one {pt} other {pts}}",
      "acesUnit": "{{count}} {count, plural, one {ace} other {aces}}",
      "blocksUnit": "{{count}} {count, plural, one {bloc} other {blocs}}",
      "receptionsUnit": "{{count}} réc."
    },
    "sectorTable": {
      "colStat": "Stat",
      "colTotal": "Total",
      "colPerMatch": "/match",
      "colPerSet": "/set",
      "contributions": "Contributions",
      "attack": "Attaque",
      "service": "Service",
      "block": "Bloc",
      "reception": "Réception",
      "distribution": "Distribution (att. équipe)",
      "totalPoints": "Points totaux",
      "breakPoints": "Break points",
      "diff": "Différentiel (+/−)",
      "totalSpikes": "Attaques totales",
      "spikePoints": "Points d'attaque",
      "spikeFaults": "Fautes d'attaque",
      "spikeBlocked": "Attaques contrées",
      "spikeSuccess": "Réussite attaque",
      "spikeEfficiency": "Efficacité attaque",
      "totalServices": "Services totaux",
      "aces": "Aces",
      "serviceFaults": "Fautes de service",
      "blockPoints": "Points de bloc",
      "totalReceptions": "Réceptions totales",
      "receptionFaults": "Fautes de réception",
      "positivePct": "% positive",
      "excellentPct": "% excellente",
      "teamSpikes": "Attaques équipe",
      "teamSpikeSuccess": "Réussite att. équipe",
      "teamSpikeEfficiency": "Efficacité att. équipe",
      "teamSpikeBlockedPct": "% attaques contrées"
    },
    "fab": "Voir les stats",
    "months": {
      "jan": "Janv.",
      "feb": "Févr.",
      "mar": "Mars",
      "apr": "Avr.",
      "may": "Mai",
      "jun": "Juin",
      "jul": "Juil.",
      "aug": "Août",
      "sep": "Sept.",
      "oct": "Oct.",
      "nov": "Nov.",
      "dec": "Déc."
    }
  },
  "playerHeadToHeadTab": {
    "cards": {
      "sortLabel": "Trier par",
      "sortAscending": "Ordre croissant, inverser",
      "sortDescending": "Ordre décroissant, inverser",
      "sortOptions": {
        "matches": "Matchs joués",
        "wins": "Victoires",
        "losses": "Défaites",
        "win_rate": "% de victoires",
        "avg_points": "Points par match",
        "avg_blocks": "Blocs par match",
        "avg_aces": "Aces par match",
        "spike_efficiency": "Efficacité en attaque",
        "last_match_date": "Dernier match"
      },
      "record": "{{matches}} {matches, plural, one {match} other {matchs}}",
      "lastMatch": "dernier le {{date}}",
      "pointsPerMatch": "Pts / match",
      "blocksPerMatch": "Blocs / m.",
      "acesPerMatch": "Aces / m.",
      "attackEff": "Eff. attaque",
      "showMatches": "Voir les matchs",
      "hideMatches": "Masquer les matchs",
      "matchLine": "{{points}} {points, plural, one {pt} other {pts}} · {{blocks}} {blocks, plural, one {bloc} other {blocs}} · {{aces}} {aces, plural, one {ace} other {aces}}",
      "matchEff": "eff. {{eff}} %"
    },
    "subTabPlayers": "Joueur contre joueur",
    "subTabPlayersF": "Joueuse contre joueuse",
    "subTabTeams": "Par équipe",
    "searchPlayerPlaceholder": "Rechercher un joueur adverse…",
    "searchPlayerPlaceholderF": "Rechercher une joueuse adverse…",
    "clearOpponent": "Effacer l'adversaire sélectionné",
    "clearOpponentF": "Effacer l'adversaire sélectionnée",
    "loadingVersus": "Chargement du duel…",
    "starterFilterLabel": "Titularisation",
    "starterFilterHint": "Ne conserve que les confrontations où les deux joueurs étaient dans ce rôle.",
    "starterFilterHintF": "Ne conserve que les confrontations où les deux joueuses étaient dans ce rôle.",
    "starterFilterAll": "Tous",
    "starterFilterAllF": "Toutes",
    "starterFilterStarter": "Titulaires",
    "starterFilterBench": "Remplaçants",
    "starterFilterBenchF": "Remplaçantes",
    "noDirectMatch": "Aucune confrontation directe entre ces deux joueurs.",
    "noDirectMatchF": "Aucune confrontation directe entre ces deux joueuses.",
    "matchSingular": "match",
    "matchesPlural": "matchs",
    "statHeader": "Statistique",
    "statPtsPerMatch": "Pts / match",
    "statBlocksPerMatch": "Blocs / match",
    "statAcesPerMatch": "Aces / match",
    "statAttackEff": "Eff. attaque",
    "statPositiveReception": "Réception +",
    "matchHistoryTitle": "Historique des confrontations",
    "statPts": "Pts",
    "statBlks": "Blocs",
    "statAces": "Aces",
    "statEff": "Eff.",
    "vs": "–",
    "minMatchesLabel": "Matchs minimum :",
    "excludeLabel": "Exclure :",
    "removeTeam": "Retirer {{team}}",
    "searchTeamPlaceholder": "Rechercher une équipe…",
    "loadingRankings": "Chargement des classements…",
    "rankingMostPlayed": "Les plus affrontés",
    "rankingMostPlayedF": "Les plus affrontées",
    "rankingMostWins": "Le plus de victoires",
    "rankingMostLosses": "Le plus de défaites",
    "rankingHighestWinRate": "Meilleur % de victoire",
    "rankingHighestLossRate": "Pire % de victoire",
    "noData": "Aucune donnée",
    "matchesCount": "{{count}} m",
    "winsLosses": "{{wins}}V - {{losses}}D",
    "winsCount": "{{count}}V",
    "lossesCount": "{{count}}D",
    "perMatches": "/ {{count}} m",
    "winsPerMatches": "{{wins}}V / {{matches}} m",
    "lossesPerMatches": "{{losses}}D / {{matches}} m",
    "loadingConfrontations": "Chargement des confrontations…",
    "filterMinMatches": "Matchs min.",
    "filterMinWins": "Victoires min.",
    "filterMinLosses": "Défaites min.",
    "filterWinRate": "% Victoire",
    "filterTo": "à",
    "filterMinSets": "Sets joués min.",
    "setsOptionAll": "Tous",
    "setsOption1": "1+",
    "setsOption2": "2+",
    "setsOption3": "3+",
    "setsOption4": "4+",
    "setsOption5": "5",
    "filterMinPoints": "Points min.",
    "teamsCount": "{{filtered}} / {{total}} équipes",
    "loading": "Chargement…",
    "thOpponent": "Adversaire",
    "thMatches": "Matchs",
    "thWins": "V",
    "thLosses": "D",
    "thWinRate": "% Vic.",
    "thPtsPerMatch": "Pts/m",
    "thBlocksPerMatch": "Blocs/m",
    "thAcesPerMatch": "Aces/m",
    "thAttackEff": "Eff. att.",
    "thLastMatch": "Dernier match",
    "homeSummary": "Dom. {{wins}}V-{{losses}}D ({{matches}}m)",
    "awaySummary": "Ext. {{wins}}V-{{losses}}D ({{matches}}m)",
    "loadingDetails": "Chargement des détails…",
    "thDate": "Date",
    "thSeason": "Saison",
    "thScore": "Score",
    "thResult": "Résultat",
    "resultWin": "V",
    "resultLoss": "D",
    "noConfrontationData": "Aucune donnée de confrontation disponible pour ce joueur",
    "noConfrontationDataF": "Aucune donnée de confrontation disponible pour cette joueuse"
  },
  "playerShowcase": {
    "kicker": "Vitrine design",
    "title": "Profil joueur — 3 directions",
    "sub": "Maquettes de façade, données fictives. Sélectionnez la direction qui vous parle.",
    "ariaDesignSelect": "Sélection du design",
    "ariaPlayerType": "Type de joueur",
    "playerCase": "Cas de profil :",
    "optionActive": "Joueur en activité",
    "optionInactive": "Sans compétition en cours",
    "optionEmpty": "Aucune stat",
    "taglineAurora": "Glassmorphisme premium, fond aurore animé",
    "taglineEditorial": "Typographie magazine, grille asymétrique",
    "taglineHud": "Tableau de bord bento, néon, données denses"
  },
  "designAurora": {
    "tabSynthese": "Synthèse",
    "tabMatchs": "Matchs",
    "tabAnalyse": "Analyse",
    "tabComparaison": "Comparaison",
    "tabCarriere": "Carrière",
    "tabRecords": "Records",
    "emptyTitle": "Aucune stat encore inscrite",
    "emptyText": "Les statistiques de {{name}} apparaîtront dès son premier match suivi.",
    "points": "Points",
    "matchesPlayed": "Matchs joués",
    "setsPlayed": "Sets joués",
    "sectorProfile": "Profil par secteur",
    "recentRecap": "Récap des 5 derniers matchs",
    "pts": "pts",
    "blocs": "blocs",
    "aces": "aces",
    "years": "ans"
  },
  "designEditorial": {
    "tabProfil": "Le profil",
    "tabMatchs": "Matchs",
    "tabCarriere": "Carrière",
    "tabAnalyse": "Analyse",
    "tabRecords": "Records",
    "edition": "Édition joueur",
    "ledePre": "Profil {{position}} de {{height}} cm. {{age}} ans, dossard n°{{number}}. Classé",
    "ledePost": "à son poste cette saison.",
    "globalScore": "Score global",
    "rankOutOf": "sur",
    "panelSectors": "Le profil par secteur",
    "panelMatches": "Derniers matchs",
    "pts": "pts"
  },
  "designHud": {
    "last10": "10 derniers matchs",
    "currentIndex": "indice actuel",
    "inForm": "en forme"
  },
  "competitionQuestions": {
    "palette": {
      "intro": "Choisissez une question : elle ouvre l'onglet qui y répond, au bon classement.",
      "placeholder": "Un mot suffit : aces, leader, MVP, prochains matchs…",
      "noResultHint": "Essayer un mot comme « aces », « blocs », « MVP » ou « calendrier »."
    },
    "families": {
      "standings": "Classement",
      "players": "Classements individuels",
      "matches": "Performances d'un match",
      "awards": "Journées, MVP et records",
      "teams": "Analyse des équipes",
      "calendar": "Calendrier et résultats"
    },
    "q": {
      "leader": "Qui est en tête du classement ?",
      "outcome": "Qui est champion, promu ou relégué ?",
      "form": "Quelles équipes sont en forme ?",
      "sets-ratio": "Quelle équipe a le meilleur quotient de sets ?",
      "ranking-evolution": "Comment le classement a-t-il évolué au fil des journées ?",
      "global": {
        "M": "Quels sont les meilleurs joueurs de la saison ?",
        "F": "Quelles sont les meilleures joueuses de la saison ?"
      },
      "points": "Qui a marqué le plus de points ?",
      "points-per-set": "Qui marque le plus de points par set ?",
      "attack": {
        "M": "Quels sont les attaquants les plus efficaces ?",
        "F": "Quelles sont les attaquantes les plus efficaces ?"
      },
      "attack-points": "Qui a marqué le plus de points en attaque ?",
      "aces": "Qui a réussi le plus d'aces ?",
      "service-faults": "Qui commet le plus de fautes au service ?",
      "blocks": "Qui a réussi le plus de blocs ?",
      "reception": {
        "M": "Quels joueurs réceptionnent le mieux ?",
        "F": "Quelles joueuses réceptionnent le mieux ?"
      },
      "excellent-reception": "Qui a le meilleur taux de réceptions parfaites ?",
      "break-points": "Qui a obtenu le plus de break points ?",
      "balance": "Qui a le meilleur bilan de points gagnés et perdus ?",
      "errors": "Qui commet le plus de fautes ?",
      "match-points": "Qui a marqué le plus de points en un match ?",
      "match-aces": "Qui a réussi le plus d'aces en un match ?",
      "match-blocks": "Qui a réussi le plus de blocs en un match ?",
      "match-attack": "Quelle est la meilleure efficacité en attaque sur un match ?",
      "match-reception": "Quelle est la meilleure réception sur un match ?",
      "gameweek-top": "Qui a brillé lors de chaque journée ?",
      "mvp": "Qui a été élu MVP le plus souvent ?",
      "records": "Quels sont les records de la compétition ?",
      "dream-team": "Quelle est l'équipe type de la saison ?",
      "team-sectors": "Quelle équipe domine chaque secteur du jeu ?",
      "team-attack": "Quelle équipe a la meilleure attaque ?",
      "positions": "Comment les équipes se comparent-elles poste par poste ?",
      "attendance": "Quelles salles attirent le plus de spectateurs ?",
      "next-games": "Quels sont les prochains matchs ?",
      "results": "Quels sont les derniers résultats ?",
      "missing-stats": "Quels matchs n'ont pas encore leur feuille de stats ?"
    }
  },
  "competitionProfile": {
    "questionsSearch": {
      "label": "Questions",
      "aria": "Questions sur la compétition (raccourci : /)"
    },
    "statsSubTabSelectLabel": "Rubrique des statistiques",
    "analysisSubTabSelectLabel": "Rubrique de l'analyse",
    "tabSelectLabel": "Onglet du profil compétition",
    "tabPickerKicker": "Onglet {{index}} sur {{count}}",
    "loading": "Chargement de la compétition…",
    "backToList": "Retour à la liste",
    "backToCompetitionsList": "Retour à la liste des compétitions",
    "teamSingular": "équipe",
    "teamPlural": "équipes",
    "matchSingular": "match",
    "matchPlural": "matchs",
    "win": "Victoire",
    "loss": "Défaite",
    "emptyTeams": "Aucune équipe enregistrée pour cette compétition",
    "kpi": {
      "gamesPlayed": "Matchs joués",
      "sets": "Sets",
      "pointsScored": "Points marqués",
      "spectators": "Spectateurs",
      "avgSpectators": "Moy. spectateurs",
      "mvpsAwarded": "MVP attribués",
      "teams": "Équipes"
    },
    "tabs": {
      "ranking": "Classement",
      "stats": "Statistiques",
      "calendar": "Calendrier",
      "analysis": "Analyse"
    },
    "ranking": {
      "computedSource": "Classement recalculé à partir des résultats (pas de classement officiel importé)",
      "title": "Classement saison régulière",
      "notStarted": "Aucun match joué pour l'instant. Le classement apparaîtra après la première journée."
    },
    "rankingTable": {
      "team": "Équipe",
      "points": "Pts",
      "gamesPlayed": "MJ",
      "wins": "V",
      "losses": "D",
      "setsWon": "Sets G",
      "setsLost": "Sets P",
      "coefficient": "Coeff.",
      "form": "Forme"
    },
    "rankingEvolution": {
      "title": "Évolution du classement"
    },
    "playoffs": {
      "goldenSet": "Set en or {{score}}",
      "title": "Play-offs",
      "finalStakePlayoffs": "Le titre se décidait au classement de la saison régulière : la finale de ce tableau est la finale des play-offs, pas celle du championnat."
    },
    "phase": {
      "label": "Phase de la compétition :",
      "all": "Tout",
      "regular": "Saison régulière",
      "playoff": "Play-offs"
    },
    "statsSubTabs": {
      "gameweek": "Top perf journées",
      "season": "Top performance saison",
      "match": "Top performance match",
      "mvp": "MVP",
      "records": "Records",
      "dreamTeam": "Équipe de rêve"
    },
    "analysisSubTabs": {
      "sector": "Classements secteurs équipes",
      "positionComparison": "Comparaison par poste",
      "venues": "Salles et affluence"
    },
    "records": {
      "empty": "Aucun record disponible"
    },
    "calendar": {
      "upcoming": "À venir",
      "filtersToggle": "Filtres",
      "pager": {
        "total": "{{count}} journées",
        "totalOne": "1 journée",
        "show": "Afficher",
        "size": "{{count}} journées",
        "all": "Toutes",
        "previous": "Journées précédentes",
        "next": "Journées suivantes",
        "page": "Page {{page}} sur {{count}}",
        "label": "Pages du calendrier"
      },
      "status": "Statut",
      "statusAll": "Tous",
      "statusPlayed": "Joués",
      "statusUpcoming": "À venir",
      "gameweek": "Journée",
      "round": "Tour",
      "subTabs": {
        "regular": "Saison régulière",
        "qualification": "Phases annexes",
        "other": "Autres phases",
        "playoffs": "Play-offs"
      },
      "allFeminine": "Toutes",
      "team": "Équipe",
      "score": "Score",
      "dateFrom": "Du",
      "dateTo": "Au",
      "reset": "Réinitialiser",
      "versus": "–",
      "empty": "Aucun match pour ce filtre",
      "noGameweek": "Sans journée",
      "statsLabel": "Statistiques",
      "statsAll": "Tous",
      "statsWith": "Avec statistiques",
      "statsWithout": "Sans statistiques",
      "coverageTitle": "Couverture statistique",
      "coverageComplete": "Les {{played}} matchs disputés ont leur feuille de statistiques.",
      "coveragePartial": "{{withStats}} des {{played}} matchs disputés {withStats, plural, one {a sa} other {ont leur}} feuille de statistiques.",
      "coverageMissing": "{{missing}} match sans statistiques",
      "coverageMissingPlural": "{{missing}} matchs sans statistiques",
      "coverageSeeThem": "Les afficher",
      "coverageNoGames": "Aucun match disputé pour le moment.",
      "missingStatsBadge": "Sans stats",
      "missingStatsTooltip": "Feuille de match non disponible pour cette rencontre"
    },
    "chart": {
      "positionAxis": "Position",
      "gameweekAxis": "Journée"
    },
    "errors": {
      "missingId": "ID de la compétition manquant",
      "loadFailed": "Erreur lors du chargement du profil de la compétition"
    },
    "postRegularOnlySingular": "Une équipe a disputé la phase finale sans participer à la saison régulière, elle ne figure donc pas au classement :",
    "postRegularOnlyPlural": "Des équipes ont disputé la phase finale sans participer à la saison régulière, elles ne figurent donc pas au classement :"
  },
  "competitionOutcome": {
    "badge": {
      "champion": "Champion",
      "promoted": "Promu",
      "relegated": "Relégué",
      "championFeminine": "Championne",
      "promotedFeminine": "Promue",
      "relegatedFeminine": "Reléguée"
    },
    "summary": {
      "aria": "Issue de la saison",
      "champion": "Champion",
      "championBasis": {
        "regular": "1er de la saison régulière",
        "playoffs": "vainqueur des play-offs"
      },
      "championTie": "Égalité en tête de la saison régulière : champion non désigné",
      "championAndPromoted": "Champion et promu",
      "alsoPlayoffsWinner": " et vainqueur des play-offs",
      "promotedSingular": "Promu",
      "promotedPlural": "Promus",
      "relegatedSingular": "Relégué",
      "relegatedPlural": "Relégués",
      "none": "aucun",
      "role": {
        "champion": "champion",
        "championAndPlayoffsWinner": "champion et vainqueur des play-offs",
        "playoffsWinner": "vainqueur des play-offs",
        "rank": "{{rank}} de la saison régulière"
      },
      "corrected": "Liste arrêtée à la main.",
      "incomplete": "Liste incomplète :",
      "incompleteReason": {
        "seasonNotOver": "saison en cours.",
        "missingTitleMode": "mode de décision du titre non renseigné.",
        "noPlayoffsWinner": "vainqueur des play-offs inconnu.",
        "notEnoughTeams": "pas assez d'équipes classées."
      },
      "tieAtCutoff": "Égalité de rang à la limite : l'ordre du classement a départagé.",
      "pendingLabel": "En jeu",
      "pendingPromotedSingular": "1 place de promu",
      "pendingPromotedPlural": "{{count}} places de promus",
      "pendingRelegatedSingular": "1 place de relégué",
      "pendingRelegatedPlural": "{{count}} places de relégués",
      "pendingSuffix": "— désignés à l'issue de la saison",
      "departuresSingular": "Départ",
      "departuresPlural": "Départs"
    },
    "card": {
      "champion": "Champion :",
      "championAndPromoted": "Champion et promu",
      "promotedSingular": "Promu :",
      "promotedPlural": "Promus :",
      "none": "aucun"
    },
    "departure": {
      "badge": {
        "relegatedTo": "Relégué en {{destination}}",
        "relegatedToFeminine": "Reléguée en {{destination}}",
        "administrative": "Rétrogradé (DNACG)",
        "administrativeFeminine": "Rétrogradée (DNACG)",
        "liquidation": "Club disparu",
        "withdrawal": "Retrait volontaire",
        "merger": "Fusion"
      },
      "short": {
        "relegatedTo": "relégué en {{destination}}",
        "sporting": "relégué",
        "administrative": "rétrogradé (DNACG)",
        "liquidation": "club disparu",
        "withdrawal": "retrait volontaire",
        "merger": "fusion",
        "unknown": "raison inconnue"
      },
      "info": {
        "aria": "Raison du départ : {{team}}",
        "title": "Raison du départ et sources",
        "close": "Fermer",
        "sources": "Sources",
        "newTab": "(nouvel onglet)",
        "inFrench": "Explication rédigée en français."
      }
    }
  },
  "competitionPositionComparison": {
    "positionBarLabel": "Poste :",
    "methodology": "Méthodologie",
    "sectors": {
      "global": "Global",
      "points": "Points",
      "attack": "Attaque",
      "block": "Bloc",
      "service": "Service",
      "reception": "Réception",
      "distribution": "Distribution"
    },
    "global": {
      "loading": "Calcul du classement Global…",
      "empty": "Aucun joueur éligible à ce poste sur la période sélectionnée.",
      "error": "Impossible de charger le classement Global"
    },
    "comparison": {
      "loading": "Chargement des statistiques…",
      "empty": "Aucune donnée disponible pour ce poste et cette période.",
      "error": "Impossible de charger les statistiques"
    },
    "cohort": {
      "playersRetainedPlural": "joueurs au poste {{position}} retenus pour ce classement.",
      "playersRetainedSingular": "joueur au poste {{position}} retenu pour ce classement.",
      "playersPlural": "joueurs au poste {{position}}.",
      "playersSingular": "joueur au poste {{position}}.",
      "tooSmall": "Groupe limité ({{count}} {count, plural, one {joueur} other {joueurs}}) — classement à interpréter avec prudence."
    },
    "table": {
      "player": "Joueur",
      "team": "Équipe",
      "gamesPlayed": "MJ",
      "sets": "Sets",
      "global": "Global"
    },
    "pagination": {
      "previous": "Précédent",
      "next": "Suivant",
      "pageInfo": "Page {{current}} / {{total}}"
    },
    "columns": {
      "points": "Points",
      "pointsPerSet": "Pts/set",
      "pointsPerMatch": "Pts/match",
      "breakPoints": "BP",
      "breakPointsPerSet": "BP/set",
      "diffWinLost": "+/−",
      "apportPercentage": "% Apport",
      "contributionPercentage": "% Contrib",
      "spikes": "Attaques",
      "spikesPerSet": "Att/set",
      "successPercent": "Réussite %",
      "efficiencyPercent": "Eff %",
      "faults": "Fautes",
      "blocked": "Contrées",
      "blocks": "Blocs",
      "blocksPerMatch": "Blocs/match",
      "blocksPerSet": "Blocs/set",
      "aces": "Aces",
      "services": "Services",
      "acesPerSet": "Aces/set",
      "acesPercent": "Aces %",
      "faultsPercent": "Fautes %",
      "efficiency": "Eff",
      "receptions": "Réceptions",
      "receptionsPerSet": "Réc/set",
      "positivePercent": "% Positive",
      "excellentPercent": "% Excellente",
      "teamSpikeSuccessPercent": "Réussite att. éq. %",
      "teamSpikeEfficiencyPercent": "Eff. att. éq. %",
      "teamSpikesPerSet": "Att. éq./set",
      "teamSpikeBlockedPercent": "Blocs éq. %",
      "teamSpikeFaultPercent": "Fautes att. éq. %",
      "receptionEfficiencyTooltip": "Efficacité = (réceptions parfaites − fautes) / total × 100 (peut être négative)"
    },
    "unavailable": {
      "title": "Classement Global pas encore disponible",
      "intro": "Le score Global situe chaque joueur par rapport aux autres {{positions}} de la compétition. Pour que cette comparaison ait un sens, deux conditions doivent être réunies :",
      "ruleMatches": "Avoir joué au moins {{minMatches}} matchs, avec {{minSets}} sets par match en moyenne",
      "statusMatchesSingular": "Aujourd'hui : {{played}} match joué au maximum, sur {{minMatches}} requis.",
      "statusMatchesPlural": "Aujourd'hui : {{played}} matchs joués au maximum, sur {{minMatches}} requis.",
      "ruleCohort": "Au moins {{minCohortSize}} joueurs à ce poste remplissant cette condition",
      "statusCohortSingular": "Aujourd'hui : {{eligible}} joueur éligible, sur {{minCohortSize}} nécessaires.",
      "statusCohortPlural": "Aujourd'hui : {{eligible}} joueurs éligibles, sur {{minCohortSize}} nécessaires.",
      "whenNoMatch": "Aucune feuille de stats n'est encore disponible à ce poste sur cette période. Le classement apparaîtra au plus tôt après {{minMatches}} matchs.",
      "whenMatchesSingular": "Disponible au plus tôt dans {{remaining}} match, si au moins {{minCohortSize}} joueurs à ce poste ont alors joué {{minSets}} sets par match en moyenne.",
      "whenMatchesPlural": "Disponible au plus tôt dans {{remaining}} matchs, si au moins {{minCohortSize}} joueurs à ce poste ont alors joué {{minSets}} sets par match en moyenne.",
      "whenCohort": "Des joueurs ont déjà joué assez de matchs, mais moins de {{minCohortSize}} remplissent les deux conditions. Le classement apparaîtra dès que ce seuil sera atteint.",
      "otherSectors": "Les autres onglets (Points, Attaque, Bloc…) affichent déjà les statistiques des joueurs : ils ne calculent pas de score et ne dépendent pas de ces seuils."
    }
  },
  "competitionTopPlayers": {
    "cohortNotice": "Pas de score Global pour {{positions}} : il faut au moins {{min}} joueurs à un même poste dans la compétition pour les classer entre eux.",
    "cohortNoticeUnnamed": "Pas de score Global pour certains postes : il faut au moins {{min}} joueurs à un même poste dans la compétition pour les classer entre eux.",
    "cohortNoticePosition": "les {{position}}",
    "cohortNoticeAnd": "et",
    "title": "Top 5 par secteur",
    "loading": "Chargement des top joueurs…",
    "error": "Erreur lors du chargement des top joueurs",
    "retry": "Réessayer",
    "filters": {
      "position": "Poste",
      "allPositions": "Tous les postes",
      "nationality": "Nationalité",
      "allNationalities": "Toutes les nationalités",
      "reset": "Réinitialiser"
    },
    "categories": {
      "global": "Global",
      "contributions": "Contributions",
      "attack": "Attaque",
      "service": "Service",
      "block": "Bloc",
      "reception": "Réception",
      "errors": "Erreurs"
    },
    "methodologyLink": "Voir le détail du calcul",
    "emptyCategory": "Aucune donnée disponible pour cette catégorie.",
    "emptyCompetition": "Aucune donnée disponible pour cette compétition.",
    "notStarted": "La saison n'a pas encore commencé. Les classements apparaîtront après la première journée."
  },
  "competitionTopPerformances": {
    "title": "Top 5 performances individuelles",
    "loading": "Chargement des meilleures performances…",
    "error": "Erreur lors du chargement des meilleures performances",
    "errorGeneric": "Erreur lors du chargement des performances",
    "retry": "Réessayer",
    "filters": {
      "position": "Poste",
      "allPositions": "Tous les postes",
      "minActions": "Minimum d'actions",
      "reset": "Réinitialiser"
    },
    "categories": {
      "contributions": "Contributions",
      "attack": "Attaque",
      "service": "Service",
      "block": "Bloc",
      "reception": "Réception"
    },
    "emptyCategory": "Aucune donnée disponible pour cette catégorie.",
    "emptyCompetition": "Aucune donnée disponible pour cette compétition.",
    "notStarted": "La saison n'a pas encore commencé. Les performances apparaîtront après la première journée."
  },
  "competitionGameweekTopPerformances": {
    "title": "Meilleures performances par journée",
    "subtitle": "Découvrez les meilleures performances de chaque journée de compétition",
    "loading": "Chargement des performances par journée…",
    "error": "Erreur lors du chargement des meilleures performances par journée",
    "errorGeneric": "Erreur lors du chargement des performances",
    "retry": "Réessayer",
    "filters": {
      "position": "Poste",
      "allPositions": "Tous les postes",
      "gameweek": "Journée",
      "allGameweeks": "Toutes les journées",
      "reset": "Réinitialiser",
      "resetTitle": "Réinitialiser les filtres"
    },
    "emptyTitle": "Aucune donnée disponible",
    "emptyText": "Aucune performance trouvée pour les critères sélectionnés.",
    "badgeNew": "NOUVEAU",
    "noData": "Aucune donnée",
    "detailedStats": {
      "points": "Points",
      "diversity": "Diversité",
      "attack": "Attaque",
      "service": "Service",
      "faults": "Fautes",
      "totalSpikes": "Attaques",
      "spikePoints": "Points d'attaque",
      "spikeFaults": "Fautes d'attaque",
      "spikeBlocked": "Contrées",
      "totalReception": "Réceptions",
      "totalPoints": "Points",
      "totalErrors": "Fautes"
    }
  },
  "competitionMvpRankings": {
    "loading": "Chargement du classement MVP…",
    "title": "Classement MVP",
    "mvpBadge": "{{count}} MVP",
    "matchSingular": "match",
    "matchPlural": "matchs",
    "coverage": "{{percent}} % couvert",
    "empty": "Aucun MVP enregistré pour cette compétition",
    "mvpLabel": "MVP",
    "playoffs": "Play-offs",
    "showAll": "Voir les {{count}} joueurs",
    "toggleMatchesAria": "Afficher ou masquer les matchs MVP de {{name}}"
  },
  "competitionComparison": {
    "header": {
      "title": "Comparaison de compétitions",
      "subtitle": "Analysez et comparez les performances entre deux compétitions"
    },
    "selectors": {
      "comp1": "Compétition 1",
      "comp2": "Compétition 2",
      "placeholder": "Choisir une compétition…",
      "selectFirstAria": "Sélectionner la première compétition",
      "selectSecondAria": "Sélectionner la deuxième compétition"
    },
    "empty": {
      "title": "Sélectionnez deux compétitions",
      "description": "Choisissez deux compétitions ci-dessus pour comparer leurs statistiques"
    },
    "loading": "Chargement de la comparaison…",
    "retry": "Réessayer",
    "errors": {
      "loadingCompetitions": "Erreur lors du chargement des compétitions",
      "loadingComparison": "Erreur lors du chargement de la comparaison"
    },
    "tabs": {
      "overview": "Vue d'ensemble",
      "positions": "Par poste",
      "ranking": "Classement",
      "nationalities": "Nationalités",
      "records": "Records"
    },
    "filters": {
      "minSetsPlayed": "Minimum de sets joués",
      "minSetsShort": "Min. sets",
      "minSetsHint": "Un titulaire joue en moyenne 70-100 sets par saison. Un remplaçant régulier 20-50 sets. En dessous de 10, les joueurs de passage sont inclus.",
      "setsSingular": "{{count}} set",
      "setsPlural": "{{count}} sets"
    },
    "overview": {
      "kpisTitle": "Indicateurs clés",
      "radarTitle": "Profil statistique"
    },
    "kpis": {
      "gamesPlayed": "Matchs joués",
      "teams": "Équipes",
      "totalSets": "Total sets",
      "totalPoints": "Total points",
      "avgSpectators": "Spectateurs moyens",
      "totalSpectators": "Total spectateurs",
      "mvps": "MVP"
    },
    "metrics": {
      "pointsPerSet": "Points / set",
      "blocksPerSet": "Blocs / set",
      "acesPerSet": "Aces / set",
      "spikesPerSet": "Attaques / set",
      "receptionPositivePct": "Réception + (%)",
      "receptionExcellentPct": "Réception # (%)",
      "attackEfficiencyPct": "Efficacité attaque (%)",
      "attackSuccessPct": "Réussite attaque (%)",
      "receptionPositiveShort": "Réception +",
      "attackEffShort": "Eff. attaque"
    },
    "positions": {
      "title": "Comparaison par poste"
    },
    "ranking": {
      "title": "Classement par poste",
      "position": "Poste",
      "sector": "Secteur",
      "colPlayer": "Joueur",
      "colComp": "Comp.",
      "colTeam": "Équipe",
      "colGamesPlayed": "MJ",
      "colSets": "Sets",
      "empty": "Aucun joueur trouvé pour ce poste avec ces critères",
      "paginationInfo": "{{start}}-{{end}} sur {{total}} joueurs",
      "perPage": "{{count}} / page"
    },
    "sectors": {
      "reception": "Réception",
      "distribution": "Distribution",
      "points": "Points",
      "attack": "Attaque",
      "block": "Bloc",
      "service": "Service"
    },
    "columns": {
      "teamAttackSuccessPct": "Réussite att. éq. %",
      "teamAttackEffPct": "Eff. att. éq. %",
      "teamAttackPerSet": "Att. éq./set",
      "blockedPct": "% contrées",
      "faultsPct": "Fautes %",
      "winRateStarter": "% Victoires titu.",
      "points": "Pts",
      "pointsPerSet": "Pts/set",
      "pointsPerMatch": "Pts/match",
      "breakPoints": "BP",
      "breakPointsPerSet": "BP/set",
      "diffWinLost": "Diff +/−",
      "contribPct": "% Contrib",
      "attackPoints": "Pts att.",
      "attacks": "Attaques",
      "attacksPerSet": "Att/set",
      "successPct": "Réussite %",
      "efficiencyPct": "Efficacité %",
      "faults": "Fautes",
      "blocks": "Blocs",
      "blocksPerMatch": "Blocs/match",
      "blocksPerSet": "Blocs/set",
      "aces": "Aces",
      "services": "Services",
      "acesPerSet": "Aces/set",
      "acesPct": "Aces %",
      "efficiency": "Efficacité",
      "receptions": "Réceptions",
      "receptionsPerSet": "Réc/set",
      "positivePct": "% Positive",
      "excellentPct": "% Excellente"
    },
    "nationalities": {
      "title": "Nationalités",
      "kpiCount": "Nationalités",
      "kpiFrench": "Joueurs français",
      "colPlayer": "Joueur",
      "colPosition": "Poste",
      "colTeam": "Équipe",
      "modalEmpty": "Aucun joueur trouvé"
    },
    "records": {
      "title": "Records",
      "labels": {
        "topPoints": "Points dans un match",
        "topAces": "Aces dans un match",
        "topBlocks": "Blocs dans un match",
        "topSpikePoints": "Attaques marquantes",
        "topDiff": "Plus gros écart (+)",
        "worstDiff": "Plus gros écart (–)",
        "topSpikeEfficiency": "Meilleure eff. attaque",
        "topPositiveReception": "Meilleure réception +",
        "topExcellentReception": "Meilleure réception #",
        "topMvp": "Record de MVP",
        "topSpectators": "Spectateurs",
        "longestMatch": "Match le plus long",
        "closestMatch": "Match le plus serré",
        "leastCloseMatch": "Match le moins serré"
      },
      "subtitles": {
        "attacks10": "min. 10 attaques",
        "receptions10": "min. 10 réceptions",
        "closestMatchNote": "plus petit écart de points total (3-2 d'abord)"
      }
    },
    "common": {
      "vs": "/",
      "close": "Fermer"
    },
    "picker": {
      "searchPlaceholder": "Rechercher une compétition…",
      "bothGenders": "Les deux",
      "championship": "Championnat",
      "allChampionships": "Tous les championnats",
      "season": "Saison",
      "allSeasons": "Toutes les saisons",
      "resultSingular": "résultat",
      "resultPlural": "résultats",
      "reset": "Réinitialiser",
      "noResult": "Aucune compétition ne correspond",
      "noCountry": "Sans pays"
    }
  },
  "competitionStats": {
    "loading": "Chargement…",
    "seasonPrefix": "Saison {{name}}",
    "totalGames": "Matchs disputés",
    "participatingTeams": "Équipes participantes",
    "sectorStatsTitle": "Statistiques par secteur",
    "viewOffensive": "Offensif",
    "viewOffensiveHint": "Ce que l'équipe fait",
    "viewDefensive": "Défensif",
    "viewDefensiveHint": "Ce que l'équipe subit",
    "errorMissingId": "ID de la compétition manquant",
    "errorLoadCompetition": "Impossible de charger la compétition",
    "errorLoadGames": "Impossible de charger les matchs",
    "errorLoadTeams": "Impossible de charger les équipes",
    "noTeams": "Aucune équipe trouvée.",
    "backToCompetitions": "Retour aux compétitions",
    "sectorBreakPoint": "Break point",
    "sectorDifferencePoints": "Différence points gagnés - points perdus",
    "sectorAttack": "Attaque",
    "sectorBlock": "Block",
    "sectorService": "Service",
    "sectorReception": "Réception",
    "sectorFaults": "Fautes",
    "breakPointTitle": "Break point",
    "breakPointTotalDesc": "Break points total",
    "breakPointPerMatchDesc": "Break points par match",
    "breakPointPerSetDesc": "Break points par set",
    "differencePointsTitle": "Différence de points",
    "differencePointsTotalDesc": "Points gagnés - Points perdus (total)",
    "differencePointsPerMatchDesc": "Points gagnés - Points perdus (par match)",
    "differencePointsPerSetDesc": "Points gagnés - Points perdus (par set)",
    "attackPointsTotal": "Points d'attaque (total)",
    "attackPointsPerMatch": "Points d'attaque par match",
    "attackPointsPerSet": "Points d'attaque par set",
    "attackSuccessRate": "% de réussite",
    "attackEfficiency": "% d'efficacité",
    "attackFaultsTotal": "Fautes d'attaque (total)",
    "attackFaultsPerMatch": "Fautes d'attaque par match",
    "attackFaultsPerSet": "Fautes d'attaque par set",
    "attackBlockedTotal": "Attaques contrées (total)",
    "attackBlockedPerMatch": "Attaques contrées par match",
    "attackBlockedPerSet": "Attaques contrées par set",
    "blockPointsTotal": "Points au bloc (total)",
    "blockPointsPerMatch": "Points au bloc par match",
    "blockPointsPerSet": "Points au bloc par set",
    "serviceCountSub": "Nombre de services",
    "servicePointsSub": "Points au service",
    "serviceFaultsSub": "Fautes de service",
    "serviceEfficiencySub": "Efficacité",
    "serviceCountTotal": "Nb de services (total)",
    "serviceCountPerMatch": "Nb de services par match",
    "serviceCountPerSet": "Nb de services par set",
    "servicePointsTotal": "Points au service (total)",
    "servicePointsPerMatch": "Points au service par match",
    "servicePointsPerSet": "Points au service par set",
    "serviceFaultsTotal": "Fautes de service (total)",
    "serviceFaultsPerMatch": "Fautes de service par match",
    "serviceFaultsPerSet": "Fautes de service par set",
    "serviceEfficiencyRate": "% d'efficacité au service",
    "receptionExcellent": "% de réception excellente",
    "receptionPositive": "% de réception positive",
    "faultsTotal": "Nombre de fautes (total)",
    "faultsPerMatch": "Nombre de fautes par match",
    "faultsPerSet": "Nombre de fautes par set",
    "faultsDesc": "Fautes de service + Fautes d'attaque",
    "defensiveHintPart1": "Classements basés sur ce que les adversaires ont fait dans les matchs de chaque équipe. Sauf mention contraire, plus la valeur est",
    "defensiveHintLow": "basse",
    "defensiveHintPart2": ", meilleure est la défense.",
    "lessBetter": "Moins = mieux",
    "moreBetter": "Plus = mieux",
    "defService": "Service adverse — Aces concédés",
    "defAcesConcededTotal": "Aces concédés",
    "defTotalCompetitionLessBetter": "Total sur la compétition (moins = mieux)",
    "defAcesConcededPerMatch": "Aces concédés par match",
    "defAcesConcededPerSet": "Aces concédés par set",
    "defAttack": "Attaque adverse — Défense au sol + bloc",
    "defAttackEfficiencyConceded": "Efficacité d'attaque concédée",
    "defAttackEfficiencyConcededDesc": "(pts adverses − fautes − bloqués) / total attaques adverses (moins = mieux)",
    "defAttackSuccessConceded": "Réussite d'attaque concédée",
    "defAttackSuccessConcededDesc": "% d'attaques adverses qui marquent (moins = mieux)",
    "defAttackPointsConcededPerMatch": "Points d'attaque concédés par match",
    "defAttackPointsConcededPerSet": "Points d'attaque concédés par set",
    "defBlock": "Blocs subis — Nos attaques contrées",
    "defBlockedTotal": "Blocs subis (total)",
    "defBlockedTotalDesc": "Nos attaques bloquées par l'adversaire (moins = mieux)",
    "defBlockedPerMatch": "Attaques contrées par match",
    "defBlockedPerSet": "Attaques contrées par set",
    "defReception": "Réception adverse — Pression au service",
    "defReceptionPositive": "Réception positive adverse",
    "defReceptionPositiveDesc": "% positive de l'adversaire contre notre service (moins = mieux)",
    "defReceptionExcellent": "Réception excellente adverse",
    "defReceptionExcellentDesc": "% excellente de l'adversaire (moins = mieux)",
    "defFaults": "Fautes provoquées chez l'adversaire",
    "defFaultsForcedTotal": "Fautes adverses (total)",
    "defFaultsForcedTotalDesc": "Service + attaque + réception (plus = mieux)",
    "defFaultsForcedPerMatch": "Fautes adverses par match",
    "defFaultsForcedPerSet": "Fautes adverses par set",
    "notStarted": "Aucun match joué pour l'instant. Les statistiques par secteur apparaîtront après la première journée."
  },
  "dreamTeamsTab": {
    "pageTitle": "Équipes de rêve",
    "pageSubtitle": "Le sept type de chaque compétition, titulaires et banc, composé à partir du score Global de chaque joueur à son poste sur la période choisie.",
    "selectCompetitions": "Sélectionner des compétitions",
    "competitionSelectedSingular": "{{count}} compétition sélectionnée",
    "competitionSelectedPlural": "{{count}} compétitions sélectionnées",
    "byDivision": "Par division",
    "byCountry": "Par pays",
    "selectAll": "Tout",
    "selectNone": "Aucun",
    "periodLabel": "Période :",
    "removeAria": "Retirer {{code}} {{season}}",
    "deselectAllTitle": "Tout désélectionner",
    "clearAll": "Tout effacer",
    "reset": "Réinitialiser",
    "phaseComplete": "complète",
    "gameweekSingular": "journée",
    "gameweeksPlural": "journées",
    "untilGameweek": "jusqu'à la journée",
    "phaseIncluded": "incluse",
    "net": "Filet",
    "emptySelectPrompt": "Sélectionnez au moins une compétition ci-dessus pour afficher son équipe de rêve.",
    "loading": "Chargement…",
    "recurringTitle": "Joueurs récurrents",
    "recurringHint": "Apparitions multiples dans les équipes sélectionnées",
    "selectionSingular": "sélection",
    "selectionsPlural": "sélections",
    "timesStarter": "{{count}} fois titulaire",
    "timesBench": "{{count}} fois remplaçant",
    "appearanceTitle": "{{code}} {{season}} — {{role}} · {{score}}/100",
    "roleStarter": "titulaire",
    "roleBench": "banc",
    "generalTitle": "Équipe de rêve générale",
    "competitionsAggregated": "{{count}} {count, plural, one {compétition agrégée} other {compétitions agrégées}}",
    "calculating": "Calcul en cours…",
    "bench": "Banc",
    "scoreFrom": "Score issu de {{code}} {{season}}",
    "limitedDataWarning": "Données limitées sur ce poste — peu de joueurs comparables",
    "globalScoreTitle": "Score Global {{score}}/100",
    "loadError": "Impossible de charger l'équipe de rêve",
    "wholeSeasonSummary": "Toute la saison",
    "noPhase": "Aucune phase",
    "phaseOnly": "{{label}} uniquement",
    "phaseUntil": "{{label}} (jusqu'à J{{limit}})",
    "phaseRange": "{{label}} J1→{{limit}}",
    "notStarted": "La saison n'a pas encore commencé. L'équipe de rêve apparaîtra après la première journée."
  },
  "competitionDreamTeam": {
    "eligibilityMinSetsCount": "Au moins {{count}} sets joués en moyenne par match (filtre les apparitions anecdotiques).",
    "calculating": "Calcul de l'équipe de rêve…",
    "loadError": "Impossible de charger l'équipe de rêve",
    "methodologyToggle": "Comment est composée cette équipe ?",
    "introBefore": "L'équipe de rêve réunit les meilleurs joueurs de la compétition à chaque poste, d'après leur",
    "globalScore": "Score Global",
    "introAfter": "calculé sur la période sélectionnée (saison régulière, play-offs ou les deux).",
    "methoCompositionTitle": "La composition",
    "methoCompositionText": "7 titulaires + 7 remplaçants, dans la formation classique du volley :",
    "rosterSetter": "1 passeur(se)",
    "rosterOpposite": "1 pointu(e)",
    "rosterOutside": "2 réceptionneurs-attaquants",
    "rosterMiddle": "2 centraux",
    "rosterLibero": "1 libéro",
    "methoScoreTitle": "Le Score Global (0-100)",
    "methoScoreP1Before": "Pour chaque joueur, on agrège ses performances en",
    "sixSectors": "6 secteurs",
    "methoScoreP1After": ": attaque, service, bloc, réception, contributions au jeu et — pour les passeurs — distribution (efficacité de l'attaque de leur équipe).",
    "methoScoreP2Before": "Chaque secteur est noté par",
    "percentile": "percentile",
    "methoScoreP2After": "parmi les joueurs du même poste sur cette compétition. Un score de 85 signifie « meilleur que 85 % des joueurs comparables ». Les pondérations entre secteurs varient selon le poste (un central est jugé en priorité sur le bloc, un libéro sur la réception, etc.).",
    "methoEligibilityTitle": "Les critères d'éligibilité",
    "minimumWord": "Minimum",
    "matchSingular": "match",
    "matchesPlural": "matchs",
    "playedSingular": "joué",
    "playedPlural": "joués",
    "overChosenPeriod": "sur la période choisie.",
    "eligibilityMinSets": "Au moins 2 sets joués en moyenne par match (filtre les apparitions anecdotiques).",
    "eligibilityCohortBefore": "Si un poste compte moins de 8 joueurs éligibles, un",
    "eligibilityCohortAfter": "apparaît sur la carte : le groupe est trop petit pour un classement significatif.",
    "methoReadTitle": "Comment lire le résultat",
    "methoReadBefore": "Un score reflète une",
    "relativeDomination": "domination relative",
    "methoReadAfter": "sur cette compétition, pas une comparaison absolue entre championnats : un 85 en LAM et un 85 en LBM ne valent pas la même chose. La période sélectionnée influence fortement la composition — un joueur peut briller en saison régulière et être absent des play-offs.",
    "notEligible": "Pas assez de matchs joués pour produire une équipe de rêve significative sur cette phase.",
    "notStarted": "La saison n'a pas encore commencé. L'équipe de rêve apparaîtra après la première journée.",
    "net": "Filet",
    "bench": "Banc",
    "globalScoreTitle": "Score Global {{score}}/100",
    "limitedDataWarning": "Données limitées sur ce poste — peu de joueurs comparables"
  },
  "competitionSeasonRecords": {
    "headerTitle": "Records par saison",
    "headerSubtitle": "Pour chaque secteur de jeu, les meilleures performances individuelles, saison par saison — classées du record le plus élevé au plus faible.",
    "kpiChampionship": "championnat",
    "kpiChampionships": "championnats",
    "kpiSeason": "saison",
    "kpiSeasons": "saisons",
    "kpiFamilies": "familles",
    "chipSeasons": "{{count}} saisons",
    "chipSeasonsOne": "{{count}} saison",
    "modeGroupLabel": "Mode d'affichage",
    "modeTop": "Meilleur par saison",
    "modeAll": "Classement complet",
    "adminMode": "Mode admin",
    "perPage": "Par page",
    "filters": "Filtres",
    "filterPosition": "Poste",
    "filterSeason": "Saison",
    "allSeasons": "Toutes",
    "filterClubs": "Clubs",
    "clubHint": "Cliquez pour <strong>inclure</strong> (vert), recliquez pour <strong>exclure</strong> (rouge).",
    "clubSearchPlaceholder": "Rechercher un club…",
    "includeClub": "Inclure ce club",
    "excludeClub": "Exclure ce club",
    "resetFilters": "Réinitialiser les filtres",
    "loadingRecords": "Chargement des records…",
    "adminBanner": "Mode admin actif : modifiez le poste d'un joueur pour la saison concernée via le menu déroulant dans chaque carte.",
    "seasonRank": "{rank, plural, =1 {1er} other {#e}} de sa saison",
    "prevPage": "Page précédente",
    "nextPage": "Page suivante",
    "noSeasonThreshold": "Aucune saison ne remplit le seuil.",
    "errorRecords": "Impossible de charger les records.",
    "errorCodes": "Impossible de charger les championnats.",
    "errorPositionUpdate": "Impossible de modifier le poste (aucune participation pour ce joueur sur cette saison ?).",
    "notStarted": "Aucun match joué pour l'instant. Les records apparaîtront après la première journée.",
    "emptyFiltered": "Aucun record ne correspond aux filtres sélectionnés."
  },
  "competitionsSectorAnalysis": {
    "title": "Secteurs déterminants",
    "intro": "Sélectionnez une ou plusieurs compétitions pour comprendre dans quels secteurs (attaque, bloc, service, réception, break point) les équipes du <strong>top 3</strong> excellent. La vue agrégée croise tous les championnats sélectionnés pour mettre en évidence les secteurs les plus déterminants pour la performance.",
    "addCompetition": "Ajouter une compétition",
    "loadingOption": "Chargement…",
    "chooseCompetition": "Choisir une compétition…",
    "removeAll": "Tout retirer",
    "remove": "Retirer",
    "removeNamed": "Retirer {{name}}",
    "hint": "Astuce : vous pouvez croiser plusieurs saisons d'une même compétition, ou comparer LAM et LBM sur la même saison.",
    "loadingAnalysis": "Calcul des classements en cours…",
    "tabByCompetition": "Par compétition",
    "tabAggregated": "Vue agrégée",
    "teamsCount": "{{count}} équipes",
    "colRank": "Place",
    "colTeam": "Équipe",
    "teamPoints": "{{points}} pts",
    "legendTitle": "Légende",
    "legendTop": "Top 3 du secteur",
    "legendGood": "Bon (premier tiers)",
    "legendMid": "Milieu de tableau",
    "legendBad": "Bas du classement",
    "legendNote": "Chaque cellule indique le <strong>rang dans le secteur</strong> (sur le total d'équipes) et la <strong>valeur</strong> de la stat.",
    "aggQuestion": "Quel secteur fait la différence ?",
    "aggExplain": "Pour chaque secteur, on compare la <strong>position moyenne des équipes du top 3</strong> de chaque championnat à celle des <strong>autres équipes</strong>. La position est ramenée entre 0 % (premier du secteur) et 100 % (dernier) pour comparer des championnats de tailles différentes. Plus l'écart est grand, plus le secteur est <em>déterminant</em> pour finir sur le podium.",
    "aggAnalyzedSingular": "{{count}} compétition analysée",
    "aggAnalyzedPlural": "{{count}} compétitions analysées",
    "rankGap": "pts d'écart",
    "aggTop3Label": "Top 3",
    "aggRestLabel": "Reste",
    "avgRankTeams": "position moyenne ({{count}} équipes)",
    "aggReadingNote": "Lecture : un écart de <strong>+25</strong> sur l'attaque signifie que les équipes du top 3 se situent en moyenne <strong>25 points de position plus haut</strong> que les autres dans le classement attaque de leur championnat (0 % = premier, 100 % = dernier). Plus l'écart est élevé, plus le secteur sépare les meilleures du reste.",
    "emptyTitle": "Sélectionnez au moins une compétition pour démarrer",
    "emptySubtitle": "Les classements officiels et les classements par secteur seront croisés pour identifier les forces des podiums.",
    "sectorAttack": "Attaque",
    "sectorBlock": "Bloc",
    "sectorService": "Service",
    "sectorReception": "Réception",
    "sectorBreakpoint": "Break point",
    "errorCompetitions": "Erreur lors du chargement des compétitions",
    "errorAnalysis": "Erreur lors du chargement de l'analyse",
    "otherSeason": "Autre"
  },
  "statisticsDivisionMobility": {
    "title": "Mobilité entre divisions",
    "subtitle": "Perméabilité entre la deuxième et la première division masculine : part des joueurs qui montent et descendent d'une saison à l'autre, et statut des promus dans leur nouvelle division.",
    "loading": "Calcul de la mobilité des divisions…",
    "retry": "Réessayer",
    "errorGeneric": "Erreur lors du chargement de la mobilité",
    "errorLoad": "Erreur lors du chargement de la mobilité des divisions",
    "windowTransitions": "{{count}} transitions",
    "windowNote": "Joueur compté à partir de {{minMatches}} matchs · titulaire : a commencé ≥ {{starterThreshold}} % des matchs de son équipe, et au moins 5 (libéro : le plus utilisé de l'équipe) · rotation ≥ {{rotationThreshold}} % des matchs de l'équipe · le pourcentage affiché est la part des matchs de l'équipe commencés (joués pour un libéro)",
    "sectionFlux": "Flux moyen par saison",
    "sectionFilter": "Filtrer les joueurs",
    "sectionDetail": "Détail saison par saison",
    "promotionTitle": "Montées LBM → LAM",
    "relegationTitle": "Descentes LAM → LBM",
    "summarySubAllTransitions": "Sur l'ensemble des transitions",
    "promotionFraction": "{{count}} {count, plural, one {promu} other {promus}} sur {{base}} joueurs LBM",
    "relegationFraction": "{{count}} {count, plural, one {descendu} other {descendus}} sur {{base}} joueurs LAM",
    "careerTitle": "Atteignent un jour la LAM",
    "careerSub": "Parcours sur toute la période",
    "careerFraction": "{{count}} sur {{base}} joueurs passés par la LBM ont rejoint la LAM lors d'une saison ultérieure",
    "filterNationality": "Nationalité",
    "filterPosition": "Poste",
    "filterOriginTeam": "Équipe de provenance",
    "filterDestinationTeam": "Équipe de destination",
    "optionAllFeminine": "Toutes",
    "optionAllMasculine": "Tous",
    "reset": "Réinitialiser",
    "filteredMatchOne": "{{count}} joueur correspond aux filtres",
    "filteredMatchMany": "{{count}} joueurs correspondent aux filtres",
    "filteredEmpty": "Aucun joueur ne correspond à ces filtres.",
    "directionPromotion": "Montée",
    "directionRelegation": "Descente",
    "statusStarter": "Titulaire",
    "statusRotation": "Rotation",
    "statusBench": "Banc",
    "colSeasons": "Saisons",
    "colPromotions": "Montées (LBM → LAM)",
    "colRelegations": "Descentes (LAM → LBM)",
    "colRate": "Taux",
    "colPromoted": "Promus",
    "colRelegated": "Descendus",
    "tableEmpty": "Aucune transition exploitable sur la période.",
    "legendBench": "Banc / peu joué",
    "legendNote": "— statut mesuré dans la division d'arrivée.",
    "splitStartersLabel": "titulaires",
    "splitRotationLabel": "rotation",
    "splitBenchLabel": "banc",
    "scopeMale": "Masculin uniquement",
    "scopeHint": "L'étude compare la 1re et la 2e division françaises ; il n'existe pas de 2e division féminine dans la base.",
    "statusPctTitle": "{{started}} {started, plural, one {match commencé} other {matchs commencés}} sur les {{teamMatches}} de l'équipe ({{games}} {games, plural, one {joué} other {joués}})"
  },
  "statisticsTeamDemographics": {
    "title": "Âge et expérience des effectifs",
    "subtitle": "L'âge moyen d'un effectif entier et celui de ses compositions de départ ne racontent pas la même histoire. L'écart entre les deux dit si un club fait jouer ses jeunes ou se contente de les inscrire.",
    "competitionLabel": "Championnat et saison",
    "metricLabel": "Mesure affichée",
    "metricAge": "Âge",
    "metricExperience": "Expérience",
    "startersOnlyToggle": "Compter uniquement les saisons jouées comme titulaire",
    "loading": "Calcul des moyennes d'âge et d'expérience…",
    "retry": "Réessayer",
    "errorLoad": "Impossible de charger les données d'âge et d'expérience.",
    "errorHistory": "Impossible de charger l'évolution du championnat.",
    "errorNoCompetition": "Aucune édition ne dispose encore d'effectifs importés.",
    "noteAge": "Âges mesurés au {{date}}, milieu de saison.",
    "noteExperience": "Expérience comptée en saisons déjà disputées en {{championship}}, sur les {{count}} saisons disponibles depuis {{season}}.",
    "noteExperienceNone": "Première saison du championnat en base : aucune antériorité mesurable, tous les joueurs comptent 0 saison.",
    "noteStartersOnly": "Décompte restreint : une saison ne compte que si le joueur y était titulaire — au moins {{starts}} matchs commencés et au moins {{ratio}} % des matchs de son équipe (libéro : le plus utilisé de l'équipe).",
    "sectionLeague": "Moyennes du championnat",
    "sectionTeams": "Équipe par équipe",
    "sectionHistory": "Évolution du championnat, saison après saison",
    "scopeSquad": "Effectif complet",
    "scopeStarters": "Titulaires",
    "leagueSquadSub": "{{players}} joueurs inscrits dans {{teams}} équipes",
    "leagueStartersSub": "Moyenne pondérée par les matchs commencés",
    "youngestStarters": "Titulaires les plus jeunes",
    "oldestStarters": "Titulaires les plus âgés",
    "leastExperiencedStarters": "Titulaires les moins expérimentés",
    "mostExperiencedStarters": "Titulaires les plus expérimentés",
    "rookies": "Recrues",
    "rookiesSub": "{{count}} {count, plural, one {joueur} other {joueurs}} sur {{total}} {count, plural, one {découvre} other {découvrent}} le championnat",
    "rookieBadge": "Recrue",
    "teamsHint": "Cliquez sur une équipe pour ouvrir le détail joueur par joueur. Le trait vertical sur chaque barre marque la moyenne du championnat.",
    "columnTeam": "Équipe",
    "columnDelta": "Écart",
    "squadSize": "{{count}} joueurs inscrits",
    "startersUsed": "{{count}} ont commencé un match",
    "startersControl": "Sept de départ : {{starts}} titularisations sur {{matches}} matchs, soit {{perMatch}} par match",
    "startersControlIncomplete": "sous 7, des feuilles de match n'identifient pas de libéro",
    "leagueMarker": "Moyenne du championnat : {{value}}",
    "youngestPlayer": "Plus jeune",
    "oldestPlayer": "Plus âgé",
    "missingBirthDates": "{{count}} {count, plural, one {joueur} other {joueurs}} sans date de naissance, {count, plural, one {exclu} other {exclus}} de la moyenne d'âge",
    "columnPlayer": "Joueur",
    "columnPosition": "Poste",
    "columnAge": "Âge",
    "columnStarts": "Titularisations",
    "columnGames": "Matchs",
    "columnSeasons": "Saisons",
    "columnSince": "Depuis",
    "columnSeason": "Saison",
    "columnTeams": "Équipes",
    "historyHint": "Moyennes de {{championship}} sur les {{count}} saisons disponibles.",
    "historyEmpty": "Aucune autre saison de ce championnat n'est disponible.",
    "unreliableTooltip": "Les premières saisons de la base n'ont presque aucune antériorité à mesurer : leur expérience moyenne reflète la profondeur de collecte, pas le championnat.",
    "axisAge": "Âge moyen (années)",
    "axisExperience": "Expérience moyenne (saisons)",
    "unitYears": "{{value}} ans",
    "unitSeasons": "{{value}} saisons",
    "methodTitle": "Comment ces chiffres sont calculés",
    "methodAge": "Âge mesuré au {{date}} — une date fixe au milieu de la saison, pour que la moyenne d'une saison passée ne vieillisse pas chaque année.",
    "methodSquad": "Effectif complet : moyenne simple de tous les joueurs inscrits, y compris ceux qui n'ont disputé aucun match.",
    "methodStarters": "Titulaires : le sept de départ relevé sur chaque feuille de match — les six joueurs placés en rotation P1 à P6 au premier set (deux centraux, deux réceptionneurs-attaquants, un passeur, un pointu) et le libéro, qui ne prend jamais de position de rotation. La moyenne est pondérée par le nombre de matchs commencés : un titulaire de toute la saison pèse autant de fois qu'il a débuté, un joueur promu dans le sept sur six journées pèse six fois, un remplaçant jamais aligné au coup d'envoi ne pèse pas.",
    "methodExperience": "Expérience : nombre de saisons déjà disputées dans ce championnat avant celle-ci, avec au moins un match joué. La saison en cours ne compte pas — un joueur qui découvre le championnat affiche 0 et porte le badge « recrue ».",
    "methodStartersOnly": "Bouton « saisons jouées comme titulaire » : restreint le décompte aux saisons où le joueur était titulaire, c'est-à-dire a commencé au moins {{starts}} matchs et au moins {{ratio}} % des matchs de son équipe ; pour un libéro, celui de l'équipe qui a joué le plus de sets. Le plancher écarte le jeune aligné deux fois et titulaire ces deux fois-là ; le pourcentage, rapporté aux matchs de l'équipe, écarte la doublure et le joueur absent une bonne partie de la saison. C'est la même règle que sur la mobilité entre divisions et le profil joueur. Un joueur transféré en cours de saison compte une saison de titulaire s'il l'a été dans au moins une de ses équipes.",
    "methodLimits": "L'expérience est bornée par la profondeur de la base : un joueur venu d'un championnat étranger ou d'une saison antérieure à nos données compte 0 saison. La mesure porte sur ce championnat, pas sur une carrière.",
    "sectionOutcomes": "Ce que ça change au classement",
    "outcomesHint": "Le croisement porte sur TOUTES les saisons de ce championnat, pas sur la seule saison sélectionnée ci-dessus — une saison isolée ne compte qu'un champion. Chaque saison est découpée en trois tiers selon cette mesure, puis les tiers sont cumulés. Le découpage se fait à l'intérieur de chaque saison, jamais sur un seuil fixe : le championnat ayant rajeuni, une équipe à 27,5 ans était la plus jeune il y a dix ans et figure parmi les plus âgées aujourd'hui. Base : {{observations}} couples équipe-saison sur {{seasons}} saisons classées.",
    "correlationSub": "Corrélation entre la mesure et le classement de saison régulière, sur {{n}} couples équipe-saison.",
    "correlationNone": "Aucun lien décelable avec le classement",
    "correlationWeak": "Lien {{direction}} faible avec le classement",
    "correlationModerate": "Lien {{direction}} modéré avec le classement",
    "correlationStrong": "Lien {{direction}} marqué avec le classement",
    "correlationUnavailable": "Pas assez de données pour mesurer un lien",
    "directionPositive": "positif",
    "directionNegative": "négatif",
    "groupYoungest": "Tiers le plus jeune",
    "groupOldest": "Tiers le plus âgé",
    "groupLeastExperienced": "Tiers le moins expérimenté",
    "groupMostExperienced": "Tiers le plus expérimenté",
    "groupMiddle": "Tiers médian",
    "columnGroup": "Groupe",
    "columnAverage": "Moyenne",
    "columnObservations": "Équipes-saisons",
    "columnTitleRate": "Titres",
    "columnTop3Rate": "Top 3 (saison régulière)",
    "columnAvgRank": "Rang moyen",
    "verdictConclusive": "L'écart entre le tiers le plus bas et le tiers le plus haut dépasse la marge d'erreur : il est solide sur cet échantillon.",
    "verdictInconclusive": "Les marges d'erreur des deux tiers extrêmes se recouvrent : sur cet échantillon, l'écart n'est pas concluant.",
    "outcomesCaveat": "Un lien n'est pas une cause. Les clubs qui alignent des titulaires expérimentés sont aussi ceux qui en ont les moyens, et le budget n'est pas dans ces données. Sur une douzaine de titres observés, un écart de quelques points tient à un seul champion — d'où les intervalles de confiance à 95 % affichés sous chaque taux. « Top 3 » désigne le classement de saison régulière, pas le podium final : le champion n'était le premier de la saison régulière que cinq fois sur onze en Ligue A masculine.",
    "methodOutcomes": "Croisement avec les résultats : les équipes sont réparties en trois tiers à l'intérieur de chaque saison, puis cumulées. Les taux de titre et de top 3 ont deux bases distinctes — le champion n'est pas connu pour toutes les saisons, le classement non plus — pour ne pas compter comme « non-champion » une équipe d'une saison sans titre renseigné.",
    "regularSeasonRank": "{{rank}} de saison régulière sur {{total}}",
    "stageChampion": "Champion",
    "stageRunnerUp": "Finaliste",
    "stageFinal": "Finale",
    "stageSemi": "Demi-finale",
    "stageQuarter": "Quart de finale",
    "stageEighth": "Huitième de finale",
    "stagePlayin": "Play-in",
    "stageFinals": "Phase finale",
    "stageNotQualified": "Non qualifié",
    "noPlayoffsNote": "Aucune phase finale enregistrée pour cette saison : seul le classement de la saison régulière est affiché.",
    "showSeasonTable": "Voir le détail saison par saison",
    "hideSeasonTable": "Masquer le détail saison par saison",
    "outcomesScope": "{{count}} saisons, de {{first}} à {{last}}",
    "sectionPositions": "Poste par poste : qui commence, qui attend",
    "positionsHint": "Au niveau d'une équipe entière, l'écart entre inscrits et titulaires se moyenne et s'annule. Poste par poste, il se lit : la colonne « remplaçants » réunit les joueurs entrés en cours de match, pondérés par leurs entrées, et se compare directement aux titulaires du même poste.",
    "positionsScopeLabel": "Périmètre",
    "positionsAllTeams": "Tout le championnat",
    "positionsAllPositions": "Tous postes",
    "positionsEmpty": "Aucun poste renseigné sur cette édition.",
    "scopeBench": "Remplaçants",
    "columnStartersVsBench": "Écart T − R",
    "startersVsBenchTooltip": "Titulaires moins remplaçants, au même poste. Positif : le club commence ses joueurs les plus âgés (ou les plus anciens) et fait attendre les autres. Négatif : le titulaire est le plus jeune du poste.",
    "positionsDetailSquad": "{{players}} inscrits",
    "positionsDetailStarters": "{{players}} joueurs · {{weight}} titularisations",
    "positionsDetailBench": "{{players}} joueurs · {{weight}} entrées",
    "positionsPartial": "Moyenne calculée sur {{measured}} joueurs sur {{players}} : les autres n'ont pas de date de naissance connue."
  },
  "statisticsPlayerHeights": {
    "title": "Taille des joueurs",
    "subtitle": "La taille moyenne d'un effectif ne décrit aucun joueur : elle tombe entre le libéro et le central. Cette page la découpe par poste, par saison, par championnat et par nationalité — et affiche toujours sur combien de joueurs mesurés elle repose.",
    "filterSeason": "Saison",
    "allSeasons": "Toutes les saisons",
    "filterChampionship": "Championnat",
    "allChampionships": "Tous les championnats",
    "filterPosition": "Poste",
    "allPositions": "Tous les postes",
    "filterNationality": "Nationalité",
    "allNationalities": "Toutes les nationalités",
    "searchNationality": "Rechercher un pays…",
    "filterMinGames": "Matchs disputés",
    "filterMinGamesHint": "Par défaut, tous les joueurs inscrits comptent, y compris ceux qui n'ont pas joué une minute. Ce filtre restreint aux joueurs ayant réellement disputé des matchs.",
    "minGamesAll": "Tous les inscrits",
    "resetFilters": "Réinitialiser",
    "loading": "Calcul des tailles moyennes…",
    "retry": "Réessayer",
    "errorLoad": "Impossible de charger les tailles des joueurs.",
    "errorNoData": "Aucune édition ne dispose encore d'effectifs importés.",
    "emptyScope": "Aucun joueur ne correspond à ce périmètre. Élargissez les filtres.",
    "unitNote": "{{participations}} inscriptions, soit {{players}} joueurs distincts — un joueur compte une fois par édition disputée.",
    "coverageDetail": "Taille connue pour {{measured}} inscriptions sur {{participations}} ({{coverage}}).",
    "cardAverage": "Taille moyenne",
    "cardAverageSub": "Sur {{measured}} joueurs mesurés",
    "cardMedian": "Médiane",
    "cardMedianSub": "Un écart net avec la moyenne signale un mélange de postes : lisez le détail par poste.",
    "cardSpread": "Dispersion",
    "cardSpreadSub": "Écart-type · de {{min}} à {{max}}",
    "cardCoverage": "Couverture",
    "cardCoverageSub": "{{measured}} tailles renseignées sur {{participations}} inscriptions",
    "tallest": "Les plus grands",
    "shortest": "Les plus petits",
    "otherTeams": "Également :",
    "sectionPositions": "Par poste",
    "positionsHint": "Le découpage utile : entre un libéro et un central, l'écart dépasse quinze centimètres. L'écart affiché à droite est celui à la moyenne du périmètre sélectionné.",
    "rowMeta": "{{participations}} inscriptions · {{players}} joueurs",
    "nationalitiesShowAll": "Voir les {{count}} autres nationalités",
    "sectionSeasons": "Par saison",
    "seasonsHint": "Une courbe par poste, parce que la courbe d'ensemble bouge aussi quand la répartition des postes bouge : une saison où deux clubs inscrivent un libéro de plus fait baisser la moyenne générale sans qu'aucun joueur n'ait rétréci.",
    "trend": "De {{from}} à {{to}} : {{fromValue}} → {{toValue}} ({{delta}})",
    "columnSeason": "Saison",
    "columnPlayers": "Inscrits",
    "columnAverage": "Moyenne",
    "sectionCompetitions": "Par championnat",
    "competitionsHint": "Regroupement par lignée de championnat et non par code d'édition : une ligue rebaptisée resterait sinon coupée en deux séries.",
    "sectionNationalities": "Par nationalité",
    "nationalitiesHint": "Une nationalité représentée par un seul joueur donne une « moyenne » qui est la taille de ce joueur. Le seuil ci-dessous est un filtre de lecture, pas de calcul.",
    "nationalityThreshold": "Effectif minimum",
    "sortByHeight": "Par taille",
    "sortByPlayers": "Par effectif",
    "nationalityUnknown": "Nationalité inconnue",
    "sectionDistribution": "Distribution des tailles",
    "distributionHint": "Répartition par classes de {{bucket}} cm. Une distribution à deux bosses plutôt qu'en cloche signale une population qui mélange les postes — c'est ce qui interdit de lire la moyenne générale comme la taille d'un joueur d'ici.",
    "positionUnknown": "Poste inconnu",
    "overallAverage": "Moyenne générale",
    "axisHeight": "Taille moyenne",
    "axisHeightCm": "Taille (cm)",
    "playersCount": "Joueurs",
    "bucketTooltip": "{{count}} inscriptions ({{share}} %)",
    "unitMeters": "{{value}} m",
    "methodTitle": "Méthode et limites",
    "methodUnit": "Unité de mesure : une inscription, c'est-à-dire un joueur dans une édition. Un joueur présent dix saisons pèse dix fois dans une moyenne qui couvre dix saisons, une fois dans celle d'une saison donnée. Le nombre de joueurs distincts est affiché à côté de chaque total.",
    "methodCoverage": "Toute moyenne est accompagnée du nombre de joueurs réellement mesurés. En dessous de {{threshold}} % de couverture, la ligne est signalée : trois centraux sans taille renseignée déplacent une moyenne d'équipe de plusieurs centimètres.",
    "methodSquad": "Le périmètre est l'effectif inscrit, pas les compositions de départ : un joueur qui n'a pas disputé un set compte autant qu'un titulaire. Le filtre « matchs disputés » permet de l'exclure.",
    "methodLineage": "Les championnats sont regroupés par lignée : les éditions d'une même ligue restent ensemble même après un changement de nom ou de code.",
    "methodPositions": "Le poste retenu est celui de la participation à l'édition, à défaut celui de la fiche joueur. Les valeurs non exploitables de la base sont regroupées sous « poste inconnu », affiché et non masqué.",
    "methodLimits": "Les tailles proviennent des sources fédérales et de Volleybox ; elles ne sont ni mesurées ni datées par VolleyTracker. Une taille saisie en début de carrière n'est jamais corrigée ensuite.",
    "minGamesValueOne": "Au moins {{count}} match",
    "minGamesValueMany": "Au moins {{count}} matchs",
    "nationalityThresholdValueOne": "{{count}} joueur et plus",
    "nationalityThresholdValueMany": "{{count}} joueurs et plus",
    "competitionMetaOne": "{{seasons}} saison · {{participations}} inscriptions",
    "competitionMetaMany": "{{seasons}} saisons · {{participations}} inscriptions",
    "nationalitiesHiddenOne": "{{count}} nationalité masquée sous le seuil de {{threshold}} joueurs.",
    "nationalitiesHiddenMany": "{{count}} nationalités masquées sous le seuil de {{threshold}} joueurs.",
    "nationalityUnknownNoteOne": "{{count}} inscription sans nationalité renseignée, absente de ce découpage.",
    "nationalityUnknownNoteMany": "{{count}} inscriptions sans nationalité renseignée, absentes de ce découpage.",
    "scopeShift": "Périmètre non comparable d'une saison à l'autre : le nombre de championnats présents passe de {{first}} en {{firstSeason}} à {{last}} en {{lastSeason}}. La courbe mesure alors autant l'entrée de nouveaux championnats dans la base que l'évolution des joueurs — sélectionnez un championnat pour une série comparable.",
    "seasonChartModeLabel": "Dimension affichée",
    "seasonChartByPosition": "Par poste",
    "seasonChartByChampionship": "Par championnat",
    "seasonsHintChampionship": "Une courbe par championnat : la lecture qui répond à « quel championnat grandit le plus vite ? », et — en la croisant avec le filtre Poste ci-dessus — à « quel championnat aligne les centraux les plus grands ? ». Chaque série ne couvre que les saisons où son championnat est présent en base : un trou dans la courbe est une saison absente, pas une baisse.",
    "trendSpan": "{{from}} → {{to}}, {{seasons}} saisons"
  },
  "statisticsTitleRace": {
    "title": "Course à la première place",
    "subtitle": "Faut-il bien démarrer pour finir 1er de la saison régulière ? Et qu'est-ce qui distingue l'équipe qui finit en tête ? Les réponses des saisons passées.",
    "filterChampionship": "Championnat",
    "filterN": "Période observée",
    "firstNGames": "{{n}} premiers matchs",
    "loading": "Calcul de la course à la première place…",
    "retry": "Réessayer",
    "errorLoad": "Impossible de charger l'étude. Réessayez dans un instant.",
    "errorNoData": "Aucun championnat n'est disponible pour cette étude.",
    "emptyHistory": "Aucune saison terminée de ce championnat ne permet le calcul : voir les saisons écartées dans « Méthode et saisons étudiées », en bas de page.",
    "answerUnit": "victoires",
    "answerLead": "En {{championship}}, l'équipe qui finit 1re de la saison régulière gagne en général {{wins}} de ses {{n}} premiers matchs.",
    "answerLeadAll": "En {{championship}}, l'équipe qui finit 1re de la saison régulière gagne en général ses {{n}} premiers matchs.",
    "answerSub": "Sur les {{count}} saisons étudiées ({{first}} à {{last}}), le 1er parti le plus lentement n'avait gagné que {{min}} de ses {{n}} premiers matchs.",
    "sectionProfile": "Le départ des 1ers",
    "profileHint": "Chaque logo est le 1er d'une saison, placé selon son nombre de victoires sur ses {{n}} premiers matchs. La liste saison par saison est en bas de page.",
    "profileHintCompact": "Chaque logo est le 1er d'une saison, rangé selon son nombre de victoires sur ses {{n}} premiers matchs.",
    "profileRowNone": "aucun 1er",
    "profileAria": "Les 1ers des saisons passées, rangés selon leur nombre de victoires sur leurs {{n}} premiers matchs",
    "profileAxis": "Victoires sur les {{n}} premiers matchs",
    "sectionChances": "Ce que vaut un départ",
    "chancesHint": "Pour chaque bilan après {{n}} matchs : combien d'équipes l'ont réalisé dans le passé, et combien ont fini 1res.",
    "recordLabel": "{{wins}} V – {{losses}} D",
    "recordOrLess": "{{wins}} V ou moins",
    "chanceMany": "{{leaders}} équipes sur {{teams}} ont fini 1res",
    "chanceOne": "1 équipe sur {{teams}} a fini 1re",
    "chanceZero": "Aucune des {{teams}} équipes n'a fini 1re",
    "chanceZeroOne": "La seule équipe concernée n'a pas fini 1re",
    "chanceNever": "Aucune équipe n'a eu ce bilan",
    "fewCases": "Peu d'exemples",
    "currentHint": "{{season}} : les logos placent chaque équipe sur sa ligne dès ses {{n}} premiers matchs joués ({{complete}} sur {{teams}} à ce jour). Ce sont les saisons passées qui parlent, pas une prédiction.",
    "currentNotStarted": "La saison {{season}} n'a pas encore commencé : chaque équipe apparaîtra sur sa ligne après ses {{n}} premiers matchs.",
    "currentUnusable": "{{season}} : les matchs de cette saison ne sont pas étiquetés en saison régulière, les équipes ne peuvent pas être placées.",
    "currentNoTeams": "{{season}} : le calendrier de cette saison n'est pas encore importé.",
    "currentNone": "Aucune saison en cours pour ce championnat.",
    "pendingTitle": "Pas encore {{n}} matchs joués",
    "pendingRecord": "{{wins}} V en {{played}} matchs",
    "methodTitle": "Méthode et saisons étudiées",
    "seasonsTitle": "Les 1ers des saisons étudiées",
    "columnSeason": "Saison",
    "columnLeader": "1er de la saison régulière",
    "columnLeaderShort": "1er",
    "columnRecord": "Bilan sur {{n}}",
    "columnTeamsCount": "Équipes",
    "excludedTitle": "Saisons écartées",
    "excluded": {
      "in_progress": "saison non terminée d'après le calendrier en base",
      "interrupted_season": "saison interrompue avant son terme : le 1er est le leader à l'arrêt, pas le 1er d'une saison régulière complète",
      "no_regular_season": "aucun match étiqueté en saison régulière ({{played}} matchs joués) : la saison régulière n'est pas identifiable",
      "no_ranking": "aucun classement de saison régulière disponible",
      "shared_first": "plusieurs équipes partagent la 1re place du classement",
      "leader_too_few_games": "le 1er n'a que {{games}} matchs de saison régulière en base, moins que les {{n}} observés",
      "ambiguous_gameweeks": "deux journées distinctes de saison régulière portent le même numéro ({{count}} numéro(s) en double) : une phase finale est probablement étiquetée en saison régulière, dont la fin n'est pas identifiable"
    },
    "methodHowTitle": "Comment c'est calculé",
    "methodFirst": "« 1er » désigne le 1er du classement de saison régulière, pas le champion : les play-offs redistribuent les places. Classement officiel quand il existe, sinon recalculé avec les départages de la fédération.",
    "methodFirstGames": "Les N premiers matchs sont les N premiers matchs joués par l'équipe en saison régulière, par date — pas les N premières journées. Les matchs sans score final sont écartés.",
    "methodFew": "« Peu d'exemples » : bilan réalisé par moins de {{min}} équipes. Le chiffre est exact, mais il ne suffit pas pour en tirer une règle.",
    "methodHabits": "Les habitudes du 1er répondent à quatre questions fixées avant de regarder les données : les journées clés, les matchs contre le reste du top 4, la forme de fin de saison, et le domicile, les tie-breaks et la manière de gagner. Aucune autre n'est publiée, même si elle « donnerait quelque chose » : chercher ce qui se répète sans liste fermée finit toujours par trouver une coïncidence.",
    "methodNet": "« Écart net » : l'écart reste vrai même en tenant compte du hasard (intervalles de confiance à 95 % qui ne se recouvrent pas ; pour les journées, test exact corrigé pour les comparaisons multiples). « Pas d'écart net » ne prouve pas l'absence d'effet : les données ne permettent pas de l'affirmer.",
    "methodLimits": "Une douzaine de saisons au plus par championnat, au format variable (nombre d'équipes, de journées) : les chiffres décrivent les saisons passées de ce championnat, ils ne prédisent pas la saison en cours. Les championnats ne sont jamais mélangés.",
    "patterns": {
      "title": "Les habitudes du 1er",
      "intro": "Ce qui distingue, ou pas, l'équipe qui finit 1re de la saison régulière, saison après saison.",
      "loading": "Calcul des habitudes du 1er…",
      "errorLoad": "Impossible de charger les habitudes du 1er. Réessayez dans un instant.",
      "empty": "Aucune saison terminée de ce championnat ne permet l'étude.",
      "tagNet": "Écart net",
      "tagNone": "Pas d'écart net",
      "ofGames": "{{wins}} victoires sur {{games}} matchs",
      "homeTitle": "Gagne-t-il aussi à l'extérieur ?",
      "homeLeader": "Le 1er, à domicile",
      "awayLeader": "Le 1er, à l'extérieur",
      "homeLeague": "Repère : une équipe qui reçoit, hors matchs du 1er",
      "homeNet": "Le 1er gagne {{a}} de ses matchs à domicile et {{b}} à l'extérieur : un écart trop grand pour être dû au hasard.",
      "homeSoft": "Le 1er gagne {{a}} de ses matchs à domicile et {{b}} à l'extérieur : l'écart n'est pas assez net pour en faire une règle.",
      "h2hTitle": "Bat-il aussi les gros ?",
      "h2hTop": "Contre les 2e à {{top}}e",
      "h2hRest": "Contre les {{rank}}e et au-delà",
      "h2hNet": "Le 1er gagne {{a}} de ses matchs contre le reste du top {{top}} et {{b}} face aux autres : un écart trop grand pour être dû au hasard.",
      "h2hSoft": "Le 1er gagne {{a}} de ses matchs contre le reste du top {{top}} et {{b}} face aux autres : l'écart n'est pas assez net pour en faire une règle.",
      "h2hLegs": "Match aller : {{first}} de victoires · match retour : {{second}}.",
      "tieBreakTitle": "Et quand ça va au tie-break ?",
      "tieBreakLeader": "Matchs en 5 sets",
      "shorterLeader": "Matchs en 3 ou 4 sets",
      "tieBreakNet": "Le 1er gagne {{a}} de ses matchs en 5 sets et {{b}} en 3 ou 4 sets : un écart trop grand pour être dû au hasard.",
      "tieBreakSoft": "Le 1er gagne {{a}} de ses matchs en 5 sets et {{b}} en 3 ou 4 sets : l'écart n'est pas assez net pour en faire une règle.",
      "winTypesTitle": "Comment gagne-t-il ?",
      "winTypesLeader": "Le 1er",
      "winTypesLeague": "Les autres équipes",
      "winTypesMore": "Le 1er gagne plus souvent {{type}} : {{a}} de ses victoires, contre {{b}} pour les autres équipes.",
      "winTypesLess": "Le 1er gagne moins souvent {{type}} : {{a}} de ses victoires, contre {{b}} pour les autres équipes.",
      "winTypesSame": "Ses victoires se répartissent entre 3-0, 3-1 et 3-2 comme celles des autres équipes.",
      "lateFormTitle": "À {{window}} journées de la fin, qui regarder ?",
      "lateStandings": "Le 1er du classement à {{window}} journées de la fin a fini 1er",
      "lateForm": "L'équipe la plus en forme sur les {{window}} journées d'avant a fini 1re",
      "timesOutOf": "{{hits}} fois sur {{total}}",
      "lateFormStandings": "Le classement du jour annonce le 1er bien plus souvent que la forme du moment.",
      "lateFormForm": "La forme du moment annonce le 1er bien plus souvent que le classement du jour.",
      "lateFormSoft": "Ni le classement du jour ni la forme du moment ne se détache nettement pour annoncer le 1er.",
      "journeysTitle": "Y a-t-il des journées décisives ?",
      "journeysNone": "Aucune journée ne compte plus qu'une autre : le 1er gagne environ {{rate}} de ses matchs, et les écarts d'une journée à l'autre relèvent du hasard.",
      "journeysSome": "Journée(s) {{journeys}} : le 1er s'y écarte nettement de son niveau habituel ({{rate}} de victoires sur la saison).",
      "journeysNoTest": "Trop peu de saisons pour juger journée par journée (moins de {{min}} par journée) : les barres décrivent, sans plus.",
      "journeysAverage": "moyenne {{rate}} %",
      "journeyTooltip": "J{{n}} : {{wins}} victoires sur {{games}} ({{rate}})"
    }
  },
  "teamStatistics": {
    "filters": "Filtres",
    "editFilters": "Modifier",
    "closeFilters": "Fermer",
    "formSummary": "forme sur {{count}} matchs",
    "against": "contre {{opponent}}",
    "seasonsSpan": "{{count}} saisons · {{first}} → {{last}}",
    "showTop": "Voir le top {{count}}",
    "showLess": "Réduire",
    "title": "Statistiques des équipes",
    "subtitle": "Classements et records des équipes",
    "filterSeason": "Saison",
    "allSeasons": "Toutes les saisons",
    "filterFederation": "Fédération",
    "filterCompetition": "Compétition",
    "allCompetitions": "Toutes les compétitions",
    "filterPhase": "Phase",
    "phaseAll": "Tout",
    "phaseRegular": "Saison régulière",
    "phaseQualification": "Phases annexes",
    "phasePlayoffs": "Play-offs",
    "filterRecentForm": "Forme récente",
    "formMatchesOption": "{{count}} derniers matchs",
    "loading": "Chargement des statistiques…",
    "retry": "Réessayer",
    "emptyTitle": "Aucune donnée disponible",
    "emptySubtitle": "Aucune statistique trouvée pour les critères sélectionnés.",
    "notStarted": "Aucun match joué n'alimente encore cette page. Les statistiques apparaîtront après la première journée.",
    "categoryForm": "Forme",
    "categoryOverall": "Performance globale",
    "categoryScoreline": "Types de victoires",
    "categoryClutch": "Moments clés",
    "categoryVenue": "Domicile / Extérieur",
    "errorLoad": "Erreur lors du chargement des statistiques",
    "errorGeneric": "Erreur lors du chargement des statistiques d'équipes"
  },
  "playerStats": {
    "loading": "Chargement…",
    "title": "Statistiques de {{name}}",
    "setsPlayed": "Sets joués",
    "totalPoints": "Points totaux",
    "attackPoints": "Points d'attaque",
    "blocks": "Blocs",
    "services": "Services",
    "aces": "Aces",
    "attackEfficiency": "Efficacité attaque",
    "avgPointsPerGame": "Moy. Points/match",
    "noStats": "Aucune statistique disponible pour ce joueur",
    "playerList": "Liste des joueurs",
    "backToProfile": "Retour au profil",
    "errorMissingId": "ID du joueur manquant",
    "errorLoadingStats": "Erreur lors du chargement des statistiques du joueur"
  },
  "globalScoreMethodologyModal": {
    "title": "Méthodologie du score Global",
    "close": "Fermer",
    "sectionPurpose": "À quoi sert ce score ?",
    "sectionWeightsTitle": "Pondération par poste (en %)",
    "weightsHint": "Chaque ligne fait 100 %. Le score Global d'un joueur est la moyenne pondérée des scores de secteur selon ces pourcentages, en fonction de son poste.",
    "weightsHintF": "Chaque ligne fait 100 %. Le score Global d'une joueuse est la moyenne pondérée des scores de secteur selon ces pourcentages, en fonction de son poste.",
    "colPosition": "Poste",
    "colAttack": "Attaque",
    "colService": "Service",
    "colBlock": "Bloc",
    "colReception": "Réception",
    "colContributions": "Contributions",
    "colDistribution": "Distribution",
    "sectionCompositionTitle": "Composition des secteurs",
    "compositionHint": "À l'intérieur d'un secteur, chaque métrique est convertie en percentile (0-100) par rapport aux joueurs du même poste, puis combinée en moyenne pondérée.",
    "compositionHintF": "À l'intérieur d'un secteur, chaque métrique est convertie en percentile (0-100) par rapport aux joueuses du même poste, puis combinée en moyenne pondérée.",
    "lowerIsBetter": "(moins = mieux)",
    "sectionRankingTitle": "Méthode de classement",
    "rankingIntro": "Pour chaque métrique, on classe le joueur dans son groupe de référence (joueurs au même poste, même compétition) en utilisant la méthode",
    "rankingIntroF": "Pour chaque métrique, on classe la joueuse dans son groupe de référence (joueuses au même poste, même compétition) en utilisant la méthode",
    "rankingFormula": "percentile = (nombre de joueurs en-dessous + égalités/2) ÷ taille du groupe × 100",
    "rankingFormulaF": "percentile = (nombre de joueuses en-dessous + égalités/2) ÷ taille du groupe × 100",
    "rankingExplanation": "Cette méthode gère proprement les égalités (deux joueurs avec la même valeur partagent le même rang moyen) et donne un percentile compris entre 0 et 100. Pour les métriques où \"moins = mieux\" (fautes, attaques contrées), le percentile est inversé.",
    "rankingExplanationF": "Cette méthode gère proprement les égalités (deux joueuses avec la même valeur partagent le même rang moyen) et donne un percentile compris entre 0 et 100. Pour les métriques où \"moins = mieux\" (fautes, attaques contrées), le percentile est inversé.",
    "sectionThresholdsTitle": "Seuils d'éligibilité",
    "thresholdMinMatches": "Minimum de matchs joués (par défaut) :",
    "summaryScopeNote": "Le détail des statistiques de ce joueur fait partie de l'offre Premium.",
    "thresholdMinSets": "Minimum de sets/match en moyenne (par défaut) :",
    "thresholdMinCohort": "Taille minimale du groupe recommandée :",
    "sectionBiasesTitle": "Biais connus, à interpréter en contexte",
    "noteBefore": "Ce système de notation est",
    "noteEmphasis": "indicatif",
    "noteAfter": "et appelé à évoluer. Les pondérations et formules ci-dessus reflètent un choix éditorial qui peut être ajusté au fil des saisons et des retours.",
    "rankingMethodName": "percentile au rang moyen (midrank)"
  },
  "statistics": {
    "cohortNoticeAnd": "et",
    "cohortNoticeLead": "Pas de score Global pour les",
    "cohortNoticeItem": "{{position}} de {{competition}}",
    "cohortNoticeMore": "et {{count}} autre(s)",
    "cohortNoticeReason": "Il faut au moins {{min}} joueurs à un même poste dans une compétition pour les classer entre eux.",
    "nav": {
      "change": "Changer",
      "sheetTitle": "Changer de vue",
      "period": "Période",
      "domain": "Domaine"
    },
    "header": {
      "title": "Meilleures performances",
      "description": "Découvrez les meilleures performances et statistiques"
    },
    "tabs": {
      "players": "Joueurs",
      "teams": "Équipes",
      "matches": "Matchs"
    },
    "loading": "Chargement des performances…",
    "actions": {
      "retry": "Réessayer"
    },
    "error": {
      "title": "Une erreur est survenue"
    },
    "scope": {
      "match": "Match",
      "season": "Saison",
      "career": "Carrière",
      "matchDescBefore": "Top 10 des meilleures performances réalisées sur ",
      "matchDescStrong": "un seul match",
      "seasonDescBefore": "Top 10 des statistiques cumulées sur ",
      "seasonDescStrong": "toute la saison",
      "careerDescBefore": "Top 10 des statistiques cumulées sur ",
      "careerDescStrong": "toute la carrière",
      "careerDescAfter": " (toutes saisons confondues)"
    },
    "filters": {
      "title": "Filtres",
      "toggle": "Filtres",
      "apply": "Appliquer",
      "resetTitle": "Réinitialiser",
      "closeAria": "Fermer les filtres",
      "federation": "Fédération",
      "competitions": "Compétitions",
      "competitionType": "Type de compétition",
      "teams": "Équipes",
      "positions": "Postes",
      "nationality": "Nationalité",
      "allNationalities": "Toutes les nationalités",
      "minActions": "Minimum d'actions",
      "minActionsTooltip": "Filtrer les performances avec un minimum d'actions pour plus de pertinence",
      "minActionsAuto": "Auto",
      "minActionsAutoTooltip": "Seuils par défaut de VolleyTracker, réduits en début de saison selon l'avancement du calendrier",
      "minSets": "Min. sets joués",
      "minMatches": "Min. matchs joués",
      "minSeasons": "Min. saisons jouées",
      "height": "Taille (cm)",
      "min": "Min",
      "max": "Max",
      "excludePlayers": "Exclure des joueurs",
      "enableExclusion": "Activer l'exclusion",
      "loadingPlayers": "Chargement des joueurs…",
      "searchPlayerPlaceholder": "Rechercher un joueur…",
      "disableExclusion": "Désactiver l'exclusion",
      "excludedLabel": "Joueurs exclus:",
      "removeAria": "Retirer {{name}}",
      "applyAll": "Appliquer les filtres",
      "applied": "Filtres appliqués"
    },
    "categories": {
      "global": "Global",
      "attack": "Attaque",
      "service": "Service",
      "reception": "Réception",
      "block": "Bloc",
      "distribution": "Distribution",
      "errors": "Erreurs",
      "contributions": "Contributions",
      "results": "Résultats"
    },
    "methodology": {
      "viewDetail": "Voir le détail du calcul"
    },
    "empty": {
      "title": "Aucune performance trouvée",
      "description": "Aucune performance ne correspond à vos critères de recherche actuels.",
      "notStarted": "Aucun match joué n'alimente encore cette page. Les statistiques apparaîtront après la première journée.",
      "competitionHint": "Une compétition dont la saison n'a pas encore commencé n'a pas encore de classement : il apparaîtra après la première journée.",
      "resetFilters": "Réinitialiser les filtres",
      "relaxFilters": "Assouplir les critères"
    },
    "noData": {
      "title": "Aucune donnée disponible",
      "description": "Les statistiques globales ne sont pas encore disponibles."
    },
    "errors": {
      "loadPerformances": "Erreur lors du chargement des performances",
      "loadTopPerformances": "Erreur lors du chargement des meilleures performances",
      "loadPlayers": "Erreur lors du chargement des joueurs"
    },
    "pills": {
      "attackFaults": "fautes att.",
      "serviceFaults": "fautes serv.",
      "receptionFaults": "fautes réc.",
      "attempts": "att",
      "points": "pts",
      "faults": "fautes",
      "blocked": "contrées",
      "received": "reçues",
      "excellent": "excellente",
      "positive": "positive",
      "services": "services",
      "aces": "aces"
    }
  },
  "statisticsTeamContinuity": {
    "title": "Continuité d'effectif",
    "subtitle": "Quelles équipes ont conservé le plus de leurs joueurs entre deux saisons / compétitions",
    "selectors": {
      "sourceLabel": "Compétition source",
      "targetLabel": "Compétition cible",
      "choose": "— Choisir une compétition —",
      "swapTitle": "Inverser source et cible"
    },
    "scope": {
      "label": "Périmètre :",
      "all": "Tout l'effectif",
      "top7": "7 titulaires",
      "hint": "Top 7 par sets joués de chaque côté — 6 sur le terrain + libéro"
    },
    "history": {
      "title": "Vue d'ensemble par saison",
      "subtitle": "Pour chaque transition, l'équipe la plus stable et la plus reconstruite.",
      "clickHint": "Cliquez sur une ligne pour voir le détail.",
      "loading": "Chargement de l'historique…",
      "errorLoad": "Erreur lors du chargement de l'historique",
      "transitionsSingular": "{{count}} transition",
      "transitionsPlural": "{{count}} transitions"
    },
    "perf": {
      "title": "Continuité et performance sportive",
      "subtitle": "Est-ce que garder son effectif fait gagner ? Coefficient de corrélation, scatter plot et exemples marquants.",
      "loading": "Calcul de la corrélation…",
      "errorLoad": "Erreur lors du chargement de la corrélation",
      "competitionFilter": "Compétition :",
      "all": "Toutes",
      "kpiDeltaTitle": "Continuité × Δ rang régulier",
      "kpiDeltaHint": "Plus la valeur est positive, plus la stabilité va de pair avec une progression au classement régulier.",
      "kpiRankTitle": "Continuité × rang régulier final",
      "kpiRankHint": "Valeur négative = équipes stables finissent plus haut (rang faible = mieux). Champions = titre des play-offs, indépendant du rang régulier.",
      "kpiAvgTitle": "Continuité moyenne",
      "champions": "Champions",
      "vs": "/",
      "others": "Autres",
      "warning": "Corrélation ≠ causalité. Un nuage \"continuité forte / classement haut\" peut signifier \"la stabilité fait gagner\" OU \"les vainqueurs retiennent leurs joueurs\" — les deux directions produisent le même graphique.",
      "scatterDeltaTitle": "Continuité et progression au rang régulier",
      "scatterDeltaDesc": "Axe Y : places gagnées au classement régulier entre N et N+1. Au-dessus de 0 = progression.",
      "scatterRankTitle": "Continuité et rang régulier final",
      "scatterRankDesc": "Axe Y inversé : en haut du graphique = bon rang régulier (1re place). Étoiles dorées = champion des play-offs.",
      "championsTitle": "Champions et leur continuité",
      "championsEmpty": "Aucun champion pour ce filtre.",
      "topProgressions": "Plus grosses progressions",
      "topRegressions": "Plus grosses régressions"
    },
    "states": {
      "loading": "Calcul de la continuité…",
      "retry": "Réessayer",
      "emptyTitle": "Aucune équipe en commun",
      "emptySubtitle": "Aucune équipe n'apparaît dans les deux compétitions sélectionnées."
    },
    "errors": {
      "sameComp": "Les deux compétitions doivent être différentes",
      "loadFailed": "Erreur lors du chargement",
      "loadFailedContinuity": "Erreur lors du chargement de la continuité",
      "loadCompetitions": "Impossible de charger la liste des compétitions"
    },
    "kpis": {
      "commonTeams": "équipes communes",
      "avgContinuity": "continuité moyenne",
      "mostStable": "équipe la plus stable",
      "mostRebuilt": "la plus reconstruite"
    },
    "composition": {
      "ariaLabel": "Restés {{retained}}, partis {{left}}, arrivés {{arrived}}",
      "retained": "{{count}} {count, plural, one {resté} other {restés}}",
      "left": "{{count}} {count, plural, one {parti} other {partis}}",
      "arrived": "{{count}} {count, plural, one {arrivé} other {arrivés}}"
    },
    "detail": {
      "retained": "Restés",
      "left": "Partis",
      "arrived": "Arrivés",
      "empty": "Aucun",
      "setsRange": "{{source}} → {{target}} sets",
      "setsCount": "{{count}} {count, plural, one {set} other {sets}}"
    },
    "metricTabs": {
      "weighted": "Pondérée par usage",
      "raw": "Brute (% joueurs)",
      "jaccard": "Indice de Jaccard"
    },
    "metricExplanation": {
      "weighted": "Part des sets joués la saison source assurée par des joueurs restés. Le titulaire pèse plus que le 12ᵉ homme — vraie image de l'ossature conservée.",
      "raw": "Pourcentage simple de joueurs de l'effectif source que l'on retrouve dans la cible. Tout le monde compte à parts égales.",
      "jaccard": "Joueurs en commun ÷ joueurs total (union). Métrique symétrique : pénalise aussi bien les départs que les arrivées massives."
    },
    "tier": {
      "low": "Reconstruction profonde",
      "mediumLow": "Renouvellement majeur",
      "medium": "Continuité partielle",
      "mediumHigh": "Bonne continuité",
      "high": "Très forte continuité"
    },
    "pearson": {
      "notEnough": "Pas assez de données",
      "result": "Corrélation {{strength}} {{sign}} (r = {{r}})",
      "strength": {
        "negligible": "négligeable",
        "veryWeak": "très faible",
        "weak": "faible",
        "moderate": "modérée",
        "strong": "forte"
      },
      "sign": {
        "positive": "positive",
        "negative": "négative"
      }
    },
    "chart": {
      "axisContinuity": "Continuité (%)",
      "others": "Autres équipes",
      "champion": "Champion",
      "yDelta": "Places gagnées (Δ rang régulier)",
      "yRank": "Rang régulier saison cible",
      "tooltipContinuity": "Continuité : {{value}} %",
      "tooltipRankTarget": "Rang régulier cible : {{value}}",
      "tooltipRankDelta": "Δ rang régulier : {{value}}",
      "tooltipRankChange": "Rang régulier {{from}} → {{to}}"
    }
  },
  "teamStats": {
    "loading": "Chargement…",
    "seasonLabel": "Saison / compétition :",
    "noStats": "Aucune statistique disponible pour cette équipe.",
    "playersTitle": "Statistiques des joueurs",
    "loadingPlayers": "Chargement des statistiques des joueurs…",
    "searchPlaceholder": "Rechercher un joueur…",
    "perPage": "{{size}} / page",
    "col": {
      "rank": "Rang",
      "player": "Joueur",
      "games": "Matchs",
      "sets": "Sets",
      "diffWinLost": "Δ +/−",
      "totalPoints": "Points totaux",
      "pointsPerMatch": "Pts / match",
      "pointsPerSet": "Pts / set",
      "spikePoints": "Att. gagnantes",
      "spikesPerSet": "Att. / set",
      "spikeEfficiency": "Efficacité att.",
      "blocks": "Blocs",
      "blocksPerSet": "Blocs / set",
      "aces": "Aces",
      "serviceEfficiency": "Efficacité service",
      "totalErrors": "Fautes totales",
      "errorsPerSet": "Fautes / set"
    },
    "prev": "Précédent",
    "next": "Suivant",
    "pageInfo": "Page {{current}} / {{total}}",
    "noPlayerStats": "Aucune statistique de joueur disponible pour cette compétition.",
    "globalTitle": "Statistiques globales de l'équipe",
    "loadingTeamStats": "Chargement des statistiques de l'équipe…",
    "efficiency": "Efficacité",
    "cards": {
      "results": "Résultats",
      "sets": "Sets",
      "points": "Points",
      "attack": "Attaque",
      "block": "Bloc",
      "service": "Service",
      "faults": "Fautes"
    },
    "results": {
      "gamesPlayed": "Matchs joués",
      "won": "Victoires",
      "lost": "Défaites",
      "points": "Points classement"
    },
    "sets": {
      "won": "Sets gagnés",
      "lost": "Sets perdus",
      "coefficient": "Coefficient sets"
    },
    "points": {
      "total": "Points totaux",
      "perMatch": "Points / match",
      "perSet": "Points / set"
    },
    "attack": {
      "points": "Attaques gagnantes",
      "total": "Attaques totales",
      "faults": "Fautes d'attaque",
      "blocked": "Attaques contrées"
    },
    "block": {
      "points": "Blocs réussis"
    },
    "service": {
      "aces": "Aces",
      "total": "Services totaux",
      "faults": "Fautes de service"
    },
    "faults": {
      "total": "Fautes totales"
    },
    "sectorTitle": "Classements de toutes les équipes par secteur",
    "sectorInfo": "Consultez les classements détaillés des équipes dans chaque secteur de jeu",
    "sectorPreview": "Les classements détaillés par secteur seront affichés ici.",
    "backToTeams": "Retour aux équipes",
    "errorMissingId": "ID de l'équipe manquant",
    "errorLoadTeam": "Erreur lors du chargement de l'équipe",
    "errorLoadPlayers": "Erreur lors du chargement des statistiques des joueurs",
    "noStatsYet": "Aucune statistique n'est encore disponible pour cette compétition. Les données apparaîtront après la première journée.",
    "errorLoadTeamStats": "Erreur lors du chargement des statistiques de l'équipe"
  },
  "gameDetail": {
    "goldenSet": "Set en or",
    "goldenSetHint": "Set en or : départage la double confrontation, hors du score du match",
    "loading": "Chargement du match…",
    "errorTitle": "Erreur",
    "errorGeneric": "Erreur lors du chargement du match",
    "retry": "Réessayer",
    "dateUnknown": "Date inconnue",
    "phase": {
      "playoff": "Play-offs",
      "qualification": "Phase annexe",
      "regular": "Saison régulière",
      "playoffsFinal": "Finale des play-offs",
      "playoffsFinalHint": "Le titre se décidait au classement de la saison régulière : cette finale ne l'attribuait pas."
    },
    "mvp": "MVP",
    "links": {
      "statsPdf": "Stats PDF",
      "pdfReport": "Feuille de stats (PDF)",
      "exporting": "Export…",
      "pdfReportPreviewTitle": "Feuille de stats du match"
    },
    "countdown": {
      "prefix": "Début du match dans"
    },
    "noStats": {
      "upcoming": {
        "title": "Match à venir",
        "text": "Ce match n'a pas encore été joué. Les statistiques seront disponibles après la rencontre."
      },
      "recent": {
        "title": "Stats disponibles dès la fin du match",
        "text": "Ce match est en cours ou vient de se terminer. Les statistiques et le détail des sets sont publiés dès la fin du match, une fois importés : revenez quelques minutes après le dernier point."
      },
      "missing": {
        "title": "Statistiques non disponibles",
        "text": "Les statistiques détaillées de ce match n'ont pas encore été récupérées.",
        "actionPrefix": "Si vous souhaitez que ces statistiques soient ajoutées, vous pouvez",
        "contactLink": "contacter l'administrateur"
      }
    },
    "contact": {
      "subject": "{{home}} – {{away}} : statistiques manquantes",
      "message": "Bonjour,\n\nLes statistiques du match suivant ne sont pas disponibles :\n\n- Match : {{home}} contre {{away}}\n- Score : {{score}}\n- Date : {{date}}\n- Compétition : {{competition}}\n- Journée : {{gameweek}}\n- ID match : {{id}}\n\nPourriez-vous vérifier et importer les statistiques de ce match ?\n\nMerci.",
      "notAvailable": "non renseigné"
    },
    "tabs": {
      "compositions": "Compositions",
      "comparison": "Comparaison",
      "performances": "Performances",
      "stats": "Statistiques",
      "analysis": "Analyse"
    },
    "tabsLong": {
      "compositions": "Compositions",
      "comparison": "Comparaison des équipes",
      "performances": "Performances clés",
      "stats": "Statistiques détaillées",
      "analysis": "Analyse du match"
    },
    "sectors": {
      "all": "Tout",
      "contributions": "Contributions",
      "service": "Service",
      "attack": "Attaque",
      "reception": "Réception",
      "block": "Bloc",
      "faults": "Fautes"
    },
    "compositions": {
      "loading": "Chargement des compositions…",
      "empty": "Aucune composition disponible pour ce match.",
      "setLabel": "Set {{number}}",
      "setterPositionPrefix": "Passeur en position",
      "setterPositionPrefixF": "Passeuse en position",
      "net": "Filet",
      "libero": "Libéro",
      "substitutes": "Entrés en jeu",
      "substitutesF": "Entrées en jeu"
    },
    "comparison": {
      "empty": "Aucune donnée de comparaison disponible."
    },
    "comparisonLabels": {
      "attackPoints": "Points d'attaque",
      "attackSuccess": "Réussite à l'attaque",
      "attackEfficiency": "Efficacité à l'attaque",
      "blockPoints": "Points au bloc",
      "servicePoints": "Points au service",
      "serviceEfficiency": "% d'aces au service",
      "receptionPositive": "Réceptions positives (%)",
      "receptionExcellent": "Réceptions excellentes (%)",
      "totalFaults": "Fautes (att. + serv. + réc.)"
    },
    "performers": {
      "yieldHelp": "Rendement = +/− du joueur ÷ points qu'il a marqués. Il mesure le bilan net de ses actions (points gagnés moins points perdus) rapporté à ses points : 50 % signifie que pour 10 points marqués, son bilan est de +5. Calculé à partir de 5 points marqués.",
      "empty": "Aucune donnée de performance disponible.",
      "filterAttackers": "Attaquants uniquement",
      "filterReceivers": "Réceptionneurs uniquement",
      "categories": {
        "bestScorer": "Meilleur marqueur",
        "bestScorerPlural": "Meilleurs marqueurs",
        "bestDiff": "Meilleur +/−",
        "bestDiffPlural": "Meilleurs +/−",
        "bestYield": "Meilleur rendement",
        "bestYieldPlural": "Meilleurs rendements",
        "bestAttacker": "Meilleur attaquant",
        "bestAttackerPlural": "Meilleurs attaquants",
        "bestAttackSuccess": "Meilleure réussite attaque",
        "bestAttackSuccessPlural": "Meilleures réussites attaque",
        "bestAttackEfficiency": "Meilleure efficacité attaque",
        "bestAttackEfficiencyPlural": "Meilleures efficacités attaque",
        "bestServer": "Meilleur serveur",
        "bestServerPlural": "Meilleurs serveurs",
        "bestExcellentReception": "Meilleure réception excellente",
        "bestExcellentReceptionPlural": "Meilleures réceptions excellentes",
        "bestPositiveReception": "Meilleure réception positive",
        "bestPositiveReceptionPlural": "Meilleures réceptions positives",
        "bestReceptionEfficiency": "Meilleure efficacité réception",
        "bestReceptionEfficiencyPlural": "Meilleures efficacités réception",
        "bestBlocker": "Meilleur bloqueur",
        "bestBlockerPlural": "Meilleurs bloqueurs"
      },
      "stats": {
        "points": "points",
        "diff": "+/−",
        "yield": "rendement",
        "attackPoints": "pts attaque",
        "attackSuccess": "réussite",
        "attackEfficiency": "efficacité",
        "aces": "aces",
        "excellentReception": "excellente",
        "positiveReception": "positive",
        "receptionEfficiency": "efficacité",
        "blocks": "blocs",
        "pointsOne": "point",
        "attackPointsOne": "pt attaque",
        "acesOne": "ace",
        "blocksOne": "block"
      }
    },
    "statsTable": {
      "playerHeader": "Joueur",
      "shirtNumber": "n° {{number}}",
      "shirtNumberTitle": "Numéro de maillot : {{number}}",
      "legend": {
        "total": "Total",
        "faults": "Fautes",
        "pointsScored": "Points marqués",
        "blocked": "Attaques bloquées",
        "successRate": "Réussite",
        "efficiency": "Efficacité",
        "positiveReception": "Réceptions positives",
        "excellentReception": "Réceptions excellentes"
      },
      "titles": {
        "points": "Points totaux",
        "sets": "Sets joués",
        "breakPoints": "Break points",
        "diff": "Différence points gagnés/perdus",
        "totalService": "Total services",
        "serviceFaults": "Fautes au service",
        "aces": "Aces",
        "totalSpikes": "Total attaques",
        "spikeFaults": "Fautes à l'attaque",
        "spikeBlocked": "Attaques bloquées",
        "spikePoints": "Points à l'attaque",
        "spikeSuccess": "Réussite à l'attaque",
        "spikeEfficiency": "Efficacité à l'attaque",
        "totalReception": "Total réceptions",
        "receptionFaults": "Fautes en réception",
        "positiveReception": "% réceptions positives",
        "excellentReception": "% réceptions excellentes",
        "receptionEfficiency": "Efficacité en réception",
        "blockPoints": "Points au bloc"
      }
    },
    "analysis": {
      "empty": "Aucune analyse disponible pour ce match."
    },
    "insights": {
      "sweep": "{{winner}} s’impose 3-0 face à {{loser}} : un match à sens unique.",
      "tieBreak": "Match très serré : victoire {{winner}} au tie-break (3-2).",
      "winGeneric": "{{winner}} remporte le match {{scoreHome}}-{{scoreAway}}.",
      "attackPoints": "Attaque : {{win}} marque beaucoup plus en attaque ({{home}} contre {{away}}) que {{lose}}.",
      "attackSuccess": "Attaque : {{win}} est nettement plus efficace à l’attaque ({{home}} contre {{away}}).",
      "attackEfficiency": "Attaque : {{win}} a une meilleure efficacité offensive ({{home}} contre {{away}}).",
      "blockPoints": "Bloc : {{win}} domine au bloc ({{home}} contre {{away}}) face à {{lose}}.",
      "servicePoints": "Service : {{win}} fait la différence au service ({{home}} contre {{away}}).",
      "serviceEfficiency": "Service : {{win}} transforme plus de services en aces ({{home}} contre {{away}} d'aces).",
      "receptionPositive": "Réception : {{win}} contrôle mieux la réception (positives : {{home}} contre {{away}}).",
      "receptionExcellent": "Réception : {{win}} obtient plus de réceptions excellentes ({{home}} contre {{away}}).",
      "faults": "Fautes : {{disciplined}} commet nettement moins de fautes ({{home}} contre {{away}}), ce qui a pesé dans le match face à {{lessDisciplined}}.",
      "middleBlock": "{{position}} : {{team}} prend l'avantage au bloc ({{home}} contre {{away}}).",
      "middleAttack": "{{position}} : {{team}} est plus productif en attaque ({{home}} contre {{away}} pts).",
      "oppositeAttack": "{{position}} : {{team}} domine en attaque ({{home}} contre {{away}} pts).",
      "outsideBalance": "{{position}} : {{team}} affiche un meilleur équilibre ({{home}} contre {{away}} pts nets) que {{opponent}}.",
      "outsideReception": "{{position}} : {{team}} réceptionne mieux ({{home}} % contre {{away}} % positives).",
      "liberoPositive": "{{position}} : {{team}} assure une meilleure réception ({{home}} % contre {{away}} % positives).",
      "liberoExcellent": "{{position}} : {{team}} excelle en réception ({{home}} % contre {{away}} % excellentes)."
    }
  },
  "publicMatch": {
    "confrontations": {
      "title": "Historique des confrontations",
      "caption": "{{count}} matchs depuis {{season}}",
      "captionArchive": "{{count}} matchs depuis {{season}}, première saison de nos archives",
      "captionOne": "1 match, en {{season}}",
      "captionOneArchive": "1 match, en {{season}}, première saison de nos archives"
    },
    "confrontationsLink": "Historique des confrontations {{home}} – {{away}}",
    "confrontationsLinkHint": "Tous les matchs entre ces deux équipes, bilan et scores",
    "breadcrumbResults": "Résultats",
    "goldenSet": "Set en or",
    "loading": "Chargement du match…",
    "dateUnknown": "Date inconnue",
    "notFoundTitle": "Match introuvable",
    "notFoundText": "Ce match n'existe pas ou n'est plus disponible.",
    "backHome": "Retour à l'accueil",
    "errorTitle": "Erreur",
    "errorText": "Impossible de charger ce match pour le moment. Réessayez dans quelques instants.",
    "scoreboardLabel": "Score du match",
    "notPlayedYet": "À venir",
    "setShort": "Set {{number}}",
    "rankingPoints": "Points au classement",
    "spectators": "Affluence",
    "venue": "Salle",
    "seoDescription": "{{home}} {{score}} {{away}} — {{competition}}, {{date}}. Score, sets et statistiques du match sur VolleyTracker.",
    "phase": {
      "regular": "Saison régulière",
      "playoffs": "Play-offs",
      "final": "Finale",
      "semi-final": "Demi-finale",
      "qualification": "Qualifications",
      "other": "Autre"
    },
    "cta": {
      "title": "Voir les statistiques joueur de ce match",
      "text": "Le détail par joueur, les compositions set par set et les analyses seront accessibles à l'ouverture des inscriptions, prévue pour la reprise des championnats.",
      "item1": "Statistiques individuelles de chaque joueur",
      "item2": "Compositions et rotations set par set",
      "item3": "Historique complet des saisons",
      "register": "Nous contacter",
      "login": "J'ai déjà un compte"
    }
  },
  "publicConfrontation": {
    "headingTeams": "{{teamA}} – {{teamB}}",
    "headingSub": "Historique des confrontations",
    "loading": "Chargement de l'historique…",
    "dateUnknown": "Date inconnue",
    "notFoundTitle": "Confrontation introuvable",
    "notFoundText": "Aucun match joué entre ces deux équipes n'est disponible.",
    "backResults": "Voir les résultats",
    "errorTitle": "Erreur",
    "errorText": "Impossible de charger cet historique pour le moment. Réessayez dans quelques instants.",
    "breadcrumb": "Fil d'Ariane",
    "breadcrumbResults": "Résultats",
    "breadcrumbCurrent": "Confrontations",
    "heading": "{{teamA}} – {{teamB}} : historique des confrontations",
    "intro": "{{count}} matchs joués entre {{teamA}} et {{teamB}} depuis {{year}}, toutes compétitions confondues.",
    "introNoYear": "{{count}} matchs joués entre {{teamA}} et {{teamB}}, toutes compétitions confondues.",
    "coverage": "VolleyTracker couvre ces championnats depuis la saison {{season}} : les rencontres antérieures ne figurent pas dans cet historique.",
    "introOne": "Un match joué entre {{teamA}} et {{teamB}}.",
    "summary": {
      "title": "Bilan",
      "winsOf": "victoires {{team}}",
      "games": "matchs",
      "gamesOne": "match",
      "sets": "Sets : {{setsA}} – {{setsB}}"
    },
    "aliasesTitle": "Autres noms des équipes",
    "alsoKnownAs": "aussi appelée",
    "games": {
      "title": "Tous les matchs",
      "season": "Saison {{season}}",
      "seasonUnknown": "Saison inconnue",
      "count": "{{count}} matchs",
      "countOne": "1 match",
      "viewMatch": "Voir le match {{home}} {{score}} {{away}} du {{date}}",
      "goldenSet": "Set en or {{score}}",
      "spectators": "spectateurs",
      "venue": "salle :"
    }
  },
  "publicTeam": {
    "loading": "Chargement de la fiche…",
    "dateUnknown": "Date inconnue",
    "notFoundTitle": "Équipe introuvable",
    "notFoundText": "Cette équipe n'a pas de fiche publique.",
    "backResults": "Voir les résultats",
    "errorTitle": "Erreur",
    "errorText": "Impossible de charger cette fiche pour le moment. Réessayez dans quelques instants.",
    "breadcrumb": "Fil d'Ariane",
    "breadcrumbResults": "Résultats",
    "season": {
      "rankShort": "Rang",
      "pointsShort": "Pts",
      "recordShort": "V–D",
      "setsShort": "Sets",
      "title": "Saison {{season}}",
      "rank": "Classement",
      "rankFirst": "1er",
      "rankOther": "{{rank}}e",
      "ofTeams": "sur {{count}} équipes",
      "points": "Points",
      "record": "Victoires – défaites",
      "games": "{{count}} matchs joués",
      "gamesOne": "1 match joué",
      "sets": "Sets",
      "scopeOfficial": "Classement officiel de la LNV.",
      "scopeComputed": "Classement calculé sur les matchs joués.",
      "fullStandings": "Voir le classement complet",
      "noStanding": "Pas encore de classement pour cette saison."
    },
    "recent": {
      "title": "Derniers résultats"
    },
    "upcoming": {
      "title": "Prochains matchs"
    },
    "games": {
      "homeShort": "Dom.",
      "awayShort": "Ext.",
      "home": "Domicile",
      "away": "Extérieur",
      "won": "V",
      "lost": "D",
      "upcoming": "À venir",
      "preview": "Voir le match",
      "viewMatch": "Voir le match contre {{opponent}} ({{score}}) du {{date}}"
    },
    "roster": {
      "title": "Effectif",
      "count": "{{count}} joueurs",
      "countOne": "1 joueur",
      "countF": "{{count}} joueuses",
      "countOneF": "1 joueuse"
    }
  },
  "publicRoster": {
    "minorsNotice": {
      "title": "Effectif partiel —",
      "M": "Les joueurs de moins de 18 ans ne figurent pas dans cette liste. Leurs statistiques restent comptées dans celles de l'équipe.",
      "F": "Les joueuses de moins de 18 ans ne figurent pas dans cette liste. Leurs statistiques restent comptées dans celles de l'équipe.",
      "mixed": "Les joueurs et joueuses de moins de 18 ans ne figurent pas dans cette liste. Leurs statistiques restent comptées dans celles de l'équipe."
    }
  },
  "publicPlayer": {
    "loading": "Chargement de la fiche…",
    "notFoundTitle": "Fiche introuvable",
    "notFoundMetaTitle": "Fiche joueur introuvable",
    "notFoundText": "Cette fiche n'existe pas ou n'est plus disponible.",
    "notFoundLinksLabel": "Autres pages",
    "linkResults": "Résultats des championnats",
    "linkHome": "Retour à l'accueil",
    "errorTitle": "Erreur",
    "errorText": "Impossible de charger cette fiche pour le moment. Réessayez dans quelques instants.",
    "age": "Âge",
    "ageValue": "{{age}} ans",
    "height": "Taille",
    "heightValue": "{{height}} cm",
    "nationality": "Nationalité",
    "fullProfile": "Voir la fiche complète",
    "search": {
      "sectionTitle": "Chercher un autre joueur",
      "label": "Rechercher un joueur",
      "placeholder": "Nom ou prénom",
      "hint": "Saisissez au moins deux lettres.",
      "resultsLabel": "Joueurs trouvés",
      "resultsOne": "1 joueur trouvé. Flèches haut et bas pour parcourir, Entrée pour ouvrir la fiche.",
      "resultsMany": "{{count}} joueurs trouvés. Flèches haut et bas pour parcourir, Entrée pour ouvrir la fiche.",
      "noResult": "Aucun joueur trouvé pour « {{query}} »."
    },
    "career": {
      "cardGames": "Matchs",
      "cardPoints": "Points",
      "title": "Parcours",
      "caption": "Parcours de {{name}}, saison par saison",
      "season": "Saison",
      "competition": "Championnat",
      "team": "Club",
      "shirtNumber": "N°",
      "shirtNumberLong": "Numéro de maillot",
      "games": "MJ",
      "gamesLong": "Matchs joués",
      "sets": "Sets",
      "points": "Pts",
      "pointsLong": "Total de points",
      "pointsPerSet": "Pts/set",
      "pointsPerSetLong": "Points par set",
      "pointsPerGame": "Pts/match",
      "pointsPerGameHelp": "Points divisés par le nombre de matchs joués",
      "position": "Poste",
      "receptions": "Réc.",
      "receptionsLong": "Réceptions",
      "receptionsPerGame": "Réc./match",
      "receptionsPerGameLong": "Réceptions par match joué",
      "empty": "Aucune saison enregistrée pour ce joueur.",
      "emptyF": "Aucune saison enregistrée pour cette joueuse."
    },
    "games": {
      "titleCurrent": "Matchs de la saison en cours ({{season}})",
      "titleSeason": "Matchs de la saison {{season}}",
      "titleGeneric": "Matchs de la saison",
      "titleCurrentCompetition": "Saison en cours : matchs en {{competition}}",
      "titleCompetition": "Matchs en {{competition}}",
      "home": "Domicile",
      "away": "Extérieur",
      "homeShort": "Dom.",
      "awayShort": "Ext.",
      "win": "Victoire",
      "loss": "Défaite",
      "winShort": "V",
      "lossShort": "D",
      "upcoming": "À venir",
      "empty": "Aucun match joué sur la saison {{season}}.",
      "emptyGeneric": "Aucun match joué sur la saison.",
      "groups": {
        "playoffs": "Phase finale",
        "regular": "Saison régulière",
        "other": "Autres matchs"
      },
      "countOne": "{{count}} match",
      "countMany": "{{count}} matchs",
      "showMoreMany": "Voir les {{count}} autres matchs",
      "showLess": "Voir moins",
      "round": {
        "gameweekShort": "J{{number}}",
        "gameweek": "Journée {{number}}",
        "matchNumber": "match {{number}}",
        "poolGameweek": "Poule {{pool}} - Journée {{number}}",
        "stage": {
          "final": "Finale",
          "semi": "Demi-finale",
          "quarter": "Quart de finale",
          "round_of_16": "Huitième de finale",
          "play_in": "Play-in",
          "barrage": "Barrage"
        },
        "leg": {
          "first": "aller",
          "second": "retour",
          "decider": "match d'appui"
        }
      }
    },
    "claim": {
      "title": "C'est vous ? Revendiquez votre fiche",
      "text": "Créez votre compte joueur pour rattacher cette fiche à votre profil et accéder au détail de vos statistiques.",
      "action": "Revendiquer ma fiche"
    }
  },
  "previewCompositions": {
    "loading": "Chargement des compositions…",
    "empty": "Aucune composition disponible",
    "mainTitle": "Composition principale (saison)",
    "sets": "{{count}} sets",
    "win": "victoire",
    "recentTitle": "Compositions récentes (5 derniers matchs)",
    "changed": "Changement récent",
    "otherTitle": "Autres compositions",
    "matches": "Matchs ({{count}})",
    "resultWin": "V",
    "resultLoss": "D",
    "net": "Filet",
    "setterAt": "Passeur en P{{pos}}"
  },
  "previewComparison": {
    "empty": "Aucune donnée de comparaison disponible",
    "matchesCount": "{{count}} matchs",
    "statPtsPerMatch": "Pts/match",
    "statSpikeEff": "Eff. attaque",
    "statPositiveReception": "Réc. positive",
    "statBlocksPerSet": "Blocs/set",
    "statAcesPerMatch": "Aces/match"
  },
  "previewConfrontations": {
    "goldenSet": "Set en or : {{score}}",
    "loading": "Chargement des confrontations…",
    "empty": "Aucune confrontation trouvée entre ces deux équipes",
    "globalRecordTitle": "Bilan global",
    "wins": "victoires",
    "losses": "défaites",
    "matchesCount": "{{count}} matchs",
    "units": {
      "sets": "sets",
      "points": "pts",
      "blocks": "blocs",
      "aces": "aces"
    },
    "resultShort": {
      "win": "V",
      "loss": "D"
    },
    "viewDetail": "Voir le détail",
    "currentSeasonTitle": "Matchs cette saison",
    "result": {
      "win": "Victoire",
      "loss": "Défaite"
    },
    "venue": "À {{city}}",
    "setScore": "Set {{number}}: {{score}}",
    "stats": {
      "points": "Points",
      "aces": "Aces",
      "blocks": "Blocs",
      "attackEfficiency": "Eff. attaque",
      "attackSuccess": "Réussite attaque",
      "positiveReception": "Réc. positive",
      "excellentReception": "Réc. excellente"
    },
    "insights": {
      "acesConceded": "{{count}} {count, plural, one {ace encaissé} other {aces encaissés}}",
      "fewBlocks": "Seulement {{count}} {count, plural, one {bloc posé} other {blocs posés}}",
      "strongOpponentAttack": "Forte efficacité attaque adverse ({{value}} %)",
      "serviceFaults": "{{count}} {count, plural, one {faute} other {fautes}} au service",
      "acesScored": "{{count}} {count, plural, one {ace marqué} other {aces marqués}}",
      "goodAttack": "Bonne efficacité attaque ({{value}} %)"
    }
  },
  "matchPreview": {
    "loading": "Chargement de la prévisualisation…",
    "back": "Retour",
    "headerLabel": "Préparation du match",
    "tabs": {
      "overview": "Vue d'ensemble",
      "compositions": "Compositions",
      "comparison": "Comparaison",
      "confrontations": "Confrontations"
    },
    "errorMatchNotFound": "Match non trouvé",
    "errorCompetitionNotFound": "Compétition actuelle non trouvée pour cette équipe",
    "errorLoading": "Erreur lors du chargement de la prévisualisation du match",
    "dateToBeConfirmed": "Date à définir"
  },
  "previewOverview": {
    "seasonSummary": "Bilan saison",
    "sectorGlobal": "Global",
    "sectorAttack": "Attaque",
    "sectorBlock": "Bloc",
    "sectorService": "Service",
    "sectorReception": "Réception",
    "sectorBreakpoint": "Break point",
    "sectorFaults": "Fautes",
    "winLossShort": "{{wins}}V - {{losses}}D",
    "record": "Bilan",
    "setsWon": "Sets gagnés",
    "setsLost": "Sets perdus",
    "attackPoints": "Points d'attaque",
    "attackEfficiency": "Efficacité attaque",
    "attackPointsPerMatch": "Pts attaque/match",
    "totalBlocks": "Blocs totaux",
    "blocksPerMatch": "Blocs/match",
    "blocksPerSet": "Blocs/set",
    "totalAces": "Aces totaux",
    "acesPerMatch": "Aces/match",
    "serviceEfficiency": "% d'aces",
    "serviceFaults": "Fautes service",
    "positiveReception": "Réception positive",
    "excellentReception": "Réception excellente",
    "totalBreakpoints": "Break points totaux",
    "breakpointsPerMatch": "Break points/match",
    "totalFaults": "Fautes (att. + serv. + réc.)",
    "trendPointsUnit": " pts",
    "faultsPerMatch": "Fautes (att. + serv. + réc.)/match",
    "leagueRanking": "Classement dans la ligue",
    "sector": "Secteur",
    "rankPosition": "{rank, plural, =1 {1er} other {#e}}",
    "recentForm": "Forme récente",
    "matchesFilter": "{{count}} matchs",
    "attackEfficiencyShort": "Eff. attaque",
    "positiveReceptionShort": "Réc. positive",
    "trendsTitle": "Tendances adversaire ({{count}} derniers matchs par rapport à la saison)",
    "keyPlayers": "Joueurs clés",
    "home": "(Domicile)",
    "away": "(Extérieur)",
    "roleTopScorer": "Meilleurs scoreurs",
    "roleTopAttacker": "Meilleurs attaquants",
    "roleTopAttackerEfficiency": "Attaquants efficaces",
    "roleTopServer": "Meilleurs serveurs",
    "roleTopReceiver": "Meilleurs réceptionneurs",
    "roleTopBlocker": "Meilleurs bloqueurs",
    "statPoints": "{{value}} pts",
    "statAttackPoints": "{{value}} pts attaque",
    "statEfficiency": "{{value}} % eff.",
    "statAces": "{{value}} aces",
    "statPositive": "{{value}} % de positives",
    "statBlocks": "{{value}} blocs",
    "rankAttackEfficiency": "Efficacité attaque",
    "rankAttackSuccess": "Réussite attaque",
    "rankPositiveReception": "Réception positive",
    "rankExcellentReception": "Réception excellente",
    "rankAcesPerMatch": "Aces /match",
    "rankBlocksPerSet": "Blocs / set",
    "rankBreakpointsPerMatch": "Break points /match"
  },
  "legalNotice": {
    "title": "Mentions légales",
    "lastUpdated": "Dernière mise à jour :",
    "editor": {
      "title": "1. Éditeur du site",
      "p1Part1": "Le site",
      "p1Part2": "(ci-après « le Site »), accessible à l'adresse",
      "p1Part3": ", est édité par :",
      "nameLabel": "Nom / Raison sociale :",
      "statusLabel": "Statut juridique :",
      "addressLabel": "Adresse :",
      "siretLabel": "Numéro SIRET :",
      "apeLabel": "Code APE / NAF :",
      "vatNote": "Éditeur non assujetti à la TVA (article 293 B du Code général des impôts — franchise en base)."
    },
    "publicationDirector": {
      "title": "2. Directeur de la publication",
      "asRole": ", en sa qualité d'"
    },
    "contact": {
      "title": "3. Contact",
      "emailLabel": "Email :",
      "phoneLabel": "Téléphone :"
    },
    "host": {
      "title": "4. Hébergement",
      "intro": "Le Site est hébergé par :",
      "nameLabel": "Hébergeur :",
      "addressLabel": "Adresse :",
      "siteLabel": "Site :"
    },
    "ip": {
      "title": "5. Propriété intellectuelle",
      "editorialTitle": "5.1 Contenus éditoriaux et identité visuelle de",
      "p1Part1": "Tous les éléments composant le Site (charte graphique, logo, textes éditoriaux, illustrations, code source, agencement et présentation des données, scores et indicateurs propriétaires — notamment le <em>Score Global</em>, les analyses sectorielles et les comparatifs), à l'exclusion des données factuelles relatives aux matchs et aux compétitions, sont la propriété exclusive de",
      "p1Part2": "ou font l'objet d'une autorisation d'usage. Ils sont protégés par le Code de la propriété intellectuelle.",
      "p2Part1": "Toute reproduction, représentation, modification, publication, transmission, dénaturation, totale ou partielle, du Site ou de son contenu, par quelque procédé que ce soit et sur quelque support que ce soit, est interdite sans l'autorisation écrite préalable de",
      "sportsDataTitle": "5.2 Données sportives",
      "sportsDataP1": "Les données factuelles relatives aux matchs, joueurs, équipes et compétitions affichées sur le Site (résultats, scores, statistiques individuelles et collectives, dates, journées de championnat) sont issues des informations publiquement diffusées par les ligues et fédérations nationales de volleyball, notamment la <strong>Ligue Nationale de Volley (LNV)</strong> et la <strong>Fédération Française de Volley-Ball (FFVB)</strong> pour la France. Ces données restent la propriété de leurs producteurs respectifs.",
      "sportsDataP2": "est un service indépendant. Il n'est affilié à aucune fédération, ligue ou organisation sportive officielle, et ne constitue pas une source officielle de résultats.",
      "citationTitle": "5.3 Droit de citation et signalement",
      "citationP1": "Toute personne (joueur, club, fédération) souhaitant signaler une donnée erronée, demander la rectification ou l'effacement d'informations la concernant peut nous contacter à l'adresse"
    },
    "links": {
      "title": "6. Liens hypertextes",
      "p1Part1": "Le Site peut contenir des liens hypertextes vers des sites tiers (notamment lnv.fr, ffvb.org, sites de clubs).",
      "p1Part2": "n'exerce aucun contrôle sur ces sites et décline toute responsabilité quant à leur contenu.",
      "p2Part1": "La création de liens hypertextes vers le Site est libre, sous réserve qu'elle ne porte pas atteinte à l'image de",
      "p2Part2": "et qu'il soit clair pour l'utilisateur qu'il accède à un site distinct."
    },
    "liability": {
      "title": "7. Responsabilité",
      "p1Part1": "s'efforce d'assurer l'exactitude et la mise à jour des informations diffusées sur le Site. Toutefois, compte tenu de la nature des données (issues de sources tierces, agrégées et présentées sous une forme propre à",
      "p1Part2": "), aucune garantie n'est donnée quant à leur exactitude, leur exhaustivité ou leur actualité.",
      "p2Part1": "L'utilisateur reconnaît utiliser les informations du Site sous sa seule responsabilité.",
      "p2Part2": "ne pourra être tenu responsable des dommages directs ou indirects résultant de l'utilisation du Site ou de l'impossibilité d'y accéder."
    },
    "law": {
      "title": "8. Droit applicable et juridiction compétente",
      "p1": "Les présentes mentions légales sont soumises au droit français. En cas de litige, les tribunaux français seront seuls compétents, sous réserve des dispositions impératives relatives à la protection des consommateurs."
    },
    "footer": {
      "text": "Pour toute question relative à la protection de vos données personnelles, consultez notre",
      "linkText": "Politique de confidentialité"
    }
  },
  "privacyPolicy": {
    "title": "Politique de confidentialité",
    "lastUpdated": "Dernière mise à jour :",
    "intro": "accorde une importance particulière à la protection des données personnelles. La présente politique décrit comment nous collectons, utilisons et protégeons les informations vous concernant, conformément au <strong>Règlement (UE) 2016/679 (RGPD)</strong> et à la <strong>loi Informatique et Libertés</strong> du 6 janvier 1978 modifiée.",
    "controller": {
      "title": "1. Responsable du traitement",
      "intro": "Le responsable de traitement des données personnelles collectées sur le Site est :",
      "emailLabel": "Email :",
      "dpoNote": "n'a pas désigné de Délégué à la Protection des Données (DPO) — non obligatoire pour notre activité — mais répond directement à toute sollicitation à l'adresse ci-dessus."
    },
    "dataSubjects": {
      "title": "2. Catégories de personnes concernées",
      "intro": "Le Site traite les données personnelles de <strong>deux catégories</strong> de personnes :",
      "usersTitle": "2.1 Les utilisateurs du Site (visiteurs, abonnés)",
      "usersDesc": "Personnes qui consultent le Site, créent un compte (à partir de 15 ans) ou souscrivent un abonnement, ainsi que les personnes qui nous écrivent.",
      "playersTitle": "2.2 Les joueurs et personnels d'encadrement de volleyball",
      "playersDesc": "Personnes physiques identifiées dans les compétitions professionnelles ou semi-professionnelles couvertes par le Site (joueurs, coachs, staff). <strong>Ces personnes ne sont pas nos utilisateurs</strong>, mais leurs données figurent sur le Site car elles sont des sportifs professionnels dont l'activité publique justifie un traitement à des fins d'information et d'analyse sportive.",
      "sectionsNote": "Les sections 3 à 8 ci-dessous précisent le traitement applicable à chaque catégorie."
    },
    "tableHeaders": {
      "category": "Catégorie de données",
      "purpose": "Finalité",
      "legalBasis": "Base légale",
      "retention": "Durée de conservation"
    },
    "userData": {
      "title": "3. Données collectées et finalités — Utilisateurs du Site",
      "rows": {
        "identity": {
          "category": "Identité (nom, prénom, email) et type de compte (fan, joueur, média)",
          "purpose": "Création et gestion du compte utilisateur",
          "basis": "Exécution du contrat (CGU, CGV)",
          "retention": "Durée du compte. Suppression immédiate à votre demande depuis votre profil ; compte gratuit sans connexion depuis 3 ans supprimé"
        },
        "credentials": {
          "category": "Identifiants de connexion (email, mot de passe haché)",
          "purpose": "Authentification",
          "basis": "Exécution du contrat",
          "retention": "Durée du compte"
        },
        "logs": {
          "category": "Journal d'activité (adresse IP, navigateur, horodatage des actions sur le compte)",
          "purpose": "Sécurité du Site, prévention de la fraude",
          "basis": "Intérêt légitime",
          "retention": "12 mois ; l'identité est retirée des journaux dès la suppression du compte"
        },
        "serviceEmail": {
          "category": "Email pour communications de service (rapport de match, résumé des matchs de l'équipe suivie, récapitulatif des compétitions, équipes et matchs suivis, correction de statistiques), liste de ces abonnements et trace de leur envoi",
          "purpose": "Information de l'utilisateur abonné",
          "basis": "Exécution du contrat ; chaque envoi peut être désactivé dans les réglages du compte ou par le lien de désinscription de l'email",
          "retention": "Durée du compte ; trace d'envoi (adresse, date) : 12 mois"
        },
        "preferences": {
          "category": "Préférences d'affichage (langue, compétitions masculines ou féminines, notifications lues), conservées dans votre navigateur",
          "purpose": "Personnalisation de l'expérience",
          "basis": "Intérêt légitime (service demandé)",
          "retention": "Dans votre navigateur, jusqu'à ce que vous les effaciez"
        },
        "claim": {
          "category": "Rattachement de fiche joueur (référence de la demande, voie de confirmation choisie, pseudo Instagram ou nom du profil Facebook indiqué, date de l'attestation sur l'honneur, canal de vérification, note et décision de l'administrateur, motif d'un refus)",
          "purpose": "Vérifier que le compte appartient bien au joueur de la fiche revendiquée ; pouvoir établir sur quelle preuve un rattachement a été validé en cas de contestation",
          "basis": "Exécution du contrat (vérification demandée par l'utilisateur) ; intérêt légitime (conservation de la preuve)",
          "retention": "Durée du rattachement ; pseudo ou nom de profil, notes et historique détaillé effacés 6 mois après un refus ou le retrait du lien, la trace de la demande (statut, dates) étant supprimée avec le compte"
        },
        "consentProof": {
          "category": "Déclaration d'âge (15 ans ou plus) et preuve d'acceptation des conditions (date, version acceptée)",
          "purpose": "Respecter l'âge minimum ; pouvoir établir quelles conditions ont été acceptées",
          "basis": "Obligation légale (art. 45 loi Informatique et Libertés) ; exécution du contrat",
          "retention": "Durée du compte"
        },
        "payment": {
          "category": "Paiement et achats : identifiant client chez le prestataire de paiement, abonnement souscrit et ses échéances, Passeport acheté (formule, saisons couvertes, date, montant), factures",
          "purpose": "Encaisser, facturer, ouvrir les accès achetés, gérer l'abonnement et sa résiliation",
          "basis": "Exécution du contrat ; obligation légale (conservation comptable)",
          "retention": "Durée du compte ; factures et pièces comptables : 10 ans (art. L123-22 du code de commerce), y compris après la suppression du compte"
        },
        "checkoutConsent": {
          "category": "Preuve de l'acceptation des CGV au moment du paiement (case cochée, texte affiché, date, référence de la session de paiement)",
          "purpose": "Pouvoir établir les conditions acceptées et la demande d'exécution immédiate en cas de contestation",
          "basis": "Intérêt légitime (preuve en cas de litige)",
          "retention": "5 ans après le paiement (délai de prescription) ; l'adresse email en est retirée à la suppression du compte"
        },
        "activity": {
          "category": "Jours d'activité du compte (une ligne par jour de connexion, sans détail des pages consultées ni adresse IP)",
          "purpose": "Suivre l'usage du service par les comptes et les abonnés (taux d'activité, désabonnement)",
          "basis": "Intérêt légitime (pilotage du service payant)",
          "retention": "2 ans ; supprimés avec le compte"
        },
        "media": {
          "category": "Demande de compte Média (nom et type du média, nombre de comptes, usage prévu)",
          "purpose": "Examiner la demande et établir une offre sur mesure",
          "basis": "Mesures précontractuelles prises à votre demande",
          "retention": "Durée du compte ; 12 mois après un refus"
        },
        "contact": {
          "category": "Formulaire de contact (nom, email, catégorie, message)",
          "purpose": "Répondre à votre demande",
          "basis": "Intérêt légitime (répondre aux personnes qui nous écrivent)",
          "retention": "3 ans après le dernier échange"
        },
        "accessRequest": {
          "category": "Demande d'accès (nom, prénom, email, profil, club, message)",
          "purpose": "Examiner une demande d'ouverture de compte",
          "basis": "Mesures précontractuelles prises à votre demande",
          "retention": "12 mois après la décision"
        },
        "statsSheet": {
          "category": "Feuille de statistiques transmise (document, lien, message, compte du contributeur)",
          "purpose": "Compléter les statistiques d'un match qui n'en a pas",
          "basis": "Intérêt légitime (exactitude et exhaustivité des statistiques)",
          "retention": "Document : 90 jours après la décision ; trace de la contribution : durée du compte"
        },
        "analytics": {
          "category": "Mesure d'audience (pages vues, actions nommées, identifiant technique du compte ; ouverture des emails et clics)",
          "purpose": "Comprendre l'usage du Site pour l'améliorer",
          "basis": "Consentement, retirable à tout moment",
          "retention": "13 mois"
        }
      },
      "note": "Vos données bancaires sont saisies directement sur les pages du prestataire de paiement : elles ne transitent pas par nos serveurs et nous n'y avons jamais accès.",
      "claimSection": {
        "title": "3.1 Rattachement de votre fiche joueur",
        "intro": "Un joueur ou une joueuse peut demander que sa fiche soit rattachée à son compte, à l'inscription ou depuis son compte. La vérification se déroule ainsi :",
        "step1": "vous choisissez votre fiche, certifiez sur l'honneur être la personne concernée et indiquez comment vous confirmerez votre demande : depuis votre compte <strong>Instagram</strong>, depuis votre profil <strong>Facebook</strong> (Messenger), ou, si vous n'avez ni l'un ni l'autre, par un <strong>examen manuel</strong> ;",
        "step2": "avec Instagram ou Messenger, le Site vous affiche un <strong>message à copier</strong>, qui porte la <strong>référence de votre demande</strong> ;",
        "step3": "vous envoyez ce message en <strong>message privé</strong> au compte Instagram du Site, ou sur Messenger à sa page Facebook, <strong>depuis le compte ou le profil que vous avez indiqué</strong> : c'est lui qui montre que la demande vient bien de vous ;",
        "step4": "un administrateur vérifie que le message provient du compte ou du profil indiqué et que celui-ci est authentique, puis valide ou refuse la demande. Vous êtes prévenu par email ; un refus est motivé, et vous pouvez présenter une nouvelle demande.",
        "notice": "<strong>C'est vous qui écrivez au Site : VolleyTracker ne vous envoie aucun message pour engager la vérification.</strong> La validation n'est jamais automatique : elle est toujours décidée par une personne. <strong>Aucune pièce d'identité</strong> ne vous est demandée, ni aucun mot de passe.",
        "noSocial": "Si vous n'avez ni compte Instagram ni compte Facebook, votre demande fait l'objet d'un <strong>examen manuel</strong> par un administrateur, sur la base de votre <strong>attestation sur l'honneur</strong> ; il peut vous écrire à l'adresse email de votre compte pour vous demander des précisions (votre club, votre saison, par exemple). <strong>Aucune pièce d'identité</strong> ne vous est demandée. Vous pouvez aussi nous écrire à <a href=\"mailto:support@volleytracker.fr\">support@volleytracker.fr</a>. Une fiche déjà rattachée à un autre compte ne peut pas être revendiquée en ligne ; écrivez-nous si vous pensez qu'il s'agit d'une erreur. Pour retirer le lien entre votre compte et votre fiche, écrivez-nous également ; la suppression de votre compte le retire aussi.",
        "retention": "Nous conservons la référence de la demande, la voie de confirmation choisie, le pseudo Instagram ou le nom du profil Facebook indiqué, la date de votre attestation sur l'honneur, le canal de vérification, la note de vérification et la décision de l'administrateur (avec le motif d'un refus), ainsi que leurs dates. Nous ne recopions pas la conversation Instagram ou Messenger sur nos serveurs. Ces informations sont conservées tant que la fiche est rattachée à votre compte ; <strong>6 mois après un refus ou le retrait du lien</strong>, le pseudo ou le nom de profil, les notes et l'historique détaillé de la demande sont effacés, et seule subsiste la trace de la demande (fiche, statut, dates), supprimée avec votre compte."
      }
    },
    "playerData": {
      "title": "4. Données collectées et finalités — Joueurs et personnels sportifs",
      "rows": {
        "identity": {
          "category": "Identité publique (nom, prénom, nom d'usage, nationalité, date de naissance, taille, poste)",
          "purpose": "Constitution du référentiel des joueurs et compétitions, présentation des profils",
          "basis": "Intérêt légitime — voir section 5",
          "retention": "Durée d'activité du joueur + 10 ans (archive sportive historique)"
        },
        "stats": {
          "category": "Statistiques de match (points, attaque, défense, service, réception, bloc, positions)",
          "purpose": "Analyse sportive, agrégation, indicateurs dérivés (Score Global)",
          "basis": "Intérêt légitime — voir section 5",
          "retention": "Durée illimitée (archive sportive)"
        },
        "photos": {
          "category": "Photographies (lorsqu'elles sont conservées en base)",
          "purpose": "Identification interne et dédoublonnage des fiches joueur uniquement — <strong>jamais affichées sur le Site</strong> : stockage hors de l'espace web public et accès réservé aux administrateurs",
          "basis": "Intérêt légitime restreint",
          "retention": "Durée d'activité du joueur ; suppression sur demande"
        },
        "affiliations": {
          "category": "Affiliations (club, compétition, numéro de maillot, saisons)",
          "purpose": "Reconstitution du parcours sportif",
          "basis": "Intérêt légitime",
          "retention": "Durée illimitée (archive sportive)"
        }
      },
      "note": "<strong>Aucune donnée sensible</strong> (santé, opinions, orientation, etc.) n'est traitée. Les statistiques de performance sportive ne constituent pas des données de santé au sens du RGPD.",
      "publicProfile": {
        "title": "4.1 Fiche joueur publique",
        "intro": "Une partie de la fiche de chaque joueur est <strong>consultable sans compte</strong> sur le Site et <strong>proposée à l'indexation des moteurs de recherche</strong>, ainsi qu'à la lecture par les <strong>assistants d'intelligence artificielle</strong> : une recherche sur le nom d'un joueur peut donc renvoyer vers sa fiche. Seules les données suivantes y figurent :",
        "item1": "nom et prénom ;",
        "item2": "âge en années (jamais la date de naissance) ;",
        "item3": "poste, club et championnat actuels ;",
        "item4": "nationalité et taille ;",
        "item5": "parcours par saison (club, championnat et numéro de maillot ; un numéro attribué à deux joueurs d'une même équipe, donc erroné pour l'un d'eux, n'est pas affiché) ;",
        "item6": "volume par saison : matchs joués, sets joués, total de points, points par set, points par match joué ; pour un libéro, nombre de réceptions et réceptions par match, sans aucun pourcentage d'efficacité ;",
        "item7": "matchs joués sur la saison en cours, avec leur résultat uniquement.",
        "excluded": "La fiche publique ne comporte <strong>ni Score Global, ni rang, ni percentile, ni statistique individuelle de match, ni détail par secteur de jeu, ni palmarès, ni nombre de distinctions de meilleur joueur (MVP), ni record, ni photographie</strong>.",
        "rosters": "Les <strong>pages de résultats</strong> de chaque saison listent l'effectif des équipes : <strong>nom, poste et lien vers la fiche publique</strong> uniquement, pour les joueurs ayant disputé au moins un match de la saison. La <strong>fiche publique de chaque équipe</strong> d'un championnat français reprend son effectif de la saison en cours, avec en plus le <strong>numéro de maillot</strong> (même règle que ci-dessus en cas de numéro en double). Un joueur de moins de 18 ans, ou ayant obtenu son anonymisation, ne figure dans aucun de ces effectifs. Les pages de match et de confrontation entre deux équipes ne comportent <strong>aucun nom de joueur</strong>.",
        "minorsAndAnonymized": "La fiche d'un joueur de <strong>moins de 18 ans</strong> n'est pas proposée à l'indexation des moteurs de recherche (« noindex ») ni au plan du site jusqu'à ses 18 ans. La fiche d'un joueur ayant obtenu son anonymisation n'est plus accessible (page introuvable) et est retirée du plan du site."
      }
    },
    "legalBasis": {
      "title": "5. Bases légales — Précisions sur l'intérêt légitime",
      "p1Part1": "Pour le traitement des données des joueurs et personnels sportifs,",
      "p1Part2": "s'appuie sur la base légale de l'<strong>intérêt légitime</strong> (art. 6.1.f du RGPD). Le test de mise en balance entre nos intérêts et les droits et libertés des personnes concernées est documenté en interne (LIA — <em>Legitimate Interest Assessment</em>) et disponible sur demande motivée auprès des autorités compétentes.",
      "reasonsIntro": "Les éléments principaux justifiant ce choix sont :",
      "reason1": "Les données traitées sont issues d'<strong>informations rendues publiques</strong> par les ligues et fédérations dans le cadre de compétitions sportives professionnelles.",
      "reason2": "L'activité sportive professionnelle de ces personnes les place dans le champ de l'<strong>information sportive légitime</strong>, comparable au traitement opéré par la presse sportive et les agrégateurs de statistiques (Sofascore, Transfermarkt, etc.).",
      "reason3": "Aucune donnée ne fait l'objet d'un <strong>traitement à risque</strong> : pas de profilage à effet juridique, pas de décision automatisée, pas de catégorie sensible, pas de mineurs traités à grande échelle (les compétitions couvertes sont professionnelles seniors) ; les fiches des joueurs de moins de 18 ans ne sont pas proposées à l'indexation des moteurs de recherche.",
      "reason4": "Les personnes concernées disposent d'un <strong>droit d'opposition simple et effectif</strong> (voir section 9)."
    },
    "recipients": {
      "title": "6. Destinataires des données",
      "intro": "Les données personnelles sont destinées :",
      "item1Part1": "Aux <strong>services internes</strong> de",
      "item1Part2": "chargés de la gestion du Site ;",
      "item2": "À nos <strong>sous-traitants techniques</strong> listés ci-dessous, agissant sur instructions documentées et soumis à des engagements de confidentialité conformes au RGPD (art. 28).",
      "tableSubcontractor": "Sous-traitant",
      "tablePurpose": "Finalité",
      "tableLocation": "Localisation des serveurs",
      "hostPurpose": "Hébergement de l'infrastructure (serveurs web, base de données) et envoi des emails (serveur de messagerie)",
      "hostLocation": "Union européenne (serveur en France)",
      "posthogPurpose": "Mesure d'audience du Site (statistiques de fréquentation), uniquement après votre consentement",
      "posthogLocation": "Union européenne (Francfort, Allemagne)",
      "posthogNote": "Le recours à <strong>PostHog</strong> n'intervient que si vous avez accepté la mesure d'audience via le bandeau cookies ; en cas de refus, aucun traceur de mesure d'audience n'est déposé ni activé. Tout nouveau prestataire sera ajouté à cette liste avant d'être utilisé.",
      "metaNote": "Lorsque vous confirmez une demande de rattachement de votre fiche joueur par message (section 3.1), le message que vous envoyez transite par la messagerie d'<strong>Instagram</strong> ou par <strong>Messenger</strong> (Facebook). Meta le traite en tant qu'éditeur de ces plateformes, selon ses propres conditions d'utilisation et sa propre politique de confidentialité. Nous ne conservons de cet échange que les informations listées en section 3.1. L'examen manuel ne fait intervenir aucune de ces plateformes.",
      "noSaleNote": "Aucune donnée personnelle n'est <strong>vendue, louée ou transmise à des tiers à des fins commerciales</strong>.",
      "stripePurpose": "Paiement en ligne et facturation des abonnements",
      "stripeLocation": "Union européenne (Irlande) ; transferts possibles vers Stripe, Inc. (États-Unis), voir section 7",
      "hibpPurpose": "Vérifier qu'un nouveau mot de passe ne figure pas dans une fuite connue. Seuls les 5 premiers caractères de son empreinte sont transmis : jamais le mot de passe, jamais votre email",
      "hibpLocation": "Réseau mondial (Cloudflare) ; aucune donnée permettant de vous identifier n'est transmise"
    },
    "transfers": {
      "title": "7. Transferts hors Union européenne",
      "p1Part1": "Les données sont hébergées au sein de l'<strong>Union européenne</strong>, sur un serveur situé en France, par",
      "p1Part2": ". Deux prestataires sont des sociétés américaines ou appartiennent à un groupe américain : <strong>Stripe</strong> (paiement) et <strong>PostHog</strong> (mesure d'audience, serveurs à Francfort). Un accès depuis les États-Unis ne peut être exclu ; il est encadré par le <strong>cadre de protection des données UE–États-Unis</strong> (décision d'adéquation du 10 juillet 2023) pour les sociétés qui y sont certifiées, et par les <strong>clauses contractuelles types</strong> de la Commission européenne. Le message qui confirme une demande de rattachement de fiche joueur transite par Meta (voir section 6)."
    },
    "security": {
      "title": "8. Sécurité",
      "intro": "met en œuvre les mesures techniques et organisationnelles raisonnables pour protéger les données contre l'accès non autorisé, la perte, l'altération ou la divulgation :",
      "item1": "Hébergement sur infrastructure professionnelle (sauvegardes, redondance)",
      "item2": "Chiffrement TLS pour toutes les communications (HTTPS)",
      "item3": "Mots de passe stockés sous forme hachée (bcrypt ou Argon2), jamais en clair",
      "item4": "Authentification par JWT en cookies httpOnly",
      "item5": "Accès aux données restreint au strict besoin opérationnel",
      "item6": "Journaux d'audit conservés 12 mois, puis supprimés automatiquement"
    },
    "rights": {
      "title": "9. Vos droits",
      "intro": "Conformément aux articles 15 à 22 du RGPD, vous disposez des droits suivants sur vos données personnelles :",
      "access": "<strong>Droit d'accès</strong> : obtenir confirmation que des données vous concernant sont traitées et en recevoir une copie.",
      "rectification": "<strong>Droit de rectification</strong> : faire corriger les données inexactes ou incomplètes.",
      "erasure": "<strong>Droit à l'effacement</strong> (« droit à l'oubli ») : vous pouvez supprimer votre compte à tout moment depuis votre profil ; la suppression est immédiate.",
      "restriction": "<strong>Droit à la limitation</strong> du traitement.",
      "portability": "<strong>Droit à la portabilité</strong> : recevoir les données de votre compte dans un format structuré (JSON), sur simple demande.",
      "objection": "<strong>Droit d'opposition</strong> : vous opposer à tout moment au traitement fondé sur l'intérêt légitime, <strong>y compris pour les joueurs et personnels sportifs figurant sur le Site</strong>.",
      "withdrawConsent": "<strong>Droit de retirer votre consentement</strong> lorsque le traitement est fondé sur celui-ci.",
      "directives": "<strong>Droit de définir des directives</strong> relatives au sort de vos données après votre décès.",
      "exerciseTitle": "9.1 Comment exercer vos droits",
      "exerciseIntro": "Toute demande peut être adressée :",
      "byEmail": "Par email :",
      "byEmailObject": "(objet recommandé : « Demande RGPD »)",
      "byMail": "Par courrier :",
      "responseDelay": "Une réponse vous sera apportée dans un délai d'un mois à compter de la réception de la demande. Ce délai peut être prolongé de deux mois compte tenu de la complexité ou du nombre de demandes.",
      "playersProcedureTitle": "9.2 Procédure spécifique pour les joueurs et personnels sportifs",
      "playersProcedureIntro": "Tout joueur, coach ou staff figurant sur le Site peut demander :",
      "anonymization": "L'<strong>anonymisation</strong> complète de sa fiche (les données factuelles agrégées restent, mais le nom est remplacé) ;",
      "deletion": "La <strong>suppression</strong> des éléments non strictement nécessaires à la cohérence des archives sportives (photographie, données complémentaires) ;",
      "rectificationPlayer": "La <strong>rectification</strong> d'informations inexactes (nationalité, date de naissance, poste, etc.) ;",
      "objectionPublicProfile": "L'<strong>opposition à la publication de sa fiche</strong> consultable sans compte (section 4.1) : la fiche est alors anonymisée, cesse d'être accessible et est retirée du plan du site. Sa disparition des résultats des moteurs de recherche intervient lors de leur prochain passage, dont le délai ne dépend pas de nous.",
      "playersProcedureEmail": "Cette demande est traitée dans les meilleurs délais sur simple email à",
      "playersProcedureEmailEnd": ", sans justification particulière à fournir.",
      "cnilTitle": "9.3 Recours auprès de la CNIL",
      "cnilIntro": "Si vous estimez que vos droits ne sont pas respectés, vous pouvez introduire une réclamation auprès de la Commission Nationale de l'Informatique et des Libertés :",
      "cnilSiteLabel": "Site :",
      "cnilAddressLabel": "Adresse :"
    },
    "cookies": {
      "title": "10. Cookies",
      "intro": "Le Site utilise des cookies et traceurs aux finalités suivantes. La liste détaillée, traceur par traceur, figure dans la <a href=\"/cookies\">politique de cookies</a>.",
      "tableType": "Type",
      "tablePurpose": "Finalité",
      "tableLegalBasis": "Base légale",
      "tableDuration": "Durée",
      "rows": {
        "necessary": {
          "type": "Cookies strictement nécessaires (session, authentification JWT, CSRF)",
          "purpose": "Fonctionnement du Site",
          "basis": "Exemption (art. 82 LIL)",
          "duration": "De 1 heure à 30 jours"
        },
        "analytics": {
          "type": "Cookies de mesure d'audience (PostHog)",
          "purpose": "Statistiques de fréquentation et d'usage du Site",
          "basis": "Consentement (recueilli via le bandeau cookies)",
          "duration": "1 an au plus ; choix redemandé au bout de 6 mois"
        },
        "preferences": {
          "type": "Préférences (langue, compétitions affichées), dans le stockage du navigateur",
          "purpose": "Confort de navigation",
          "basis": "Exemption (art. 82 LIL) : service demandé",
          "duration": "Jusqu'à ce que vous les effaciez"
        }
      },
      "noAdNote": "Aucun cookie publicitaire ou de profilage tiers n'est utilisé.",
      "manageNote": "Vous pouvez <strong>accepter, refuser ou modifier votre choix</strong> concernant la mesure d'audience à tout moment via le lien « Gérer mes cookies » présent en bas de chaque page. Le refus est aussi simple que l'acceptation, n'empêche pas l'accès au Site, et efface les traceurs de mesure d'audience déjà déposés. Vous pouvez également configurer votre navigateur pour bloquer ou supprimer les cookies ; le blocage des cookies strictement nécessaires peut toutefois empêcher le fonctionnement de certaines fonctionnalités."
    },
    "changes": {
      "title": "11. Modifications",
      "p1": "La présente politique peut être mise à jour pour refléter des évolutions légales, techniques ou opérationnelles. La version applicable est celle publiée sur le Site à la date de votre consultation. Les modifications substantielles seront notifiées aux utilisateurs disposant d'un compte."
    },
    "footer": {
      "text": "Pour toute question, contactez-nous à",
      "textMid": ". Consultez également nos",
      "linkText": "Mentions légales"
    }
  },
  "upcomingGamesWidget": {
    "title": "Prochains matchs",
    "retry": "Réessayer",
    "empty": "Aucun match à venir",
    "viewMatch": "Voir le match",
    "home": "Dom.",
    "away": "Ext.",
    "gameweekShort": "J{{number}}",
    "loadError": "Impossible de charger les prochains matchs."
  },
  "teamSectorsWidget": {
    "coverageNote": "sur {{played}} {played, plural, one {match joué} other {matchs joués}} (feuilles manquantes exclues)",
    "title": "Stats par secteur",
    "periodSeason": "Saison",
    "periodLast10": "10 derniers",
    "periodLast5": "5 derniers",
    "noStats": "Aucune statistique disponible",
    "noData": "Données non disponibles",
    "matchLabel": "match avec statistiques",
    "matchesLabel": "matchs avec statistiques",
    "loadError": "Impossible de charger les statistiques.",
    "service": "Service",
    "block": "Bloc",
    "attack": "Attaque",
    "reception": "Réception",
    "total": "Total",
    "aces": "Aces",
    "faults": "Fautes",
    "acesPerMatch": "Aces/match",
    "servicesPerAce": "Serv./ace",
    "faultsPerMatch": "Fautes/match",
    "faultsPerSet": "Fautes/set",
    "blockPoints": "Points au bloc",
    "blocksPerMatch": "Blocs/match",
    "blocksPerSet": "Blocs/set",
    "kills": "Points d'attaque",
    "errors": "Erreurs",
    "successRate": "Réussite",
    "efficiency": "Efficacité",
    "errorsPerMatch": "Fautes/match",
    "errorsPerSet": "Fautes/set",
    "blocked": "Contrées",
    "blockedPerMatch": "Contr./match",
    "blockedPerSet": "Contr./set",
    "positive": "Positive",
    "excellent": "Excellente",
    "receptionsPerMatch": "Réc./match",
    "receptionsPerSet": "Réc./set"
  },
  "miniLeaderboardCard": {
    "showAll": "Voir le top {{count}}",
    "showLess": "Réduire au top {{count}}",
    "seasonsOne": "{{count}} saison",
    "seasonsMany": "{{count}} saisons",
    "empty": "Aucun joueur éligible."
  },
  "sectors": {
    "total_points": {
      "label": "Points totaux",
      "unit": "pts"
    },
    "points_per_set": {
      "label": "Points par set",
      "unit": "pts/set"
    },
    "break_points": {
      "label": "Break points",
      "unit": "BP"
    },
    "break_points_per_set": {
      "label": "Break points par set",
      "unit": "BP/set"
    },
    "diff_win_lost": {
      "label": "Différentiel +/−",
      "unit": ""
    },
    "attack_points": {
      "label": "Points à l'attaque",
      "unit": "pts"
    },
    "attack_points_per_set": {
      "label": "Points à l'attaque par set",
      "unit": "pts/set"
    },
    "total_spikes": {
      "label": "Nombre d'attaques",
      "unit": "atks"
    },
    "total_spikes_per_set": {
      "label": "Attaques par set",
      "unit": "atks/set"
    },
    "attack_success_rate": {
      "label": "Réussite à l'attaque",
      "unit": "%"
    },
    "attack_efficiency": {
      "label": "Efficacité à l'attaque",
      "unit": "%"
    },
    "spike_faults": {
      "label": "Fautes à l'attaque",
      "unit": "fautes"
    },
    "spike_faults_per_set": {
      "label": "Fautes à l'attaque par set",
      "unit": "fautes/set"
    },
    "spike_blocked": {
      "label": "Attaques contrées",
      "unit": "atks"
    },
    "spike_blocked_per_set": {
      "label": "Attaques contrées par set",
      "unit": "atks/set"
    },
    "service_points": {
      "label": "Aces (points au service)",
      "unit": "aces"
    },
    "service_points_per_set": {
      "label": "Aces par set",
      "unit": "aces/set"
    },
    "total_services": {
      "label": "Nombre de services",
      "unit": "services"
    },
    "total_services_per_set": {
      "label": "Services par set",
      "unit": "services/set"
    },
    "service_faults": {
      "label": "Fautes au service",
      "unit": "fautes"
    },
    "service_faults_per_set": {
      "label": "Fautes au service par set",
      "unit": "fautes/set"
    },
    "service_efficiency": {
      "label": "Efficacité au service",
      "unit": "%"
    },
    "blocks": {
      "label": "Blocs gagnants",
      "unit": "blocs"
    },
    "blocks_per_set": {
      "label": "Blocs par set",
      "unit": "blocs/set"
    },
    "total_receptions": {
      "label": "Nombre de réceptions",
      "unit": "réc."
    },
    "total_receptions_per_set": {
      "label": "Réceptions par set",
      "unit": "réc./set"
    },
    "reception_faults": {
      "label": "Fautes de réception",
      "unit": "fautes"
    },
    "reception_faults_per_set": {
      "label": "Fautes de réception par set",
      "unit": "fautes/set"
    },
    "positive_reception_rate": {
      "label": "Réception positive",
      "unit": "%"
    },
    "excellent_reception_rate": {
      "label": "Réception excellente",
      "unit": "%"
    },
    "total_errors": {
      "label": "Erreurs totales",
      "unit": "erreurs"
    },
    "total_errors_per_set": {
      "label": "Erreurs par set",
      "unit": "erreurs/set"
    },
    "total_faults": {
      "label": "Fautes directes (hors contrées)",
      "unit": "fautes"
    },
    "total_faults_per_set": {
      "label": "Fautes directes par set",
      "unit": "fautes/set"
    },
    "apport_ratio": {
      "label": "% d'apport",
      "unit": "%"
    },
    "contribution_percentage": {
      "label": "% de contribution",
      "unit": "%"
    },
    "global_score": {
      "label": "Meilleurs scores globaux",
      "unit": "/100"
    },
    "spike_points": {
      "label": "Points à l'attaque",
      "unit": "pts"
    },
    "block_points": {
      "label": "Points au bloc",
      "unit": "blocs"
    },
    "spike_success_rate": {
      "label": "Réussite d'attaque en un match",
      "unit": "%"
    },
    "spike_efficiency": {
      "label": "Efficacité d'attaque en un match",
      "unit": "%"
    },
    "positive_reception_percentage": {
      "label": "Réception positive",
      "unit": "%"
    },
    "excellent_reception_percentage": {
      "label": "% de réceptions excellentes",
      "unit": "%"
    },
    "reception_percentage": {
      "label": "% de bonnes réceptions",
      "unit": "%"
    },
    "global_performance": {
      "label": "Performance globale",
      "unit": "score"
    },
    "aces_in_match": {
      "label": "Aces en un match",
      "unit": "aces"
    },
    "blocks_in_match": {
      "label": "Blocs en un match",
      "unit": "blocs"
    },
    "blocks_per_set_in_match": {
      "label": "Blocs par set en un match",
      "unit": "blocs/set"
    },
    "spikes_in_match": {
      "label": "Attaques en un match",
      "unit": "attaques"
    },
    "spike_points_in_match": {
      "label": "Points d'attaque en un match",
      "unit": "pts"
    },
    "spike_faults_in_match": {
      "label": "Fautes d'attaque en un match",
      "unit": "fautes"
    },
    "service_faults_in_match": {
      "label": "Fautes de service en un match",
      "unit": "fautes"
    },
    "services_in_match": {
      "label": "Services en un match",
      "unit": "services"
    },
    "service_efficiency_in_match": {
      "label": "Efficacité au service en un match",
      "unit": "%"
    },
    "spike_blocked_in_match": {
      "label": "Attaques contrées en un match",
      "unit": "attaques"
    },
    "receptions_in_match": {
      "label": "Réceptions en un match",
      "unit": "réceptions"
    },
    "total_receptions_in_match": {
      "label": "Réceptions en un match",
      "unit": "réc."
    },
    "reception_faults_in_match": {
      "label": "Fautes de réception en un match",
      "unit": "fautes"
    },
    "total_receptions_per_set_in_match": {
      "label": "Réceptions par set en un match",
      "unit": "réc./set"
    },
    "total_points_in_match": {
      "label": "Points totaux en un match",
      "unit": "pts"
    },
    "points_in_match": {
      "label": "Points en un match",
      "unit": "pts"
    },
    "points_per_set_in_match": {
      "label": "Points par set en un match",
      "unit": "pts/set"
    },
    "break_points_in_match": {
      "label": "Break points en un match",
      "unit": "BP"
    },
    "break_points_per_set_in_match": {
      "label": "Break points par set en un match",
      "unit": "BP/set"
    },
    "diff_win_lost_in_match": {
      "label": "Différentiel +/− en un match",
      "unit": ""
    },
    "highest_yield_in_match": {
      "label": "Plus haut rendement en un match",
      "unit": "pts"
    },
    "lowest_yield_in_match": {
      "label": "Plus bas rendement en un match",
      "unit": "pts"
    },
    "total_errors_in_match": {
      "label": "Total d'erreurs en un match",
      "unit": "erreurs"
    },
    "team_contribution_percentage": {
      "label": "% de contribution aux points de l'équipe",
      "unit": "%"
    },
    "aces_per_set_in_match": {
      "label": "Aces par set en un match",
      "unit": "aces/set"
    },
    "spikes_per_set_in_match": {
      "label": "Attaques par set en un match",
      "unit": "att/set"
    },
    "spike_points_per_set_in_match": {
      "label": "Pts attaque par set en un match",
      "unit": "pts/set"
    },
    "spike_faults_per_set_in_match": {
      "label": "Fautes attaque par set en un match",
      "unit": "f/set"
    },
    "spike_blocked_per_set_in_match": {
      "label": "Attaques contrées par set en un match",
      "unit": "ctr/set"
    },
    "service_faults_per_set_in_match": {
      "label": "Fautes service par set en un match",
      "unit": "f/set"
    },
    "services_per_set_in_match": {
      "label": "Services par set en un match",
      "unit": "srv/set"
    },
    "receptions_per_set_in_match": {
      "label": "Réceptions par set en un match",
      "unit": "rec/set"
    },
    "reception_faults_per_set_in_match": {
      "label": "Fautes de réception par set en un match",
      "unit": "f/set"
    },
    "total_errors_per_set_in_match": {
      "label": "Erreurs par set en un match",
      "unit": "err/set"
    },
    "points_in_season": {
      "label": "Points en une saison",
      "unit": "pts"
    },
    "aces_in_season": {
      "label": "Aces en une saison",
      "unit": "aces"
    },
    "blocks_in_season": {
      "label": "Blocs en une saison",
      "unit": "blocs"
    },
    "spikes_in_season": {
      "label": "Attaques en une saison",
      "unit": "attaques"
    },
    "spike_points_in_season": {
      "label": "Points d'attaque en une saison",
      "unit": "pts"
    },
    "spike_faults_in_season": {
      "label": "Fautes d'attaque en une saison",
      "unit": "fautes"
    },
    "service_faults_in_season": {
      "label": "Fautes de service en une saison",
      "unit": "fautes"
    },
    "services_in_season": {
      "label": "Services en une saison",
      "unit": "services"
    },
    "service_efficiency_in_season": {
      "label": "Efficacité au service en une saison",
      "unit": "%"
    },
    "spike_blocked_in_season": {
      "label": "Attaques contrées en une saison",
      "unit": "attaques"
    },
    "receptions_in_season": {
      "label": "Réceptions en une saison",
      "unit": "réceptions"
    },
    "reception_faults_in_season": {
      "label": "Fautes de réception en une saison",
      "unit": "fautes"
    },
    "total_errors_in_season": {
      "label": "Erreurs totales en une saison",
      "unit": "erreurs"
    },
    "team_contribution_percentage_season": {
      "label": "% de contribution aux points de l'équipe",
      "unit": "%"
    },
    "highest_yield_in_season": {
      "label": "Plus haut rendement en une saison",
      "unit": "pts"
    },
    "lowest_yield_in_season": {
      "label": "Plus bas rendement en une saison",
      "unit": "pts"
    },
    "wins_in_season": {
      "label": "Victoires en saison",
      "unit": "V"
    },
    "losses_in_season": {
      "label": "Défaites en saison",
      "unit": "D"
    },
    "win_percentage_in_season": {
      "label": "% de victoires en saison",
      "unit": "%"
    },
    "loss_percentage_in_season": {
      "label": "% de défaites en saison",
      "unit": "%"
    },
    "win_streak_in_season": {
      "label": "Série de victoires en saison",
      "unit": "V consécutives"
    },
    "loss_streak_in_season": {
      "label": "Série de défaites en saison",
      "unit": "D consécutives"
    },
    "points_per_set_in_season": {
      "label": "Points par set en saison",
      "unit": "pts/set"
    },
    "aces_per_set_in_season": {
      "label": "Aces par set en saison",
      "unit": "aces/set"
    },
    "blocks_per_set_in_season": {
      "label": "Blocs par set en saison",
      "unit": "blocs/set"
    },
    "spikes_per_set_in_season": {
      "label": "Attaques par set en saison",
      "unit": "att/set"
    },
    "spike_points_per_set_in_season": {
      "label": "Pts attaque par set en saison",
      "unit": "pts/set"
    },
    "spike_faults_per_set_in_season": {
      "label": "Fautes attaque par set en saison",
      "unit": "f/set"
    },
    "spike_blocked_per_set_in_season": {
      "label": "Attaques contrées par set en saison",
      "unit": "ctr/set"
    },
    "service_faults_per_set_in_season": {
      "label": "Fautes service par set en saison",
      "unit": "f/set"
    },
    "services_per_set_in_season": {
      "label": "Services par set en saison",
      "unit": "srv/set"
    },
    "services_per_match_in_season": {
      "label": "Services par match en saison",
      "unit": "srv/match"
    },
    "receptions_per_set_in_season": {
      "label": "Réceptions par set en saison",
      "unit": "rec/set"
    },
    "receptions_per_match_in_season": {
      "label": "Réceptions par match en saison",
      "unit": "rec/match"
    },
    "points_per_match_in_season": {
      "label": "Points par match en saison",
      "unit": "pts/match"
    },
    "aces_per_match_in_season": {
      "label": "Aces par match en saison",
      "unit": "aces/match"
    },
    "blocks_per_match_in_season": {
      "label": "Blocs par match en saison",
      "unit": "blocs/match"
    },
    "spikes_per_match_in_season": {
      "label": "Attaques par match en saison",
      "unit": "att/match"
    },
    "spike_points_per_match_in_season": {
      "label": "Pts attaque par match en saison",
      "unit": "pts/match"
    },
    "spike_faults_per_match_in_season": {
      "label": "Fautes attaque par match en saison",
      "unit": "f/match"
    },
    "spike_blocked_per_match_in_season": {
      "label": "Attaques contrées par match en saison",
      "unit": "ctr/match"
    },
    "service_faults_per_match_in_season": {
      "label": "Fautes service par match en saison",
      "unit": "f/match"
    },
    "reception_faults_per_set_in_season": {
      "label": "Fautes de réception par set en saison",
      "unit": "f/set"
    },
    "reception_faults_per_match_in_season": {
      "label": "Fautes de réception par match en saison",
      "unit": "f/match"
    },
    "total_errors_per_set_in_season": {
      "label": "Erreurs par set en saison",
      "unit": "err/set"
    },
    "total_errors_per_match_in_season": {
      "label": "Erreurs par match en saison",
      "unit": "err/match"
    },
    "global_score_in_season": {
      "label": "Score Global",
      "unit": "/100"
    },
    "global_attack_score_in_season": {
      "label": "Score Global attaque",
      "unit": "/100"
    },
    "global_service_score_in_season": {
      "label": "Score Global service",
      "unit": "/100"
    },
    "global_block_score_in_season": {
      "label": "Score Global bloc",
      "unit": "/100"
    },
    "global_reception_score_in_season": {
      "label": "Score Global réception",
      "unit": "/100"
    },
    "global_contributions_score_in_season": {
      "label": "Score Global contributions",
      "unit": "/100"
    },
    "global_distribution_score_in_season": {
      "label": "Score Global distribution",
      "unit": "/100"
    },
    "points_in_career": {
      "label": "Points en carrière",
      "unit": "pts"
    },
    "aces_in_career": {
      "label": "Aces en carrière",
      "unit": "aces"
    },
    "blocks_in_career": {
      "label": "Blocs en carrière",
      "unit": "blocs"
    },
    "blocks_per_set_in_career": {
      "label": "Blocs par set en carrière",
      "unit": "blocs/set"
    },
    "blocks_per_match_in_career": {
      "label": "Blocs par match en carrière",
      "unit": "blocs/match"
    },
    "spikes_in_career": {
      "label": "Attaques en carrière",
      "unit": "attaques"
    },
    "spike_points_in_career": {
      "label": "Points d'attaque en carrière",
      "unit": "pts"
    },
    "spike_faults_in_career": {
      "label": "Fautes d'attaque en carrière",
      "unit": "fautes"
    },
    "service_faults_in_career": {
      "label": "Fautes de service en carrière",
      "unit": "fautes"
    },
    "services_in_career": {
      "label": "Services en carrière",
      "unit": "services"
    },
    "service_efficiency_in_career": {
      "label": "Efficacité au service en carrière",
      "unit": "%"
    },
    "spike_blocked_in_career": {
      "label": "Attaques contrées en carrière",
      "unit": "attaques"
    },
    "receptions_in_career": {
      "label": "Réceptions en carrière",
      "unit": "réceptions"
    },
    "reception_faults_in_career": {
      "label": "Fautes de réception en carrière",
      "unit": "fautes"
    },
    "total_errors_in_career": {
      "label": "Erreurs totales en carrière",
      "unit": "erreurs"
    },
    "team_contribution_percentage_career": {
      "label": "% de contribution aux points de l'équipe",
      "unit": "%"
    },
    "highest_yield_in_career": {
      "label": "Plus haut rendement en carrière",
      "unit": "pts"
    },
    "lowest_yield_in_career": {
      "label": "Plus bas rendement en carrière",
      "unit": "pts"
    },
    "wins_in_career": {
      "label": "Victoires en carrière",
      "unit": "V"
    },
    "losses_in_career": {
      "label": "Défaites en carrière",
      "unit": "D"
    },
    "win_percentage_in_career": {
      "label": "% de victoires en carrière",
      "unit": "%"
    },
    "loss_percentage_in_career": {
      "label": "% de défaites en carrière",
      "unit": "%"
    },
    "win_streak_in_career": {
      "label": "Série de victoires en carrière",
      "unit": "V consécutives"
    },
    "loss_streak_in_career": {
      "label": "Série de défaites en carrière",
      "unit": "D consécutives"
    },
    "attack": {
      "label": "Attaque",
      "unit": ""
    },
    "service": {
      "label": "Service",
      "unit": ""
    },
    "block": {
      "label": "Bloc",
      "unit": ""
    },
    "reception": {
      "label": "Réception",
      "unit": ""
    },
    "contributions": {
      "label": "Contributions",
      "unit": ""
    },
    "distribution": {
      "label": "Distribution équipe",
      "unit": ""
    }
  },
  "recordSectors": {
    "total_points": {
      "label": "Points",
      "unit": ""
    },
    "points_per_set": {
      "label": "Points / set",
      "unit": "/set",
      "threshold": "min. 50 sets joués"
    },
    "contribution_pct": {
      "label": "Contribution à l'équipe",
      "unit": "%",
      "threshold": "min. 50 sets joués"
    },
    "aces": {
      "label": "Aces",
      "unit": ""
    },
    "total_service": {
      "label": "Services au total",
      "unit": ""
    },
    "service_per_set": {
      "label": "Services / set",
      "unit": "/set",
      "threshold": "min. 50 sets joués"
    },
    "blocks": {
      "label": "Blocs",
      "unit": ""
    },
    "blocks_per_set": {
      "label": "Blocs / set",
      "unit": "/set",
      "threshold": "min. 50 sets joués"
    },
    "attack_points": {
      "label": "Points d'attaque",
      "unit": ""
    },
    "total_spikes": {
      "label": "Attaques au total",
      "unit": ""
    },
    "spikes_per_set": {
      "label": "Attaques / set",
      "unit": "/set",
      "threshold": "min. 50 sets joués"
    },
    "spike_success": {
      "label": "Réussite à l'attaque",
      "unit": "%",
      "threshold": "min. 100 attaques"
    },
    "spike_efficiency": {
      "label": "Efficacité à l'attaque",
      "unit": "%",
      "threshold": "min. 100 attaques"
    },
    "reception_positive": {
      "label": "Réception positive",
      "unit": "%",
      "threshold": "min. 100 réceptions"
    },
    "reception_excellent": {
      "label": "Réception excellente",
      "unit": "%",
      "threshold": "min. 100 réceptions"
    },
    "total_receptions": {
      "label": "Réceptions total",
      "unit": ""
    }
  },
  "recordFamilies": {
    "contributions": {
      "label": "Contributions"
    },
    "service": {
      "label": "Service"
    },
    "block": {
      "label": "Bloc"
    },
    "attack": {
      "label": "Attaque"
    },
    "reception": {
      "label": "Réception"
    }
  },
  "teamStatCategories": {
    "winningStreak": {
      "label": "Plus longue série de victoires",
      "unit": "victoires consécutives"
    },
    "losingStreak": {
      "label": "Plus longue série de défaites",
      "unit": "défaites consécutives"
    },
    "biggestPointDifferential": {
      "label": "Plus gros écart de points",
      "unit": "points d'écart"
    },
    "bestWinRate": {
      "label": "Meilleur taux de victoires",
      "unit": "%"
    },
    "bestSetRatio": {
      "label": "Meilleur ratio sets",
      "unit": "ratio"
    },
    "bestPointRatio": {
      "label": "Meilleur ratio points",
      "unit": "ratio"
    },
    "most2_3Losses": {
      "label": "Plus de défaites 2-3",
      "unit": "défaites 2-3"
    },
    "bestTiebreakEfficiency": {
      "label": "Meilleure efficacité tie-break",
      "unit": "%"
    },
    "mostComebacks": {
      "label": "Plus de remontées",
      "unit": "remontées"
    },
    "bestHomeWinRate": {
      "label": "Meilleur taux de victoires à domicile",
      "unit": "%"
    },
    "bestAwayWinRate": {
      "label": "Meilleur taux de victoires à l'extérieur",
      "unit": "%"
    },
    "bestRecentForm": {
      "label": "Meilleure forme récente",
      "unit": "%"
    },
    "most3_0Wins": {
      "label": "Plus de victoires 3-0",
      "unit": "victoires 3-0"
    },
    "most3_1Wins": {
      "label": "Plus de victoires 3-1",
      "unit": "victoires 3-1"
    },
    "most3_2Wins": {
      "label": "Plus de victoires 3-2",
      "unit": "victoires 3-2"
    }
  },
  "percentileMetrics": {
    "apportRatio": {
      "label": "Apport (% pts − erreurs)"
    },
    "avgBlocksPerSet": {
      "label": "Blocs / set"
    },
    "avgBreakPointsPerSet": {
      "label": "Break points / set"
    },
    "avgPointsPerSet": {
      "label": "Points / set"
    },
    "avgReceptionsPerSet": {
      "label": "Réceptions / set"
    },
    "avgServePointPerSet": {
      "label": "Aces / set"
    },
    "avgSpikePerSet": {
      "label": "Attaques / set"
    },
    "excellentReceptionPercentage": {
      "label": "Réception excellente"
    },
    "positiveReceptionPercentage": {
      "label": "Réception positive"
    },
    "receptionEfficiency": {
      "label": "Efficacité réception"
    },
    "spikeEfficiency": {
      "label": "Réussite attaque"
    }
  },
  "cardBadges": {
    "ELITE": {
      "label": "Élite",
      "description": "Joueur d'élite (OVR 90+)"
    },
    "TOP_1_PERCENT": {
      "label": "Top 1 %",
      "description": "Top 1 % du championnat"
    },
    "BLOCK_KING": {
      "label": "Roi du bloc",
      "description": "Top 5 % au bloc"
    },
    "ACE_MACHINE": {
      "label": "Machine à Aces",
      "description": "Top 5 % au service"
    },
    "SNIPER_ATTACK": {
      "label": "Tireur d'élite",
      "description": "Top 5 % à l'attaque"
    },
    "SAFE_HANDS": {
      "label": "Mains sûres",
      "description": "Top 5 % en réception"
    },
    "METRONOME": {
      "label": "Métronome",
      "description": "Très régulier"
    },
    "CLUTCH_PLAYER": {
      "label": "Décisif",
      "description": "Performant en play-offs"
    }
  },
  "scoreMetrics": {
    "spikeEfficiency2": {
      "label": "Efficacité attaque",
      "formula": "(points − fautes − bloquées) / total attaques × 100"
    },
    "spikeEfficiency": {
      "label": "Réussite attaque",
      "formula": "points attaque / total attaques × 100"
    },
    "avgSpikePointsPerSet": {
      "label": "Points attaque/set",
      "formula": "total points attaque / sets joués"
    },
    "avgServePointPerPtPlayed": {
      "label": "Aces / pt match",
      "formula": "aces / total des points joués par les deux équipes (densité d'impact, normalisée sur le rythme du match)"
    },
    "avgServePerPtPlayed": {
      "label": "Services / pt match",
      "formula": "services / total points joués (proxy : plus on sert, plus l'équipe a marqué sur notre service)"
    },
    "avgServeFaultPerPtPlayed": {
      "label": "Fautes service / pt match",
      "formula": "fautes service / total points joués (inversé : moins = mieux)"
    },
    "avgBlocksPerPtPlayed": {
      "label": "Blocs / pt match",
      "formula": "points de bloc / total points joués des deux équipes (densité d'impact)"
    },
    "totalBlockPoints": {
      "label": "Total blocs",
      "formula": "somme des blocs gagnants sur la saison (signal de volume / régularité)"
    },
    "positiveReceptionPercentage": {
      "label": "Réception positive",
      "formula": "% de réceptions positives ou excellentes"
    },
    "excellentReceptionPercentage": {
      "label": "Réception excellente",
      "formula": "% de réceptions excellentes"
    },
    "totalReceptions": {
      "label": "Total réceptions",
      "formula": "volume total de réceptions encaissées (un bon réceptionneur = qualité × volume)"
    },
    "receptionFaultPercentage": {
      "label": "Fautes réception",
      "formula": "fautes réception / total réceptions × 100 (inversé)"
    },
    "avgBreakPointsPerPtPlayed": {
      "label": "Break points / pt match",
      "formula": "break points / total points joués des deux équipes (densité d'impact)"
    },
    "avgDiffWinLostPerPtPlayed": {
      "label": "+/− / pt match",
      "formula": "(points équipe − points adverses) / total points joués (densité d'impact équipe)"
    },
    "pctSetsPlayed": {
      "label": "% sets joués",
      "formula": "sets joués par le joueur / sets joués par son équipe en compétition",
      "formulaF": "sets joués par la joueuse / sets joués par son équipe en compétition"
    },
    "teamSpikeEfficiency": {
      "label": "Efficacité attaque équipe",
      "formula": "efficacité de l'attaque de l'équipe quand le passeur est sur le terrain (titulaire)",
      "formulaF": "efficacité de l'attaque de l'équipe quand la passeuse est sur le terrain (titulaire)"
    },
    "teamSpikeSuccessRate": {
      "label": "Réussite attaque équipe",
      "formula": "réussite de l'attaque de l'équipe quand le passeur est sur le terrain (titulaire)",
      "formulaF": "réussite de l'attaque de l'équipe quand la passeuse est sur le terrain (titulaire)"
    }
  },
  "phases": {
    "regular": "Saison régulière",
    "playoff": "Play-offs",
    "qualification": "Phases annexes",
    "final": "Phase finale",
    "other": "Autre",
    "all": "Toutes"
  },
  "passwordPolicy": {
    "hint": "Au moins {{min}} caractères, dont une majuscule, une minuscule et un chiffre",
    "error": "Le mot de passe doit contenir au moins {{min}} caractères, une majuscule, une minuscule et un chiffre",
    "strengthLabel": "Robustesse :",
    "ruleMinLength": "{{min}} caractères minimum",
    "ruleUppercase": "Une majuscule",
    "ruleLowercase": "Une minuscule",
    "ruleDigit": "Un chiffre",
    "level": {
      "weak": "faible",
      "medium": "moyenne",
      "strong": "bonne",
      "excellent": "excellente"
    }
  },
  "noPlayerProfile": {
    "title": "Votre compte n'est pas encore relié à une fiche joueur",
    "titleWithName": "{{name}}, votre compte n'est pas encore relié à une fiche joueur",
    "lead": "Votre accès est bien actif, mais aucune fiche joueur ne lui est rattachée pour l'instant.",
    "explain": "Vos statistiques personnelles proviennent de la fiche joueur qui vous correspond dans notre base. Tant que le rattachement n'est pas fait par un administrateur, votre tableau de bord joueur reste vide.",
    "meanwhile": "En attendant, vous avez accès à toutes les statistiques publiques de la plateforme.",
    "goToDashboard": "Voir le tableau de bord général",
    "contactUs": "Demander le rattachement"
  },
  "toast": {
    "dismiss": "Fermer ce message"
  },
  "errors": {
    "network": "Connexion au serveur impossible. Vérifiez votre connexion internet, puis réessayez.",
    "server": "Le serveur n'a pas pu répondre. Les données affichées peuvent être incomplètes.",
    "timeout": "Le serveur met trop de temps à répondre. Réessayez dans un instant.",
    "tooManyRequests": "Trop de requêtes envoyées coup sur coup. Patientez quelques secondes.",
    "generic": "Une erreur est survenue. Les données affichées peuvent être incomplètes."
  },
  "fullVersionLink": {
    "intro": "Vous consultez la version publique de cette page.",
    "competitions": "Voir les compétitions",
    "competition": "Voir la compétition complète",
    "match": "Voir le match complet",
    "default": "Voir la version complète"
  },
  "publicResults": {
    "loading": "Chargement des résultats…",
    "error": "Les résultats n'ont pas pu être chargés.",
    "empty": "Aucun championnat publié pour le moment.",
    "breadcrumb": "Fil d'Ariane",
    "backToIndex": "Revenir à la liste des championnats",
    "seasonCount": "{{count}} saisons",
    "gameCount": "{{count}} matchs",
    "tier": {
      "1": "1re division",
      "2": "2e division"
    },
    "index": {
      "title": "Résultats",
      "intro": "Les championnats couverts par VolleyTracker, saison par saison.",
      "metaTitle": "Résultats et calendriers du volley français | VolleyTracker",
      "metaDescription": "Retrouvez les résultats, scores et calendriers des championnats de volley suivis par VolleyTracker, saison par saison."
    },
    "competition": {
      "intro": "{{count}} saisons disponibles.",
      "notFound": "Ce championnat n'existe pas ou n'est pas publié.",
      "notFoundTitle": "Championnat introuvable",
      "metaTitle": "{{name}} — toutes les saisons | VolleyTracker",
      "metaDescription": "{{name}} : {{count}} saisons de résultats, scores et calendriers.",
      "introOne": "{{count}} saison disponible."
    },
    "season": {
      "intro": "{{count}} {count, plural, one {match} other {matchs}} sur la saison {{season}}.",
      "notFound": "Cette saison n'existe pas ou n'est pas publiée.",
      "notFoundTitle": "Saison introuvable",
      "date": "Date",
      "match": "Rencontre",
      "gameweek": "Journée",
      "score": "Score",
      "upcoming": "À venir",
      "dateUnknown": "Date inconnue",
      "tableCaption": "Calendrier et résultats de {{name}}",
      "metaTitle": "{{name}} : classement et résultats | VolleyTracker",
      "metaDescription": "{{name}} : classement, {{count}} matchs joués avec les scores set par set, calendrier complet et effectifs des équipes.",
      "phase": {
        "regular": "Saison régulière",
        "qualification": "Qualifications",
        "playoffs": "Play-offs",
        "semi-final": "Demi-finales",
        "final": "Finale",
        "other": "Autres matchs"
      },
      "phaseUnknown": "Journée non renseignée",
      "tableCaptionPhase": "{{phase}} — {{name}}",
      "standings": {
        "title": "Classement",
        "scopeOfficial": "Classement officiel · {{count}} {count, plural, one {match} other {matchs}}",
        "scopeRegular": "Saison régulière · {{count}} {count, plural, one {match} other {matchs}}",
        "scopeAll": "Toute la saison · {{count}} {count, plural, one {match} other {matchs}}",
        "scopeAllNote": "Aucune journée de cette édition n'est identifiée comme saison régulière : le classement additionne l'ensemble des matchs joués.",
        "tableCaption": "Classement de {{name}}",
        "rank": "#",
        "logo": "Logo de l'équipe",
        "team": "Équipe",
        "points": "Pts",
        "pointsLong": "Points au classement",
        "played": "MJ",
        "playedLong": "Matchs joués",
        "won": "V",
        "wonLong": "Victoires",
        "lost": "D",
        "lostLong": "Défaites",
        "setsWon": "SG",
        "setsWonLong": "Sets gagnés",
        "setsLost": "SP",
        "setsLostLong": "Sets perdus",
        "setsCoefficient": "Coef. sets",
        "setsCoefficientLong": "Coefficient de sets (gagnés / perdus)",
        "pointsCoefficient": "Coef. pts",
        "pointsCoefficientLong": "Coefficient de points (marqués / encaissés)",
        "notStarted": "Aucun match joué pour l'instant. Le classement apparaîtra après la première journée.",
        "outcome": "Phase finale"
      },
      "rosters": {
        "title": "Effectifs",
        "intro": "Les joueurs ayant disputé au moins un match de la saison, par équipe et par poste.",
        "introF": "Les joueuses ayant disputé au moins un match de la saison, par équipe et par poste.",
        "teamCount": "{{count}} équipes",
        "teamCountOne": "{{count}} équipe",
        "playerCount": "{{count}} joueurs",
        "playerCountOne": "{{count}} joueur",
        "playerCountF": "{{count}} joueuses",
        "playerCountOneF": "{{count}} joueuse",
        "teamTitle": "Effectif de {{team}}",
        "teamLink": "Fiche complète de {{team}}",
        "showMore": "Voir les {{count}} autres équipes",
        "showMoreOne": "Voir l'autre équipe",
        "showLess": "Masquer des équipes"
      },
      "heading": "{{name}} : classement et résultats",
      "introFacts": "{{championship}} · {{teams}} équipes · {{count}} matchs.",
      "introFactsNoTeams": "{{championship}} · {{count}} matchs.",
      "introChampion": "{{team}} remporte le titre.",
      "toc": "Sur cette page",
      "results": {
        "title": "Résultats par phase",
        "tabs": "Phases de la saison",
        "showMore": "Voir {{count}} matchs de plus",
        "showMoreOne": "Voir 1 match de plus",
        "remaining": "{{count}} restants",
        "remainingOne": "{{count}} restant",
        "showLess": "Réduire"
      },
      "stage": {
        "playoffs": "Phase finale",
        "final": "Finale",
        "semi": "Demi-finales",
        "quarter": "Quarts de finale",
        "round_of_16": "Huitièmes de finale",
        "play_in": "Play-in",
        "barrage": "Barrages"
      },
      "series": {
        "winsShort": "V",
        "goldenSetShort": "SO",
        "count": "{{count}} séries",
        "countOne": "{{count}} série",
        "gameShort": "M{{number}}",
        "gameLong": "Match {{number}}",
        "gameSummary": "Match {{number}} : {{home}} {{score}} {{away}}",
        "goldenSet": "Set en or",
        "wins": "Victoires",
        "champion": "{{team}} remporte le titre.",
        "qualified": "{{team}} se qualifie."
      },
      "outcome": {
        "champion": "Champion",
        "finalist": "Finaliste",
        "final": "Finale",
        "semi": "Demi-finale",
        "quarter": "Quart de finale",
        "round_of_16": "Huitième de finale",
        "play_in": "Play-in"
      }
    },
    "seasonCountOne": "{{count}} saison",
    "gameCountOne": "{{count}} match"
  },
  "emailVerified": {
    "successTitle": "Adresse confirmée",
    "successMessage": "Votre compte est activé. Vous pouvez désormais vous connecter à VolleyTracker.",
    "expiredTitle": "Lien expiré",
    "expiredMessage": "Ce lien de confirmation n'est plus valable. Indiquez votre adresse pour en recevoir un nouveau.",
    "invalidTitle": "Lien invalide",
    "invalidMessage": "Ce lien de confirmation n'est pas valable. Il a peut-être été tronqué par votre messagerie : copiez-collez l'adresse complète depuis l'email.",
    "emailLabel": "Adresse email",
    "emailRequired": "Veuillez saisir votre adresse email.",
    "resend": "Recevoir un nouveau lien",
    "resending": "Envoi en cours…",
    "resendDone": "Si votre adresse est associée à un compte non confirmé, un nouveau lien vient d'être envoyé.",
    "resendError": "L'envoi a échoué. Veuillez réessayer dans quelques instants.",
    "goToLogin": "Se connecter",
    "contact": "Besoin d'aide ? Contactez-nous"
  },
  "subscriptionRequired": {
    "title": "Réservé aux abonnés Premium",
    "lead": "Cette page fait partie du périmètre Premium. Votre compte gratuit donne accès aux classements, aux calendriers, au détail des matchs et aux profils en synthèse.",
    "benefitTabs": "Tous les onglets des profils joueur et équipe",
    "benefitRecords": "Records de saison et compositions de match",
    "benefitTops": "Tops par secteur et par journée",
    "benefitDreamTeams": "Équipes de rêve et statistiques globales",
    "benefitGlobal": "Nationalités, comparaison de compétitions, continuité et mobilité",
    "seePlans": "Voir les offres",
    "retry": "Revenir à la page demandée",
    "backToDashboard": "Retour au tableau de bord",
    "signIn": "Se connecter"
  },
  "coverage": {
    "title": "Couverture des statistiques",
    "intro": "Où les feuilles de match sont disponibles, et où elles manquent. Championnat par championnat, saison par saison.",
    "kpiGlobal": "Couverture globale",
    "kpiWithStats": "Matchs avec stats",
    "kpiMissing": "Matchs sans stats",
    "kpiEditions": "Éditions suivies",
    "note": "Le pourcentage rapporte les matchs dont la feuille est disponible aux matchs effectivement disputés — jamais au calendrier entier, pour qu'une rencontre à venir ne compte pas comme une donnée manquante. Les trous se concentrent sur les saisons anciennes, dont certaines feuilles n'ont jamais été publiées.",
    "onlyIncomplete": "Afficher seulement les championnats incomplets",
    "seasonsCovered": "{{complete}} {complete, plural, one {saison complète} other {saisons complètes}} sur {{total}}",
    "missingSingular": "{{count}} match sans stats",
    "missingPlural": "{{count}} matchs sans stats",
    "colSeason": "Saison",
    "colPlayed": "Disputés",
    "colWithStats": "Avec stats",
    "colMissing": "Manquants",
    "colCoverage": "Couverture",
    "upcoming": "Saison à venir",
    "allComplete": "Tous les championnats affichés sont couverts à 100 %.",
    "loadError": "Impossible de charger la couverture des statistiques.",
    "seasonHint": "Cliquez sur une saison incomplète pour afficher ses matchs sans statistiques.",
    "missingGamesTitleSingular": "{{count}} match disputé sans feuille de statistiques",
    "missingGamesTitlePlural": "{{count}} matchs disputés sans feuille de statistiques",
    "openCompetition": "Voir la compétition",
    "colDate": "Date",
    "colPhase": "Phase",
    "colGameweek": "Journée",
    "colHome": "Domicile",
    "colAway": "Extérieur",
    "colScore": "Score",
    "phaseRegular": "Saison régulière",
    "phasePlayoffs": "Play-offs",
    "phaseSemiFinal": "Demi-finales",
    "phaseFinal": "Finale",
    "phaseCev": "Qualifications CEV",
    "phaseOther": "Autre phase",
    "noDate": "Date inconnue",
    "missingGamesEmpty": "Aucun match sans statistiques sur cette saison.",
    "missingGamesError": "Impossible de charger les matchs de cette saison.",
    "retry": "Réessayer",
    "colSheet": "Feuille de stats",
    "contributeCta": "Transmettre une feuille de stats",
    "contributeCtaHint": "Vous avez la feuille d'un match manquant ? Aidez à compléter la base.",
    "contributeSheet": "Transmettre",
    "contributeSheetAria": "Transmettre la feuille de stats du match {{home}} – {{away}} du {{date}}",
    "sheetContributed": "Feuille transmise",
    "sheetPending": "Feuille attendue",
    "sheetUnavailable": "Transmission indisponible",
    "pickerTitle": "Transmettre une feuille de stats",
    "pickerIntro": "Choisissez le match dont vous avez la feuille. Seuls les matchs disputés sans feuille de statistiques sont proposés.",
    "pickerSeasonLabel": "Saison",
    "pickerSeasonPlaceholder": "Choisir une saison",
    "pickerSeasonOptionSingular": "{{season}} · {{code}} — {{count}} match sans stats",
    "pickerSeasonOptionPlural": "{{season}} · {{code}} — {{count}} matchs sans stats",
    "pickerSearchLabel": "Filtrer par équipe",
    "pickerSearchPlaceholder": "Nom d'une équipe",
    "pickerGameLegend": "Match",
    "pickerNoResult": "Aucun match ne correspond à ce filtre.",
    "pickerCancel": "Annuler",
    "pickerContinue": "Continuer",
    "pickerClose": "Fermer"
  },
  "miniMatchPerformanceCard": {
    "win": "V",
    "loss": "D",
    "against": "contre",
    "empty": "Aucune performance."
  },
  "dataCaveat": {
    "reception": "Les critères de notation de la réception ont évolué selon les saisons et selon les compétitions : ces pourcentages ne se comparent pas d'une saison à l'autre.",
    "coverage": "Certaines rencontres disputées n'ont jamais eu de feuille de match exploitable : leurs statistiques manquent aux totaux ci-dessus.",
    "coverageCounted": "{{count}} {count, plural, one {rencontre de cette compétition n'a pas de feuille de match exploitable : ses statistiques manquent} other {rencontres de cette compétition n'ont pas de feuille de match exploitable : leurs statistiques manquent}} aux totaux ci-dessus."
  },
  "seo": {
    "routes": {
      "login": {
        "title": "Connexion",
        "description": "Connexion à votre compte VolleyTracker : statistiques, fiches joueurs et analyses du volley professionnel français."
      },
      "forgotPassword": {
        "title": "Mot de passe oublié",
        "description": "Recevoir par email un lien pour choisir un nouveau mot de passe VolleyTracker."
      },
      "resetPassword": {
        "title": "Nouveau mot de passe"
      },
      "invitation": {
        "title": "Activer votre compte"
      },
      "emailVerified": {
        "title": "Confirmation de l'adresse email"
      },
      "accessRestricted": {
        "title": "Accès réservé"
      },
      "rounds": {
        "title": "Journées"
      },
      "playerDashboard": {
        "title": "Ma saison"
      },
      "noPlayerProfile": {
        "title": "Profil joueur non rattaché"
      },
      "dashboard": {
        "title": "Actualité"
      },
      "profile": {
        "title": "Mon profil"
      },
      "settings": {
        "title": "Notifications"
      },
      "statistics": {
        "title": "Meilleures performances"
      },
      "nationalities": {
        "title": "Nationalités"
      },
      "mvpRankings": {
        "title": "Classement MVP"
      },
      "dreamTeams": {
        "title": "Équipes de rêve"
      },
      "teamContinuity": {
        "title": "Continuité d'effectif"
      },
      "divisionMobility": {
        "title": "Mobilité entre divisions"
      },
      "ageExperience": {
        "title": "Âge et expérience des effectifs"
      },
      "playerHeights": {
        "title": "Taille des joueurs"
      },
      "titleRace": {
        "title": "Course à la première place"
      },
      "coverage": {
        "title": "Couverture des statistiques"
      },
      "playerStats": {
        "title": "Statistiques du joueur"
      },
      "matchPreview": {
        "title": "Avant-match"
      },
      "scouting": {
        "title": "Scouting"
      },
      "competitionComparison": {
        "title": "Comparer les compétitions"
      },
      "sectorAnalysis": {
        "title": "Secteurs déterminants"
      },
      "seasonRecords": {
        "title": "Records par saison"
      },
      "competitionStats": {
        "title": "Statistiques de la compétition"
      },
      "coachDashboard": {
        "title": "Mon tableau de bord"
      },
      "register": {
        "title": "Créer un compte",
        "description": "Créez votre compte VolleyTracker, fan ou joueur, pour suivre le volley professionnel français."
      },
      "homeAdvantage": {
        "title": "Avantage du terrain selon la salle"
      },
      "teamMatchUnsubscribe": {
        "title": "Désinscription du résumé de match"
      },
      "matchSubscriptionsUnsubscribe": {
        "title": "Désinscription du récapitulatif de matchs"
      }
    }
  },
  "competitionSectors": {
    "total_errors": {
      "label": "Taux d'erreurs (fautes + contrées)",
      "unit": "%"
    },
    "total_faults": {
      "label": "Taux de fautes directes (hors contrées)",
      "unit": "%"
    }
  },
  "adminAccess": {
    "title": "Accès par profil",
    "intro": "Ce que chaque profil voit sur chaque page du front, et le réglage de chaque droit par profil. Les pages sont lues dans le routage de l'application : une page ajoutée apparaît ici d'elle-même.",
    "planned": "prévu",
    "saved": "Réglage enregistré : il s'applique dès maintenant.",
    "confirm": "Régler « {{permission}} » sur « {{mode}} » pour le profil {{profile}} ?\n\nLe réglage s'applique immédiatement à tous les comptes de ce profil, sans déploiement. Chaque connexion suivante le prend en compte.",
    "matrix": {
      "title": "Qui voit quoi",
      "filter": "Filtrer les pages",
      "page": "Page ou action",
      "note": "Chaque case est calculée par l'API d'après la grille qu'elle applique réellement, réglages compris. La colonne Média correspond au Média abonné ; un Média en attente de paiement voit ce que voit un compte gratuit."
    },
    "legend": {
      "own": "sur sa propre fiche joueur seulement",
      "na": "sans objet",
      "declared": "onglet non routé, déclaré par son composant"
    },
    "cells": {
      "yes": "Oui",
      "own": "Sa fiche",
      "no": "Non",
      "login": "Connexion"
    },
    "profiles": {
      "visitor": "Non connecté",
      "free_fan": "Fan gratuit",
      "premium_fan": "Fan Premium",
      "analyst_fan": "Fan Analyste",
      "free_player": "Joueur gratuit",
      "premium_player": "Joueur Premium",
      "analyst_player": "Joueur Analyste",
      "media": "Média / journaliste"
    },
    "sections": {
      "public": "Pages publiques",
      "account": "Compte et tableau de bord",
      "players": "Fiche joueur",
      "teams": "Fiche équipe",
      "competitions": "Match et compétition",
      "statistics": "Statistiques",
      "coach": "Espace coach",
      "admin": "Administration"
    },
    "access": {
      "public": "Public",
      "logged": "Tout compte connecté",
      "player": "Compte rattaché à une fiche joueur",
      "staff": "Staff (coach)",
      "admin": "Administrateur"
    },
    "permissions": {
      "VT_MATCH_DETAIL": "Détail des matchs",
      "VT_PROFILE_SUMMARY": "Synthèse joueur et équipe",
      "VT_ADVANCED_STATS": "Statistiques avancées (Premium)",
      "VT_PLAYER_DETAIL": "Fiche détaillée d'un joueur",
      "VT_PLAYER_INSIGHTS": "Onglets intimes d'un joueur",
      "VT_STATS_EMAIL": "Rapports de stats par email",
      "VT_SCOUTING": "Scouting",
      "VT_TEAM_COMPOSITIONS": "Compositions d'équipe",
      "VT_LEAGUE_ANALYTICS": "Analyses de championnat (Fan Analyste)",
      "VT_DREAM_TEAMS": "Équipes de rêve",
      "VT_FAVORITE_TEAM": "Suivre une équipe (Fan Premium)",
      "VT_PLAYER_OPPONENTS": "Équipes adverses d'un joueur",
      "VT_PLAYER_OWN_DATA": "Données du joueur sur sa propre fiche",
      "VT_PLAYER_STATS_DETAIL": "Détail des statistiques d'un joueur (réussite, efficacité, réception…)",
      "VT_MATCH_SUBSCRIPTIONS": "Abonnements aux stats de match (Fan Analyste)"
    },
    "modesShort": {
      "all": "Oui",
      "own": "Sa fiche",
      "none": "Non"
    },
    "modes": {
      "all": "Oui, toutes les fiches",
      "own": "Sa fiche seulement",
      "none": "Non"
    },
    "settings": {
      "title": "Réglage des droits",
      "permission": "Droit",
      "byDefault": "Par défaut",
      "overridden": "modifié",
      "opens": "Ouvre :",
      "warning": "Chaque réglage change ce que l'API sert à tous les comptes du profil, immédiatement et sans déploiement, et il est inscrit au journal d'audit. Un réglage « Par défaut » suit la grille écrite dans le code.",
      "notConfigurable": "Le visiteur, le staff (coach, recruteur) et l'administrateur ne sont pas réglables : l'administrateur voit tout, et ne peut pas se retirer l'accès à cette page."
    },
    "declared": {
      "competitionStats": "Compétition — onglet Statistiques",
      "competitionAnalysis": "Compétition — onglet Analyse",
      "competitionDreamTeam": "Compétition — sous-onglet Équipe de rêve",
      "nationalitiesHistory": "Nationalités — historique complet (autres saisons, évolution, fiche pays)",
      "teammatesDreamTeam": "Joueur — Coéquipiers, équipe de rêve",
      "statsEmail": "Rapports de stats par email (post-match, correction)",
      "favoriteTeam": "Équipe — suivre une équipe (accueil, résumé de match par email)",
      "resultsOpponents": "Joueur — Résultats, équipes adverses",
      "careerRhythm": "Joueur — Carrière, rythme de saison",
      "playerStatsDetail": "Joueur — Carrière, Matchs, Synthèse : moyennes, réussite, efficacité, réception, fautes de service et de réception, distribution",
      "teammatesSetters": "Joueur — Coéquipiers, passeurs",
      "matchSubscriptions": "Recevoir les stats des matchs (compétition, équipe, match ; récapitulatif par email)",
      "teamSectorRankings": "Équipe — Statistiques, classements par secteur",
      "statisticsTeams": "Statistiques — onglet Équipes (classements par secteur)"
    }
  },
  "mediaRegister": {
    "title": "Accès Média",
    "subtitle": "Journalistes, consultants, rédactions : toutes les statistiques du volley professionnel français, avec le droit de les publier. Une offre établie selon vos besoins.",
    "includesStats": "Toutes les statistiques et analyses de championnat, sur toutes les saisons",
    "VT_PLAYER_OWN_DATA": "Données propres au joueur (rythme de saison)",
    "VT_PLAYER_OPPONENTS": "Bilans contre les adversaires",
    "includesLineups": "Les compositions d'équipe, pour préparer un match",
    "includesLicence": "La licence de publication : captures et chiffres à l'antenne, dans vos articles et sur vos réseaux, avec la mention « Source : VolleyTracker »",
    "validationNote": "Chaque demande est vérifiée par notre équipe avant l'ouverture du compte.",
    "mediaNameLabel": "Nom du média",
    "mediaNameRequired": "Indiquez le média pour lequel vous travaillez",
    "emailLabel": "Email professionnel",
    "emailHint": "De préférence l'adresse de votre média : elle nous permet de vérifier votre demande.",
    "termsAccept": "J'accepte les",
    "termsLink": "conditions générales de vente",
    "termsLicence": ", dont la licence de publication (article 16), et j'ai pris connaissance de la",
    "termsRequired": "Vous devez accepter les conditions générales d'utilisation et de vente",
    "submit": "Envoyer ma demande",
    "submitting": "Envoi…",
    "sentTitle": "Demande envoyée",
    "sentLead": "Merci. Voici la suite :",
    "step1": "Notre équipe vérifie votre demande et vous répond par email.",
    "step2": "Une fois la demande validée, vous pouvez vous connecter, et nous vous adressons notre proposition tarifaire.",
    "step3": "À réception du règlement, votre accès complet et la licence de publication sont ouverts.",
    "backHome": "Retour à l'accueil",
    "linkTitle": "Journaliste ou consultant ?",
    "linkText": "Demandez un accès Média",
    "offerTitle": "Offre sur mesure",
    "offerLead": "Décrivez votre besoin ci-dessous : nous vous adressons une proposition adaptée à votre média, au nombre de comptes et à l'usage prévu.",
    "typeLabel": "Type de média",
    "typePlaceholder": "Choisir…",
    "typeRequired": "Choisissez le type de média",
    "types": {
      "tv": "Télévision",
      "radio": "Radio",
      "press": "Presse écrite",
      "web": "Site, podcast ou réseaux sociaux",
      "teammatesSetters": "Joueur — Coéquipiers, passeurs",
      "careerRhythm": "Joueur — Carrière, rythme de saison",
      "resultsOpponents": "Joueur — Résultats, équipes adverses",
      "independent": "Journaliste ou consultant indépendant"
    },
    "seatsLabel": "Nombre de comptes",
    "seatsInvalid": "Entre {{min}} et {{max}} comptes",
    "usageLabel": "Usage prévu",
    "usagePlaceholder": "Préparation d'antenne, articles, réseaux sociaux… (facultatif)",
    "termsCguLink": "conditions générales d'utilisation",
    "termsSep": ", les"
  },
  "formNotice": {
    "required": "Les champs marqués d'un astérisque (*) sont obligatoires.",
    "contact": "Vos données servent uniquement à répondre à votre message. Elles sont lues par l'éditeur du site, conservées 3 ans après le dernier échange et ne sont transmises à personne. Pour en savoir plus et exercer vos droits, consultez la",
    "requestAccess": "Vos données servent uniquement à examiner votre demande d'accès. Elles sont lues par l'éditeur du site, conservées 12 mois après la décision et ne sont transmises à personne. Pour en savoir plus et exercer vos droits, consultez la",
    "statsSheet": "La feuille et votre message servent uniquement à compléter les statistiques de ce match. Le document est supprimé 90 jours après notre décision. Pour en savoir plus, consultez la",
    "link": "politique de confidentialité"
  },
  "a11y": {
    "skipToContent": "Aller au contenu"
  },
  "footer": {
    "description": "Statistiques et analyses du volleyball professionnel français.",
    "productTitle": "Produit",
    "results": "Résultats",
    "features": "Fonctionnalités",
    "pricing": "Tarifs",
    "understand": "Comprendre nos chiffres",
    "contact": "Contact",
    "legalTitle": "Informations légales",
    "legalNotice": "Mentions légales",
    "termsOfUse": "Conditions d'utilisation",
    "termsOfSale": "Conditions de vente",
    "privacy": "Politique de confidentialité",
    "cookiePolicy": "Politique de cookies",
    "manageCookies": "Gérer mes cookies",
    "mediation": "Médiation de la consommation :"
  },
  "subscriptionSuccess": {
    "confirmingTitle": "Confirmation de votre abonnement…",
    "confirmingPassportTitle": "Confirmation de votre achat…",
    "confirmingText": "Votre paiement est validé. Nous activons votre accès, cela prend quelques secondes.",
    "title": "Votre abonnement est actif",
    "text": "Merci. L'ensemble des fonctionnalités de votre offre est ouvert dès maintenant.",
    "nextRenewal": "Prochaine échéance le {{date}}. Vous pouvez résilier à tout moment depuis votre profil.",
    "goToDashboard": "Accéder au tableau de bord",
    "goToProfile": "Voir mon abonnement",
    "pendingTitle": "Paiement reçu, activation en cours",
    "pendingText": "Votre paiement est bien enregistré. L'activation prend un peu plus de temps que prévu — elle se fera dans les prochaines minutes, sans action de votre part. Si rien n'a changé d'ici une heure, écrivez-nous.",
    "passportTitle": "Votre Passeport est actif",
    "passportText": "Merci. Les analyses de vos saisons archivées sont ouvertes dès maintenant, sans abonnement ni échéance. Une confirmation vous a été envoyée par email.",
    "goToAnalyses": "Voir mes analyses",
    "firstStepsTitle": "Par où commencer",
    "firstStepsHint": "Ces premiers pas vous attendent aussi sur votre accueil, et se cochent à mesure que vous les faites."
  },
  "globalSearch": {
    "title": "Rechercher sur VolleyTracker",
    "trigger": "Rechercher…",
    "open": "Rechercher un joueur, une équipe, une page ou une question",
    "aria": "Rechercher un joueur, une équipe, une compétition, une page ou une question",
    "placeholder": "Un nom, un club, une stat…",
    "clear": "Effacer la recherche",
    "closeShort": "Fermer",
    "allPages": "Toutes les pages ({{count}})",
    "scope": {
      "label": "Chercher parmi",
      "players": "joueurs",
      "teams": "équipes",
      "competitions": "compétitions",
      "questions": "questions de stats",
      "pages": "pages"
    },
    "start": {
      "player": {
        "label": "Un joueur ou une joueuse",
        "hint": "Tapez son nom de famille : trois lettres suffisent"
      },
      "team": {
        "label": "Une équipe ou une compétition",
        "hint": "Par exemple « Tours » ou « Ligue A »",
        "example": "Ligue A"
      },
      "question": {
        "label": "Une question de stats",
        "hint": "Par exemple « aces », « records » ou « taille »",
        "example": "aces"
      }
    },
    "close": "Fermer la recherche",
    "kbdEscape": "Échap",
    "kbdEnter": "Entrée",
    "loading": "Recherche des joueurs et des équipes…",
    "approx": "Pas de correspondance exacte : voici les questions les plus proches.",
    "noResult": "Aucun résultat pour « {{query}} »",
    "noResultHint": "Essayer un nom de joueur ou d'équipe, ou un mot comme « aces », « records » ou « taille ».",
    "navigate": "parcourir",
    "go": "ouvrir",
    "anywhere": "depuis n'importe quelle page",
    "ongoing": "en cours",
    "searchSite": "Rechercher sur tout le site",
    "profileAll": "Toutes les questions de la fiche",
    "competitionAll": "Toutes les questions sur cette compétition",
    "sections": {
      "profile": "Sur la fiche de {{name}}",
      "profileOwn": "Sur votre fiche",
      "competitionPage": "Sur la page {{name}}",
      "start": "Pour commencer",
      "recent": "Récents",
      "suggestions": "Suggestions",
      "frequent": "Questions fréquentes",
      "entities": "Joueurs et équipes",
      "competitions": "Compétitions",
      "questions": "Questions",
      "pages": "Pages"
    },
    "kinds": {
      "player": "Joueur",
      "team": "Équipe",
      "competition": "Compétition",
      "page": "Page",
      "question": "Question"
    },
    "q": {
      "career-scorers": "Qui a marqué le plus de points sur toute sa carrière ?",
      "career-aces": "Qui a réussi le plus d'aces sur toute sa carrière ?",
      "season-records-full": "Quelles sont les meilleures saisons de tous les temps ?",
      "foreign-players": "Combien de joueurs étrangers, et de quels pays ?",
      "title-race-start": "Un bon début de saison mène-t-il au titre ?",
      "youngest-teams": "Quelles équipes ont l'effectif le plus jeune ?",
      "tallest-players": "Quelle est la taille des joueurs selon le poste ?",
      "stable-squads": "Quelles équipes ont gardé le même effectif ?",
      "division-moves": "Quels joueurs passent d'une division à l'autre ?",
      "decisive-sectors": "Quel secteur fait gagner les matchs ?",
      "compare-leagues": "Quel écart de niveau entre deux championnats ?",
      "this-weekend": "Quels sont les matchs de la journée ?",
      "data-coverage": "Depuis quand les statistiques sont-elles disponibles ?"
    },
    "cq": {
      "points": "Qui a marqué le plus de points en {{competition}} ?",
      "aces": "Qui a réussi le plus d'aces en {{competition}} ?",
      "attack": "Quels sont les attaquants les plus efficaces en {{competition}} ?",
      "blocks": "Qui a réussi le plus de blocs en {{competition}} ?",
      "reception": "Quels joueurs réceptionnent le mieux en {{competition}} ?",
      "global": "Quels sont les meilleurs joueurs de {{competition}}, tous secteurs confondus ?",
      "errors": "Qui a commis le plus de fautes en {{competition}} ?",
      "match-points": "Qui a marqué le plus de points sur un match en {{competition}} ?",
      "match-aces": "Qui a réussi le plus d'aces sur un match en {{competition}} ?",
      "match-blocks": "Qui a réussi le plus de blocs sur un match en {{competition}} ?",
      "mvp": "Qui a été élu MVP le plus souvent en {{competition}} ?",
      "records": "Quels sont les records de {{competition}} ?",
      "team-sectors": "Quelle équipe domine chaque secteur en {{competition}} ?",
      "standings": "Quel est le classement de {{competition}} ?",
      "calendar": "Quel est le calendrier de {{competition}} ?"
    }
  },
  "playerTeamShare": {
    "historyMetricLabel": "Indicateur affiché",
    "title": "Performance dans les équipes",
    "intro": "Quelle part du jeu de son équipe le joueur prend en charge, ce qu'il en tire et ce qu'il coûte. Chaque part est calculée sur ses seuls matchs joués, classée parmi ses coéquipiers sur ces mêmes matchs, et comparée à la moyenne des joueurs de son poste dans le championnat — tous, ou ceux qui ont le même statut que lui. Une moyenne retient les joueurs à 5 matchs joués au moins (moins en tout début de saison).",
    "introF": "Quelle part du jeu de son équipe la joueuse prend en charge, ce qu'elle en tire et ce qu'elle coûte. Chaque part est calculée sur ses seuls matchs joués, classée parmi ses coéquipières sur ces mêmes matchs, et comparée à la moyenne des joueuses de son poste dans le championnat — toutes, ou celles qui ont le même statut qu'elle. Une moyenne retient les joueuses à 5 matchs joués au moins (moins en tout début de saison).",
    "seasonTeam": "Saison et équipe",
    "phase": "Phase",
    "phaseAll": "Toute la saison",
    "phaseRegular": "Saison régulière",
    "phaseQualification": "Play-in",
    "phasePlayoffs": "Play-offs",
    "empty": "Aucun match joué sur cette période.",
    "matches": "{{count}} matchs joués",
    "matchesOne": "1 match joué",
    "metrics": {
      "receptions": "Réceptions",
      "spikes": "Attaques",
      "points": "Points",
      "blocks": "Blocs",
      "services": "Services",
      "aces": "Aces",
      "faults": "Fautes",
      "receptionFaults": "Fautes de réception",
      "spikeBlocked": "Attaques contrées"
    },
    "lowerIsBetter": "plus bas = mieux",
    "rankFirst": "1er de l'équipe",
    "rankFirstF": "1re de l'équipe",
    "rankN": "{{rank}}e de l'équipe",
    "player": "Joueur",
    "playerF": "Joueuse",
    "leagueShort": "Moy. poste",
    "leagueAverage": "Moyenne des {{group}} du championnat ({{count}} joueurs)",
    "leagueAverageF": "Moyenne des {{group}} du championnat ({{count}} joueuses)",
    "gap": "{{value}} pts",
    "gapEven": "dans la moyenne",
    "raw": "{{player}} sur {{team}} de l'équipe",
    "distributionTitle": "Distribution",
    "distributionIntro": "Attaque de son équipe sur les {{count}} matchs qu'il a commencés comme passeur, face à la moyenne des passeurs du championnat.",
    "distributionIntroF": "Attaque de son équipe sur les {{count}} matchs qu'elle a commencés comme passeuse, face à la moyenne des passeuses du championnat.",
    "distributionIntroOne": "Attaque de son équipe sur le seul match commencé comme passeur, face à la moyenne des passeurs du championnat.",
    "distributionIntroOneF": "Attaque de son équipe sur le seul match commencé comme passeuse, face à la moyenne des passeuses du championnat.",
    "distributionNoStart": "Aucun match commencé comme titulaire sur cette période : la distribution ne se mesure que sur ces matchs.",
    "teamEfficiency": "Efficacité attaque équipe",
    "teamSuccess": "Réussite attaque équipe",
    "settersAverage": "Moyenne des {{group}} : {{value}} ({{count}})",
    "evolutionTitle": "Évolution sur la carrière",
    "chartPlayer": "Sa part",
    "chartLeague": {
      "all": "Moyenne du poste",
      "starter": "Moyenne des titulaires du poste",
      "substitute": "Moyenne des remplaçants du poste",
      "substituteF": "Moyenne des remplaçantes du poste"
    },
    "historyTitle": "Saison par saison",
    "colSeason": "Saison",
    "colMatches": "Matchs",
    "compareTo": "Comparer à",
    "compareAll": "Tous les {{position}}",
    "compareAllF": "Toutes les {{position}}",
    "compareStarters": "Les {{position}} titulaires",
    "compareStartersF": "Les {{position}} titulaires",
    "compareSubstitutes": "Les {{position}} remplaçants",
    "compareSubstitutesF": "Les {{position}} remplaçantes",
    "groupAll": "{{position}}",
    "groupStarters": "{{position}} titulaires",
    "groupStartersF": "{{position}} titulaires",
    "groupSubstitutes": "{{position}} remplaçants",
    "groupSubstitutesF": "{{position}} remplaçantes",
    "groupTooSmall": "{{count}} {{group}} dans le championnat : groupe trop petit pour une moyenne (il en faut {{min}}).",
    "statusStarter": "Titulaire",
    "statusSubstitute": "Remplaçant",
    "statusSubstituteF": "Remplaçante",
    "statusBasisStarts": "{{started}} {started, plural, one {match commencé} other {matchs commencés}} sur les {{teamMatches}} de l'équipe ({{matches}} {matches, plural, one {joué} other {joués}})",
    "statusBasisLiberoStarter": "libéro le plus utilisé de l'équipe ({{sets}} sets)",
    "statusBasisLiberoStarterF": "libéro la plus utilisée de l'équipe ({{sets}} sets)",
    "statusBasisLiberoSubstitute": "{{sets}} sets, contre {{max}} pour le libéro le plus utilisé de l'équipe",
    "statusBasisLiberoSubstituteF": "{{sets}} sets, contre {{max}} pour la libéro la plus utilisée de l'équipe",
    "statusRule": "Titulaire : a commencé au moins la moitié des matchs de son équipe sur la saison, et au moins {{min}} matchs. Sinon, remplaçant — y compris un titulaire longtemps blessé. Le statut est établi sur toute la saison, quel que soit le filtre de phase.",
    "statusRuleF": "Titulaire : a commencé au moins la moitié des matchs de son équipe sur la saison, et au moins {{min}} matchs. Sinon, remplaçante — y compris une titulaire longtemps blessée. Le statut est établi sur toute la saison, quel que soit le filtre de phase.",
    "statusRuleLibero": "Le libéro titulaire est celui de l'équipe qui a joué le plus de sets sur la saison : la feuille de match note toujours un libéro « entré en cours de set », elle ne dit pas lequel a commencé. Le statut est établi sur toute la saison, quel que soit le filtre de phase.",
    "statusRuleLiberoF": "La libéro titulaire est celle de l'équipe qui a joué le plus de sets sur la saison : la feuille de match note toujours une libéro « entrée en cours de set », elle ne dit pas laquelle a commencé. Le statut est établi sur toute la saison, quel que soit le filtre de phase.",
    "statusRuleAria": "Comment ce statut est établi",
    "colStatus": "Statut"
  },
  "matchSheet": {
    "label": "Stats",
    "title": "Feuille de stats du match (PDF)",
    "ariaLabel": "Feuille de stats {{home}} – {{away}} (PDF)",
    "loading": "Chargement de la feuille de stats {{home}} – {{away}}",
    "previewTitle": "Feuille de stats du match"
  },
  "pdfPreview": {
    "title": "Aperçu du document",
    "close": "Fermer l'aperçu",
    "fetching": "Chargement du document…",
    "loading": "Préparation de l'aperçu…",
    "error": "L'aperçu n'a pas pu être affiché. Le document reste téléchargeable.",
    "pageLabel": "Page {{page}} sur {{total}}",
    "pageCountOne": "1 page",
    "pageCountMany": "{{count}} pages",
    "cancel": "Fermer",
    "zoom": "Zoom",
    "zoomOut": "Zoom arrière",
    "zoomIn": "Zoom avant",
    "download": "Télécharger"
  },
  "subscriptionLabels": {
    "admin": "Administrateur",
    "freeVisitor": "Visiteur",
    "freeFan": "Fan gratuit",
    "premiumFan": "Fan Premium",
    "analystFan": "Fan Analyste",
    "mediaPending": "Média — en attente de paiement",
    "media": "Média",
    "freePlayer": "Joueur gratuit",
    "premiumPlayer": "Joueur Premium",
    "analystPlayer": "Joueur Analyste",
    "premiumCoach": "Coach",
    "premiumTotal": "Accès complet",
    "other": "Compte"
  },
  "profileQuestions": {
    "block": {
      "title": "Questions sur la fiche",
      "intro": "Chaque question mène directement à la section qui y répond.",
      "premium": "Premium",
      "premiumHint": "Réservé aux abonnés Premium",
      "searchAll": "Rechercher parmi les {{count}} questions…",
      "hideBlock": "Masquer",
      "hideQuestion": "Ne plus me proposer « {{question}} »",
      "hideQuestionShort": "Ne plus me proposer cette question",
      "hiddenToast": "Questions masquées sur la Synthèse. Le bouton Questions de la fiche les garde à portée, et permet de les réafficher.",
      "questionHiddenToast": "Question retirée de tes suggestions. Tu la retrouves dans la recherche, et le bouton Questions permet de tout réafficher."
    },
    "palette": {
      "title": "Questions sur la fiche",
      "heading": "Une question sur {{name}} ?",
      "headingSelf": "Une question sur vos stats ?",
      "intro": "Choisissez une question : elle ouvre la section de la fiche qui y répond.",
      "featured": "Suggestions",
      "siteSearch": "tout le site",
      "clear": "Effacer la saisie",
      "aria": "Rechercher une question",
      "placeholder": "Un mot suffit : mois, record, play-offs, titres…",
      "close": "Fermer",
      "kbdEscape": "Échap",
      "kbdEnter": "Entrée",
      "allFamilies": "Toutes",
      "approx": "Pas de correspondance exacte : voici les questions les plus proches.",
      "noResult": "Aucune question pour « {{query}} »",
      "noResultHint": "Essayer un mot comme « mois », « record », « titres » ou « play-offs ».",
      "navigate": "parcourir",
      "open": "ouvrir la section",
      "count": "Questions affichées : {{count}}",
      "restore": "Réafficher",
      "restoreBlock": "Les questions sont masquées sur la Synthèse.",
      "restoreHidden": "Questions écartées des suggestions de la Synthèse : {{count}}."
    },
    "families": {
      "level": "Où se situer",
      "progress": "Progression",
      "form": "Forme et records",
      "context": "Selon le contexte du match",
      "consistency": "Régularité et fautes",
      "matches": "Matchs et résultats",
      "role": "Temps de jeu et rôle",
      "teammates": "Coéquipiers",
      "opponents": "Adversaires",
      "career": "Carrière et palmarès"
    },
    "q": {
      "level-global-score": {
        "self": "Quel est mon niveau par rapport aux joueurs de mon poste ?",
        "selfF": "Quel est mon niveau par rapport aux joueuses de mon poste ?",
        "other": "Quel est son niveau par rapport aux joueurs de son poste ?",
        "otherF": "Quel est son niveau par rapport aux joueuses de son poste ?"
      },
      "level-best-at-position": {
        "self": "Suis-je le meilleur à mon poste ?",
        "selfF": "Suis-je la meilleure à mon poste ?",
        "other": "Est-il le meilleur à son poste ?",
        "otherF": "Est-elle la meilleure à son poste ?"
      },
      "level-who-is-better": {
        "self": "Qui est meilleur que moi à mon poste ?",
        "selfF": "Qui est meilleure que moi à mon poste ?",
        "other": "Qui est meilleur que lui à son poste ?",
        "otherF": "Qui est meilleure qu'elle à son poste ?"
      },
      "level-best-sector": {
        "self": "Quel est le secteur de jeu où je performe le plus ?",
        "selfF": "Quel est le secteur de jeu où je performe le plus ?",
        "other": "Quel est le secteur de jeu où il performe le plus ?",
        "otherF": "Quel est le secteur de jeu où elle performe le plus ?"
      },
      "level-average-points": {
        "self": "Quelle est ma moyenne de points habituelle ?",
        "selfF": "Quelle est ma moyenne de points habituelle ?",
        "other": "Quelle est sa moyenne de points habituelle ?",
        "otherF": "Quelle est sa moyenne de points habituelle ?"
      },
      "level-rank-by-sector": {
        "self": "Où je me classe dans mon championnat, secteur par secteur ?",
        "selfF": "Où je me classe dans mon championnat, secteur par secteur ?",
        "other": "Où se classe-t-il dans son championnat, secteur par secteur ?",
        "otherF": "Où se classe-t-elle dans son championnat, secteur par secteur ?"
      },
      "level-percentiles": {
        "self": "Dans quels secteurs suis-je au-dessus de la moyenne ?",
        "selfF": "Dans quels secteurs suis-je au-dessus de la moyenne ?",
        "other": "Dans quels secteurs est-il au-dessus de la moyenne ?",
        "otherF": "Dans quels secteurs est-elle au-dessus de la moyenne ?"
      },
      "level-strengths": {
        "self": "Quels sont mes points forts et mes points faibles ?",
        "selfF": "Quels sont mes points forts et mes points faibles ?",
        "other": "Quels sont ses points forts et ses points faibles ?",
        "otherF": "Quels sont ses points forts et ses points faibles ?"
      },
      "level-face-to-face": {
        "self": "Comment je me compare à un joueur précis ?",
        "selfF": "Comment je me compare à une joueuse précise ?",
        "other": "Comment se compare-t-il à un autre joueur ?",
        "otherF": "Comment se compare-t-elle à une autre joueuse ?"
      },
      "progress-by-season": {
        "self": "Est-ce que je progresse d'une saison à l'autre ?",
        "selfF": "Est-ce que je progresse d'une saison à l'autre ?",
        "other": "Progresse-t-il d'une saison à l'autre ?",
        "otherF": "Progresse-t-elle d'une saison à l'autre ?"
      },
      "progress-best-season": {
        "self": "Quelle est la meilleure saison de ma carrière ?",
        "selfF": "Quelle est la meilleure saison de ma carrière ?",
        "other": "Quelle est la meilleure saison de sa carrière ?",
        "otherF": "Quelle est la meilleure saison de sa carrière ?"
      },
      "progress-by-match": {
        "self": "Comment évoluent mes stats au fil des matchs ?",
        "selfF": "Comment évoluent mes stats au fil des matchs ?",
        "other": "Comment évoluent ses stats au fil des matchs ?",
        "otherF": "Comment évoluent ses stats au fil des matchs ?"
      },
      "progress-global-score-history": {
        "self": "Mon score Global a-t-il progressé au fil des saisons ?",
        "selfF": "Mon score Global a-t-il progressé au fil des saisons ?",
        "other": "Son score Global a-t-il progressé au fil des saisons ?",
        "otherF": "Son score Global a-t-il progressé au fil des saisons ?"
      },
      "progress-season-phase": {
        "self": "Suis-je meilleur en début ou en fin de saison ?",
        "selfF": "Suis-je meilleure en début ou en fin de saison ?",
        "other": "Est-il meilleur en début ou en fin de saison ?",
        "otherF": "Est-elle meilleure en début ou en fin de saison ?"
      },
      "form-best-month": {
        "self": "Quel est le mois où je suis le meilleur ?",
        "selfF": "Quel est le mois où je suis la meilleure ?",
        "other": "Quel est son meilleur mois ?",
        "otherF": "Quel est son meilleur mois ?"
      },
      "form-worst-month": {
        "self": "Quel est mon pire mois de performance ?",
        "selfF": "Quel est mon pire mois de performance ?",
        "other": "Quel est son pire mois de performance ?",
        "otherF": "Quel est son pire mois de performance ?"
      },
      "form-peak-periods": {
        "self": "Quand ai-je été au sommet de ma forme ?",
        "selfF": "Quand ai-je été au sommet de ma forme ?",
        "other": "Quand a-t-il été au sommet de sa forme ?",
        "otherF": "Quand a-t-elle été au sommet de sa forme ?"
      },
      "form-reference-matches": {
        "self": "Quels sont mes matchs de référence ?",
        "selfF": "Quels sont mes matchs de référence ?",
        "other": "Quels sont ses matchs de référence ?",
        "otherF": "Quels sont ses matchs de référence ?"
      },
      "form-monthly-trends": {
        "self": "Comment évoluent mes résultats mois par mois ?",
        "selfF": "Comment évoluent mes résultats mois par mois ?",
        "other": "Comment évoluent ses résultats mois par mois ?",
        "otherF": "Comment évoluent ses résultats mois par mois ?"
      },
      "form-win-streak": {
        "self": "Quelle est ma plus longue série de victoires ?",
        "selfF": "Quelle est ma plus longue série de victoires ?",
        "other": "Quelle est sa plus longue série de victoires ?",
        "otherF": "Quelle est sa plus longue série de victoires ?"
      },
      "form-loss-streak": {
        "self": "Quelle est ma plus longue série de défaites ?",
        "selfF": "Quelle est ma plus longue série de défaites ?",
        "other": "Quelle est sa plus longue série de défaites ?",
        "otherF": "Quelle est sa plus longue série de défaites ?"
      },
      "form-records": {
        "self": "Quel est mon meilleur match en carrière ?",
        "selfF": "Quel est mon meilleur match en carrière ?",
        "other": "Quel est son meilleur match en carrière ?",
        "otherF": "Quel est son meilleur match en carrière ?"
      },
      "record-points": {
        "self": "Quel est mon record de points en un match ?",
        "selfF": "Quel est mon record de points en un match ?",
        "other": "Quel est son record de points en un match ?",
        "otherF": "Quel est son record de points en un match ?"
      },
      "record-blocks": {
        "self": "Quel est mon record de blocs ?",
        "selfF": "Quel est mon record de blocs ?",
        "other": "Quel est son record de blocs ?",
        "otherF": "Quel est son record de blocs ?"
      },
      "record-aces": {
        "self": "Quel est mon record d'aces ?",
        "selfF": "Quel est mon record d'aces ?",
        "other": "Quel est son record d'aces ?",
        "otherF": "Quel est son record d'aces ?"
      },
      "record-attack-efficiency": {
        "self": "Quel est mon record d'efficacité en attaque ?",
        "selfF": "Quel est mon record d'efficacité en attaque ?",
        "other": "Quel est son record d'efficacité en attaque ?",
        "otherF": "Quel est son record d'efficacité en attaque ?"
      },
      "context-home-away": {
        "self": "Suis-je meilleur à domicile ou à l'extérieur ?",
        "selfF": "Suis-je meilleure à domicile ou à l'extérieur ?",
        "other": "Est-il meilleur à domicile ou à l'extérieur ?",
        "otherF": "Est-elle meilleure à domicile ou à l'extérieur ?"
      },
      "context-attendance": {
        "self": "Suis-je meilleur avec du public ?",
        "selfF": "Suis-je meilleure avec du public ?",
        "other": "Est-il meilleur avec du public ?",
        "otherF": "Est-elle meilleure avec du public ?"
      },
      "context-close-games": {
        "self": "Comment je joue dans les matchs serrés ?",
        "selfF": "Comment je joue dans les matchs serrés ?",
        "other": "Comment joue-t-il dans les matchs serrés ?",
        "otherF": "Comment joue-t-elle dans les matchs serrés ?"
      },
      "context-playoffs": {
        "self": "Suis-je meilleur en play-offs ?",
        "selfF": "Suis-je meilleure en play-offs ?",
        "other": "Est-il meilleur en play-offs ?",
        "otherF": "Est-elle meilleure en play-offs ?"
      },
      "context-win-loss": {
        "self": "Mes stats changent-elles quand on gagne ou quand on perd ?",
        "selfF": "Mes stats changent-elles quand on gagne ou quand on perd ?",
        "other": "Ses stats changent-elles quand son équipe gagne ou perd ?",
        "otherF": "Ses stats changent-elles quand son équipe gagne ou perd ?"
      },
      "context-by-opponent": {
        "self": "Contre quelle équipe je joue le mieux ?",
        "selfF": "Contre quelle équipe je joue le mieux ?",
        "other": "Contre quelle équipe joue-t-il le mieux ?",
        "otherF": "Contre quelle équipe joue-t-elle le mieux ?"
      },
      "context-custom-selection": {
        "self": "Quelles sont mes stats sur une sélection de matchs précise ?",
        "selfF": "Quelles sont mes stats sur une sélection de matchs précise ?",
        "other": "Quelles sont ses stats sur une sélection de matchs précise ?",
        "otherF": "Quelles sont ses stats sur une sélection de matchs précise ?"
      },
      "consistency-profile": {
        "self": "Suis-je un joueur régulier ?",
        "selfF": "Suis-je une joueuse régulière ?",
        "other": "Est-il un joueur régulier ?",
        "otherF": "Est-elle une joueuse régulière ?"
      },
      "consistency-variance": {
        "self": "Mes performances varient-elles beaucoup d'un match à l'autre ?",
        "selfF": "Mes performances varient-elles beaucoup d'un match à l'autre ?",
        "other": "Ses performances varient-elles beaucoup d'un match à l'autre ?",
        "otherF": "Ses performances varient-elles beaucoup d'un match à l'autre ?"
      },
      "consistency-faults": {
        "self": "Combien de fautes je fais, et lesquelles ?",
        "selfF": "Combien de fautes je fais, et lesquelles ?",
        "other": "Combien de fautes fait-il, et lesquelles ?",
        "otherF": "Combien de fautes fait-elle, et lesquelles ?"
      },
      "consistency-points-origin": {
        "self": "D'où viennent mes points ?",
        "selfF": "D'où viennent mes points ?",
        "other": "D'où viennent ses points ?",
        "otherF": "D'où viennent ses points ?"
      },
      "consistency-recurrent": {
        "self": "Qu'est-ce que je produis le plus souvent en match ?",
        "selfF": "Qu'est-ce que je produis le plus souvent en match ?",
        "other": "Que produit-il le plus souvent en match ?",
        "otherF": "Que produit-elle le plus souvent en match ?"
      },
      "matches-played": {
        "self": "Quelles sont mes stats match par match ?",
        "selfF": "Quelles sont mes stats match par match ?",
        "other": "Quelles sont ses stats match par match ?",
        "otherF": "Quelles sont ses stats match par match ?"
      },
      "matches-upcoming": {
        "self": "Quand est mon prochain match ?",
        "selfF": "Quand est mon prochain match ?",
        "other": "Quand est son prochain match ?",
        "otherF": "Quand est son prochain match ?"
      },
      "matches-record": {
        "self": "Quel est mon taux de victoires ?",
        "selfF": "Quel est mon taux de victoires ?",
        "other": "Quel est son taux de victoires ?",
        "otherF": "Quel est son taux de victoires ?"
      },
      "matches-team-rankings": {
        "self": "Quel est mon meilleur classement en saison régulière ?",
        "selfF": "Quel est mon meilleur classement en saison régulière ?",
        "other": "Quel est son meilleur classement en saison régulière ?",
        "otherF": "Quel est son meilleur classement en saison régulière ?"
      },
      "matches-teams-beaten": {
        "self": "Contre qui ai-je le plus gagné ?",
        "selfF": "Contre qui ai-je le plus gagné ?",
        "other": "Contre qui a-t-il le plus gagné ?",
        "otherF": "Contre qui a-t-elle le plus gagné ?"
      },
      "matches-teams-lost-to": {
        "self": "Contre qui ai-je le plus perdu ?",
        "selfF": "Contre qui ai-je le plus perdu ?",
        "other": "Contre qui a-t-il le plus perdu ?",
        "otherF": "Contre qui a-t-elle le plus perdu ?"
      },
      "role-starter": {
        "self": "Suis-je titulaire ? Combien de matchs ai-je commencés ?",
        "selfF": "Suis-je titulaire ? Combien de matchs ai-je commencés ?",
        "other": "Est-il titulaire ? Combien de matchs a-t-il commencés ?",
        "otherF": "Est-elle titulaire ? Combien de matchs a-t-elle commencés ?"
      },
      "role-rotations": {
        "self": "À quelle position je commence le plus souvent ?",
        "selfF": "À quelle position je commence le plus souvent ?",
        "other": "À quelle position commence-t-il le plus souvent ?",
        "otherF": "À quelle position commence-t-elle le plus souvent ?"
      },
      "role-team-share": {
        "self": "Quelle part des actions de mon équipe je prends ?",
        "selfF": "Quelle part des actions de mon équipe je prends ?",
        "other": "Quelle part des actions de son équipe prend-il ?",
        "otherF": "Quelle part des actions de son équipe prend-elle ?"
      },
      "role-reception-share": {
        "self": "Est-ce que je réceptionne plus que mes coéquipiers ?",
        "selfF": "Est-ce que je réceptionne plus que mes coéquipières ?",
        "other": "Réceptionne-t-il plus que ses coéquipiers ?",
        "otherF": "Réceptionne-t-elle plus que ses coéquipières ?"
      },
      "role-setter-distribution": {
        "self": "Comment attaque mon équipe quand je suis à la passe ?",
        "selfF": "Comment attaque mon équipe quand je suis à la passe ?",
        "other": "Comment attaque son équipe quand il est à la passe ?",
        "otherF": "Comment attaque son équipe quand elle est à la passe ?"
      },
      "teammates-most-played": {
        "self": "Avec quels coéquipiers ai-je le plus joué ?",
        "selfF": "Avec quelles coéquipières ai-je le plus joué ?",
        "other": "Avec quels coéquipiers a-t-il le plus joué ?",
        "otherF": "Avec quelles coéquipières a-t-elle le plus joué ?"
      },
      "teammates-wins": {
        "self": "Avec qui je gagne le plus ?",
        "selfF": "Avec qui je gagne le plus ?",
        "other": "Avec qui gagne-t-il le plus ?",
        "otherF": "Avec qui gagne-t-elle le plus ?"
      },
      "teammates-dream-team": {
        "self": "Quelle serait mon équipe de rêve ?",
        "selfF": "Quelle serait mon équipe de rêve ?",
        "other": "Quelle serait son équipe de rêve ?",
        "otherF": "Quelle serait son équipe de rêve ?"
      },
      "teammates-setters": {
        "self": "Avec quel passeur j'attaque le mieux ?",
        "selfF": "Avec quelle passeuse j'attaque le mieux ?",
        "other": "Avec quel passeur attaque-t-il le mieux ?",
        "otherF": "Avec quelle passeuse attaque-t-elle le mieux ?"
      },
      "opponents-players": {
        "self": "Contre quels joueurs ai-je le plus joué ?",
        "selfF": "Contre quelles joueuses ai-je le plus joué ?",
        "other": "Contre quels joueurs a-t-il le plus joué ?",
        "otherF": "Contre quelles joueuses a-t-elle le plus joué ?"
      },
      "opponents-teams": {
        "self": "Contre quelles équipes ai-je le meilleur bilan ?",
        "selfF": "Contre quelles équipes ai-je le meilleur bilan ?",
        "other": "Contre quelles équipes a-t-il le meilleur bilan ?",
        "otherF": "Contre quelles équipes a-t-elle le meilleur bilan ?"
      },
      "opponents-match-by-match": {
        "self": "Comment je joue face à un adversaire précis, match par match ?",
        "selfF": "Comment je joue face à une adversaire précise, match par match ?",
        "other": "Comment joue-t-il face à un adversaire précis, match par match ?",
        "otherF": "Comment joue-t-elle face à une adversaire précise, match par match ?"
      },
      "opponents-versus-me": {
        "other": "Ai-je déjà joué contre lui, et qui l'a emporté ?",
        "otherF": "Ai-je déjà joué contre elle, et qui l'a emporté ?"
      },
      "career-path": {
        "self": "Quel est mon parcours, club par club ?",
        "selfF": "Quel est mon parcours, club par club ?",
        "other": "Quel est son parcours, club par club ?",
        "otherF": "Quel est son parcours, club par club ?"
      },
      "career-summary": {
        "self": "Que retenir de ma carrière en quelques chiffres ?",
        "selfF": "Que retenir de ma carrière en quelques chiffres ?",
        "other": "Que retenir de sa carrière en quelques chiffres ?",
        "otherF": "Que retenir de sa carrière en quelques chiffres ?"
      },
      "career-rhythm": {
        "self": "Mes saisons ont-elles été chargées ? Combien de semaines à deux matchs ?",
        "selfF": "Mes saisons ont-elles été chargées ? Combien de semaines à deux matchs ?"
      },
      "career-team-titles": {
        "self": "Quels titres ai-je gagnés avec mes équipes ?",
        "selfF": "Quels titres ai-je gagnés avec mes équipes ?",
        "other": "Quels titres a-t-il gagnés avec ses équipes ?",
        "otherF": "Quels titres a-t-elle gagnés avec ses équipes ?"
      },
      "career-mvp": {
        "self": "Combien de titres de MVP ai-je reçus ?",
        "selfF": "Combien de titres de MVP ai-je reçus ?",
        "other": "Combien de titres de MVP a-t-il reçus ?",
        "otherF": "Combien de titres de MVP a-t-elle reçus ?"
      }
    }
  },
  "venue": {
    "label": "Salle",
    "awayFromHome": "Délocalisé",
    "playedAt": "Joué à {{venue}}"
  },
  "teamVenues": {
    "title": "Ses salles",
    "intro": "Les salles où le club a reçu, d'après les feuilles de match. Les feuilles ne donnent pas la salle avant 2016-2017 environ.",
    "status": {
      "home": "Salle du club"
    },
    "seasons": "Saisons",
    "games": "Matchs",
    "record": "Bilan",
    "recordValue": "{{wins}} V – {{losses}} D",
    "attendance": "Affluence moy.",
    "awayGames": {
      "title": "Matchs à domicile joués hors de sa salle",
      "won": "victoire",
      "lost": "défaite",
      "showAll": "Voir les {{count}} matchs",
      "showLess": "Voir moins"
    },
    "withoutVenue": "{{count}} {count, plural, one {match à domicile} other {matchs à domicile}} sur {{total}} {count, plural, one {n'a pas de salle sur sa feuille} other {n'ont pas de salle sur leur feuille}}."
  },
  "venueAttendance": {
    "title": "Salles et affluence",
    "intro": "Affluence par salle sur l'édition et la phase choisies, d'après les feuilles de match. Classement par affluence moyenne.",
    "loading": "Chargement des salles…",
    "empty": "Aucune salle connue pour cette édition : ses feuilles de match n'en donnent pas.",
    "hosts": "Clubs qui y ont reçu",
    "average": "Moyenne",
    "games": "Matchs",
    "record": "Record",
    "recordHint": "{{home}} – {{away}}, le {{date}}",
    "total": "Total",
    "coverage": "Salle connue pour {{withVenue}} matchs sur {{total}}, affluence pour {{withAttendance}}.",
    "unranked": "Les salles sans rang ont moins de {{count}} matchs avec affluence connue : leur moyenne n'est pas comparable."
  },
  "homeAdvantage": {
    "title": "Avantage du terrain",
    "subtitle": "Jouer chez soi, ça fait gagner ?",
    "loading": "Calcul de l'avantage du terrain…",
    "empty": "Aucun match joué dans la salle d'un club n'est encore connu dans ce périmètre.",
    "answerUnit": "de victoires chez soi",
    "answerLead": "Dans sa salle, l'équipe qui reçoit gagne {{rate}} % de ses matchs.",
    "answerSub": "{{wins}} victoires sur {{games}} matchs joués dans la salle du club. Sans avantage du terrain, ce serait 50 %.",
    "awayTitle": "Et quand on reçoit hors de sa salle ?",
    "awayHint": "Délocalisations et terrains neutres : le club reçoit, mais pas dans sa salle habituelle.",
    "tagNet": "Écart net",
    "tagNone": "Pas d'écart net",
    "verdict": {
      "same": "Hors de sa salle, l'équipe qui reçoit gagne {{away}} % de ses matchs. Chez elles, ces mêmes équipes en gagnent {{expected}} % : l'écart n'est pas assez net pour en faire une règle.",
      "less": "Hors de sa salle, l'équipe qui reçoit ne gagne que {{away}} % de ses matchs, contre {{expected}} % pour ces mêmes équipes chez elles : un écart trop grand pour être dû au hasard.",
      "more": "Hors de sa salle, l'équipe qui reçoit gagne {{away}} % de ses matchs, plus que les {{expected}} % de ces mêmes équipes chez elles : un écart trop grand pour être dû au hasard.",
      "few": "Hors de sa salle, l'équipe qui reçoit a gagné {{wins}} {wins, plural, one {match} other {matchs}} sur {{games}} ({{away}} %) ; chez elles, ces équipes gagnent {{expected}} %. Moins de {{min}} matchs : trop peu pour en tirer une règle."
    },
    "barClubHall": "Dans sa salle",
    "barAwayFromHome": "Hors de sa salle",
    "ofGames": "{{wins}} {w, plural, one {victoire} other {victoires}} sur {{games}} {g, plural, one {match} other {matchs}}",
    "expectedLegend": "Ces équipes chez elles : {{rate}} %",
    "awayNote": "Un match délocalisé est souvent un grand match, dans une plus grande salle, contre un adversaire du haut du tableau : l'écart se constate, il ne s'explique pas tout seul.",
    "noAwayGames": "Aucun match joué hors de la salle du club dans ce périmètre.",
    "byChampionship": "Championnat par championnat",
    "noGames": "Aucun match",
    "fewCases": "Peu d'exemples",
    "halfLegend": "Le trait gris marque 50 % : au-delà, l'équipe qui reçoit gagne plus souvent qu'elle ne perd.",
    "methodTitle": "Méthode",
    "methodVenue": "La salle de chaque match vient de sa feuille de match. Pour chaque club, l'administrateur indique si une salle est la sienne ou non.",
    "methodAway": "« Hors de sa salle » : le club reçoit dans une salle qui n'est pas la sienne (délocalisation, terrain neutre).",
    "methodExpected": "« Ces équipes chez elles » : pour chaque match délocalisé, le taux de victoire de l'équipe qui reçoit dans sa salle la même saison (ou, à moins de 5 matchs, celui de toutes les équipes du championnat), puis la moyenne sur ces matchs.",
    "methodNet": "« Écart net » : l'écart reste vrai même en tenant compte du hasard (test exact, seuil de 5 %). « Pas d'écart net » ne prouve pas l'absence d'effet : les données ne permettent pas de l'affirmer.",
    "methodFew": "« Peu d'exemples » : moins de {{min}} matchs hors de sa salle dans le périmètre lu. Pas de verdict alors : les chiffres décrivent, sans plus.",
    "methodNoVenue": "Non comptés : {{count}} matchs dont la feuille ne donne pas la salle (saisons anciennes surtout).",
    "methodUnqualified": "Non comptés : {{count}} matchs dans une salle pas encore jugée par l'administrateur.",
    "filterChampionship": "Championnat",
    "filterAll": "Tous",
    "filterAllLong": "Tous les championnats",
    "filterSeason": "Saison",
    "filterAllSeasons": "Toutes les saisons",
    "bySeason": "Saison par saison",
    "bySeasonHint": "Victoires de l'équipe qui reçoit dans sa salle. Cliquez sur une saison pour la voir en détail.",
    "bySeasonAria": "{{season}} : {{rate}} % de victoires dans sa salle, voir la saison",
    "methodSeasons": "Seules les saisons dont au moins une feuille de match donne la salle du club sont proposées."
  },
  "teamMatchUnsubscribe": {
    "pending": "Désinscription en cours…",
    "doneTitle": "Désinscription confirmée",
    "doneMessage": "Vous ne recevrez plus le résumé de match de votre équipe. Vous pouvez le réactiver à tout moment dans vos paramètres.",
    "invalidTitle": "Lien invalide",
    "invalidMessage": "Ce lien de désinscription n'est pas valide. Vous pouvez couper l'email depuis vos paramètres.",
    "errorTitle": "Désinscription impossible pour le moment",
    "errorMessage": "Le service ne répond pas. Réessayez dans quelques instants, ou coupez l'email depuis vos paramètres.",
    "toSettings": "Mes paramètres",
    "toLogin": "Se connecter"
  },
  "teamQuestions": {
    "families": {
      "season": "Saison et matchs",
      "results": "Bilans et classements",
      "opponents": "Adversaires",
      "roster": "Effectif",
      "stats": "Statistiques",
      "records": "Records",
      "history": "Histoire du club",
      "lineups": "Compositions"
    },
    "palette": {
      "placeholder": "Un mot suffit : classement, effectif, salle, records…",
      "noResultHint": "Essayer un mot comme « classement », « effectif », « salle » ou « records »."
    },
    "q": {
      "season-record": {
        "current": "Quel est le bilan de l'équipe cette saison ?",
        "last": "Quel a été le bilan de l'équipe lors de sa dernière saison ?"
      },
      "season-next-game": "Quel est le prochain match de l'équipe ?",
      "season-calendar": "Quel est le calendrier des matchs à venir ?",
      "season-competition": {
        "current": "Dans quelle compétition l'équipe joue-t-elle ?",
        "last": "Dans quelle compétition l'équipe a-t-elle joué en dernier ?"
      },
      "matches-list": "Quels matchs l'équipe a-t-elle joués ?",
      "results-overall": "Quel est le bilan global de l'équipe ?",
      "results-home-away": "L'équipe gagne-t-elle plus à domicile qu'à l'extérieur ?",
      "results-by-season": "Quel est son bilan saison par saison ?",
      "results-ranking": "Quel est le classement de l'équipe chaque saison ?",
      "results-promotions": "L'équipe a-t-elle été championne, promue ou reléguée ?",
      "results-ranking-evolution": "Comment son classement a-t-il évolué au fil des saisons ?",
      "opponents-favorite": "Contre quelles équipes gagne-t-elle le plus souvent ?",
      "opponents-nemesis": "Quelles sont ses bêtes noires ?",
      "roster-players": "Qui sont les joueurs de l'équipe ?",
      "roster-past": "Quel était l'effectif lors des saisons précédentes ?",
      "roster-profile": "Quels sont l'âge, la taille et le poste de chaque joueur ?",
      "stats-top-scorer": "Qui marque le plus de points dans l'équipe ?",
      "stats-players": "Quelles sont les statistiques de chaque joueur ?",
      "stats-team-global": "Quelles sont les statistiques globales de l'équipe ?",
      "stats-best-sector": "Dans quel secteur l'équipe est-elle parmi les meilleures du championnat ?",
      "stats-sector-attack": "Quel est le classement de l'équipe en attaque ?",
      "stats-sector-service": "Quel est le classement de l'équipe au service ?",
      "stats-sector-reception": "Quel est le classement de l'équipe en réception ?",
      "stats-sector-block": "Quel est le classement de l'équipe au bloc ?",
      "stats-sector-faults": "L'équipe fait-elle plus de fautes que les autres ?",
      "records-all-time": "Qui détient les records du club ?",
      "records-season": "Quels sont les records du club sur une saison ?",
      "records-match": "Quels sont les records du club sur un match ?",
      "history-top-tier": "Combien de saisons le club a-t-il passées en première division ?",
      "history-titles": "Combien de titres le club a-t-il remportés ?",
      "history-best-rank": "Quel est le meilleur classement de l'histoire du club ?",
      "history-milestones": "Quelles sont les grandes dates du club ?",
      "history-names": "Comment le club s'appelait-il auparavant ?",
      "history-legends": "Quels joueurs ont marqué l'histoire du club ?",
      "history-by-position": "Qui sont les piliers du club à chaque poste ?",
      "venues-hall": "Dans quelle salle l'équipe joue-t-elle ?",
      "venues-attendance": "Quelle est l'affluence moyenne à domicile ?",
      "venues-relocated": "L'équipe a-t-elle reçu hors de sa salle ?",
      "lineups-most-used": "Quel six de départ l'équipe utilise-t-elle le plus ?",
      "lineups-best": "Quelle composition gagne le plus ?"
    }
  },
  "matchSubscriptions": {
    "types": {
      "competition": "Compétition",
      "team": "Équipe"
    },
    "groups": {
      "competition": "Compétitions",
      "team": "Équipes",
      "game": "Matchs"
    },
    "button": {
      "subscribe": "Recevoir les stats",
      "subscribed": "Stats reçues par email",
      "offer": "Fan Analyste",
      "onHint": {
        "competition": "Recevoir par email les résultats et les stats de tous les matchs de cette compétition",
        "team": "Recevoir par email les résultats et les stats de tous les matchs de cette équipe",
        "game": "Recevoir par email le résultat et les stats de ce match"
      },
      "coveredBy": "Stats reçues par email avec {{name}}",
      "offHint": "Ne plus recevoir ces stats par email",
      "added": {
        "competition": "Vous recevrez les stats des matchs de {{name}} : un email par jour de match, après le dernier.",
        "team": "Vous recevrez les stats des matchs de {{name}} : un email par jour de match, après le dernier.",
        "game": "Vous recevrez les stats de {{name}} dès qu'elles seront disponibles."
      },
      "removed": "Vous ne recevrez plus ces stats par email.",
      "refused": "Abonnement impossible pour le moment."
    },
    "settings": {
      "title": "Recevoir les stats des matchs",
      "intro": "Abonnez-vous à des compétitions (3 au plus), à des équipes (5 au plus, toutes compétitions confondues) ou à des matchs : vous recevez leurs résultats et leurs statistiques par email. Une équipe est suivie dans son championnat de la saison en cours, jusqu'à la fin de la saison. Les matchs sont regroupés en un email par jour, envoyé après le dernier match que vous suivez.",
      "lockedTitle": "Offre Fan Analyste",
      "lockedText": "Suivre une compétition entière, plusieurs équipes ou des matchs précis fait partie de l'offre Fan Analyste. Avec l'offre Fan Premium, vous recevez le résumé des matchs de votre équipe.",
      "pausedText": "Vos abonnements sont en pause : ils reprendront si vous repassez à l'offre Fan Analyste. Vous pouvez les retirer.",
      "addLabel": "Ajouter un abonnement",
      "placeholder": {
        "competition": "Choisir une compétition",
        "team": "Choisir une équipe"
      },
      "search": "Rechercher…",
      "gameHint": "Pour un match précis, utilisez le bouton « Recevoir les stats » sur sa fiche.",
      "limitReached": "Limite atteinte : {{limit}} au plus. Retirez un abonnement pour en ajouter un autre.",
      "empty": "Aucun abonnement pour l'instant.",
      "adding": "Ajout en cours…",
      "remove": "Retirer",
      "removeLabel": "Ne plus suivre {{name}}",
      "added": "Abonnement ajouté.",
      "removed": "Vous ne suivez plus {{name}}."
    },
    "modal": {
      "title": "Recevoir les stats de {{name}}",
      "scope": {
        "competition": "Vous recevrez par email les résultats et les statistiques de tous les matchs de {{name}}, de la saison régulière à la phase finale.",
        "team": "Vous recevrez par email les résultats et les statistiques des matchs de {{name}} en {{competition}}.",
        "game": "Vous recevrez par email le résultat et les statistiques de ce match dès que la feuille de match sera publiée."
      },
      "end": {
        "competition": "L'abonnement couvre cette saison de la compétition. Pour la suivre la saison suivante, il faudra vous abonner à la nouvelle édition.",
        "team": "L'abonnement s'arrête à la fin de cette saison. Pour suivre l'équipe la saison suivante, il faudra vous réabonner.",
        "game": "L'abonnement prend fin une fois les stats envoyées : le match disparaît alors de vos abonnements."
      },
      "whenTitle": "Quand les emails partent",
      "whenDaily": "Un seul email par jour de match, envoyé quand le dernier match que vous suivez ce jour-là est terminé et que ses statistiques sont disponibles.",
      "whenGrouped": "Plusieurs équipes ou compétitions suivies jouent le même jour : tous leurs matchs sont réunis dans ce même email.",
      "whenLate": "Si la feuille de match est publiée en retard, ses statistiques vous arrivent dans un email complémentaire.",
      "followedTitle": {
        "competition": "Compétitions dont vous recevez déjà les stats",
        "team": "Équipes dont vous recevez déjà les stats",
        "game": "Matchs dont vous attendez déjà les stats"
      },
      "followedEmpty": {
        "competition": "Aucune compétition pour l’instant.",
        "team": "Aucune équipe pour l’instant.",
        "game": "Aucun match pour l’instant."
      },
      "limit": {
        "competition": "Vous suivez déjà {{limit}} compétitions, le maximum. Retirez-en une pour suivre {{name}}.",
        "team": "Vous suivez déjà {{limit}} équipes, le maximum. Retirez-en une pour suivre {{name}}.",
        "game": "Vous attendez déjà les stats de {{limit}} matchs, le maximum. Retirez-en un pour suivre celui-ci."
      },
      "confirm": "Recevoir les stats",
      "cancel": "Annuler"
    },
    "unsubscribeModal": {
      "title": "Ne plus recevoir ces stats ?",
      "textTeam": "Vous ne recevrez plus par email les stats des matchs de {{name}} en {{competition}}.",
      "text": {
        "competition": "Vous ne recevrez plus par email les stats des matchs de {{name}}.",
        "team": "Vous ne recevrez plus par email les stats des matchs de {{name}}.",
        "game": "Vous ne recevrez plus par email les stats de {{name}}."
      },
      "confirm": "Me désabonner"
    }
  },
  "matchDigestExample": {
    "audienceLabel": "Qui êtes-vous ?",
    "audiences": {
      "fan": "Je suis fan",
      "player": "Je suis joueur"
    },
    "fan": {
      "offer": "Offre Fan Analyste",
      "title": "Les stats de vos matchs, par email",
      "subtitle": "Abonnez-vous à une compétition, à une équipe ou à un match : après chaque soirée de match, vous recevez les résultats et les statistiques dans votre boîte mail. Ci-dessous, un exemple réel, construit sur une journée récente.",
      "content": {
        "score": "Le score et le détail des sets de chaque match",
        "players": "Le MVP et les trois meilleurs marqueurs de chaque équipe, avec leurs points en attaque, au bloc et au service",
        "figures": "Les chiffres d'équipe : efficacité en attaque, aces, blocs, fautes de service",
        "standings": "Le classement des deux équipes après la journée, et son évolution",
        "tops": "Plusieurs matchs le même soir : les tops de la soirée (points, attaque, bloc, service, réception)",
        "next": "À suivre : le prochain match de vos équipes, la prochaine journée de vos compétitions"
      },
      "whatTitle": "À quoi s'abonner",
      "what": {
        "competition": "Une compétition : tous ses matchs, de la saison régulière à la phase finale (3 au plus)",
        "team": "Une équipe : ses matchs dans son championnat de la saison (5 au plus)",
        "game": "Un match précis, depuis sa fiche, avant qu'il soit joué"
      },
      "manage": "Gérer mes abonnements",
      "offerText": "Les stats des matchs par email font partie de l'offre Fan Analyste."
    },
    "player": {
      "offer": "Offre Joueur Premium",
      "title": "Votre rapport après chaque match",
      "subtitle": "Joueur ou joueuse en championnat : après chacun de vos matchs, vous recevez vos statistiques, vos records et la comparaison avec vos moyennes. Ci-dessous, un exemple réel, construit sur un match récent.",
      "content": {
        "match": "Le score, les sets et le résultat de votre équipe",
        "stats": "Vos statistiques du match : contribution, service, attaque, bloc, réception",
        "teams": "Les chiffres des deux équipes, côte à côte",
        "averages": "La comparaison avec vos moyennes de la saison, du mois et du même mois les saisons passées",
        "records": "Vos records battus ou égalés : carrière, saison, championnat",
        "keyPoints": "Les points clés du match en quelques lignes"
      },
      "when": {
        "each": "Un email par match, rien que pour vous",
        "timing": "Dès que la feuille de match est importée, en général le soir même ou le lendemain",
        "bench": "Resté sur le banc : vous recevez le rapport du match, sans statistiques personnelles"
      },
      "howTitle": "Pour le recevoir",
      "how": {
        "linked": "Votre fiche joueur rattachée à votre compte",
        "premium": "L'offre Joueur Premium",
        "settings": "Le réglage « Rapport post-match » activé dans vos paramètres, désactivable à tout moment"
      },
      "manage": "Régler mes emails",
      "offerText": "Le rapport de match fait partie de l'offre Joueur Premium, pour un compte rattaché à sa fiche joueur."
    },
    "contentTitle": "Dans chaque email",
    "whenTitle": "Quand il part",
    "offers": "Voir les offres",
    "previewLabel": "Exemple d'email",
    "types": {
      "competition": "Une compétition",
      "team": "Une équipe ou un match"
    },
    "typeHints": {
      "competition": "Ce que reçoit l'abonné à une compétition : tous les matchs de la soirée dans un seul email.",
      "team": "Ce que reçoit l'abonné à une équipe ou à un match : le match en détail, vu depuis l'équipe suivie.",
      "player": "Ce que reçoit un joueur après son match : ici, celui d'un des meilleurs joueurs de la rencontre."
    },
    "from": "De :",
    "subject": "Objet :",
    "loading": "Chargement de l'exemple…",
    "empty": "Aucun exemple disponible pour l'instant : il apparaîtra après la prochaine journée.",
    "frameTitle": "Exemple d'email de stats",
    "caption": "Exemple réel : {{competition}}, {{day}}.",
    "anonymized": "Les noms des joueurs sont masqués sur cette page ; l'email les donne en entier.",
    "seeExample": "Voir un exemple d'email",
    "teaser": {
      "offer": "Fan Analyste · Joueur Premium",
      "title": "Les stats de vos matchs, par email",
      "text": "Fan : les résultats et les meilleurs joueurs des compétitions, équipes ou matchs que vous suivez. Joueur : votre rapport personnel après chaque match."
    },
    "seoTitle": "Les stats des matchs par email",
    "seoDescription": "Ce que contiennent les emails de stats de VolleyTracker : le récapitulatif des matchs suivis pour les fans, le rapport personnel après chaque match pour les joueurs. Exemples réels."
  },
  "matchSubscriptionsUnsubscribe": {
    "pending": "Désinscription en cours…",
    "doneTitle": "Désinscription confirmée",
    "doneAll": "Vous ne recevrez plus de récapitulatif de matchs : vos abonnements sont supprimés, ainsi que le résumé de votre équipe favorite.",
    "doneOne": "Vous ne recevrez plus les stats de {{name}}. Vos autres abonnements continuent.",
    "doneAlready": "Cet abonnement était déjà retiré. Vos autres abonnements continuent.",
    "invalidTitle": "Lien invalide",
    "invalidMessage": "Ce lien de désinscription n'est pas valide. Vous pouvez gérer vos abonnements depuis vos paramètres.",
    "errorTitle": "Désinscription impossible pour le moment",
    "errorMessage": "Le service ne répond pas. Réessayez dans quelques instants, ou gérez vos abonnements depuis vos paramètres.",
    "toSettings": "Mes abonnements",
    "toLogin": "Se connecter"
  },
  "questionProposal": {
    "inviteTitle": "Votre question n'existe pas encore ?",
    "inviteHint": "Soumettez-la à l'équipe : nous l'ajoutons si elle peut servir à d'autres.",
    "notFound": "Pas la question que vous cherchez ?",
    "submit": "Soumettre la question",
    "formTitle": "Soumettre une question à l'équipe",
    "questionLabel": "Votre question",
    "questionPlaceholder": "Ex. : quel central contre le plus par set ?",
    "commentLabel": "Précisions",
    "optional": "(facultatif)",
    "commentPlaceholder": "À quoi elle vous servirait, quel championnat, quelle saison…",
    "cancel": "Annuler",
    "send": "Envoyer",
    "sending": "Envoi…",
    "sentTitle": "Merci, votre question est transmise.",
    "sentHint": "L'équipe la lit et l'ajoute au catalogue si elle peut servir à d'autres.",
    "error": "L'envoi n'a pas abouti. Réessayez dans un instant."
  },
  "coachKpisWidget": {
    "empty": "Aucun match joué pour le moment",
    "record": "Bilan",
    "winRate": "{{rate}} de victoires",
    "sets": "Sets",
    "setsDiff": "{{diff}} au différentiel",
    "streak": "Série",
    "form": "Forme",
    "last5": "5 derniers matchs",
    "retry": "Réessayer",
    "loadError": "Impossible de charger les statistiques.",
    "streakWinShort": "{{count}}V",
    "streakLossShort": "{{count}}D",
    "streakWin": "Victoire",
    "streakWinPlural": "Victoires consécutives",
    "streakLoss": "Défaite",
    "streakLossPlural": "Défaites consécutives",
    "winShort": "V",
    "lossShort": "D",
    "winTooltip": "Victoire {{score}} contre {{opponent}}",
    "lossTooltip": "Défaite {{score}} contre {{opponent}}"
  },
  "statHelpLink": {
    "tooltip": "Comment lire ces chiffres : {{title}}",
    "ariaLabel": "Comprendre les statistiques",
    "ariaLabelFor": "Comprendre les statistiques : {{label}}",
    "text": "Comment lire ces chiffres"
  },
  "playerClaim": {
    "playerLabel": "Fiche joueur",
    "searchPlaceholder": "Votre nom ou prénom",
    "searching": "Recherche…",
    "noResult": "Aucune fiche trouvée. Essayez votre nom seul, ou l'orthographe de la feuille de match.",
    "playerRequired": "Choisissez votre fiche dans la liste.",
    "change": "Changer",
    "instagramLabel": "Votre compte Instagram",
    "instagramPlaceholder": "votre.compte",
    "instagramHint": "C'est depuis ce compte que vous confirmerez votre demande.",
    "instagramRequired": "Indiquez votre compte Instagram (lettres, chiffres, points et tirets bas).",
    "explain": "Comment se fait le rattachement : vous enverrez depuis ce compte Instagram un message, à copier-coller, au compte @{{account}}. Il porte la référence de votre demande. Nous vérifions que le compte est bien le vôtre, puis nous validons : vous recevez un email de confirmation.",
    "honor": "Je certifie être le joueur ou la joueuse de cette fiche. Revendiquer la fiche d'un tiers est une usurpation d'identité.",
    "honorRequired": "Confirmez que cette fiche est la vôtre.",
    "submit": "Demander le rattachement",
    "errorGeneric": "La demande n'a pas pu être enregistrée. Réessayez ou écrivez-nous.",
    "loading": "Chargement de votre demande…",
    "pendingTitle": "Plus qu'une étape : votre message",
    "pendingLead": "Votre demande de rattachement à la fiche {{player}} est enregistrée. Pour la confirmer, envoyez ce message au compte Instagram @{{account}}.",
    "requestLead": "Choisissez votre fiche et la façon de confirmer votre demande : un message Instagram ou Messenger, ou, sans l'un ni l'autre, un examen manuel.",
    "message": "Bonjour VolleyTracker ! Je demande le rattachement de mon compte à ma fiche joueur {{player}}. Référence : {{reference}}",
    "step1": "Copiez ce message.",
    "copy": "Copier le message",
    "copied": "Message copié",
    "referenceLabel": "Référence de votre demande :",
    "step2": "Envoyez-le en message privé au compte Instagram @{{account}}.",
    "fromAccount": "Depuis votre compte @{{handle}} : c'est lui qui prouve que la demande vient de vous.",
    "openInstagram": "Écrire à @{{account}}",
    "step3": "Nous vérifions et validons votre demande. Vous recevez un email dès que votre fiche est rattachée.",
    "rejectedTitle": "Votre demande {{reference}} n'a pas été validée.",
    "rejectedReason": "Motif : {{reason}}",
    "rejectedRetry": "Vous pouvez faire une nouvelle demande ci-dessous, ou nous écrire si vous pensez qu'il s'agit d'une erreur.",
    "contact": "Nous écrire",
    "bannerNone": "Votre compte n'est relié à aucune fiche joueur : une étape reste à faire pour accéder à la vôtre.",
    "bannerAction": "Terminer le rattachement",
    "bannerClose": "Masquer ce message",
    "searchHint": "3 lettres au moins, comme sur la feuille de match.",
    "channelLabel": "Comment confirmerez-vous votre demande ?",
    "channel": {
      "instagram": "Instagram",
      "facebook": "Messenger",
      "none": "Ni l'un ni l'autre"
    },
    "facebookLabel": "Votre profil Facebook",
    "facebookPlaceholder": "Prénom Nom, ou lien de votre profil",
    "facebookHint": "Le nom tel qu'il s'affiche sur Facebook, ou le lien de votre profil : c'est depuis ce profil que vous confirmerez votre demande, sur Messenger.",
    "facebookRequired": "Indiquez le nom de votre profil Facebook, ou son lien.",
    "explainFacebook": "Comment se fait le rattachement : vous enverrez depuis ce profil, sur Messenger, un message à copier-coller à la page Facebook de VolleyTracker. Il porte la référence de votre demande. Nous vérifions que le profil est bien le vôtre, puis nous validons : vous recevez un email de confirmation.",
    "explainManual": "Sans compte Instagram ni Facebook, votre demande est examinée manuellement par un administrateur, sur votre attestation sur l'honneur ci-dessous. Aucune pièce d'identité ne vous est demandée. Nous pourrons vous écrire à l'adresse email de votre compte si une précision est nécessaire ; vous recevez un email dès que la demande est tranchée.",
    "honorManual": "J'atteste sur l'honneur être le joueur ou la joueuse de cette fiche. Revendiquer la fiche d'un tiers est une usurpation d'identité.",
    "pendingManualTitle": "Votre demande est en cours d'examen",
    "pendingManualLead": "Votre demande de rattachement à la fiche {{player}} est enregistrée. Un administrateur l'examine sur votre attestation sur l'honneur, sans pièce d'identité. Il pourra vous écrire à l'adresse de votre compte ; vous recevez un email dès que la demande est tranchée.",
    "pendingLeadFacebook": "Votre demande de rattachement à la fiche {{player}} est enregistrée. Pour la confirmer, envoyez ce message sur Messenger à la page Facebook de VolleyTracker.",
    "step2Facebook": "Envoyez-le sur Messenger à la page Facebook de VolleyTracker.",
    "fromFacebookProfile": "Depuis votre profil Facebook « {{handle}} » : c'est lui qui prouve que la demande vient de vous.",
    "openMessenger": "Écrire sur Messenger",
    "bannerReview": "Votre demande de rattachement à votre fiche joueur est en cours d'examen par notre équipe.",
    "bannerPendingInstagram": "Dernière étape pour accéder à votre fiche joueur : envoyez votre message Instagram.",
    "bannerPendingFacebook": "Dernière étape pour accéder à votre fiche joueur : envoyez votre message sur Messenger."
  },
  "followTeam": {
    "title": "Quelle est votre équipe ?",
    "text": "Suivez votre club : son prochain match en tête de votre accueil, son classement ouvert d'emblée.",
    "withEmail": "Recevoir le résumé de chacun de ses matchs par email (désinscription en un clic)",
    "follow": "Suivre cette équipe",
    "later": "Plus tard",
    "benefitHome": "Votre club en tête de votre accueil : son prochain match, son classement",
    "benefitEmail": "Le résumé de chacun de ses matchs par email",
    "seeOffer": "Suivre mon équipe avec Fan Premium"
  },
  "firstSteps": {
    "kicker": "Premiers pas Premium",
    "kickerShort": "Premiers pas",
    "progress": "{{done}} sur {{total}}",
    "progressAria": "{{done}} étapes faites sur {{total}}",
    "close": "Masquer ces premiers pas",
    "done": "Fait",
    "go": "Y aller",
    "nextLabel": "Suivant :",
    "expand": "Afficher toutes les étapes",
    "collapse": "Masquer les étapes",
    "doneCountOne": "1 étape faite",
    "doneCountPlural": "{{count}} étapes faites",
    "steps": {
      "player_analysis": {
        "title": "Ouvrez votre analyse",
        "text": "Vos points forts, votre régularité et votre forme, match après match."
      },
      "player_ranking": {
        "title": "Situez-vous à votre poste",
        "text": "Votre rang à votre poste dans votre championnat, saison après saison."
      },
      "player_opponents": {
        "title": "Votre bilan contre chaque adversaire",
        "text": "Victoires, défaites et vos chiffres contre chaque équipe affrontée."
      },
      "scout_opponent": {
        "title": "Préparez le match contre {{team}}",
        "text": "Qui marque, qui sert, qui bloque chez eux : leurs chiffres de la saison."
      },
      "player_progress": {
        "title": "Votre progression, saison après saison",
        "text": "Vos chiffres d'une saison à l'autre : ce qui a progressé, ce qui a baissé."
      },
      "match_email": {
        "title": "Votre rapport après chaque match",
        "text": "Il arrive par email dès que les stats sont publiées. Réglable dans vos notifications."
      },
      "favorite_team": {
        "title": "Choisissez votre équipe",
        "text": "Elle passe en tête de votre accueil, et son résumé de match peut vous arriver par email."
      },
      "team_stats": {
        "title": "Les stats de votre équipe",
        "text": "Ses chiffres de la saison, secteur par secteur."
      },
      "season_leaders": {
        "title": "Les meilleures performances de la saison",
        "text": "Les classements par secteur : attaque, service, bloc, réception."
      },
      "player_path": {
        "title": "Une carrière en entier",
        "text": "Ouvrez une fiche : tous les matchs, toutes les saisons, et le total de chaque geste."
      },
      "season_records": {
        "title": "Les records, saison par saison",
        "text": "Les meilleures performances individuelles de chaque secteur de jeu."
      }
    }
  },
  "googleAuth": {
    "divider": "ou",
    "dividerEmail": "ou avec votre adresse email",
    "busy": "Connexion avec Google…",
    "linkLead": "Un compte VolleyTracker existe déjà avec l'adresse",
    "linkHint": "Saisissez son mot de passe une seule fois pour le lier à Google : ensuite, Google suffira.",
    "passwordLabel": "Mot de passe VolleyTracker",
    "linkSubmit": "Lier et me connecter",
    "linkCancel": "Annuler",
    "forgotPassword": "Mot de passe oublié ?",
    "errorPassword": "Mot de passe incorrect.",
    "errorToken": "La connexion avec Google a échoué. Réessayez.",
    "errorDisabled": "La connexion avec Google n'est pas disponible pour le moment.",
    "errorMismatch": "Ce compte VolleyTracker est déjà lié à un autre compte Google.",
    "errorGeneric": "Une erreur est survenue. Réessayez.",
    "continueWith": "Continuer avec Google",
    "signupWith": "S'inscrire avec Google",
    "signinWith": "Se connecter avec Google",
    "fallbackHint": "Choisissez votre compte dans la fenêtre de Google, ou cliquez sur le bouton ci-dessous.",
    "loadFailed": "Google n'a pas pu être chargé (bloqueur de contenu ou réseau). Réessayez, ou utilisez votre adresse email."
  },
  "acquisition": {
    "instagram": "Instagram",
    "facebook": "Facebook",
    "tiktok": "TikTok",
    "googleSearch": "Recherche Google",
    "wordOfMouth": "Bouche à oreille",
    "club": "Mon club ou mon entraîneur",
    "media": "Un média (presse, TV, podcast)",
    "other": "Autre",
    "otherPlaceholder": "Précisez (facultatif)",
    "otherAriaLabel": "Précisez comment vous avez connu VolleyTracker",
    "promptTitle": "Comment avez-vous connu VolleyTracker ?",
    "promptLead": "Une seule question, pour savoir où parler de la plateforme.",
    "submit": "Envoyer",
    "skip": "Passer",
    "error": "La réponse n'a pas pu être enregistrée. Réessayez."
  },
  "adminDataFreshness": {
    "title": "État des imports",
    "trigger": "État des imports : {{status}}",
    "level": {
      "ok": "À jour",
      "warning": "En retard",
      "critical": "En panne",
      "unknown": "Inconnu"
    },
    "checked": "Vérifié {{when}}",
    "refresh": "Actualiser",
    "loading": "Chargement…",
    "error": "Indicateur injoignable : l'API ne répond pas.",
    "errorStale": "Dernière actualisation en échec : état précédent affiché.",
    "ago": {
      "now": "à l'instant",
      "minutes": "il y a {{n}} min",
      "hours": "il y a {{n}} h",
      "days": "il y a {{n}} j"
    },
    "imports": {
      "title": "Derniers imports",
      "fast": "Import rapide (fast)",
      "batch": "Import complet (batch)",
      "lastSuccess": "Dernier succès {{when}}",
      "noSuccess": "Aucun passage réussi enregistré",
      "lastFailed": "Dernier passage en échec à {{time}}",
      "missedOne": "1 passage prévu manqué",
      "missedMany": "{{n}} passages prévus manqués",
      "running": "Passage en cours",
      "schedule": {
        "nominal": "Crontab illisible : retard compté sur la cadence habituelle",
        "missing": "Absent de la crontab"
      }
    },
    "games": {
      "title": "Matchs joués sans stats",
      "hint": "Feuille LNV attendue : en retard {{warning}} h après la fin estimée du match, en panne après {{critical}} h.",
      "none": "Aucun match en attente de stats.",
      "more": "et {{n}} de plus",
      "status": {
        "pending": "en attente",
        "failed": "import en échec",
        "no_stats": "feuille sans stats",
        "no_stats_temp": "feuille sans stats, nouvel essai prévu",
        "success": "import réussi",
        "not_eligible": "non éligible",
        "never": "jamais tenté",
        "live_partial": "feuille partielle"
      }
    },
    "links": {
      "crontab": "Automatisations",
      "health": "Tableau de santé"
    }
  },
  "adminPanel": {
    "button": "Administration",
    "kicker": "Administration",
    "close": "Fermer le panneau d'administration",
    "loading": "Chargement…",
    "loadError": "L'état n'a pas pu être chargé.",
    "retry": "Réessayer",
    "confirm": "Confirmer",
    "cancel": "Annuler",
    "actionFailed": "L'action a échoué.",
    "backoffice": "Back-office",
    "links": {
      "gameEditInfo": "Modifier le match",
      "gameEditStats": "Modifier la feuille de stats",
      "gameResolveStats": "Noms LNV non reconnus",
      "playerEdit": "Modifier la fiche",
      "playerPositionCoherence": "Cohérence des postes",
      "playerMerge": "Fusionner un doublon"
    },
    "game": {
      "title": "Stats du match",
      "statusTitle": "État des stats",
      "noSheet": "Aucune feuille en base",
      "import": {
        "none": "Import jamais tenté",
        "pending": "Import en attente",
        "success": "Importées",
        "failed": "Import en échec",
        "no_stats": "Pas de stats (abandon)",
        "no_stats_temp": "Feuille vide, nouvel essai prévu",
        "not_eligible": "Hors import automatique"
      },
      "data": {
        "none": "Statut inconnu",
        "live_partial": "Partielles (direct)",
        "finished_unverified": "Non re-vérifiées",
        "verified": "Vérifiées",
        "stable": "Stables"
      },
      "importHint": {
        "none": "Le cron n'a encore rien tenté pour ce match.",
        "pending": "Le cron retentera l'import au prochain passage.",
        "success": "Feuille importée ; le cron la re-vérifie pendant 3 jours.",
        "failed": "Échec après plusieurs tentatives : le cron n'insiste plus, une action manuelle est nécessaire.",
        "no_stats": "La page LNV répond mais sans stats après toutes les relances : le cron a abandonné.",
        "no_stats_temp": "La page LNV répond sans stats pour l'instant : relance programmée.",
        "not_eligible": "Pas de lien de feuille, ou match trop ancien : le cron ne le traite pas."
      },
      "lastError": "Dernière erreur :",
      "lastAttempt": "Dernier essai",
      "attempts": "{{ count }} tentative(s)",
      "nextAttempt": "Prochain essai",
      "noneScheduled": "Aucun prévu",
      "importedAt": "Importées le",
      "reverify": "Re-vérifications",
      "reverifyCount": "{{ count }}, dont {{ clean }} propre(s) d'affilée",
      "sheetLink": "Feuille LNV",
      "noLink": "Aucun lien",
      "importTitle": "Importer les stats",
      "importUrl": "Lien de la feuille (page MatchStatistics.aspx)",
      "importAction": "Importer les stats",
      "importConfirm": "Lancer l'import depuis cette feuille ?",
      "reverifyTitle": "Re-vérifier contre la feuille LNV",
      "reverifyHint": "Compare la base à la feuille, sans rien écrire ; les écarts s'appliquent ensuite si tu valides.",
      "reverifyAction": "Comparer à la feuille",
      "needsLink": "Il faut un lien de feuille.",
      "noDifference": "Aucun écart avec la feuille.",
      "differences": "{{ count }} écart(s) avec la feuille :",
      "rosterAdded": "Ligne à ajouter (présente sur la feuille)",
      "rosterRemoved": "Ligne à retirer (absente de la feuille)",
      "unresolved": "Noms de la feuille non reconnus :",
      "apply": "Appliquer les {{ count }} correction(s)",
      "scoreTitle": "Score FFVB",
      "scoreAction": "Lire le score FFVB",
      "needsCalendar": "Il faut un calendrier FFVB sur la compétition et un code de match.",
      "scoreSame": "Le score en base est celui de la FFVB.",
      "scoreApply": "Appliquer le score FFVB",
      "field": {
        "score": "Score",
        "set1": "Set 1",
        "set2": "Set 2",
        "set3": "Set 3",
        "set4": "Set 4",
        "set5": "Set 5",
        "spectators": "Spectateurs",
        "mvpNameRaw": "MVP"
      }
    },
    "player": {
      "title": "Poste du joueur",
      "positionTitle": "Poste par défaut",
      "cascadeHint": "Le poste affiché d'un match suit la feuille, sinon la participation à la compétition, sinon la fiche. Corrige au niveau où l'erreur se trouve.",
      "defaultHint": "Dernier recours de la cascade",
      "participationsTitle": "Par compétition",
      "noParticipation": "Aucune participation enregistrée.",
      "orphanGames": "Matchs sans participation",
      "level": {
        "player": "Fiche",
        "participation": "Participation",
        "statistic": "Feuille de match"
      },
      "followPlayer": "Suit la fiche",
      "followParticipation": "Suit la participation",
      "saved": "Enregistré.",
      "gamesTitle": "Par match",
      "noGame": "Aucune feuille de match.",
      "fromPlayer": "de la fiche"
    },
    "edit": "Modifier"
  },
  "lockedPreview": {
    "cta": "Voir {{ offer }}",
    "pages": {
      "playerEvolution": "Ta forme match après match et ta progression d'une saison à l'autre, secteur par secteur.",
      "playerAnalysis": "Ton analyse complète : où tu te situes à ton poste, tes fautes, ta régularité, tes matchs de référence et tes pics de forme.",
      "playerRecordsOwn": "Tes records personnels, match par match et saison par saison, dans chaque secteur.",
      "playerRecords": "Les records personnels du joueur, match par match et saison par saison, dans chaque secteur.",
      "mvpRankings": "Le classement complet des MVP de chaque saison, par compétition, poste et équipe, et la liste de tous les matchs.",
      "playerComparison": "Où tu te situes face aux joueurs de ton poste, ton Score Global, tes face-à-face et le récapitulatif de tes saisons.",
      "playerTitularisation": "Tes matchs et tes sets commencés comme titulaire, tes entrées et tes sorties, saison par saison.",
      "playerRotations": "Tes positions de départ sur le terrain, set par set et saison par saison.",
      "playerRankings": "Ton rang dans chaque catégorie de chaque saison, et tes places dans les tops 3, 5 et 10.",
      "seasonRecords": "Tous les records de chaque saison, secteur par secteur, avec leurs détenteurs, et les filtres par poste, équipe et saison.",
      "statistics": "Les classements complets de chaque secteur, sur un match, une saison ou une carrière, avec tous les filtres.",
      "statisticsMatches": "Les classements des matchs : les plus longs et les plus courts, les sets aux plus grands écarts, les tie-breaks les plus disputés.",
      "playerResults": "Ses résultats saison par saison, à domicile et à l'extérieur, et ses classements de chaque saison.",
      "playerTitles": "Ses titres avec ses équipes et ses trophées de MVP, match par match.",
      "playerTeammates": "Tous ses coéquipiers, saison par saison, avec leurs bilans ensemble.",
      "sectorAnalysis": "Les secteurs qui font gagner : le rang de chaque équipe secteur par secteur, comparé au classement, compétition par compétition et en cumul.",
      "competitionComparison": "Deux compétitions face à face : vue d'ensemble, postes, classement, nationalités et records.",
      "competitionStats": "Les tops de la compétition par secteur, sur la saison, un match ou une journée, le classement MVP et les records.",
      "competitionAnalysis": "Les équipes classées secteur par secteur, la comparaison par poste et l'affluence salle par salle.",
      "teamStats": "Les statistiques de chaque joueur de l'équipe, celles de l'équipe et ses classements secteur par secteur.",
      "teamRecords": "Les records de l'équipe : de tous les temps, de la saison et sur un match.",
      "nationalities": "Les nationalités de chaque championnat : le top 10, la part d'étrangers par équipe et par poste, l'évolution saison après saison.",
      "divisionMobility": "Les mouvements de joueurs entre divisions : qui monte, qui descend, et avec quel statut dans sa nouvelle équipe.",
      "homeAdvantage": "L'avantage du terrain salle par salle : victoires à domicile, écarts de points et affluence.",
      "playerHeights": "La taille des joueurs par poste, saison, championnat et nationalité, avec la distribution complète.",
      "teamContinuity": "La continuité des effectifs d'une saison à l'autre et son lien avec les résultats.",
      "ageExperience": "L'âge et l'expérience des effectifs, titulaires compris, et leur évolution saison après saison.",
      "titleRace": "La course à la première place : les victoires des premiers matchs comparées au classement final.",
      "playerConfrontation": "Ton duel avec ce joueur : vos matchs l'un contre l'autre et vos statistiques face à face.",
      "playerSetters": "Ton efficacité en attaque avec chacun de tes passeurs, saison par saison."
    },
    "mvp": {
      "total": "{{ count }} MVP désignés"
    },
    "detail": {
      "results": "Bilan : {{ wins }} V – {{ losses }} D · matchs joués : {{ matches }}",
      "titles": "Titres avec ses équipes : {{ count }}",
      "teammates": "Coéquipiers : {{ count }}"
    },
    "comparison": {
      "games": "Matchs de la compétition : {{ count }}"
    },
    "team": {
      "scorer": "4e marqueur : {{ name }}, {{ points }} points ({{ competition }})"
    },
    "nationalities": {
      "country": "4e pays étranger de la saison {{ season }} : {{ name }} ({{ count }})"
    },
    "matchDigest": {
      "example": "Voir un exemple de récapitulatif"
    },
    "pill": "Aperçu",
    "hint": "Voir un aperçu de la page",
    "figure": {
      "unlock": "Cette saison avec {{ offer }}",
      "fullStudy": "Toute l'étude",
      "allSeasons": "Toutes les saisons",
      "q": {
        "ageExperience": "Quel âge ont les titulaires de première division ?",
        "playerHeights": "Combien mesure un joueur de première division ?",
        "teamContinuity": "Combien de joueurs une équipe garde-t-elle d'une saison à l'autre ?",
        "divisionMobility": "Combien de joueurs montent de deuxième en première division ?",
        "homeAdvantage": "L'équipe qui reçoit gagne-t-elle plus souvent ?",
        "titleRace": "Combien de victoires faut-il pour finir premier ?",
        "competitionSectors": "Quelle équipe domine chaque secteur ?"
      },
      "label": {
        "ageExperience": "âge moyen des titulaires",
        "playerHeights": "taille médiane",
        "teamContinuity": "joueurs gardés en moyenne",
        "divisionMobility": "joueurs montés en première division",
        "homeAdvantage": "matchs étudiés",
        "homeAdvantageAnswer": "victoires à domicile",
        "titleRace": "saisons étudiées",
        "titleRaceAnswer": "victoires qu'il faut sur les 10 premiers matchs",
        "competitionSectors": "4e aux break points"
      },
      "unit": {
        "years": "ans"
      },
      "unlockAnswer": "La réponse avec {{ offer }}"
    }
  }
}
