@courthive/i18n 0.4.8 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -783,7 +783,177 @@
783
783
  "structure": "Par structure",
784
784
  "time": "Par heure"
785
785
  },
786
- "showCompleted": "Afficher les terminés"
786
+ "showCompleted": "Afficher les terminés",
787
+ "callToCourt": "Appeler sur le court",
788
+ "now": "Maintenant",
789
+ "nowRowActions": "Maintenant — actions groupées",
790
+ "status": "Statut",
791
+ "suspendAll": "Tout suspendre",
792
+ "resumeAll": "Tout reprendre",
793
+ "startAll": "Démarrer tous les matchs",
794
+ "rescheduleAll": "Tout reprogrammer",
795
+ "unscheduleAll": "Tout déprogrammer",
796
+ "rescheduleNowTitle": "Reprogrammer les matchs en cours",
797
+ "chooseDate": "Choisir une date",
798
+ "chooseTime": "Choisir une heure",
799
+ "selectAll": "Tout sélectionner",
800
+ "selectNone": "Tout désélectionner",
801
+ "reschedule": "Reprogrammer",
802
+ "shift": "Décaler vers le bas",
803
+ "shiftCourtsTitle": "Décaler les courts vers le bas",
804
+ "shiftRows": "Lignes à décaler vers le bas",
805
+ "noActiveMatches": "Aucun match en cours",
806
+ "startOnDropTitle": "Démarrer le match au dépôt ?",
807
+ "startOnDropPrompt": "Vous avez déposé un match sur la bande Maintenant. Démarrer automatiquement les matchs déposés sur Maintenant à l’avenir ? Vous pouvez modifier ce choix à tout moment avec le bouton de démarrage au dépôt dans l’en-tête de la programmation.",
808
+ "unscheduleAllTitle": "Tout déprogrammer ?",
809
+ "unscheduleAllConfirm": "Retirer la date, l’heure et le court pour {{count}} match(s) ? Ils retournent au catalogue des matchs non programmés ; leurs résultats ne sont pas modifiés.",
810
+ "plan": {
811
+ "badge": "PLANIFICATION — non actif",
812
+ "empty": "Aucun plan alternatif pour le moment. Créez-en un pour préparer une programmation de secours en dehors de la grille active.",
813
+ "create": "Créer un plan",
814
+ "rename": "Renommer",
815
+ "nameLabel": "Nom du plan",
816
+ "duplicate": "Dupliquer",
817
+ "copyName": "{{name}} (copie)",
818
+ "summary": "{{planned}} planifiés · {{unscheduled}} non programmés · {{skipped}} ignorés",
819
+ "completedLocked": "Terminé — un plan ne peut pas le déplacer",
820
+ "conflictTip": "Ce plan réserve deux fois le même court à la même heure",
821
+ "new": "Nouveau",
822
+ "delete": "Supprimer",
823
+ "makeOfficial": "Rendre officiel",
824
+ "rebase": "Rebaser",
825
+ "outOfDate": "⚠ obsolète",
826
+ "outOfDateTip": "La programmation officielle a changé depuis la création de ce plan.",
827
+ "deleteTitle": "Supprimer le plan ?",
828
+ "deleteQuery": "Ceci supprime le plan alternatif. La programmation officielle n’est pas affectée.",
829
+ "commitTitle": "En faire la programmation officielle ?",
830
+ "commitQuery": "Applique le plan à la programmation active (matchs non terminés uniquement).",
831
+ "commitSkip": " {{count}} match(s) terminé(s) seront ignorés.",
832
+ "commitDrift": " Ce plan n’est plus à jour.",
833
+ "applied": "Plan appliqué — {{count}} matchs programmés",
834
+ "createFailed": "Impossible de créer le plan",
835
+ "applyFailed": "Impossible d’appliquer le plan",
836
+ "updateFailed": "La mise à jour du plan a échoué",
837
+ "defaultName": "Plan {{n}}"
838
+ },
839
+ "drying": "Séchage",
840
+ "lockSchedule": "Verrouiller sur ce créneau",
841
+ "unlockSchedule": "Déverrouiller la programmation",
842
+ "lockedTip": "Programmation verrouillée — les effacements et reprogrammations ignorent ce match",
843
+ "lockedWithReason": "Programmation verrouillée ({{reason}}) — les effacements et reprogrammations ignorent ce match",
844
+ "lockedMoveTitle": "Déplacer un match verrouillé ?",
845
+ "lockedMoveConfirm": "Ce déplacement concerne un match dont la programmation est verrouillée. Le déplacer quand même ? Le verrou suit le match jusqu’à son nouveau créneau.",
846
+ "lockedPreserved_one": "{{count}} match verrouillé sera conservé.",
847
+ "lockedPreserved_other": "{{count}} matchs verrouillés seront conservés.",
848
+ "lockLabel": "Verrouiller",
849
+ "lockActions": "Verrouiller ou déverrouiller les placements de cette journée",
850
+ "exitBulkForLock": "Quittez le mode groupé pour utiliser les actions de verrouillage",
851
+ "lockDay": "Verrouiller cette journée",
852
+ "unlockDay": "Déverrouiller cette journée",
853
+ "lockDayTitle": "Verrouiller les placements de cette journée ?",
854
+ "unlockDayTitle": "Déverrouiller les placements de cette journée ?",
855
+ "lockDayConfirm_one": "Épingler {{count}} placement le {{date}}. Les effacements et reprogrammations l’ignoreront.",
856
+ "lockDayConfirm_other": "Épingler {{count}} placements le {{date}}. Les effacements et reprogrammations les ignoreront.",
857
+ "unlockDayConfirm_one": "Libérer {{count}} placement épinglé le {{date}}.",
858
+ "unlockDayConfirm_other": "Libérer {{count}} placements épinglés le {{date}}.",
859
+ "lockedCount_one": "{{count}} match verrouillé",
860
+ "lockedCount_other": "{{count}} matchs verrouillés",
861
+ "unlockedCount_one": "{{count}} match déverrouillé",
862
+ "unlockedCount_other": "{{count}} matchs déverrouillés",
863
+ "nothingToLock": "Rien ne peut être verrouillé ou déverrouillé ce jour-là.",
864
+ "inspector": {
865
+ "show": "Afficher l’inspecteur",
866
+ "hide": "Masquer l’inspecteur",
867
+ "readiness": {
868
+ "heading": "Disponibilité",
869
+ "ready": "Aucun problème de disponibilité pour cet horaire.",
870
+ "overlap": "{{names}} est attendu sur le court en {{labels}} à cette heure",
871
+ "recovery": "{{names}} a besoin de temps de récupération",
872
+ "recoveryNotBefore": "{{names}} a besoin de temps de récupération — pas avant {{time}}",
873
+ "dependencyNotBefore": "En attente de {{labels}} — pas avant {{time}}",
874
+ "dependencyUnscheduled": "En attente de {{labels}}, qui n’est pas programmé",
875
+ "undetermined": "Participants pas encore déterminés — en attente de {{labels}}",
876
+ "skip": {
877
+ "generic": "La disponibilité ne peut pas être évaluée pour ce match.",
878
+ "bye": "Un BYE n’a pas de disponibilité à vérifier.",
879
+ "completed": "Déjà terminé — plus rien à préparer.",
880
+ "notScheduled": "Pas encore programmé, il n’y a donc aucune heure de référence.",
881
+ "noTime": "Aucune heure programmée, la disponibilité ne peut donc pas être projetée.",
882
+ "unknownMatchUp": "Ce match ne fait plus partie du tournoi."
883
+ }
884
+ },
885
+ "actions": {
886
+ "trigger": "Actions du match",
887
+ "viewDraw": "Voir le tableau",
888
+ "participants": "Participants"
889
+ },
890
+ "rest": {
891
+ "heading": "Repos",
892
+ "hoursMinutes": "{{hours}} h {{minutes}} min",
893
+ "minutesOnly": "{{minutes}} min",
894
+ "rested": "{{rested}} de repos — {{required}} requis",
895
+ "resting": "{{rested}} sur {{required}} — prêt à {{time}}",
896
+ "onCourt": "Sur le court en ce moment",
897
+ "onCourtUntil": "Sur le court en ce moment — prêt à {{time}}",
898
+ "onCourtOverrun": "Sur le court en ce moment — au-delà de la fin prévue",
899
+ "anchorUnreliable": "Le match précédent n’a pas d’heure de fin enregistrée — le repos ne peut pas être mesuré",
900
+ "noPriorMatch": "Aucun match précédent aujourd’hui",
901
+ "typeChange": "changement de type",
902
+ "ordinal": "match n°{{ordinal}} aujourd’hui",
903
+ "ordinalLimit": "match n°{{ordinal}} aujourd’hui, maximum {{limit}}",
904
+ "atLimit": "Au nombre maximal de matchs par jour",
905
+ "source": {
906
+ "endTime": "d’après l’heure de fin enregistrée",
907
+ "scoredTime": "d’après la saisie du score (est.)",
908
+ "startTime": "estimé d’après l’heure de début (est.)",
909
+ "calledAt": "estimé d’après l’appel sur le court (est.)",
910
+ "scheduledTime": "estimé d’après l’heure programmée (est.)"
911
+ },
912
+ "discarded": "Lecture impossible : {{rungs}}",
913
+ "discardedName": {
914
+ "endTime": "heure de fin enregistrée",
915
+ "scoredTime": "saisie du score",
916
+ "startTime": "heure de début",
917
+ "calledAt": "appel sur le court",
918
+ "scheduledTime": "heure programmée"
919
+ },
920
+ "skip": {
921
+ "generic": "Le repos ne peut pas être évalué pour ce match.",
922
+ "bye": "Un BYE ne nécessite aucun repos.",
923
+ "completed": "Déjà terminé — le repos ne s’applique plus.",
924
+ "noParticipants": "Participants pas encore déterminés, il n’y a donc personne à faire reposer.",
925
+ "unknownMatchUp": "Ce match ne fait plus partie du tournoi."
926
+ }
927
+ }
928
+ },
929
+ "byeScheduledTitle": "Le match est programmé",
930
+ "byeScheduledBody": "Ce match a déjà des informations de programmation. Attribuer un BYE laissera le créneau de court occupé si vous ne le retirez pas.",
931
+ "byeKeepScheduling": "Conserver la programmation",
932
+ "byeRemoveScheduling": "Retirer la programmation",
933
+ "startAllRest": {
934
+ "title": "Démarrer des matchs avec des joueurs encore au repos ?",
935
+ "pill": "{{count}} ont besoin de repos",
936
+ "intro": "{{count}} de ces matchs comporte un joueur qui n’a pas eu son temps de récupération :",
937
+ "resting": "{{name}}{{where}} — {{rested}} de repos sur {{required}} requis",
938
+ "onCourt": "{{name}}{{where}} — encore sur le court dans un match précédent"
939
+ },
940
+ "card": {
941
+ "rest": {
942
+ "onCourt": "sur le court",
943
+ "none": "aucun match précédent",
944
+ "unknown": "repos inconnu",
945
+ "limit": "n°{{ordinal}}",
946
+ "tooltipRest": "{{name}} — {{rested}} de repos sur {{required}} requis",
947
+ "tooltipOnCourt": "{{name}} — encore sur le court",
948
+ "tooltipOnCourtOverrun": "{{name}} — encore sur le court, au-delà de la fin prévue",
949
+ "tooltipNone": "{{name}} — aucun match précédent aujourd’hui",
950
+ "tooltipUnknown": "{{name}} — le match précédent n’a pas d’heure de fin enregistrée"
951
+ }
952
+ },
953
+ "venueFrame": {
954
+ "notice": "Heures en {{timeZone}} — fuseau du site non défini",
955
+ "noticeTitle": "Ce tournoi n’a pas de fuseau horaire défini ; les heures sont donc affichées dans le fuseau de cet appareil ({{timeZone}}). Définissez le fuseau horaire du site pour que tous les opérateurs lisent la même heure."
956
+ }
787
957
  },
788
958
  "penalties": {
789
959
  "fail2signout": "Défaut de désinscription",
@@ -822,7 +992,8 @@
822
992
  "dismiss": "Ignorer",
823
993
  "iSavedIt": "Je l'ai enregistré",
824
994
  "remove": "Retirer",
825
- "continueAndUnschedule": "Continuer et déprogrammer"
995
+ "continueAndUnschedule": "Continuer et déprogrammer",
996
+ "noScore": "pas de score"
826
997
  },
827
998
  "modals": {
828
999
  "deleteEvents": {
@@ -881,7 +1052,10 @@
881
1052
  "themeSystem": "Système",
882
1053
  "font": "Police",
883
1054
  "dangerZone": "Zone de danger",
884
- "schedule2": "Page de programmation 2"
1055
+ "schedule2": "Page de programmation 2",
1056
+ "options": "Options",
1057
+ "officialsBoard": "Tableau des officiels",
1058
+ "linkedTournaments": "Tournois liés"
885
1059
  },
886
1060
  "editTournamentName": {
887
1061
  "title": "Modifier le nom du tournoi",
@@ -1025,7 +1199,8 @@
1025
1199
  "notClaimed": "Non revendiqué",
1026
1200
  "offline": "Hors ligne",
1027
1201
  "online": "En ligne",
1028
- "uploadWarning": "Avertissement : cette action remplacera l'enregistrement du tournoi sur le serveur"
1202
+ "uploadWarning": "Avertissement : cette action remplacera l'enregistrement du tournoi sur le serveur",
1203
+ "scopedAccess": "Accès ciblé"
1029
1204
  },
1030
1205
  "inviteUser": {
1031
1206
  "title": "Inviter un utilisateur",
@@ -1456,6 +1631,62 @@
1456
1631
  "pickTimes": "Définissez les heures de début et de fin.",
1457
1632
  "invalidWindow": "L'heure de début doit précéder l'heure de fin.",
1458
1633
  "conflictWarning": "Inscription ajoutée — le participant a un autre engagement pendant ce créneau."
1634
+ },
1635
+ "editDrawNames": {
1636
+ "title": "Renommer les tableaux",
1637
+ "minChars": "minimum 2 caractères",
1638
+ "drawRenamed": "Tableau renommé"
1639
+ },
1640
+ "groupProfile": {
1641
+ "title": "Profil du groupe",
1642
+ "empty": "Aucun membre dans ce groupe pour le moment.",
1643
+ "addMembers": "Ajouter des membres",
1644
+ "removeSelected": "Retirer la sélection",
1645
+ "selectToAdd": "Sélectionner les participants à ajouter",
1646
+ "blockingRole": "Les membres d’un groupe {{role}} empêchent qu’un officiel soit affecté à leurs matchs.",
1647
+ "columns": {
1648
+ "role": "Rôle",
1649
+ "name": "Nom",
1650
+ "contact": "Contact"
1651
+ },
1652
+ "counts": {
1653
+ "members_one": "{{count}} membre",
1654
+ "members_other": "{{count}} membres"
1655
+ },
1656
+ "contactPerson": "Personne à contacter",
1657
+ "contactPersonNone": "Aucune"
1658
+ },
1659
+ "callSheet": {
1660
+ "title": "Feuille d’appel",
1661
+ "contactSelected": "Contact sélectionné",
1662
+ "reachable_one": "{{count}} joignable",
1663
+ "reachable_other": "{{count}} joignables",
1664
+ "withoutContact_one": "{{count}} sans coordonnées",
1665
+ "withoutContact_other": "{{count}} sans coordonnées",
1666
+ "noContact": "Aucune coordonnée enregistrée",
1667
+ "textAll_one": "Envoyer un SMS à {{count}}",
1668
+ "textAll_other": "Envoyer un SMS à {{count}}",
1669
+ "emailAll_one": "Envoyer un e-mail à {{count}}",
1670
+ "emailAll_other": "Envoyer un e-mail à {{count}}",
1671
+ "copyNumbers": "Copier les numéros",
1672
+ "print": "Imprimer",
1673
+ "notReached_one": "{{count}} personne ne recevra pas ce message",
1674
+ "notReached_other": "{{count}} personnes ne recevront pas ce message",
1675
+ "noMobiles": "Personne sur cette liste n’a de numéro de mobile",
1676
+ "noEmails": "Personne sur cette liste n’a d’adresse e-mail",
1677
+ "noNumbers": "Aucun numéro à copier",
1678
+ "numbersCopied_one": "{{count}} numéro copié",
1679
+ "numbersCopied_other": "{{count}} numéros copiés",
1680
+ "copyFailed": "Impossible de copier dans le presse-papiers",
1681
+ "columns": {
1682
+ "name": "Nom",
1683
+ "role": "Rôle",
1684
+ "contact": "Contact",
1685
+ "mobile": "Mobile",
1686
+ "telephone": "Téléphone",
1687
+ "email": "E-mail",
1688
+ "public": "Public"
1689
+ }
1459
1690
  }
1460
1691
  },
1461
1692
  "dashboard": {
@@ -1631,7 +1862,21 @@
1631
1862
  "activeDatesPromptAction": "Définir les dates actives",
1632
1863
  "cannotDeleteTournament": "Impossible de supprimer le tournoi",
1633
1864
  "tournamentNotEnded": "Impossible de supprimer un tournoi avant sa date de fin. Fixez d'abord la date de fin à une date passée, puis supprimez.",
1634
- "deleteForbidden": "Vous n'êtes pas autorisé à supprimer ce tournoi."
1865
+ "deleteForbidden": "Vous n'êtes pas autorisé à supprimer ce tournoi.",
1866
+ "matchUpScoredElsewhere": "Un autre utilisateur vient de saisir le score de ce match ({{score}}). Vérifiez avant d’enregistrer.",
1867
+ "overwriteRemoteScore": "Un autre utilisateur a saisi le score de ce match ({{score}}). Écraser avec votre résultat ?",
1868
+ "cannotModifyParticipant": "Le participant n’a pas pu être enregistré",
1869
+ "schedule": {
1870
+ "endBeforeStart": "L’heure de fin {{endTime}} est antérieure à l’heure de début {{startTime}} — vérifiez le réglage AM/PM.",
1871
+ "startAfterEnd": "L’heure de début {{startTime}} est postérieure à l’heure de fin {{endTime}} — vérifiez le réglage AM/PM.",
1872
+ "beforeCourtOpens": "{{time}} est avant l’ouverture du court à {{earliest}}.",
1873
+ "afterCourtCloses": "{{time}} est après la fermeture du court à {{latest}}.",
1874
+ "invalidEndTime": "Heure de fin non enregistrée : elle doit être postérieure à l’heure de début, ou dans les 12 heures qui suivent si le match s’est terminé après minuit.",
1875
+ "invalidStartTime": "Heure de début non enregistrée : elle doit précéder l’heure de fin déjà enregistrée.",
1876
+ "invalidTime": "Cette heure n’a pas pu être enregistrée.",
1877
+ "courtNotFound": "Ce court n’existe plus. Actualisez le tournoi et réessayez.",
1878
+ "notSaved": "La modification de la programmation n’a pas été enregistrée : {{reason}}"
1879
+ }
1635
1880
  },
1636
1881
  "loginMenu": {
1637
1882
  "authorization": "Autorisation",
@@ -1733,7 +1978,16 @@
1733
1978
  "cityState": "Ville/Région",
1734
1979
  "nickname": "Surnom",
1735
1980
  "role": "Rôle",
1736
- "teamAffiliation": "Affiliation d'équipe"
1981
+ "teamAffiliation": "Affiliation d'équipe",
1982
+ "contactPublic": "Contact public",
1983
+ "contactPublicYes": "Les coordonnées peuvent être partagées publiquement",
1984
+ "contactPublicNo": "Les coordonnées ne sont pas partagées publiquement",
1985
+ "contactActions": "Contact",
1986
+ "contactCall": "Appeler",
1987
+ "contactText": "Envoyer un SMS",
1988
+ "contactEmail": "Envoyer un e-mail",
1989
+ "contactPrivateMark": "Non partagé publiquement",
1990
+ "contactMore": "D’autres contacts sur la feuille d’appel"
1737
1991
  },
1738
1992
  "bracket": {
1739
1993
  "participant": "Participant",
@@ -1791,7 +2045,8 @@
1791
2045
  "official": "Officiel",
1792
2046
  "status": "Statut",
1793
2047
  "updatedAt": "Mis à jour",
1794
- "calledAt": "Appelé"
2048
+ "calledAt": "Appelé",
2049
+ "scheduleLocked": "Verrouillé"
1795
2050
  },
1796
2051
  "tournaments": {
1797
2052
  "open": "Ouvrir"
@@ -1828,7 +2083,21 @@
1828
2083
  "opponents": "Adversaires",
1829
2084
  "allDates": "Toutes les dates",
1830
2085
  "today": "Aujourd'hui",
1831
- "noDate": "Aucune date"
2086
+ "noDate": "Aucune date",
2087
+ "suspended": "Suspendu",
2088
+ "notReady": "Pas prêt",
2089
+ "live": "En direct",
2090
+ "abandoned": "Abandonné",
2091
+ "cancelled": "Annulé",
2092
+ "allProfiles": "Tous les profils",
2093
+ "competitive": "Disputé",
2094
+ "routine": "Sans surprise",
2095
+ "decisive": "Sans appel",
2096
+ "walkover": "Walkover / Forfait",
2097
+ "showTodayView": "Afficher la vue du jour",
2098
+ "showCompetitivenessView": "Afficher la compétitivité",
2099
+ "called": "Appelé",
2100
+ "scheduleLocked": "Programmation verrouillée"
1832
2101
  },
1833
2102
  "schedule": {
1834
2103
  "searchParticipants": "Rechercher des participants",
@@ -1914,7 +2183,26 @@
1914
2183
  "postalCodeLabel": "Code postal",
1915
2184
  "countryCodeLabel": "Pays",
1916
2185
  "countryCodePlaceholder": "Commencez à saisir un nom de pays"
1917
- }
2186
+ },
2187
+ "registry": {
2188
+ "title": "Ajouter un site depuis le registre",
2189
+ "searchPlaceholder": "Rechercher un établissement par nom",
2190
+ "keepTyping": "Saisissez au moins 2 caractères pour rechercher",
2191
+ "candidateCount": "{{count}} établissement correspondant",
2192
+ "candidateCount_other": "{{count}} établissements correspondants",
2193
+ "noMatches": "Aucun établissement correspondant",
2194
+ "searchFailed": "La recherche d’établissements est indisponible",
2195
+ "venueFailed": "Impossible de charger cet établissement",
2196
+ "venueMissing": "Cet établissement n’a pas de fiche de site",
2197
+ "courtCount": "{{count}} court",
2198
+ "courtCount_other": "{{count}} courts",
2199
+ "matchedOn": "correspondance sur {{field}}",
2200
+ "selectFirst": "Choisissez d’abord un établissement",
2201
+ "addVenue": "Ajouter au tournoi",
2202
+ "added": "Site ajouté depuis le registre",
2203
+ "searching": "Recherche…"
2204
+ },
2205
+ "addCourtsPreview": "Ajoutera : {{names}}"
1918
2206
  },
1919
2207
  "events": {
1920
2208
  "title": "Épreuves",
@@ -2015,7 +2303,20 @@
2015
2303
  "country": "Pays",
2016
2304
  "countryPlaceholder": "Pays d'origine",
2017
2305
  "nickname": "Surnom",
2018
- "nicknamePlaceholder": "Nom d'affichage"
2306
+ "nicknamePlaceholder": "Nom d'affichage",
2307
+ "mobile": "Mobile",
2308
+ "mobilePlaceholder": "Numéro de mobile",
2309
+ "email": "E-mail",
2310
+ "emailPlaceholder": "Adresse e-mail",
2311
+ "contactIsPublic": "Les coordonnées peuvent être partagées publiquement",
2312
+ "contactRelationship": "Le contact est",
2313
+ "contactName": "Nom du contact",
2314
+ "contactNamePlaceholder": "Nom du contact, s’il ne s’agit pas du participant",
2315
+ "primaryContact": "Contact principal",
2316
+ "additionalContact": "Contact",
2317
+ "telephone": "Téléphone",
2318
+ "telephonePlaceholder": "Ligne fixe ou numéro de bureau",
2319
+ "whichPrimary": "Quel contact est le principal ?"
2019
2320
  },
2020
2321
  "newTeam": "Nouvelle équipe",
2021
2322
  "generateTeams": "Générer des équipes",
@@ -2036,7 +2337,36 @@
2036
2337
  },
2037
2338
  "importFromCsv": "Importer depuis CSV/TSV",
2038
2339
  "newGroup": "Nouveau groupe",
2039
- "staff": "Staff"
2340
+ "staff": "Staff",
2341
+ "groupRole": "Rôle dans le groupe",
2342
+ "rowActions": {
2343
+ "participantProfile": "Profil du participant",
2344
+ "renameTeam": "Renommer l’équipe",
2345
+ "editGroup": "Modifier le groupe",
2346
+ "deleteParticipant": "Supprimer le participant",
2347
+ "manageMembers": "Gérer les membres"
2348
+ },
2349
+ "grouping": {
2350
+ "namePlaceholder": "Nom du participant",
2351
+ "nicknamePlaceholder": "Surnom / abréviation",
2352
+ "preferNickname": "Préférer le surnom dans les tableaux",
2353
+ "nameTooShort": "Veuillez saisir un nom d’au moins 3 caractères"
2354
+ },
2355
+ "staffRole": "Rôle",
2356
+ "contactRelationship": {
2357
+ "unspecified": "Non précisé",
2358
+ "self": "Le participant",
2359
+ "parent": "Parent",
2360
+ "guardian": "Représentant légal",
2361
+ "chaperone": "Accompagnateur",
2362
+ "emergency": "Contact d’urgence",
2363
+ "other": "Autre"
2364
+ },
2365
+ "selected": "sélectionné(s)",
2366
+ "closeTheDay": "Clôturer la journée",
2367
+ "closeTheDayNobody": "Personne n’est actuellement pointé",
2368
+ "closeTheDayConfirm_one": "Dépointer {{count}} personne encore pointée aujourd’hui ?",
2369
+ "closeTheDayConfirm_other": "Dépointer {{count}} personnes encore pointées aujourd’hui ?"
2040
2370
  }
2041
2371
  },
2042
2372
  "overlays": {
@@ -2090,7 +2420,10 @@
2090
2420
  "country": "Pays",
2091
2421
  "cityState": "Ville / Région",
2092
2422
  "unpublishTournament": "Dépublier le tournoi",
2093
- "confirmUnpublish": "Dépublier toutes les épreuves, participants et la programmation"
2423
+ "confirmUnpublish": "Dépublier toutes les épreuves, participants et la programmation",
2424
+ "timeZoneNotSetTitle": "Fuseau horaire non défini",
2425
+ "timeZoneNotSetBody": "Ce tournoi n’a pas de fuseau horaire défini. Les horaires publiés peuvent être ambigus pour les spectateurs situés dans d’autres fuseaux. Définissez un fuseau horaire avant de publier.",
2426
+ "setTimeZone": "Définir le fuseau horaire"
2094
2427
  },
2095
2428
  "cal": "Calendrier",
2096
2429
  "tpl": "Modèles",
@@ -2256,7 +2589,8 @@
2256
2589
  "calendarLoadError": "Échec du chargement du calendrier",
2257
2590
  "deletedDrawsLoadError": "Échec du chargement des tableaux supprimés",
2258
2591
  "providerLockedToActive": "Verrouillé sur le fournisseur actif de votre session. Arrêtez l'usurpation (ou changez de fournisseur) pour inspecter les tableaux supprimés d'un autre locataire."
2259
- }
2592
+ },
2593
+ "inviteFailed": "Impossible d’envoyer l’invitation. Veuillez réessayer."
2260
2594
  },
2261
2595
  "formatWizard": {
2262
2596
  "title": "Assistant de format",
@@ -2359,7 +2693,14 @@
2359
2693
  "coaches_other": "{{count}} entraîneurs",
2360
2694
  "staff_one": "{{count}} membre du staff",
2361
2695
  "staff_other": "{{count}} membres du staff"
2362
- }
2696
+ },
2697
+ "gender": {
2698
+ "female": "Femmes",
2699
+ "male": "Hommes",
2700
+ "unspecified": "Non précisé"
2701
+ },
2702
+ "viewProgram": "Voir la saison de {{team}}",
2703
+ "viewProgramGeneric": "Voir la saison du programme"
2363
2704
  },
2364
2705
  "display": {
2365
2706
  "label": "Affichage",
@@ -2425,7 +2766,8 @@
2425
2766
  "grantError": "Échec de l'attribution de l'accès.",
2426
2767
  "revokeError": "Échec de la révocation de l'accès.",
2427
2768
  "granted": "Accès accordé à {{email}}",
2428
- "revoked": "Accès révoqué pour {{email}}"
2769
+ "revoked": "Accès révoqué pour {{email}}",
2770
+ "scopedAccess": "Accès ciblé (courts, jours, épreuves) →"
2429
2771
  },
2430
2772
  "providerConfig": {
2431
2773
  "editCapsButton": "Modifier les plafonds",
@@ -2635,7 +2977,14 @@
2635
2977
  "policyUnsetHint": "Sélectionnez d'abord une politique de points de classement pour activer le recalcul.",
2636
2978
  "pipelineOff": "Le pipeline de classements n'est pas configuré sur le serveur (RANKINGS_PIPELINE_URL). Rien n'a été recalculé.",
2637
2979
  "failed": "Impossible de recalculer les classements.",
2638
- "result": "{{republished}}/{{tournaments}} tournois recalculés ; {{snapshots}} instantané(s) généré(s)."
2980
+ "result": "{{republished}}/{{tournaments}} tournois recalculés ; {{snapshots}} instantané(s) généré(s).",
2981
+ "unprocessed": "Traiter les tournois non traités",
2982
+ "unprocessedRunning": "Republication des tournois non traités…",
2983
+ "fromDateLabel": "À partir du",
2984
+ "fromDateRequired": "Choisissez d’abord une date de début.",
2985
+ "rerunFromDate": "Recalculer les classements à partir de cette date",
2986
+ "rerunRunning": "Recalcul des classements à partir du {{date}}…",
2987
+ "bulkNone": "Aucun tournoi correspondant à republier."
2639
2988
  }
2640
2989
  },
2641
2990
  "notLoggedInTitle": "Vous n'êtes pas connecté",
@@ -2716,7 +3065,8 @@
2716
3065
  "crowd": "PUBLIC",
2717
3066
  "anon": "ANON",
2718
3067
  "verified": "VÉRIFIÉ",
2719
- "nominated": "NOMMÉ"
3068
+ "nominated": "NOMMÉ",
3069
+ "scorekeeper": "MARQUEUR"
2720
3070
  },
2721
3071
  "reason": {
2722
3072
  "signInRequired": "Connexion requise pour être nommé",
@@ -2724,13 +3074,20 @@
2724
3074
  },
2725
3075
  "toast": {
2726
3076
  "nominateFirst": "Nommez un marqueur vérifié avant de définir un résultat délégué.",
2727
- "noOutcomeToConfirm": "Aucun résultat délégué à confirmer pour ce match."
3077
+ "noOutcomeToConfirm": "Aucun résultat délégué à confirmer pour ce match.",
3078
+ "noScorekeeperCandidates": "Aucun participant lié à un HiveID à désigner comme marqueur.",
3079
+ "acceptedLive": "Accepté — ses scores en direct font désormais foi pour ce match."
2728
3080
  },
2729
3081
  "tooltip": {
2730
3082
  "liveTracker": "Score reporté via un suiveur en direct",
2731
3083
  "unconfirmed": "Score délégué non confirmé — confirmez pour le rendre officiel",
2732
3084
  "unconfirmedAria": "Score délégué non confirmé en attente de confirmation"
2733
- }
3085
+ },
3086
+ "accept": "Accepter",
3087
+ "nominateScorekeeper": "Désigner un marqueur",
3088
+ "removeScorekeeper": "Retirer le marqueur désigné",
3089
+ "approveScorekeeper": "Approuver comme marqueur",
3090
+ "removeScorekeeperApproval": "Retirer l’approbation du marqueur"
2734
3091
  },
2735
3092
  "providerSetup": {
2736
3093
  "wizardTitle": "Configurer votre fournisseur",
@@ -2778,5 +3135,254 @@
2778
3135
  "privacyApplyFailed": "Impossible d'appliquer la politique de confidentialité aux tournois existants.",
2779
3136
  "privacyApplyResult": "Politique de confidentialité appliquée à {{attached}} tournoi(s) ; {{already}} l'avaient déjà ; {{failed}} en échec."
2780
3137
  },
2781
- "cns": "Console"
3138
+ "cns": "Console",
3139
+ "session": {
3140
+ "expiredMessage": "Votre session a expiré. Les modifications ne seront pas enregistrées tant que vous ne serez pas reconnecté.",
3141
+ "logInAgain": "Se reconnecter"
3142
+ },
3143
+ "overwrite": "Écraser",
3144
+ "fingerprint": {
3145
+ "title": "Empreinte de compétitivité",
3146
+ "competitiveRatio": "Ratio de compétitivité {{pct}} % sur {{count}} terminés",
3147
+ "coverage": "{{rated}} classés sur {{scale}}",
3148
+ "coveragePartial": "{{rated}} classés sur {{scale}} · {{unrated}} non classés",
3149
+ "noRatedOpponents": "Aucun adversaire classé sur {{scale}}",
3150
+ "noRating": "Aucun classement disponible pour l’exposition",
3151
+ "bands": {
3152
+ "STRETCH": "Ambitieux",
3153
+ "UP": "Supérieur",
3154
+ "EVEN": "Équivalent",
3155
+ "DOWN": "Inférieur",
3156
+ "ANCHOR": "Référence"
3157
+ }
3158
+ },
3159
+ "officiating": {
3160
+ "conflictWarning": "Cet officiel présente un conflit d’intérêts potentiel avec un participant de ce match. L’affecter quand même ?",
3161
+ "selectOfficial": "Sélectionner un officiel",
3162
+ "noOfficialsFound": "Aucun officiel trouvé",
3163
+ "notChecked": "Les conflits n’ont pas pu être vérifiés pour cet officiel"
3164
+ },
3165
+ "participantRoles": {
3166
+ "OTHER": "Autre",
3167
+ "COACH": "Entraîneur",
3168
+ "MEDICAL": "Médical",
3169
+ "PHYSIO": "Kinésithérapeute",
3170
+ "TRAINER": "Préparateur physique",
3171
+ "ADMINISTRATION": "Administration",
3172
+ "CAPTAIN": "Capitaine",
3173
+ "DIRECTOR": "Directeur du tournoi",
3174
+ "HOSPITALITY": "Accueil",
3175
+ "MEDIA": "Médias",
3176
+ "SCOREKEEPER": "Marqueur",
3177
+ "SECURITY": "Sécurité",
3178
+ "STRINGER": "Cordeur",
3179
+ "SUPERVISOR": "Superviseur",
3180
+ "TIMEKEEPER": "Chronométreur",
3181
+ "TRANSPORT": "Transport",
3182
+ "VOLUNTEER": "Bénévole"
3183
+ },
3184
+ "nav": {
3185
+ "programs": "Programmes"
3186
+ },
3187
+ "hero": {
3188
+ "events_one": "{{count}} épreuve",
3189
+ "events_other": "{{count}} épreuves",
3190
+ "entries_one": "{{count}} inscription",
3191
+ "entries_other": "{{count}} inscriptions",
3192
+ "venues_one": "{{count}} site",
3193
+ "venues_other": "{{count}} sites"
3194
+ },
3195
+ "venuePanel": {
3196
+ "title": "Site et courts",
3197
+ "loading": "Chargement du site…",
3198
+ "noFacility": "Aucun établissement rattaché à cette proposition pour le moment.",
3199
+ "registryUnconfigured": "Établissement {{facilityId}} rattaché — le registre des établissements n’est pas configuré dans cet environnement.",
3200
+ "noVenueForFacility": "Établissement {{facilityId}} rattaché, mais le registre n’a renvoyé aucun site pour celui-ci.",
3201
+ "loadFailed": "Impossible de charger le site rattaché.",
3202
+ "nothingToShow": "Aucun site à afficher."
3203
+ },
3204
+ "facilityPicker": {
3205
+ "placeholder": "Rechercher un établissement par nom",
3206
+ "keepTyping": "Continuez à saisir — au moins 2 caractères.",
3207
+ "searching": "Recherche…",
3208
+ "noMatches": "Aucun établissement correspondant.",
3209
+ "searchFailed": "La recherche d’établissements a échoué.",
3210
+ "attaching": "Rattachement…",
3211
+ "attachFailed": "Impossible de rattacher cet établissement.",
3212
+ "clear": "Effacer",
3213
+ "courtCount": "{{count}} courts",
3214
+ "courtCount_one": "{{count}} court",
3215
+ "matchedOn": {
3216
+ "name": "nom",
3217
+ "alias": "id",
3218
+ "city": "ville"
3219
+ }
3220
+ },
3221
+ "capability": {
3222
+ "denied": {
3223
+ "provider": "Non disponible dans la configuration de ce fournisseur.",
3224
+ "createCompetitor": "Ce fournisseur n’autorise pas l’ajout de compétiteurs ici.",
3225
+ "createOfficial": "Ce fournisseur n’autorise pas l’ajout d’officiels ici.",
3226
+ "importParticipants": "Ce fournisseur n’autorise pas l’importation de participants.",
3227
+ "deleteParticipants": "Ce fournisseur n’autorise pas la suppression de participants.",
3228
+ "editParticipantDetails": "Ce fournisseur n’autorise pas la modification des informations des participants.",
3229
+ "modifyEntries": "Ce fournisseur n’autorise pas la modification des inscriptions aux épreuves.",
3230
+ "createEvent": "Ce fournisseur n’autorise pas la création d’épreuves dans TMX.",
3231
+ "deleteEvent": "Ce fournisseur n’autorise pas la suppression d’épreuves.",
3232
+ "createDraw": "Ce fournisseur n’autorise pas la création de tableaux ici.",
3233
+ "deleteDraw": "Ce fournisseur n’autorise pas la suppression de tableaux.",
3234
+ "assignPositions": "Ce fournisseur n’autorise pas l’attribution des positions de tableau ici.",
3235
+ "modifyStructures": "Ce fournisseur n’autorise pas la modification des structures de tableau.",
3236
+ "createVenue": "Ce fournisseur n’autorise pas la création de sites ici.",
3237
+ "deleteVenue": "Ce fournisseur n’autorise pas la suppression de sites.",
3238
+ "modifySchedule": "Ce fournisseur n’autorise pas la modification de la programmation ici.",
3239
+ "useBulkScheduling": "Ce fournisseur n’autorise pas la programmation en masse.",
3240
+ "enterScores": "Ce fournisseur n’autorise pas la saisie des scores ici.",
3241
+ "publish": "Ce fournisseur n’autorise pas la publication.",
3242
+ "unpublish": "Ce fournisseur n’autorise pas le retrait de publication.",
3243
+ "useChat": "La messagerie est désactivée pour ce fournisseur."
3244
+ },
3245
+ "outOfScope": "En dehors des courts, des jours ou des épreuves qui vous ont été attribués."
3246
+ },
3247
+ "demoMode": {
3248
+ "title": "Mode démo",
3249
+ "menuItem": "Mode démo…",
3250
+ "clientOnly": "Simulation côté client uniquement. Le serveur applique toujours la configuration réelle du fournisseur.",
3251
+ "posture": "POSTURE",
3252
+ "capabilities": "FONCTIONNALITÉS",
3253
+ "exit": "Quitter le mode démo",
3254
+ "badgeLabel": "DÉMO",
3255
+ "bannerText": "Mode démo — {{preset}} · {{count}} fonctionnalités désactivées · côté client uniquement",
3256
+ "legend": "UI+MUT = contrôle masqué et mutation refusée · UI = contrôle masqué uniquement · MUT = mutation refusée uniquement · — = aucun filtre implémenté, activer ne change rien",
3257
+ "presets": {
3258
+ "providerDefaults": "Valeurs du fournisseur (aucune simulation)",
3259
+ "recorder": "Score uniquement (Marqueur)",
3260
+ "scheduler": "Programmation + score",
3261
+ "registrar": "Table d’inscription",
3262
+ "director": "Directeur du tournoi",
3263
+ "readOnly": "Lecture seule",
3264
+ "custom": "Personnalisé"
3265
+ },
3266
+ "groups": {
3267
+ "participants": "Participants",
3268
+ "events": "Épreuves",
3269
+ "draws": "Tableaux",
3270
+ "scheduling": "Programmation",
3271
+ "venues": "Sites",
3272
+ "scoring": "Score",
3273
+ "publishing": "Publication",
3274
+ "settings": "Paramètres",
3275
+ "communication": "Communication"
3276
+ },
3277
+ "badge": {
3278
+ "both": "Appliqué à la fois par un contrôle masqué et par le filtre de mutation.",
3279
+ "ui": "Masque le contrôle, mais la mutation elle-même n’est pas filtrée.",
3280
+ "mutation": "La mutation est refusée, mais le contrôle reste proposé.",
3281
+ "none": "Aucun filtre implémenté — activer ceci ne change rien."
3282
+ }
3283
+ },
3284
+ "checkIn": {
3285
+ "action": "Pointer",
3286
+ "title": "Pointé",
3287
+ "clickToCheckIn": "Cliquer pour pointer",
3288
+ "clickToCheckOut": "Cliquer pour dépointer",
3289
+ "toggleFailed": "Impossible de modifier l’état de pointage",
3290
+ "callBeforeCheckIn_one": "{{count}} participant n’a pas pointé. Appeler quand même sur le court ?",
3291
+ "callBeforeCheckIn_other": "{{count}} participants n’ont pas pointé. Appeler quand même sur le court ?",
3292
+ "columnHeader": "Pointé",
3293
+ "columnTooltip": "Participants qui se sont présentés à la table de marque pour ce match",
3294
+ "badgeComplete_one": "Le participant a pointé",
3295
+ "badgeComplete_other": "Les {{count}} participants ont pointé",
3296
+ "badgePartial_one": "{{count}} participant n’a pas encore pointé",
3297
+ "badgePartial_other": "{{count}} participants n’ont pas encore pointé",
3298
+ "callOnDropBeforeCheckIn_one": "{{count}} participant n’a pas pointé. Appeler quand même ce match sur le court ?",
3299
+ "callOnDropBeforeCheckIn_other": "{{count}} participants n’ont pas pointé. Appeler quand même ce match sur le court ?",
3300
+ "promptMode": {
3301
+ "label": "Rappels de pointage",
3302
+ "off": "Désactivé",
3303
+ "on": "Activé",
3304
+ "auto": "Auto",
3305
+ "offHint": "Ne jamais demander avant d’appeler un match sur le court.",
3306
+ "onHint": "Toujours demander lorsque quelqu’un n’a pas pointé.",
3307
+ "autoHint": "Demander uniquement lorsque ce tournoi utilise le pointage aujourd’hui."
3308
+ }
3309
+ },
3310
+ "ofc": "Officiels",
3311
+ "officials": {
3312
+ "empty": "Aucun officiel sur ce tournoi pour le moment",
3313
+ "state": {
3314
+ "onCourt": "Sur le court",
3315
+ "assigned": "Attribué",
3316
+ "waiting": "En attente",
3317
+ "available": "Disponible",
3318
+ "availableHint": "Non pointé aujourd’hui — engagé, mais présence non confirmée"
3319
+ },
3320
+ "columns": {
3321
+ "name": "Officiel",
3322
+ "state": "État",
3323
+ "court": "Court",
3324
+ "next": "Suivant",
3325
+ "matches": "Matchs",
3326
+ "onCourt": "Sur le court",
3327
+ "contact": "Contact"
3328
+ },
3329
+ "callSheet": "Feuille d’appel",
3330
+ "callSheetSubtitle": "Officiels"
3331
+ },
3332
+ "grants": {
3333
+ "title": "Accès ciblé au tournoi",
3334
+ "loading": "Chargement des accès…",
3335
+ "unavailable": "L’accès ciblé est indisponible pour le moment.",
3336
+ "grantAccess": "Accorder l’accès",
3337
+ "grant": "Accorder",
3338
+ "cancel": "Annuler",
3339
+ "grantee": "Personne",
3340
+ "chooseGrantee": "Choisir une personne…",
3341
+ "capability": "Peut",
3342
+ "everything": "Tout (dans la limite de la portée)",
3343
+ "grantedBy": "Accordé par",
3344
+ "revoke": "Révoquer",
3345
+ "revoked": "{{email}} — autorisation révoquée",
3346
+ "granted": "{{email}} autorisé",
3347
+ "confirmRevoke": "Révoquer cette autorisation pour {{email}} ? La personne conserve les accès liés à son affectation au tournoi.",
3348
+ "empty": "Aucune autorisation ciblée sur ce tournoi.",
3349
+ "emptyMeaning": "Aucune autorisation ciblée ne signifie pas aucun accès : toute personne affectée à ce tournoi n’est pas restreinte par ce mécanisme. Une autorisation restreint ce qu’une personne peut faire.",
3350
+ "scope": {
3351
+ "label": "Où",
3352
+ "wholeTournament": "Tout le tournoi",
3353
+ "wholeTournamentNote": "Partout dans ce tournoi.",
3354
+ "theseCourts": "Ces courts",
3355
+ "thisDay": "Ce jour",
3356
+ "thisEvent": "Cette épreuve",
3357
+ "advanced": "Avancé",
3358
+ "advancedNote": "Identifiants séparés par des virgules. Laissez une ligne vide pour ne pas restreindre cette dimension.",
3359
+ "commaSeparated": "id, id, id",
3360
+ "noneAvailable": "Ce tournoi n’a encore rien à proposer dans cette dimension."
3361
+ },
3362
+ "window": {
3363
+ "label": "Quand",
3364
+ "shift": "Une vacation",
3365
+ "tournament": "Tout le tournoi",
3366
+ "none": "Sans expiration",
3367
+ "from": "À partir du {{when}}",
3368
+ "until": "jusqu’au {{when}}",
3369
+ "noExpiry": "Sans expiration",
3370
+ "lapsed": "Échu",
3371
+ "warning": "Les rôles opérationnels se transmettent d’une vacation à l’autre. Une autorisation sans expiration survit à la personne qui en avait besoin.",
3372
+ "blocking": "Expiré {{when}} — bloque tout accès",
3373
+ "inert": "Expiré — sans effet, une autre autorisation est active",
3374
+ "cliff": "À la fermeture de la fenêtre, cette personne ne pourra plus rien faire sur ce tournoi tant que l’autorisation n’aura pas été prolongée ou révoquée."
3375
+ },
3376
+ "issues": {
3377
+ "chooseGrantee": "Choisissez le bénéficiaire de cette autorisation.",
3378
+ "chooseCapability": "Choisissez ce que la personne peut faire.",
3379
+ "chooseScopeValues": "Choisissez-en au moins un — ou revenez à Tout le tournoi.",
3380
+ "advancedEmpty": "Renseignez au moins une dimension — ou revenez à Tout le tournoi.",
3381
+ "chooseEnd": "Choisissez la fin de la vacation."
3382
+ },
3383
+ "extend": "Prolonger",
3384
+ "extendTitle": "Prolonger l’accès",
3385
+ "lockout_one": "{{who}} ne peut plus rien faire sur ce tournoi — son accès ciblé a expiré. Prolongez-le ou révoquez-le.",
3386
+ "lockout_other": "{{count}} personnes ne peuvent plus rien faire sur ce tournoi ({{who}}) — leur accès ciblé a expiré. Prolongez ou révoquez."
3387
+ }
2782
3388
  }