@courthive/i18n 0.3.1 → 0.4.1

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.
@@ -309,8 +309,8 @@
309
309
  "winloss_abbreviation": "W/L",
310
310
  "cancelled": "Annulé",
311
311
  "abandoned": "Abandonné",
312
- "scoreThisMatch": "__TODO__",
313
- "openScorecard": "__TODO__"
312
+ "scoreThisMatch": "Marquer ce match",
313
+ "openScorecard": "Ouvrir la feuille de match"
314
314
  },
315
315
  "draws": {
316
316
  "seedlimit": "Limite de têtes de série",
@@ -588,7 +588,7 @@
588
588
  "blocked": "Les fenêtres contextuelles sont bloquées par votre navigateur",
589
589
  "enablepopups": "Veuillez activer les fenêtres contextuelles pour l'impression PDF",
590
590
  "nopersist": "La persistance des données n'est pas garantie",
591
- "filters": "__TODO__"
591
+ "filters": "Filtres"
592
592
  },
593
593
  "events": {
594
594
  "name": "Nom",
@@ -757,33 +757,56 @@
757
757
  "unscheduled": "Non programmés",
758
758
  "noScheduledMatchUps": "Aucun match programmé",
759
759
  "noTimeSet": "Heure non définie",
760
- "showAll": "__TODO__",
761
- "hideEmpty": "__TODO__",
762
- "empty": "__TODO__",
763
- "court": "__TODO__",
764
- "event": "__TODO__",
765
- "round": "__TODO__",
766
- "matchUp": "__TODO__",
767
- "noScheduledMatchUpsMatch": "__TODO__",
768
- "searchScheduledMatchUps": "__TODO__",
769
- "scheduledTitle": "__TODO__",
770
- "scheduledCount_one": "__TODO__",
771
- "scheduledCount_other": "__TODO__",
772
- "filterMatchUps": "__TODO__",
773
- "filterClearAll": "__TODO__",
774
- "filterAllEventTypes": "__TODO__",
775
- "filterAllEvents": "__TODO__",
776
- "filterAllFlights": "__TODO__",
777
- "filterAllGenders": "__TODO__",
778
- "filterAllRounds": "__TODO__",
760
+ "showAll": "Tout afficher",
761
+ "hideEmpty": "Masquer les vides",
762
+ "empty": "vide",
763
+ "court": "Court",
764
+ "event": "Épreuve",
765
+ "round": "Tour",
766
+ "matchUp": "Match",
767
+ "noScheduledMatchUpsMatch": "Aucun match programmé ne correspond à la recherche",
768
+ "searchScheduledMatchUps": "Rechercher des matchs programmés...",
769
+ "scheduledTitle": "Matchs programmés",
770
+ "scheduledCount_one": "{{count}} programmé",
771
+ "scheduledCount_other": "{{count}} programmés",
772
+ "filterMatchUps": "Filtrer les matchs",
773
+ "filterClearAll": "Tout effacer",
774
+ "filterAllEventTypes": "Tous les types d'épreuve",
775
+ "filterAllEvents": "Toutes les épreuves",
776
+ "filterAllFlights": "Tous les flights",
777
+ "filterAllGenders": "Tous les genres",
778
+ "filterAllRounds": "Tous les tours",
779
779
  "groupBy": {
780
- "event": "__TODO__",
781
- "draw": "__TODO__",
782
- "round": "__TODO__",
783
- "structure": "__TODO__",
784
- "time": "__TODO__"
785
- },
786
- "showCompleted": "__TODO__"
780
+ "event": "Par épreuve",
781
+ "draw": "Par tableau",
782
+ "round": "Par tour",
783
+ "structure": "Par structure",
784
+ "time": "Par heure"
785
+ },
786
+ "showCompleted": "Afficher les terminés",
787
+ "callToCourt": "__TODO__",
788
+ "now": "__TODO__",
789
+ "nowRowActions": "__TODO__",
790
+ "status": "__TODO__",
791
+ "suspendAll": "__TODO__",
792
+ "resumeAll": "__TODO__",
793
+ "startAll": "__TODO__",
794
+ "rescheduleAll": "__TODO__",
795
+ "unscheduleAll": "__TODO__",
796
+ "rescheduleNowTitle": "__TODO__",
797
+ "chooseDate": "__TODO__",
798
+ "chooseTime": "__TODO__",
799
+ "selectAll": "__TODO__",
800
+ "selectNone": "__TODO__",
801
+ "reschedule": "__TODO__",
802
+ "shift": "__TODO__",
803
+ "shiftCourtsTitle": "__TODO__",
804
+ "shiftRows": "__TODO__",
805
+ "noActiveMatches": "__TODO__",
806
+ "startOnDropTitle": "__TODO__",
807
+ "startOnDropPrompt": "__TODO__",
808
+ "unscheduleAllTitle": "__TODO__",
809
+ "unscheduleAllConfirm": "__TODO__"
787
810
  },
788
811
  "penalties": {
789
812
  "fail2signout": "Défaut de désinscription",
@@ -815,14 +838,14 @@
815
838
  "error": "Erreur",
816
839
  "success": "Succès",
817
840
  "required": "Obligatoire",
818
- "back": "__TODO__",
819
- "send": "__TODO__",
841
+ "back": "Retour",
842
+ "send": "Envoyer",
820
843
  "details": "Détails",
821
844
  "validationDetails": "Détails de validation",
822
- "dismiss": "__TODO__",
823
- "iSavedIt": "__TODO__",
824
- "remove": "__TODO__",
825
- "continueAndUnschedule": "__TODO__"
845
+ "dismiss": "Ignorer",
846
+ "iSavedIt": "Je l'ai enregistré",
847
+ "remove": "Retirer",
848
+ "continueAndUnschedule": "Continuer et déprogrammer"
826
849
  },
827
850
  "modals": {
828
851
  "deleteEvents": {
@@ -853,8 +876,8 @@
853
876
  "passwordLabel": "Mot de passe",
854
877
  "passwordPlaceholder": "8 caractères minimum",
855
878
  "loginButton": "Se connecter",
856
- "magicLinkButton": "__TODO__",
857
- "forgotPassword": "__TODO__"
879
+ "magicLinkButton": "M'envoyer un lien de connexion par e-mail",
880
+ "forgotPassword": "Mot de passe oublié ?"
858
881
  },
859
882
  "settings": {
860
883
  "title": "Paramètres",
@@ -881,7 +904,7 @@
881
904
  "themeSystem": "Système",
882
905
  "font": "Police",
883
906
  "dangerZone": "Zone de danger",
884
- "schedule2": "__TODO__"
907
+ "schedule2": "Page de programmation 2"
885
908
  },
886
909
  "editTournamentName": {
887
910
  "title": "Modifier le nom du tournoi",
@@ -893,7 +916,7 @@
893
916
  "title": "Modifier les dates",
894
917
  "startDateLabel": "Date de début",
895
918
  "endDateLabel": "Date de fin",
896
- "timeZoneDetectedHint": "__TODO__"
919
+ "timeZoneDetectedHint": "Détecté depuis votre navigateur ({{zone}}). Confirmez, modifiez ou effacez."
897
920
  },
898
921
  "invalidParticipants": {
899
922
  "title": "Participants invalides"
@@ -1025,7 +1048,7 @@
1025
1048
  "notClaimed": "Non revendiqué",
1026
1049
  "offline": "Hors ligne",
1027
1050
  "online": "En ligne",
1028
- "uploadWarning": "__TODO__"
1051
+ "uploadWarning": "Avertissement : cette action remplacera l'enregistrement du tournoi sur le serveur"
1029
1052
  },
1030
1053
  "inviteUser": {
1031
1054
  "title": "Inviter un utilisateur",
@@ -1045,8 +1068,8 @@
1045
1068
  "services": "Services",
1046
1069
  "tournamentProfiles": "Profils de tournoi (récupération)",
1047
1070
  "invite": "Inviter",
1048
- "providerRole": "__TODO__",
1049
- "existingUserAdded": "__TODO__"
1071
+ "providerRole": "Rôle du fournisseur",
1072
+ "existingUserAdded": "{{email}} avait déjà un compte — ajouté à {{provider}} en tant que {{role}}."
1050
1073
  },
1051
1074
  "fetchTournament": {
1052
1075
  "title": "Récupérer les détails du tournoi",
@@ -1084,8 +1107,7 @@
1084
1107
  "groupSize": "Taille du groupe",
1085
1108
  "positionsToBePlayedOff": "Positions à départager :",
1086
1109
  "selectPositions": "Sélectionnez les positions d'arrivée dans les groupes. Les sélections doivent être consécutives",
1087
- "structureAdded": "Structure ajoutée",
1088
- "selectEligible": "Sélectionner les participants éligibles"
1110
+ "structureAdded": "Structure ajoutée"
1089
1111
  },
1090
1112
  "addToEvent": {
1091
1113
  "title": "Ajouter à l'épreuve",
@@ -1113,7 +1135,7 @@
1113
1135
  "title": "Créer une équipe",
1114
1136
  "selectAttribute": "Sélectionner l'attribut",
1115
1137
  "create": "Créer",
1116
- "teamAffiliation": "__TODO__"
1138
+ "teamAffiliation": "Affiliation d'équipe"
1117
1139
  },
1118
1140
  "getLatLong": {
1119
1141
  "title": "Localisation",
@@ -1219,244 +1241,244 @@
1219
1241
  },
1220
1242
  "selectTeam": "Sélectionner l'équipe",
1221
1243
  "importParticipants": {
1222
- "title": "__TODO__",
1223
- "summary": "__TODO__",
1224
- "mergeNotice": "__TODO__",
1225
- "import": "__TODO__",
1226
- "reAutoDetect": "__TODO__",
1244
+ "title": "Importer des participants",
1245
+ "summary": "{{count}} lignes prêtes à l'importation",
1246
+ "mergeNotice": "{{count}} lignes en double seront fusionnées par e-mail (la dernière valeur non vide l'emporte par champ)",
1247
+ "import": "Importer",
1248
+ "reAutoDetect": "Redétecter automatiquement",
1227
1249
  "column": {
1228
- "header": "__TODO__",
1229
- "sample": "__TODO__",
1230
- "target": "__TODO__"
1250
+ "header": "Colonne source",
1251
+ "sample": "Valeur d'exemple",
1252
+ "target": "Champ cible"
1231
1253
  },
1232
1254
  "target": {
1233
- "firstName": "__TODO__",
1234
- "lastName": "__TODO__",
1235
- "fullName": "__TODO__",
1236
- "otherName": "__TODO__",
1237
- "sex": "__TODO__",
1238
- "birthDate": "__TODO__",
1239
- "nationalityCode": "__TODO__",
1240
- "wheelchair": "__TODO__",
1241
- "city": "__TODO__",
1242
- "state": "__TODO__",
1243
- "countryCode": "__TODO__",
1244
- "postalCode": "__TODO__",
1245
- "addressLine1": "__TODO__",
1246
- "email": "__TODO__",
1247
- "phone": "__TODO__",
1248
- "mobilePhone": "__TODO__",
1249
- "tennisId": "__TODO__",
1250
- "ustaId": "__TODO__",
1251
- "itfId": "__TODO__",
1252
- "utrProfile": "__TODO__",
1253
- "participantId": "__TODO__",
1254
- "rating": "__TODO__",
1255
- "eventEntry": "__TODO__",
1256
- "participantName": "__TODO__",
1257
- "representing": "__TODO__",
1258
- "notes": "__TODO__",
1259
- "split": "__TODO__",
1260
- "ignore": "__TODO__",
1261
- "participantRole": "__TODO__",
1262
- "teamKey": "__TODO__",
1263
- "jerseyNumber": "__TODO__"
1255
+ "firstName": "Prénom",
1256
+ "lastName": "Nom de famille",
1257
+ "fullName": "Nom complet",
1258
+ "otherName": "Autre nom / surnom",
1259
+ "sex": "Sexe",
1260
+ "birthDate": "Date de naissance",
1261
+ "nationalityCode": "Nationalité",
1262
+ "wheelchair": "Fauteuil roulant",
1263
+ "city": "Ville",
1264
+ "state": "État/région",
1265
+ "countryCode": "Code pays",
1266
+ "postalCode": "Code postal",
1267
+ "addressLine1": "Adresse",
1268
+ "email": "E-mail",
1269
+ "phone": "Téléphone",
1270
+ "mobilePhone": "Téléphone mobile",
1271
+ "tennisId": "ID Tennis",
1272
+ "ustaId": "ID USTA",
1273
+ "itfId": "ID ITF",
1274
+ "utrProfile": "Profil UTR",
1275
+ "participantId": "ID du participant",
1276
+ "rating": "Classement",
1277
+ "eventEntry": "Inscription à l'épreuve",
1278
+ "participantName": "Nom du participant",
1279
+ "representing": "Représentant",
1280
+ "notes": "Notes",
1281
+ "split": "Séparer…",
1282
+ "ignore": "Ignorer",
1283
+ "participantRole": "Rôle (joueur, entraîneur, physio, …)",
1284
+ "teamKey": "Équipe (regrouper en participants d'équipe)",
1285
+ "jerseyNumber": "Numéro de maillot"
1264
1286
  },
1265
- "ratingAuto": "__TODO__",
1266
- "eventPickerPlaceholder": "__TODO__",
1267
- "splitDelimiter": "__TODO__",
1268
- "splitPieceEmpty": "__TODO__",
1269
- "unresolvedHeading": "__TODO__",
1270
- "unresolvedPickerPlaceholder": "__TODO__",
1271
- "row": "__TODO__",
1272
- "previewHeading": "__TODO__",
1273
- "previewEmpty": "__TODO__",
1274
- "entryDefaultsHeading": "__TODO__",
1275
- "entryStatusLabel": "__TODO__",
1276
- "entryStageLabel": "__TODO__",
1277
- "dedupeHeading": "__TODO__",
1278
- "mergeDuplicatesLabel": "__TODO__",
1279
- "matchByLabel": "__TODO__",
1280
- "updateExistingLabel": "__TODO__"
1287
+ "ratingAuto": "Détection auto",
1288
+ "eventPickerPlaceholder": "(sélectionner une épreuve…)",
1289
+ "splitDelimiter": "Séparer sur",
1290
+ "splitPieceEmpty": "(vide)",
1291
+ "unresolvedHeading": "Valeurs de classement non résolues ({{count}})",
1292
+ "unresolvedPickerPlaceholder": "Choisir une échelle…",
1293
+ "row": "Ligne",
1294
+ "previewHeading": "Aperçu (3 premières lignes)",
1295
+ "previewEmpty": "Aucun participant prévisualisable — assurez-vous que le prénom/nom (ou nom complet) sont mappés.",
1296
+ "entryDefaultsHeading": "Valeurs par défaut d'inscription à l'épreuve",
1297
+ "entryStatusLabel": "Statut d'inscription",
1298
+ "entryStageLabel": "Phase d'inscription",
1299
+ "dedupeHeading": "Détection des doublons",
1300
+ "mergeDuplicatesLabel": "Fusionner les lignes qui partagent le même identifiant",
1301
+ "matchByLabel": "Faire correspondre par",
1302
+ "updateExistingLabel": "Mettre à jour les participants existants lors de la réimportation"
1281
1303
  },
1282
1304
  "tallyReport": {
1283
- "title": "__TODO__",
1284
- "groupedBy": "__TODO__",
1285
- "step": "__TODO__",
1286
- "participants": "__TODO__",
1287
- "separated": "__TODO__",
1288
- "compared": "__TODO__",
1289
- "by": "__TODO__",
1290
- "finalOrder": "__TODO__",
1291
- "unresolved": "__TODO__",
1292
- "incomplete": "__TODO__",
1293
- "idsFilterNote": "__TODO__",
1294
- "reversedNote": "__TODO__",
1295
- "h2hWinner": "__TODO__"
1305
+ "title": "Rapport de départage",
1306
+ "groupedBy": "Groupé par",
1307
+ "step": "Étape",
1308
+ "participants": "participants",
1309
+ "separated": "départagé",
1310
+ "compared": "comparé",
1311
+ "by": "par",
1312
+ "finalOrder": "Ordre final",
1313
+ "unresolved": "non résolu",
1314
+ "incomplete": "Le groupe n'est pas encore terminé — le rapport de départage sera disponible une fois tous les matchs terminés.",
1315
+ "idsFilterNote": "Calculé en ne considérant que les participants ex æquo",
1316
+ "reversedNote": "Trié en ordre inverse (plus bas est meilleur)",
1317
+ "h2hWinner": "Vainqueur en confrontation directe"
1296
1318
  },
1297
1319
  "manageAccess": {
1298
- "title": "__TODO__",
1299
- "grantedAccess": "__TODO__",
1300
- "addUser": "__TODO__",
1301
- "emailPlaceholder": "__TODO__",
1302
- "grant": "__TODO__",
1303
- "revoke": "__TODO__",
1304
- "noAssignments": "__TODO__",
1305
- "loadError": "__TODO__",
1306
- "grantError": "__TODO__",
1307
- "revokeError": "__TODO__"
1320
+ "title": "Gérer l'accès",
1321
+ "grantedAccess": "Accès accordé",
1322
+ "addUser": "Ajouter un utilisateur",
1323
+ "emailPlaceholder": "utilisateur@email.com",
1324
+ "grant": "Accorder",
1325
+ "revoke": "Révoquer",
1326
+ "noAssignments": "Aucun utilisateur n'a reçu l'accès",
1327
+ "loadError": "Échec du chargement des attributions",
1328
+ "grantError": "Échec de l'attribution de l'accès",
1329
+ "revokeError": "Échec de la révocation de l'accès"
1308
1330
  },
1309
1331
  "editCategories": {
1310
- "title": "__TODO__",
1311
- "intro": "__TODO__",
1312
- "add": "__TODO__",
1313
- "empty": "__TODO__",
1314
- "duplicate": "__TODO__",
1315
- "confirmDelete": "__TODO__",
1316
- "deleteBlocked": "__TODO__",
1317
- "deleteDisabledHint": "__TODO__",
1318
- "unused": "__TODO__",
1319
- "usageCount": "__TODO__",
1320
- "usageList": "__TODO__"
1332
+ "title": "Catégories du tournoi",
1333
+ "intro": "Ajoutez ou retirez des catégories définies pour ce tournoi. Les catégories utilisées ne peuvent pas être modifiées ni retirées — modifiez-les en remplaçant les épreuves qui y font référence.",
1334
+ "add": "+ Ajouter une catégorie",
1335
+ "empty": "Aucune catégorie définie pour l'instant.",
1336
+ "duplicate": "Une catégorie portant ce nom ou ce code existe déjà.",
1337
+ "confirmDelete": "Supprimer « {{name}} » ? Cette action est irréversible.",
1338
+ "deleteBlocked": "Impossible de supprimer « {{name}} » — utilisée par {{count}} épreuve(s) : {{events}}. Retirez ou réaffectez d'abord ces épreuves.",
1339
+ "deleteDisabledHint": "Cette catégorie est utilisée par une ou plusieurs épreuves. Retirez ou réaffectez d'abord ces épreuves.",
1340
+ "unused": "Inutilisée",
1341
+ "usageCount": "{{count}} épreuve(s)",
1342
+ "usageList": "{{name}} est utilisée par : {{events}}"
1321
1343
  },
1322
1344
  "firstLogin": {
1323
- "title": "__TODO__",
1324
- "intro": "__TODO__",
1325
- "newPasswordLabel": "__TODO__",
1326
- "newPasswordPlaceholder": "__TODO__",
1327
- "confirmPasswordLabel": "__TODO__",
1328
- "confirmPasswordPlaceholder": "__TODO__",
1329
- "setPassword": "__TODO__",
1330
- "failed": "__TODO__",
1331
- "tokenExpired": "__TODO__"
1345
+ "title": "Définir votre mot de passe",
1346
+ "intro": "Votre compte a été créé avec un mot de passe temporaire. Choisissez un nouveau mot de passe pour terminer la connexion.",
1347
+ "newPasswordLabel": "Nouveau mot de passe",
1348
+ "newPasswordPlaceholder": "8 caractères minimum",
1349
+ "confirmPasswordLabel": "Confirmer le mot de passe",
1350
+ "confirmPasswordPlaceholder": "ressaisir le nouveau mot de passe",
1351
+ "setPassword": "Définir le mot de passe",
1352
+ "failed": "Impossible de définir votre mot de passe. Veuillez réessayer.",
1353
+ "tokenExpired": "Cette session de connexion a expiré. Veuillez vous reconnecter."
1332
1354
  },
1333
1355
  "forgotPassword": {
1334
- "title": "__TODO__",
1335
- "intro": "__TODO__",
1336
- "label": "__TODO__",
1337
- "submit": "__TODO__",
1338
- "sent": "__TODO__",
1339
- "networkError": "__TODO__"
1356
+ "title": "Réinitialiser votre mot de passe",
1357
+ "intro": "Saisissez l'adresse e-mail associée à votre compte. Si nous vous connaissons, un lien de réinitialisation du mot de passe est en route — vérifiez votre boîte de réception.",
1358
+ "label": "E-mail de contact",
1359
+ "submit": "Envoyer le lien de réinitialisation",
1360
+ "sent": "Si nous vous connaissons, un lien de réinitialisation du mot de passe est en route. Vérifiez votre boîte de réception (et votre dossier spam).",
1361
+ "networkError": "Impossible de joindre le serveur — veuillez réessayer."
1340
1362
  },
1341
1363
  "createUser": {
1342
- "title": "__TODO__",
1343
- "create": "__TODO__",
1344
- "loginEmail": "__TODO__",
1345
- "contactEmail": "__TODO__",
1346
- "password": "__TODO__",
1347
- "successCopied": "__TODO__",
1348
- "successEmailed": "__TODO__",
1349
- "successPlain": "__TODO__",
1350
- "failed": "__TODO__",
1351
- "emailExists": "__TODO__"
1364
+ "title": "Créer un utilisateur",
1365
+ "create": "Créer",
1366
+ "loginEmail": "Identifiant de connexion",
1367
+ "contactEmail": "E-mail de contact (facultatif)",
1368
+ "password": "Mot de passe",
1369
+ "successCopied": "{{email}} créé. Mot de passe temporaire copié dans le presse-papiers.",
1370
+ "successEmailed": "Créé. Un lien « définir votre mot de passe » a été envoyé à {{email}}.",
1371
+ "successPlain": "{{email}} créé.",
1372
+ "failed": "Échec de la création de l'utilisateur.",
1373
+ "emailExists": "Un utilisateur avec l'e-mail {{email}} existe déjà."
1352
1374
  },
1353
1375
  "archiveProvider": {
1354
- "title": "__TODO__",
1355
- "intro": "__TODO__",
1356
- "loading": "__TODO__",
1357
- "previewFailed": "__TODO__",
1358
- "confirmLabel": "__TODO__",
1359
- "submit": "__TODO__",
1360
- "success": "__TODO__",
1361
- "failed": "__TODO__",
1376
+ "title": "Archiver le fournisseur — {{provider}}",
1377
+ "intro": "L'archivage exporte sur le disque tout ce qui est associé à {{provider}} ({{abbr}}), puis le supprime de la base de données active. L'archive est récupérable via le script backend revive-provider.mjs.",
1378
+ "loading": "Chargement de l'aperçu du rayon d'impact…",
1379
+ "previewFailed": "Impossible de charger l'aperçu. Réessayez ou actualisez la page.",
1380
+ "confirmLabel": "Saisissez l'abréviation du fournisseur ({{abbr}}) pour confirmer :",
1381
+ "submit": "Archiver le fournisseur",
1382
+ "success": "{{abbr}} archivé — {{tournaments}} tournois. ID d'archive : {{archiveId}}.",
1383
+ "failed": "Échec de l'archivage.",
1362
1384
  "counts": {
1363
- "tournaments": "__TODO__",
1364
- "userAssociations": "__TODO__",
1365
- "provisionerAssociations": "__TODO__",
1366
- "tournamentAssignments": "__TODO__",
1367
- "officialRecords": "__TODO__",
1368
- "sanctioningRecords": "__TODO__",
1369
- "tournamentProvisioner": "__TODO__",
1370
- "pendingSaves": "__TODO__",
1371
- "calendars": "__TODO__",
1372
- "topologies": "__TODO__",
1373
- "catalogItems": "__TODO__",
1374
- "policies": "__TODO__",
1375
- "auditLogRows": "__TODO__"
1385
+ "tournaments": "Tournois",
1386
+ "userAssociations": "Associations d'utilisateur",
1387
+ "provisionerAssociations": "Associations de provisionneur",
1388
+ "tournamentAssignments": "Attributions de tournoi",
1389
+ "officialRecords": "Enregistrements officiels",
1390
+ "sanctioningRecords": "Enregistrements d'homologation",
1391
+ "tournamentProvisioner": "Liens tournoi-provisionneur",
1392
+ "pendingSaves": "Enregistrements en attente",
1393
+ "calendars": "Calendriers",
1394
+ "topologies": "Modèles de topologie",
1395
+ "catalogItems": "Éléments de catalogue",
1396
+ "policies": "Politiques",
1397
+ "auditLogRows": "Lignes du journal d'audit (conservées, non supprimées)"
1376
1398
  }
1377
1399
  },
1378
1400
  "deleteProvider": {
1379
- "title": "__TODO__",
1380
- "warning": "__TODO__",
1381
- "warningDetail": "__TODO__",
1382
- "intro": "__TODO__",
1383
- "acknowledge": "__TODO__",
1384
- "submit": "__TODO__",
1385
- "success": "__TODO__",
1386
- "failed": "__TODO__"
1401
+ "title": "Supprimer le fournisseur — {{provider}}",
1402
+ "warning": "Irréversible — pas d'archive, pas de récupération.",
1403
+ "warningDetail": "Utilisez plutôt l'archivage s'il y a la moindre chance que ces données soient nécessaires plus tard. La suppression est réservée aux fournisseurs sans données réelles (comptes de démo/test).",
1404
+ "intro": "Supprimer définitivement {{provider}} ({{abbr}}) et toutes ses données associées. Les lignes du journal d'audit sont conservées, mais toutes les autres tables seront effacées.",
1405
+ "acknowledge": "Je comprends que cela est irréversible.",
1406
+ "submit": "Supprimer définitivement",
1407
+ "success": "{{abbr}} supprimé — {{tournaments}} tournois détruits.",
1408
+ "failed": "Échec de la suppression."
1387
1409
  },
1388
1410
  "contactEmail": {
1389
- "title": "__TODO__",
1390
- "label": "__TODO__",
1391
- "save": "__TODO__",
1392
- "resend": "__TODO__",
1393
- "savedPending": "__TODO__",
1394
- "resent": "__TODO__",
1395
- "alreadyVerified": "__TODO__",
1396
- "failed": "__TODO__",
1397
- "statusNotSet": "__TODO__",
1398
- "statusPending": "__TODO__",
1399
- "statusVerified": "__TODO__"
1411
+ "title": "E-mail de récupération",
1412
+ "label": "E-mail de récupération",
1413
+ "save": "Enregistrer",
1414
+ "resend": "Renvoyer la vérification",
1415
+ "savedPending": "E-mail de vérification envoyé à {{email}}.",
1416
+ "resent": "E-mail de vérification envoyé.",
1417
+ "alreadyVerified": "L'e-mail de récupération est déjà vérifié.",
1418
+ "failed": "Impossible de mettre à jour l'e-mail de récupération. Veuillez réessayer.",
1419
+ "statusNotSet": "Aucun e-mail de récupération défini. Ajoutez-en un pour pouvoir récupérer l'accès en cas de perte de votre mot de passe.",
1420
+ "statusPending": "En attente de vérification — vérifiez {{email}} et cliquez sur le lien.",
1421
+ "statusVerified": "Vérifié : {{email}}"
1400
1422
  },
1401
1423
  "editUser": {
1402
- "providers": "__TODO__",
1403
- "noProviders": "__TODO__",
1404
- "noProvidersAtYourScope": "__TODO__",
1405
- "addProvider": "__TODO__",
1406
- "addProviderPlaceholder": "__TODO__",
1407
- "providerAdded": "__TODO__",
1408
- "providerRemoved": "__TODO__",
1409
- "providerRoleUpdated": "__TODO__",
1410
- "removeProviderTitle": "__TODO__",
1411
- "removeProviderConfirm": "__TODO__"
1424
+ "providers": "Fournisseurs",
1425
+ "noProviders": "Cet utilisateur n'a aucune association de fournisseur.",
1426
+ "noProvidersAtYourScope": "Cet utilisateur n'a aucune association chez votre fournisseur.",
1427
+ "addProvider": "Ajouter",
1428
+ "addProviderPlaceholder": "Sélectionner un fournisseur...",
1429
+ "providerAdded": "Fournisseur ajouté",
1430
+ "providerRemoved": "Association de fournisseur retirée",
1431
+ "providerRoleUpdated": "Rôle mis à jour en {{role}}",
1432
+ "removeProviderTitle": "Retirer l'association de fournisseur",
1433
+ "removeProviderConfirm": "Retirer l'association de cet utilisateur avec {{provider}} ? Cette action est irréversible."
1412
1434
  },
1413
1435
  "teamProfile": {
1414
- "title": "__TODO__",
1415
- "roster": "__TODO__",
1416
- "coaches": "__TODO__",
1417
- "staff": "__TODO__",
1418
- "empty": "__TODO__",
1436
+ "title": "Profil d'équipe",
1437
+ "roster": "Effectif",
1438
+ "coaches": "Entraîneurs",
1439
+ "staff": "Staff",
1440
+ "empty": "Aucun membre dans cette équipe pour l'instant.",
1419
1441
  "columns": {
1420
- "name": "__TODO__",
1421
- "sex": "__TODO__",
1422
- "role": "__TODO__",
1423
- "contact": "__TODO__"
1442
+ "name": "Nom",
1443
+ "sex": "Sexe",
1444
+ "role": "Rôle",
1445
+ "contact": "Contact"
1424
1446
  },
1425
1447
  "counts": {
1426
- "players_one": "__TODO__",
1427
- "players_other": "__TODO__",
1428
- "coaches_one": "__TODO__",
1429
- "coaches_other": "__TODO__",
1430
- "staff_one": "__TODO__",
1431
- "staff_other": "__TODO__"
1448
+ "players_one": "{{count}} joueur",
1449
+ "players_other": "{{count}} joueurs",
1450
+ "coaches_one": "{{count}} entraîneur",
1451
+ "coaches_other": "{{count}} entraîneurs",
1452
+ "staff_one": "{{count}} membre du staff",
1453
+ "staff_other": "{{count}} membres du staff"
1432
1454
  }
1433
1455
  },
1434
1456
  "practiceCapacity": {
1435
- "title": "__TODO__",
1436
- "help": "__TODO__",
1437
- "unlimited": "__TODO__",
1438
- "capped": "__TODO__",
1439
- "saved": "__TODO__",
1440
- "invalidNumber": "__TODO__",
1441
- "mustBeNonNegative": "__TODO__"
1457
+ "title": "Capacité des courts d'entraînement",
1458
+ "help": "Capacité par défaut pour les réservations d'ENTRAÎNEMENT qui n'en définissent pas. Les réservations individuelles peuvent la remplacer.",
1459
+ "unlimited": "Illimitée",
1460
+ "capped": "Plafonner les inscriptions simultanées :",
1461
+ "saved": "Capacité d'entraînement mise à jour.",
1462
+ "invalidNumber": "Saisissez un nombre entier.",
1463
+ "mustBeNonNegative": "La capacité ne peut pas être négative."
1442
1464
  },
1443
1465
  "practiceRegistrations": {
1444
- "title": "__TODO__",
1445
- "bookingNotFound": "__TODO__",
1446
- "currentRegistrations": "__TODO__",
1447
- "noneYet": "__TODO__",
1448
- "addRegistrant": "__TODO__",
1449
- "participantLabel": "__TODO__",
1450
- "participantPlaceholder": "__TODO__",
1451
- "startTime": "__TODO__",
1452
- "endTime": "__TODO__",
1453
- "add": "__TODO__",
1454
- "added": "__TODO__",
1455
- "removed": "__TODO__",
1456
- "pickParticipant": "__TODO__",
1457
- "pickTimes": "__TODO__",
1458
- "invalidWindow": "__TODO__",
1459
- "conflictWarning": "__TODO__"
1466
+ "title": "Gérer les inscriptions d'entraînement",
1467
+ "bookingNotFound": "Cette réservation d'entraînement n'est plus disponible.",
1468
+ "currentRegistrations": "Inscriptions actuelles",
1469
+ "noneYet": "Aucune inscription pour l'instant.",
1470
+ "addRegistrant": "Ajouter un inscrit",
1471
+ "participantLabel": "Participant",
1472
+ "participantPlaceholder": "Saisissez le nom du participant",
1473
+ "startTime": "Début",
1474
+ "endTime": "Fin",
1475
+ "add": "Ajouter",
1476
+ "added": "Inscription ajoutée.",
1477
+ "removed": "Inscription retirée.",
1478
+ "pickParticipant": "Choisissez un participant dans la liste.",
1479
+ "pickTimes": "Définissez les heures de début et de fin.",
1480
+ "invalidWindow": "L'heure de début doit précéder l'heure de fin.",
1481
+ "conflictWarning": "Inscription ajoutée — le participant a un autre engagement pendant ce créneau."
1460
1482
  }
1461
1483
  },
1462
1484
  "dashboard": {
@@ -1476,14 +1498,15 @@
1476
1498
  "noEliminationStructures": "Pas de structures d'élimination",
1477
1499
  "viewCompetitiveness": "Afficher la compétitivité",
1478
1500
  "viewBracket": "Afficher le tableau",
1479
- "allStructures": "__TODO__",
1480
- "categories": "__TODO__",
1481
- "noneSet": "__TODO__",
1482
- "practiceCapacity": "__TODO__",
1483
- "practiceUnlimited": "__TODO__",
1484
- "practiceClosed": "__TODO__",
1485
- "setTimeZone": "__TODO__",
1486
- "setTimeZoneDetected": "__TODO__"
1501
+ "allStructures": "Toutes les structures",
1502
+ "categories": "Catégories ({{count}})",
1503
+ "noneSet": "Aucun",
1504
+ "practiceCapacity": "Capacité d'entraînement",
1505
+ "practiceUnlimited": "Illimitée",
1506
+ "practiceClosed": "Fermé",
1507
+ "setTimeZone": "Définir le fuseau horaire",
1508
+ "setTimeZoneDetected": "(détecté : {{zone}})",
1509
+ "practiceNoneAllocated": "Aucune allouée"
1487
1510
  },
1488
1511
  "drawers": {
1489
1512
  "editTournament": {
@@ -1496,19 +1519,19 @@
1496
1519
  "endDateLabel": "Date de fin",
1497
1520
  "selectActiveDates": "Sélectionner les dates actives",
1498
1521
  "activeDates": "Dates actives",
1499
- "timeZoneLabel": "__TODO__",
1500
- "timeZonePlaceholder": "__TODO__",
1501
- "timeZoneInvalid": "__TODO__",
1502
- "tierSystemLabel": "__TODO__",
1503
- "tierSystemPlaceholder": "__TODO__",
1504
- "tierSystemNone": "__TODO__",
1505
- "tierSystemUnknown": "__TODO__",
1506
- "tierValueLabel": "__TODO__",
1507
- "tierValuePlaceholder": "__TODO__",
1508
- "tierNumericRankLabel": "__TODO__",
1509
- "tierNumericRankPlaceholder": "__TODO__",
1510
- "tierSystemMissing": "__TODO__",
1511
- "tierValueMissing": "__TODO__"
1522
+ "timeZoneLabel": "Fuseau horaire",
1523
+ "timeZonePlaceholder": "p. ex. America/New_York",
1524
+ "timeZoneInvalid": "Fuseau horaire IANA non reconnu",
1525
+ "tierSystemLabel": "Système de niveaux",
1526
+ "tierSystemPlaceholder": "p. ex. ITF_JUNIOR, ATP, PPA",
1527
+ "tierSystemNone": "",
1528
+ "tierSystemUnknown": "(inconnu : {{system}})",
1529
+ "tierValueLabel": "Valeur de niveau",
1530
+ "tierValuePlaceholder": "p. ex. J500, Masters 1000, Gold",
1531
+ "tierNumericRankLabel": "Rang de niveau (facultatif)",
1532
+ "tierNumericRankPlaceholder": "Plus bas = niveau supérieur",
1533
+ "tierSystemMissing": "Valeur de niveau saisie sans système",
1534
+ "tierValueMissing": "Système de niveaux saisi sans valeur"
1512
1535
  },
1513
1536
  "addDraw": {
1514
1537
  "missingName": "Nom du tableau manquant",
@@ -1587,15 +1610,15 @@
1587
1610
  "PLAY_OFF": "Tableau de playoffs utilisé comme structure secondaire.",
1588
1611
  "ROUND_ROBIN_WITH_PLAYOFF": "Phase de groupes en poules suivie de playoffs à élimination directe.",
1589
1612
  "FEED_IN": "Tableau à entrée échelonnée où les participants entrent dans le tableau à différents tours.",
1590
- "SWISS": "__TODO__",
1591
- "PAGE_PLAYOFF": "__TODO__"
1613
+ "SWISS": "Participants appariés selon leur bilan victoires-défaites à chaque tour. Les départages classent tous les participants après le dernier tour.",
1614
+ "PAGE_PLAYOFF": "Élimination hybride à quatre participants (IPL/NBA/curling). Les deux premières têtes de série ont une double élimination ; les quatre positions sont attribuées."
1592
1615
  },
1593
- "qualifyingFirst": "__TODO__",
1594
- "qualifyingPositions": "__TODO__",
1595
- "generateMainDraw": "__TODO__",
1596
- "noMainDraw": "__TODO__",
1597
- "drawTypeSwiss": "__TODO__",
1598
- "drawTypePagePlayoff": "__TODO__"
1616
+ "qualifyingFirst": "Commencer par les qualifications",
1617
+ "qualifyingPositions": "Positions de qualification",
1618
+ "generateMainDraw": "Générer le tableau principal",
1619
+ "noMainDraw": "Le tableau principal n'a pas encore été généré.",
1620
+ "drawTypeSwiss": "Système suisse",
1621
+ "drawTypePagePlayoff": "Play-off Page"
1599
1622
  }
1600
1623
  },
1601
1624
  "toasts": {
@@ -1622,16 +1645,16 @@
1622
1645
  "missingTournament": "Tournoi manquant",
1623
1646
  "devVariableError": "Une erreur est survenue lors de l'ajout des variables de développement",
1624
1647
  "cannotDeleteParticipant": "Le participant est assigné à un tableau et ne peut pas être supprimé",
1625
- "updatedParticipants": "__TODO__",
1626
- "addedEventEntries": "__TODO__",
1627
- "magicLinkSent": "__TODO__",
1628
- "magicLinkInvalid": "__TODO__",
1629
- "addedTeamParticipants": "__TODO__",
1630
- "activeDatesPrompt": "__TODO__",
1631
- "activeDatesPromptAction": "__TODO__",
1632
- "cannotDeleteTournament": "__TODO__",
1633
- "tournamentNotEnded": "__TODO__",
1634
- "deleteForbidden": "__TODO__"
1648
+ "updatedParticipants": "{{count}} participant(s) existant(s) mis à jour",
1649
+ "addedEventEntries": "{{entries}} inscrit(s) dans {{events}} épreuve(s)",
1650
+ "magicLinkSent": "Si un compte existe pour cet e-mail, un lien de connexion est en route.",
1651
+ "magicLinkInvalid": "Ce lien de connexion est invalide ou a expiré. Veuillez en demander un nouveau.",
1652
+ "addedTeamParticipants": "{{count}} participant(s) d'équipe généré(s) à partir de la colonne d'équipe",
1653
+ "activeDatesPrompt": "Définissez les dates actives pour que la programmation publique n'affiche que les jours où vous jouez.",
1654
+ "activeDatesPromptAction": "Définir les dates actives",
1655
+ "cannotDeleteTournament": "Impossible de supprimer le tournoi",
1656
+ "tournamentNotEnded": "Impossible de supprimer un tournoi avant sa date de fin. Fixez d'abord la date de fin à une date passée, puis supprimez.",
1657
+ "deleteForbidden": "Vous n'êtes pas autorisé à supprimer ce tournoi."
1635
1658
  },
1636
1659
  "loginMenu": {
1637
1660
  "authorization": "Autorisation",
@@ -1697,7 +1720,7 @@
1697
1720
  "seed": "Tête de série",
1698
1721
  "flights": "Tableaux",
1699
1722
  "status": "Statut",
1700
- "drawPosition": "__TODO__"
1723
+ "drawPosition": "Pos"
1701
1724
  },
1702
1725
  "teamRow": {
1703
1726
  "order": "Ordre",
@@ -1731,9 +1754,9 @@
1731
1754
  "events": "Épreuves",
1732
1755
  "teams": "Équipes",
1733
1756
  "cityState": "Ville/Région",
1734
- "nickname": "__TODO__",
1735
- "role": "__TODO__",
1736
- "teamAffiliation": "__TODO__"
1757
+ "nickname": "Surnom",
1758
+ "role": "Rôle",
1759
+ "teamAffiliation": "Affiliation d'équipe"
1737
1760
  },
1738
1761
  "bracket": {
1739
1762
  "participant": "Participant",
@@ -1790,7 +1813,8 @@
1790
1813
  "profile": "Profil",
1791
1814
  "official": "Officiel",
1792
1815
  "status": "Statut",
1793
- "updatedAt": "__TODO__"
1816
+ "updatedAt": "Mis à jour",
1817
+ "calledAt": "Appelé"
1794
1818
  },
1795
1819
  "tournaments": {
1796
1820
  "open": "Ouvrir"
@@ -1825,9 +1849,21 @@
1825
1849
  "doubles": "Double",
1826
1850
  "team": "Équipe",
1827
1851
  "opponents": "Adversaires",
1828
- "allDates": "__TODO__",
1829
- "today": "__TODO__",
1830
- "noDate": "__TODO__"
1852
+ "allDates": "Toutes les dates",
1853
+ "today": "Aujourd'hui",
1854
+ "noDate": "Aucune date",
1855
+ "suspended": "__TODO__",
1856
+ "notReady": "__TODO__",
1857
+ "live": "__TODO__",
1858
+ "abandoned": "__TODO__",
1859
+ "cancelled": "__TODO__",
1860
+ "allProfiles": "__TODO__",
1861
+ "competitive": "__TODO__",
1862
+ "routine": "__TODO__",
1863
+ "decisive": "__TODO__",
1864
+ "walkover": "__TODO__",
1865
+ "showTodayView": "__TODO__",
1866
+ "showCompetitivenessView": "__TODO__"
1831
1867
  },
1832
1868
  "schedule": {
1833
1869
  "searchParticipants": "Rechercher des participants",
@@ -1864,7 +1900,7 @@
1864
1900
  "blocked": "Bloqué",
1865
1901
  "available": "Disponible",
1866
1902
  "avgPerCourt": "Moy. Disp./Court",
1867
- "tournament": "__TODO__"
1903
+ "tournament": "Tournoi"
1868
1904
  },
1869
1905
  "addCourts": "Ajouter des courts",
1870
1906
  "addVenue": {
@@ -1877,10 +1913,10 @@
1877
1913
  "courtNameBasePlaceholder": "e.g. Court, Field, Rink",
1878
1914
  "numberOfCourts": "Nombre de courts",
1879
1915
  "numberOfCourtsError": "Doit être un nombre entier",
1880
- "externalLookup": "__TODO__",
1881
- "openingTime": "__TODO__",
1882
- "closingTime": "__TODO__",
1883
- "timeOrderError": "__TODO__"
1916
+ "externalLookup": "Recherche externe",
1917
+ "openingTime": "Heure d'ouverture",
1918
+ "closingTime": "Heure de fermeture",
1919
+ "timeOrderError": "L'heure d'ouverture doit précéder l'heure de fermeture"
1884
1920
  },
1885
1921
  "editCourt": {
1886
1922
  "title": "Modifier le court",
@@ -1902,17 +1938,17 @@
1902
1938
  "abbreviationError": "2 caractères minimum, 6 maximum",
1903
1939
  "abbreviationRequired": "L'abréviation doit comporter de 2 à 6 caractères",
1904
1940
  "updateCourtNames": "Mettre à jour les noms des courts",
1905
- "openingTime": "__TODO__",
1906
- "closingTime": "__TODO__",
1907
- "timeOrderError": "__TODO__",
1908
- "websiteLabel": "__TODO__",
1909
- "imageLabel": "__TODO__",
1910
- "addressLine1Label": "__TODO__",
1911
- "cityLabel": "__TODO__",
1912
- "stateLabel": "__TODO__",
1913
- "postalCodeLabel": "__TODO__",
1914
- "countryCodeLabel": "__TODO__",
1915
- "countryCodePlaceholder": "__TODO__"
1941
+ "openingTime": "Heure d'ouverture",
1942
+ "closingTime": "Heure de fermeture",
1943
+ "timeOrderError": "L'heure d'ouverture doit précéder l'heure de fermeture",
1944
+ "websiteLabel": "URL du site web",
1945
+ "imageLabel": "URL de l'image",
1946
+ "addressLine1Label": "Adresse",
1947
+ "cityLabel": "Ville",
1948
+ "stateLabel": "État / région",
1949
+ "postalCodeLabel": "Code postal",
1950
+ "countryCodeLabel": "Pays",
1951
+ "countryCodePlaceholder": "Commencez à saisir un nom de pays"
1916
1952
  }
1917
1953
  },
1918
1954
  "events": {
@@ -1938,10 +1974,10 @@
1938
1974
  "any": "Tout",
1939
1975
  "custom": "Personnalisé",
1940
1976
  "categorySaveWarning": "Catégorie enregistrée pour l'épreuve mais non ajoutée aux catégories du tournoi",
1941
- "competitionFormatLabel": "__TODO__",
1942
- "competitionFormatNone": "__TODO__",
1943
- "competitionFormatTennis": "__TODO__",
1944
- "competitionFormatIntennse": "__TODO__"
1977
+ "competitionFormatLabel": "Règles du sport",
1978
+ "competitionFormatNone": "Aucune",
1979
+ "competitionFormatTennis": "Tennis (standard)",
1980
+ "competitionFormatIntennse": "INTENNSE (standard)"
1945
1981
  },
1946
1982
  "editFormat": {
1947
1983
  "noChanges": "Aucune modification",
@@ -1962,10 +1998,10 @@
1962
1998
  "viewDraw": "Voir le tableau",
1963
1999
  "displaySettings": "Paramètres d'affichage",
1964
2000
  "autoPlaceParticipants": "Placer les participants automatiquement",
1965
- "configureDraft": "__TODO__",
1966
- "resolveDraft": "__TODO__",
1967
- "draftStatus": "__TODO__",
1968
- "recalculateStats": "__TODO__"
2001
+ "configureDraft": "Configurer le brouillon",
2002
+ "resolveDraft": "Résoudre le brouillon",
2003
+ "draftStatus": "Brouillon",
2004
+ "recalculateStats": "Recalculer les stats"
1969
2005
  }
1970
2006
  },
1971
2007
  "participants": {
@@ -2013,8 +2049,8 @@
2013
2049
  "birthdayPlaceholder": "Date de naissance",
2014
2050
  "country": "Pays",
2015
2051
  "countryPlaceholder": "Pays d'origine",
2016
- "nickname": "__TODO__",
2017
- "nicknamePlaceholder": "__TODO__"
2052
+ "nickname": "Surnom",
2053
+ "nicknamePlaceholder": "Nom d'affichage"
2018
2054
  },
2019
2055
  "newTeam": "Nouvelle équipe",
2020
2056
  "generateTeams": "Générer des équipes",
@@ -2033,9 +2069,9 @@
2033
2069
  "female": "Femme",
2034
2070
  "unknown": "Inconnu"
2035
2071
  },
2036
- "importFromCsv": "__TODO__",
2037
- "newGroup": "__TODO__",
2038
- "staff": "__TODO__"
2072
+ "importFromCsv": "Importer depuis CSV/TSV",
2073
+ "newGroup": "Nouveau groupe",
2074
+ "staff": "Staff"
2039
2075
  }
2040
2076
  },
2041
2077
  "overlays": {
@@ -2088,629 +2124,708 @@
2088
2124
  "publishParticipants": "Publier les Participants",
2089
2125
  "country": "Pays",
2090
2126
  "cityState": "Ville / Région",
2091
- "unpublishTournament": "__TODO__",
2092
- "confirmUnpublish": "__TODO__"
2127
+ "unpublishTournament": "Dépublier le tournoi",
2128
+ "confirmUnpublish": "Dépublier toutes les épreuves, participants et la programmation",
2129
+ "timeZoneNotSetTitle": "__TODO__",
2130
+ "timeZoneNotSetBody": "__TODO__",
2131
+ "setTimeZone": "__TODO__"
2093
2132
  },
2094
- "cal": "__TODO__",
2095
- "tpl": "__TODO__",
2096
- "pol": "__TODO__",
2097
- "rpt": "__TODO__",
2133
+ "cal": "Calendrier",
2134
+ "tpl": "Modèles",
2135
+ "pol": "Politiques",
2136
+ "rpt": "Rapports",
2098
2137
  "system": {
2099
- "title": "__TODO__",
2100
- "providers": "__TODO__",
2101
- "users": "__TODO__",
2102
- "loadError": "__TODO__",
2103
- "noProviders": "__TODO__",
2104
- "noUsers": "__TODO__",
2105
- "providerName": "__TODO__",
2106
- "providerAbbr": "__TODO__",
2107
- "selectProvider": "__TODO__",
2108
- "impersonate": "__TODO__",
2109
- "editProvider": "__TODO__",
2110
- "createProvider": "__TODO__",
2111
- "providerUpdated": "__TODO__",
2112
- "associatedUsers": "__TODO__",
2113
- "noUsersForProvider": "__TODO__",
2114
- "userName": "__TODO__",
2115
- "firstName": "__TODO__",
2116
- "lastName": "__TODO__",
2117
- "provider": "__TODO__",
2118
- "roles": "__TODO__",
2119
- "searchUsers": "__TODO__",
2120
- "inviteUser": "__TODO__",
2121
- "editUser": "__TODO__",
2122
- "editUserTitle": "__TODO__",
2123
- "removeUser": "__TODO__",
2124
- "selectUserFirst": "__TODO__",
2125
- "userUpdated": "__TODO__",
2126
- "inviteCopied": "__TODO__",
2127
- "confirmRemoveUser": "__TODO__",
2128
- "removeUserConfirm": "__TODO__",
2129
- "searchProviders": "__TODO__",
2130
- "lastAccess": "__TODO__",
2131
- "activeRooms": "__TODO__",
2132
- "activeRoomsTitle": "__TODO__",
2133
- "noActiveRooms": "__TODO__",
2134
- "tournamentColumn": "__TODO__",
2135
- "userCountColumn": "__TODO__",
2136
- "presenceLoadError": "__TODO__",
2137
- "joinedAt": "__TODO__",
2138
- "anonymous": "__TODO__",
2139
- "refreshNow": "__TODO__",
2140
- "lastRefreshed": "__TODO__",
2141
- "tmxUrlMissing": "__TODO__",
2142
- "createUser": "__TODO__",
2143
- "archiveProvider": "__TODO__",
2144
- "deleteProvider": "__TODO__",
2145
- "resetPassword": "__TODO__",
2146
- "resetPasswordTitle": "__TODO__",
2147
- "newPassword": "__TODO__",
2148
- "generatePassword": "__TODO__",
2149
- "passwordCopied": "__TODO__",
2150
- "passwordReset": "__TODO__",
2151
- "passwordResetError": "__TODO__",
2152
- "provisioners": "__TODO__",
2153
- "provisionerName": "__TODO__",
2154
- "provisionerNamePlaceholder": "__TODO__",
2155
- "noProvisioners": "__TODO__",
2156
- "selectProvisioner": "__TODO__",
2157
- "searchProvisioners": "__TODO__",
2158
- "createProvisioner": "__TODO__",
2159
- "editProvisioner": "__TODO__",
2160
- "provisionerCreated": "__TODO__",
2161
- "createFailed": "__TODO__",
2162
- "updateFailed": "__TODO__",
2163
- "updated": "__TODO__",
2164
- "create": "__TODO__",
2165
- "active": "__TODO__",
2166
- "inactive": "__TODO__",
2167
- "activate": "__TODO__",
2168
- "deactivate": "__TODO__",
2169
- "activateProvisioner": "__TODO__",
2170
- "deactivateProvisioner": "__TODO__",
2171
- "activateConfirm": "__TODO__",
2172
- "deactivateConfirm": "__TODO__",
2173
- "status": "__TODO__",
2174
- "createdAt": "__TODO__",
2175
- "created": "__TODO__",
2176
- "lastUsed": "__TODO__",
2177
- "apiKeys": "__TODO__",
2178
- "label": "__TODO__",
2179
- "noKeys": "__TODO__",
2180
- "generateKey": "__TODO__",
2181
- "generate": "__TODO__",
2182
- "generateFailed": "__TODO__",
2183
- "keyLabel": "__TODO__",
2184
- "keyLabelPlaceholder": "__TODO__",
2185
- "keyGenerated": "__TODO__",
2186
- "keyRevealWarning": "__TODO__",
2187
- "copy": "__TODO__",
2188
- "copiedToClipboard": "__TODO__",
2189
- "revoke": "__TODO__",
2190
- "revoked": "__TODO__",
2191
- "revokeKey": "__TODO__",
2192
- "revokeKeyConfirm": "__TODO__",
2193
- "keyRevoked": "__TODO__",
2194
- "associatedProviders": "__TODO__",
2195
- "noAssociatedProviders": "__TODO__",
2196
- "associateProvider": "__TODO__",
2197
- "associate": "__TODO__",
2198
- "associated": "__TODO__",
2199
- "disassociate": "__TODO__",
2200
- "disassociateProvider": "__TODO__",
2201
- "disassociateConfirm": "__TODO__",
2202
- "disassociated": "__TODO__",
2203
- "selectProviderFirst": "__TODO__",
2204
- "relationship": "__TODO__",
2205
- "owner": "__TODO__",
2206
- "subsidiary": "__TODO__",
2207
- "nameRequired": "__TODO__",
2208
- "deleteProvisioner": "__TODO__",
2209
- "deletePermanently": "__TODO__",
2210
- "deleteProvisionerWarning": "__TODO__",
2211
- "typeNameToConfirm": "__TODO__",
2212
- "provisionerDeleted": "__TODO__",
2213
- "deleteFailed": "__TODO__",
2214
- "representatives": "__TODO__",
2215
- "noRepresentatives": "__TODO__",
2216
- "user": "__TODO__",
2217
- "displayName": "__TODO__",
2218
- "granted": "__TODO__",
2219
- "assignUser": "__TODO__",
2220
- "assign": "__TODO__",
2221
- "remove": "__TODO__",
2222
- "representativeAssigned": "__TODO__",
2223
- "representativeRemoved": "__TODO__",
2224
- "removeRepresentative": "__TODO__",
2225
- "removeRepresentativeConfirm": "__TODO__",
2138
+ "title": "Système",
2139
+ "providers": "Fournisseurs",
2140
+ "users": "Utilisateurs",
2141
+ "loadError": "Échec du chargement des données système",
2142
+ "noProviders": "Aucun fournisseur trouvé",
2143
+ "noUsers": "Aucun utilisateur trouvé",
2144
+ "providerName": "Nom du fournisseur",
2145
+ "providerAbbr": "Abréviation",
2146
+ "selectProvider": "Sélectionnez un fournisseur pour voir les détails",
2147
+ "impersonate": "Usurper",
2148
+ "editProvider": "Modifier le fournisseur",
2149
+ "createProvider": "Créer un fournisseur",
2150
+ "providerUpdated": "Fournisseur mis à jour",
2151
+ "associatedUsers": "Utilisateurs associés",
2152
+ "noUsersForProvider": "Aucun utilisateur associé à ce fournisseur",
2153
+ "userName": "Nom",
2154
+ "firstName": "Prénom",
2155
+ "lastName": "Nom de famille",
2156
+ "provider": "Fournisseur",
2157
+ "roles": "Rôles",
2158
+ "searchUsers": "Rechercher des utilisateurs...",
2159
+ "inviteUser": "Inviter un utilisateur",
2160
+ "editUser": "Modifier l'utilisateur",
2161
+ "editUserTitle": "Modifier l'utilisateur",
2162
+ "removeUser": "Retirer l'utilisateur",
2163
+ "selectUserFirst": "Sélectionnez d'abord un utilisateur",
2164
+ "userUpdated": "Utilisateur mis à jour",
2165
+ "inviteCopied": "Lien d'invitation copié dans le presse-papiers",
2166
+ "confirmRemoveUser": "Retirer l'utilisateur",
2167
+ "removeUserConfirm": "Êtes-vous sûr de vouloir retirer",
2168
+ "searchProviders": "Rechercher des fournisseurs...",
2169
+ "lastAccess": "Dernier accès",
2170
+ "activeRooms": "Salles actives",
2171
+ "activeRoomsTitle": "Sessions de tournoi en direct",
2172
+ "noActiveRooms": "Aucune session de tournoi active",
2173
+ "tournamentColumn": "Tournoi",
2174
+ "userCountColumn": "Utilisateurs actifs",
2175
+ "presenceLoadError": "Échec du chargement des salles actives",
2176
+ "joinedAt": "Rejoint le",
2177
+ "anonymous": "Anonyme",
2178
+ "refreshNow": "Actualiser maintenant",
2179
+ "lastRefreshed": "Actualisé il y a {{ago}} s",
2180
+ "tmxUrlMissing": "Impossible d'ouvrir TMX — le serveur n'a pas fourni d'URL TMX. Vérifiez TMX_URL dans le fichier .env du serveur.",
2181
+ "createUser": "Créer un utilisateur",
2182
+ "archiveProvider": "Archiver",
2183
+ "deleteProvider": "Supprimer",
2184
+ "resetPassword": "Réinitialiser le mot de passe",
2185
+ "resetPasswordTitle": "Réinitialiser le mot de passe",
2186
+ "newPassword": "Nouveau mot de passe",
2187
+ "generatePassword": "Générer",
2188
+ "passwordCopied": "Mot de passe copié dans le presse-papiers",
2189
+ "passwordReset": "Mot de passe réinitialisé avec succès",
2190
+ "passwordResetError": "Échec de la réinitialisation du mot de passe",
2191
+ "provisioners": "Provisionneurs",
2192
+ "provisionerName": "Nom du provisionneur",
2193
+ "provisionerNamePlaceholder": "p. ex. TMX Sandbox",
2194
+ "noProvisioners": "Aucun provisionneur trouvé",
2195
+ "selectProvisioner": "Sélectionnez un provisionneur pour voir les détails",
2196
+ "searchProvisioners": "Rechercher des provisionneurs...",
2197
+ "createProvisioner": "Créer un provisionneur",
2198
+ "editProvisioner": "Modifier le provisionneur",
2199
+ "provisionerCreated": "Provisionneur créé",
2200
+ "createFailed": "Échec de la création",
2201
+ "updateFailed": "Échec de la mise à jour",
2202
+ "updated": "Mis à jour",
2203
+ "create": "Créer",
2204
+ "active": "Actif",
2205
+ "inactive": "Inactif",
2206
+ "activate": "Activer",
2207
+ "deactivate": "Désactiver",
2208
+ "activateProvisioner": "Activer le provisionneur",
2209
+ "deactivateProvisioner": "Désactiver le provisionneur",
2210
+ "activateConfirm": "Activer le provisionneur « {{name}} » ?",
2211
+ "deactivateConfirm": "Désactiver le provisionneur « {{name}} » ? Ses clés API cesseront de fonctionner.",
2212
+ "status": "Statut",
2213
+ "createdAt": "Créé",
2214
+ "created": "Créé",
2215
+ "lastUsed": "Dernière utilisation",
2216
+ "apiKeys": "Clés API",
2217
+ "label": "Libellé",
2218
+ "noKeys": "Aucune clé API",
2219
+ "generateKey": "Générer une clé",
2220
+ "generate": "Générer",
2221
+ "generateFailed": "Échec de la génération de la clé API",
2222
+ "keyLabel": "Libellé de la clé",
2223
+ "keyLabelPlaceholder": "p. ex. Production, Staging",
2224
+ "keyGenerated": "Clé API générée",
2225
+ "keyRevealWarning": "C'est la seule fois où la clé complète sera affichée. Enregistrez-la en lieu sûr avant de fermer cette boîte de dialogue.",
2226
+ "copy": "Copier",
2227
+ "copiedToClipboard": "Copié dans le presse-papiers",
2228
+ "revoke": "Révoquer",
2229
+ "revoked": "Révoqué",
2230
+ "revokeKey": "Révoquer la clé API",
2231
+ "revokeKeyConfirm": "Révoquer la clé « {{label}} » ? Cette action est irréversible.",
2232
+ "keyRevoked": "Clé API révoquée",
2233
+ "associatedProviders": "Fournisseurs associés",
2234
+ "noAssociatedProviders": "Aucun fournisseur associé",
2235
+ "associateProvider": "Associer un fournisseur",
2236
+ "associate": "Associer",
2237
+ "associated": "Fournisseur associé",
2238
+ "disassociate": "Retirer",
2239
+ "disassociateProvider": "Retirer l'association de fournisseur",
2240
+ "disassociateConfirm": "Retirer l'association avec « {{name}} » ?",
2241
+ "disassociated": "Association de fournisseur retirée",
2242
+ "selectProviderFirst": "Sélectionnez d'abord un fournisseur",
2243
+ "relationship": "Relation",
2244
+ "owner": "Propriétaire",
2245
+ "subsidiary": "Filiale",
2246
+ "nameRequired": "Le nom est requis",
2247
+ "deleteProvisioner": "Supprimer définitivement",
2248
+ "deletePermanently": "Supprimer définitivement",
2249
+ "deleteProvisionerWarning": "<strong>Cette action est irréversible.</strong> Toutes les clés API, associations de fournisseurs et marques de propriété de tournoi pour « {{name}} » seront supprimées. Les fournisseurs et leurs tournois ne seront <em>pas</em> supprimés.",
2250
+ "typeNameToConfirm": "Saisissez {{name}} pour confirmer :",
2251
+ "provisionerDeleted": "Provisionneur supprimé ({{apiKeys}} clés, {{providerAssociations}} associations, {{tournamentStamps}} marques nettoyées)",
2252
+ "deleteFailed": "Échec de la suppression",
2253
+ "representatives": "Représentants",
2254
+ "noRepresentatives": "Aucun représentant attribué",
2255
+ "user": "Utilisateur",
2256
+ "displayName": "Nom",
2257
+ "granted": "Accordé",
2258
+ "assignUser": "Attribuer un utilisateur",
2259
+ "assign": "Attribuer",
2260
+ "remove": "Retirer",
2261
+ "representativeAssigned": "Utilisateur attribué comme représentant",
2262
+ "representativeRemoved": "Représentant retiré",
2263
+ "removeRepresentative": "Retirer le représentant",
2264
+ "removeRepresentativeConfirm": "Retirer {{email}} en tant que représentant ? Il ne pourra plus agir en tant que ce provisionneur.",
2226
2265
  "contactEmailCoverage": {
2227
- "label": "__TODO__",
2228
- "loading": "__TODO__",
2229
- "verified": "__TODO__",
2230
- "unverified": "__TODO__",
2231
- "missing": "__TODO__",
2232
- "equalsLogin": "__TODO__",
2233
- "total": "__TODO__"
2266
+ "label": "Couverture des e-mails de récupération",
2267
+ "loading": "Chargement…",
2268
+ "verified": "vérifié",
2269
+ "unverified": "en attente",
2270
+ "missing": "manquant",
2271
+ "equalsLogin": "= identifiant de connexion",
2272
+ "total": "sur {{count}} utilisateurs"
2234
2273
  },
2235
2274
  "audit": {
2236
- "tabLabel": "__TODO__",
2237
- "title": "__TODO__",
2238
- "tournamentsLabel": "__TODO__",
2239
- "tournamentFilterPlaceholder": "__TODO__",
2240
- "deletedDrawsLabel": "__TODO__",
2241
- "selectTournament": "__TODO__",
2242
- "noTournaments": "__TODO__",
2243
- "tournamentName": "__TODO__",
2244
- "tournamentId": "__TODO__",
2245
- "startDate": "__TODO__",
2246
- "drawName": "__TODO__",
2247
- "eventId": "__TODO__",
2248
- "deletedAt": "__TODO__",
2249
- "deletedBy": "__TODO__",
2250
- "restore": "__TODO__",
2251
- "restoreTitle": "__TODO__",
2252
- "restorePrompt": "__TODO__",
2253
- "restoreSuccess": "__TODO__",
2254
- "restoreFailure": "__TODO__",
2255
- "calendarLoadError": "__TODO__",
2256
- "deletedDrawsLoadError": "__TODO__",
2257
- "providerLockedToActive": "__TODO__"
2275
+ "tabLabel": "Audit",
2276
+ "title": "Piste d'audit des tableaux supprimés",
2277
+ "tournamentsLabel": "Tournois",
2278
+ "tournamentFilterPlaceholder": "Filtrer par nom ou id de tournoi",
2279
+ "deletedDrawsLabel": "Tableaux supprimés",
2280
+ "selectTournament": "Sélectionnez un tournoi pour voir ses tableaux supprimés",
2281
+ "noTournaments": "Aucun tournoi pour ce fournisseur",
2282
+ "tournamentName": "Tournoi",
2283
+ "tournamentId": "ID du tournoi",
2284
+ "startDate": "Date de début",
2285
+ "drawName": "Tableau",
2286
+ "eventId": "Épreuve",
2287
+ "deletedAt": "Supprimé le",
2288
+ "deletedBy": "Supprimé par",
2289
+ "restore": "Restaurer",
2290
+ "restoreTitle": "Restaurer le tableau supprimé",
2291
+ "restorePrompt": "La restauration réinsérera le tableau avec tous ses matchs, scores et attributions.",
2292
+ "restoreSuccess": "Tableau restauré",
2293
+ "restoreFailure": "Échec de la restauration",
2294
+ "calendarLoadError": "Échec du chargement du calendrier",
2295
+ "deletedDrawsLoadError": "Échec du chargement des tableaux supprimés",
2296
+ "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."
2258
2297
  }
2259
2298
  },
2260
2299
  "formatWizard": {
2261
- "title": "__TODO__",
2262
- "launch": "__TODO__",
2263
- "launcherSubtitle": "__TODO__",
2264
- "placeholder": "__TODO__",
2300
+ "title": "Assistant de format",
2301
+ "launch": "Lancer",
2302
+ "launcherSubtitle": "Suggérer des formats par niveau pour le bassin de participants",
2303
+ "placeholder": "Les résultats des plans apparaîtront ici au fur et à mesure que vous ajustez les contraintes.",
2265
2304
  "fields": {
2266
- "scale": "__TODO__",
2267
- "courts": "__TODO__",
2268
- "days": "__TODO__",
2269
- "hoursPerDay": "__TODO__",
2270
- "targetMatchesPerPlayer": "__TODO__",
2271
- "targetCompetitivePct": "__TODO__",
2272
- "consolationAppetite": "__TODO__",
2273
- "voluntaryConsolation": "__TODO__",
2274
- "selectedEvent": "__TODO__"
2305
+ "scale": "Échelle de niveau",
2306
+ "courts": "Courts",
2307
+ "days": "Jours",
2308
+ "hoursPerDay": "Heures par jour",
2309
+ "targetMatchesPerPlayer": "Matchs cibles par joueur",
2310
+ "targetCompetitivePct": "% compétitif cible (0–100)",
2311
+ "consolationAppetite": "Appétit de consolation",
2312
+ "voluntaryConsolation": "Inclure la consolation volontaire",
2313
+ "selectedEvent": "Appliquer à l'épreuve"
2275
2314
  },
2276
2315
  "appetite": {
2277
- "none": "__TODO__",
2278
- "light": "__TODO__",
2279
- "full": "__TODO__"
2316
+ "none": "Aucune",
2317
+ "light": "Légère (un seul tour de consolation)",
2318
+ "full": "Complète (consolation en cascade)"
2280
2319
  },
2281
- "reset": "__TODO__",
2320
+ "reset": "Réinitialiser par défaut",
2282
2321
  "cues": {
2283
- "noVenues": "__TODO__",
2284
- "savedExceedsAvailable": "__TODO__",
2285
- "savedLessThanAvailable": "__TODO__",
2286
- "effectiveCourtCount": "__TODO__"
2322
+ "noVenues": "Aucun court défini — configurez d'abord les sites",
2323
+ "savedExceedsAvailable": "L'assistant prévoit {{saved}} courts mais le tournoi en a {{available}}",
2324
+ "savedLessThanAvailable": "Le tournoi a {{available}} courts ; l'assistant est configuré pour {{saved}}",
2325
+ "effectiveCourtCount": "En moyenne {{effective}} courts disponibles par jour sur {{dayCount}} jours"
2287
2326
  },
2288
2327
  "headers": {
2289
- "distribution": "__TODO__",
2290
- "plans": "__TODO__",
2291
- "consideration": "__TODO__"
2328
+ "distribution": "Distribution des niveaux",
2329
+ "plans": "Plans suggérés",
2330
+ "consideration": "À l'étude"
2292
2331
  },
2293
2332
  "summary": {
2294
- "ratedOf": "__TODO__",
2295
- "noRatedParticipants": "__TODO__",
2296
- "loadTournament": "__TODO__",
2297
- "constraintsRequired": "__TODO__",
2298
- "allParticipants": "__TODO__"
2333
+ "ratedOf": "{{rated}} sur {{total}} classés sur {{scale}}",
2334
+ "noRatedParticipants": "Aucun participant classé sur cette échelle",
2335
+ "loadTournament": "Ouvrez un tournoi pour remplir l'assistant",
2336
+ "constraintsRequired": "Ajustez les contraintes pour voir les plans",
2337
+ "allParticipants": "Tous les participants"
2299
2338
  },
2300
2339
  "actions": {
2301
- "clearStale": "__TODO__"
2340
+ "clearStale": "Effacer les considérations obsolètes"
2302
2341
  },
2303
2342
  "card": {
2304
- "matchesPerPlayer": "__TODO__",
2305
- "bandHeading": "__TODO__",
2306
- "bandHeading_plural": "__TODO__",
2307
- "bandTargetTag": "__TODO__",
2308
- "vcTag": "__TODO__",
2309
- "staleTag": "__TODO__",
2310
- "considerTag": "__TODO__",
2311
- "competitive": "__TODO__",
2312
- "courtHours": "__TODO__",
2313
- "score": "__TODO__",
2314
- "of": "__TODO__",
2315
- "matches": "__TODO__",
2316
- "flightCount": "__TODO__",
2317
- "flightCount_plural": "__TODO__"
2343
+ "matchesPerPlayer": "matchs/joueur",
2344
+ "bandHeading": "{{count}} matchs par joueur",
2345
+ "bandHeading_plural": "{{count}} matchs par joueur",
2346
+ "bandTargetTag": "cible",
2347
+ "vcTag": "+CV",
2348
+ "staleTag": "obsolète",
2349
+ "considerTag": "envisager",
2350
+ "competitive": "compétitif",
2351
+ "courtHours": "heures-court",
2352
+ "score": "Score",
2353
+ "of": "sur",
2354
+ "matches": "{{count}} matchs",
2355
+ "flightCount": "{{count}} flight",
2356
+ "flightCount_plural": "{{count}} flights"
2318
2357
  },
2319
2358
  "warnings": {
2320
- "BELOW_FLOOR": "__TODO__",
2321
- "OVER_CAPACITY": "__TODO__",
2322
- "WITHDRAWAL_RISK": "__TODO__",
2323
- "MIXED_GENDER_VARIANT": "__TODO__",
2324
- "COLLAPSED_CATEGORY": "__TODO__"
2359
+ "BELOW_FLOOR": "Sous la cible",
2360
+ "OVER_CAPACITY": "Au-delà de la capacité des courts",
2361
+ "WITHDRAWAL_RISK": "Risque de forfait",
2362
+ "MIXED_GENDER_VARIANT": "Genre mixte",
2363
+ "COLLAPSED_CATEGORY": "Catégorie fusionnée"
2325
2364
  },
2326
2365
  "apply": {
2327
- "button": "__TODO__",
2328
- "confirmTitle": "__TODO__",
2329
- "confirmBody": "__TODO__",
2330
- "confirmBodyUnsupported": "__TODO__",
2331
- "confirm": "__TODO__",
2332
- "success": "__TODO__",
2333
- "successPartial": "__TODO__",
2334
- "errorEvents": "__TODO__",
2335
- "errorEmpty": "__TODO__"
2366
+ "button": "Appliquer",
2367
+ "confirmTitle": "Appliquer ce plan de format ?",
2368
+ "confirmBody": "Ceci créera {{eventCount}} épreuves avec {{participantCount}} participants inscrits.",
2369
+ "confirmBodyUnsupported": "{{unsupportedCount}} flight ne peut pas être matérialisé automatiquement (structure non prise en charge) et sera ignoré.",
2370
+ "confirm": "Appliquer",
2371
+ "success": "Plan appliqué : {{eventCount}} épreuves créées. Ouvrez chaque épreuve pour générer son tableau.",
2372
+ "successPartial": "Plan appliqué avec des flights ignorés — voir le journal des notifications",
2373
+ "errorEvents": "Impossible de créer les épreuves à partir du plan",
2374
+ "errorEmpty": "Rien à appliquer — chaque flight était non pris en charge ou vide"
2336
2375
  }
2337
2376
  },
2338
2377
  "tabs": {
2339
- "info": "__TODO__",
2340
- "events": "__TODO__",
2341
- "schedule": "__TODO__",
2342
- "matches": "__TODO__",
2343
- "players": "__TODO__",
2344
- "stats": "__TODO__"
2378
+ "info": "Infos",
2379
+ "events": "Épreuves",
2380
+ "schedule": "Programmation",
2381
+ "matches": "Matchs",
2382
+ "players": "Participants",
2383
+ "stats": "Stats"
2345
2384
  },
2346
2385
  "players": {
2347
- "name": "__TODO__",
2348
- "country": "__TODO__",
2349
- "cityState": "__TODO__",
2350
- "events": "__TODO__",
2351
- "rank": "__TODO__",
2352
- "noParticipants": "__TODO__",
2353
- "teamsHeading": "__TODO__",
2386
+ "name": "Nom",
2387
+ "country": "Pays",
2388
+ "cityState": "Ville / État",
2389
+ "events": "Épreuves",
2390
+ "rank": "Rang",
2391
+ "noParticipants": "Aucun participant",
2392
+ "teamsHeading": "Équipes",
2354
2393
  "teamCounts": {
2355
- "players_one": "__TODO__",
2356
- "players_other": "__TODO__",
2357
- "coaches_one": "__TODO__",
2358
- "coaches_other": "__TODO__",
2359
- "staff_one": "__TODO__",
2360
- "staff_other": "__TODO__"
2394
+ "players_one": "{{count}} joueur",
2395
+ "players_other": "{{count}} joueurs",
2396
+ "coaches_one": "{{count}} entraîneur",
2397
+ "coaches_other": "{{count}} entraîneurs",
2398
+ "staff_one": "{{count}} membre du staff",
2399
+ "staff_other": "{{count}} membres du staff"
2361
2400
  }
2362
2401
  },
2363
2402
  "display": {
2364
- "label": "__TODO__",
2365
- "columns": "__TODO__",
2366
- "draw": "__TODO__",
2367
- "tableView": "__TODO__",
2368
- "statistics": "__TODO__"
2403
+ "label": "Affichage",
2404
+ "columns": "Colonnes",
2405
+ "draw": "Tableau",
2406
+ "tableView": "Vue tableau",
2407
+ "statistics": "Statistiques"
2369
2408
  },
2370
2409
  "theme": {
2371
- "toggleDark": "__TODO__"
2410
+ "toggleDark": "Basculer en mode sombre"
2372
2411
  },
2373
2412
  "language": {
2374
- "select": "__TODO__"
2413
+ "select": "Sélectionner la langue"
2375
2414
  },
2376
2415
  "registrationProfile": {
2377
- "entry": "__TODO__",
2378
- "entriesOpen": "__TODO__",
2379
- "entriesClose": "__TODO__",
2380
- "withdrawalDeadline": "__TODO__",
2381
- "entryMethod": "__TODO__",
2382
- "entryUrl": "__TODO__",
2383
- "entryFee": "__TODO__",
2384
- "accommodation": "__TODO__",
2385
- "transportation": "__TODO__",
2386
- "hospitality": "__TODO__",
2387
- "medical": "__TODO__",
2388
- "ceremonies": "__TODO__",
2389
- "drawCeremony": "__TODO__",
2390
- "awardsCeremony": "__TODO__",
2391
- "regulations": "__TODO__",
2392
- "sponsors": "__TODO__",
2393
- "additional": "__TODO__",
2394
- "dressCode": "__TODO__",
2395
- "contingencyPlan": "__TODO__"
2416
+ "entry": "Inscription et éligibilité",
2417
+ "entriesOpen": "Ouverture des inscriptions",
2418
+ "entriesClose": "Clôture des inscriptions",
2419
+ "withdrawalDeadline": "Date limite de forfait",
2420
+ "entryMethod": "Méthode d'inscription",
2421
+ "entryUrl": "URL d'inscription",
2422
+ "entryFee": "Frais",
2423
+ "accommodation": "Hébergement",
2424
+ "transportation": "Transport",
2425
+ "hospitality": "Accueil",
2426
+ "medical": "Informations médicales",
2427
+ "ceremonies": "Cérémonies et événements sociaux",
2428
+ "drawCeremony": "Cérémonie du tirage",
2429
+ "awardsCeremony": "Cérémonie de remise des prix",
2430
+ "regulations": "Règlement",
2431
+ "sponsors": "Sponsors",
2432
+ "additional": "Informations supplémentaires",
2433
+ "dressCode": "Code vestimentaire",
2434
+ "contingencyPlan": "Plan en cas d'intempéries"
2396
2435
  },
2397
2436
  "provisioner": {
2398
- "myProviders": "__TODO__",
2399
- "users": "__TODO__",
2400
- "noProviders": "__TODO__",
2401
- "noUsers": "__TODO__",
2402
- "createProvider": "__TODO__",
2403
- "createUser": "__TODO__",
2404
- "openInTmx": "__TODO__",
2405
- "providerNamePlaceholder": "__TODO__",
2406
- "providerAbbrPlaceholder": "__TODO__",
2407
- "providerCreated": "__TODO__",
2408
- "providerFieldsRequired": "__TODO__",
2409
- "userCreated": "__TODO__",
2410
- "userFieldsRequired": "__TODO__",
2411
- "selectProvider": "__TODO__",
2412
- "selectProviderFirst": "__TODO__"
2437
+ "myProviders": "Mes fournisseurs",
2438
+ "users": "Utilisateurs",
2439
+ "noProviders": "Aucun fournisseur pour l'instant — créez-en un pour commencer",
2440
+ "noUsers": "Aucun utilisateur pour ce fournisseur",
2441
+ "createProvider": "Créer un fournisseur",
2442
+ "createUser": "Créer un utilisateur",
2443
+ "openInTmx": "Ouvrir dans TMX",
2444
+ "providerNamePlaceholder": "p. ex. IONSport Demos",
2445
+ "providerAbbrPlaceholder": "p. ex. IONDEMO",
2446
+ "providerCreated": "Fournisseur créé",
2447
+ "providerFieldsRequired": "Le nom et l'abréviation sont requis",
2448
+ "userCreated": "Utilisateur créé",
2449
+ "userFieldsRequired": "L'e-mail et l'ID externe sont requis",
2450
+ "selectProvider": "Sélectionner un fournisseur…",
2451
+ "selectProviderFirst": "Sélectionnez d'abord un fournisseur"
2413
2452
  },
2414
2453
  "manageAccess": {
2415
- "title": "__TODO__",
2416
- "tournament": "__TODO__",
2417
- "grantedAccess": "__TODO__",
2418
- "addUser": "__TODO__",
2419
- "emailPlaceholder": "__TODO__",
2420
- "grant": "__TODO__",
2421
- "revoke": "__TODO__",
2422
- "noAssignments": "__TODO__",
2423
- "loadError": "__TODO__",
2424
- "grantError": "__TODO__",
2425
- "revokeError": "__TODO__",
2426
- "granted": "__TODO__",
2427
- "revoked": "__TODO__"
2454
+ "title": "Gérer l'accès au tournoi",
2455
+ "tournament": "Tournoi",
2456
+ "grantedAccess": "Accès accordé",
2457
+ "addUser": "Ajouter un utilisateur",
2458
+ "emailPlaceholder": "utilisateur@exemple.com",
2459
+ "grant": "Accorder",
2460
+ "revoke": "Révoquer",
2461
+ "noAssignments": "Aucun utilisateur n'a encore reçu l'accès.",
2462
+ "loadError": "Échec du chargement des attributions.",
2463
+ "grantError": "Échec de l'attribution de l'accès.",
2464
+ "revokeError": "Échec de la révocation de l'accès.",
2465
+ "granted": "Accès accordé à {{email}}",
2466
+ "revoked": "Accès révoqué pour {{email}}"
2428
2467
  },
2429
2468
  "providerConfig": {
2430
- "editCapsButton": "__TODO__",
2431
- "editCapsTitle": "__TODO__",
2432
- "editCapsTitleGeneric": "__TODO__",
2433
- "editSettingsButton": "__TODO__",
2434
- "editSettingsTitle": "__TODO__",
2435
- "editSettingsTitleGeneric": "__TODO__",
2469
+ "editCapsButton": "Modifier les plafonds",
2470
+ "editCapsTitle": "Modifier les plafonds — {{name}}",
2471
+ "editCapsTitleGeneric": "Modifier les plafonds du fournisseur",
2472
+ "editSettingsButton": "Modifier les paramètres",
2473
+ "editSettingsTitle": "Modifier les paramètres — {{name}}",
2474
+ "editSettingsTitleGeneric": "Modifier les paramètres du fournisseur",
2436
2475
  "section": {
2437
- "branding": "__TODO__",
2438
- "permissionCeilings": "__TODO__",
2439
- "permissionChoices": "__TODO__",
2440
- "allowedUniverses": "__TODO__",
2441
- "allowedSelections": "__TODO__",
2442
- "policies": "__TODO__",
2443
- "defaults": "__TODO__",
2444
- "integrations": "__TODO__",
2445
- "privacy": "__TODO__",
2446
- "themeTokens": "__TODO__"
2476
+ "branding": "Image de marque (marque blanche)",
2477
+ "permissionCeilings": "Plafonds de permissions",
2478
+ "permissionChoices": "Permissions",
2479
+ "allowedUniverses": "Univers autorisés",
2480
+ "allowedSelections": "Sélections autorisées",
2481
+ "policies": "Politiques",
2482
+ "defaults": "Valeurs par défaut",
2483
+ "integrations": "Intégrations",
2484
+ "privacy": "Confidentialité des participants",
2485
+ "themeTokens": "Jetons de thème (variables CSS)"
2447
2486
  },
2448
2487
  "privacy": {
2449
- "settingsHint": "__TODO__",
2450
- "cityState": "__TODO__"
2488
+ "settingsHint": "Chaque bascule ci-dessous assouplit la politique de confidentialité par défaut pour un attribut de participant. Laissez désactivé (par défaut) pour garder cet attribut privé.",
2489
+ "cityState": "Publier Ville / État sur les participants"
2451
2490
  },
2452
2491
  "permissions": {
2453
- "ceilingHint": "__TODO__",
2454
- "choiceHint": "__TODO__",
2455
- "lockedByProvisioner": "__TODO__"
2492
+ "ceilingHint": "Chaque permission réglée sur OFF ici sera verrouillée pour le fournisseur — il ne pourra pas l'activer.",
2493
+ "choiceHint": "Désactivez toute permission que vos directeurs de tournoi ne devraient pas effectuer. Les permissions verrouillées par le provisionneur sont grisées.",
2494
+ "lockedByProvisioner": "Verrouillé par le provisionneur — ne peut pas être activé."
2456
2495
  },
2457
2496
  "allowed": {
2458
- "universeHint": "__TODO__",
2459
- "selectionHint": "__TODO__"
2497
+ "universeHint": "Liste séparée par des virgules. Vide signifie sans restriction (tout autorisé).",
2498
+ "selectionHint": "Sélectionnez les options que ce fournisseur peut utiliser. Aucune sélection = toutes autorisées.",
2499
+ "restrictedHint": "Choisissez dans l'ensemble autorisé par votre provisionneur. Aucune sélection = toutes celles-ci.",
2500
+ "unrestrictedHint": "Aucune sélection = toutes autorisées. Sélectionnez pour restreindre."
2460
2501
  },
2461
2502
  "branding": {
2462
- "appName": "__TODO__",
2463
- "navbarLogoUrl": "__TODO__",
2464
- "navbarLogoAlt": "__TODO__",
2465
- "navbarLogoHeight": "__TODO__",
2466
- "splashLogoUrl": "__TODO__",
2467
- "accentColor": "__TODO__",
2468
- "stylesheetUrl": "__TODO__",
2469
- "preview": "__TODO__",
2470
- "uploadThemeAssets": "__TODO__",
2471
- "uploadNoFiles": "__TODO__",
2472
- "uploading": "__TODO__",
2473
- "uploadLinked": "__TODO__",
2474
- "uploadedNoCss": "__TODO__",
2475
- "uploadFailed": "__TODO__"
2503
+ "appName": "Nom de l'application",
2504
+ "navbarLogoUrl": "URL du logo de la barre de navigation",
2505
+ "navbarLogoAlt": "Texte alternatif du logo de la barre de navigation",
2506
+ "navbarLogoHeight": "Hauteur du logo de la barre de navigation (px)",
2507
+ "splashLogoUrl": "URL du logo d'accueil",
2508
+ "accentColor": "Couleur d'accentuation (CSS)",
2509
+ "stylesheetUrl": "URL de la feuille de style du fournisseur (solution de secours)",
2510
+ "preview": "Aperçu en direct (barre de navigation fictive)",
2511
+ "uploadThemeAssets": "Téléverser et lier les ressources du thème",
2512
+ "uploadNoFiles": "Choisissez d'abord un fichier .css (et les polices éventuelles).",
2513
+ "uploading": "Téléversement…",
2514
+ "uploadLinked": "{{count}} fichier(s) téléversé(s) ; URL de la feuille de style liée.",
2515
+ "uploadedNoCss": "{{count}} fichier(s) téléversé(s) — ajoutez un fichier .css pour lier l'URL de la feuille de style.",
2516
+ "uploadFailed": "Échec du téléversement : {{reason}}"
2476
2517
  },
2477
2518
  "defaults": {
2478
- "defaultEventType": "__TODO__",
2479
- "defaultDrawType": "__TODO__",
2480
- "defaultCreationMethod": "__TODO__",
2481
- "defaultGender": "__TODO__"
2519
+ "defaultEventType": "Type d'épreuve par défaut",
2520
+ "defaultDrawType": "Type de tableau par défaut",
2521
+ "defaultCreationMethod": "Méthode de création par défaut",
2522
+ "defaultGender": "Genre par défaut"
2482
2523
  },
2483
2524
  "policies": {
2484
- "schedulingPolicy": "__TODO__",
2485
- "scoringPolicy": "__TODO__",
2486
- "seedingPolicy": "__TODO__",
2487
- "policyJsonPlaceholder": "__TODO__",
2488
- "invalidJson": "__TODO__"
2489
- },
2490
- "capsSaved": "__TODO__",
2491
- "settingsSaved": "__TODO__",
2492
- "invalid": "__TODO__",
2493
- "saveFailed": "__TODO__",
2494
- "loadCapsForGating": "__TODO__",
2525
+ "schedulingPolicy": "Politique de programmation (JSON)",
2526
+ "scoringPolicy": "Politique de score (JSON)",
2527
+ "seedingPolicy": "Politique de têtes de série (JSON)",
2528
+ "policyJsonPlaceholder": "{ ... }",
2529
+ "invalidJson": "JSON invalide"
2530
+ },
2531
+ "capsSaved": "Plafonds enregistrés",
2532
+ "settingsSaved": "Paramètres enregistrés",
2533
+ "invalid": "Échec de la validation — voir les erreurs de champ ci-dessous",
2534
+ "saveFailed": "Échec de l'enregistrement",
2535
+ "loadCapsForGating": "Chargement des plafonds pour déterminer les champs verrouillés...",
2495
2536
  "themeTokens": {
2496
- "label": "__TODO__",
2497
- "hint": "__TODO__",
2498
- "preset": "__TODO__",
2499
- "chooseAPreset": "__TODO__",
2500
- "add": "__TODO__",
2501
- "remove": "__TODO__",
2502
- "invalidPrefix": "__TODO__"
2537
+ "label": "Remplacements de variables CSS personnalisées",
2538
+ "hint": "Les noms de jetons doivent commencer par --tmx- ou --chc-. Les valeurs sont des chaînes CSS de couleur / longueur / police. Appliquées au démarrage et au changement de fournisseur.",
2539
+ "preset": "Préréglage",
2540
+ "chooseAPreset": "Choisir un préréglage…",
2541
+ "add": "+ Ajouter un jeton",
2542
+ "remove": "Retirer",
2543
+ "invalidPrefix": "Le nom du jeton doit commencer par --tmx- ou --chc-"
2503
2544
  }
2504
2545
  },
2505
2546
  "banners": {
2506
2547
  "contactEmail": {
2507
- "missing": "__TODO__",
2508
- "pending": "__TODO__",
2509
- "setUp": "__TODO__",
2510
- "review": "__TODO__"
2548
+ "missing": "Configurez un e-mail de contact pour pouvoir récupérer votre mot de passe par e-mail.",
2549
+ "pending": "Vérifiez {{email}} pour pouvoir récupérer votre mot de passe par e-mail.",
2550
+ "setUp": "Configurer l'e-mail",
2551
+ "review": "Vérifier"
2511
2552
  }
2512
2553
  },
2513
2554
  "verifyEmail": {
2514
- "title": "__TODO__",
2515
- "intro": "__TODO__",
2516
- "verifyButton": "__TODO__",
2517
- "verifying": "__TODO__",
2518
- "success": "__TODO__",
2519
- "successPlain": "__TODO__",
2520
- "missingToken": "__TODO__",
2521
- "tokenExpired": "__TODO__",
2522
- "tokenMismatch": "__TODO__",
2523
- "tryAgain": "__TODO__",
2524
- "failed": "__TODO__",
2525
- "verifiedRedirect": "__TODO__",
2526
- "verifiedSignIn": "__TODO__",
2527
- "invalidOrExpired": "__TODO__"
2555
+ "title": "Vérifier votre e-mail",
2556
+ "intro": "Cliquez sur le bouton ci-dessous pour confirmer que cet e-mail est le vôtre.",
2557
+ "verifyButton": "Vérifier l'e-mail",
2558
+ "verifying": "Vérification…",
2559
+ "success": "Vérifié ✓ — vous pouvez désormais recevoir les e-mails de récupération de mot de passe à {{email}}. Vous pouvez fermer cet onglet.",
2560
+ "successPlain": "Vérifié ✓. Vous pouvez fermer cet onglet.",
2561
+ "missingToken": "Ce lien de vérification n'a pas de jeton. Réessayez de cliquer sur le lien dans votre e-mail, ou demandez-en un nouveau dans les paramètres d'e-mail de contact.",
2562
+ "tokenExpired": "Ce lien de vérification a expiré. Demandez-en un nouveau dans vos paramètres d'e-mail de contact.",
2563
+ "tokenMismatch": "Ce lien ne correspond plus à votre e-mail de contact actuel — il a probablement été remplacé par une modification plus récente.",
2564
+ "tryAgain": "Réessayer",
2565
+ "failed": "Échec de la vérification. Essayez de demander un nouveau lien.",
2566
+ "verifiedRedirect": "Votre e-mail est vérifié. Redirection vers My CourtHive…",
2567
+ "verifiedSignIn": "Votre e-mail est vérifié. Vous pouvez maintenant vous connecter.",
2568
+ "invalidOrExpired": "Ce lien de vérification est invalide ou a expiré. Connectez-vous à My CourtHive pour en demander un nouveau."
2528
2569
  },
2529
2570
  "resetPassword": {
2530
- "title": "__TODO__",
2531
- "intro": "__TODO__",
2532
- "newPasswordPlaceholder": "__TODO__",
2533
- "confirmPlaceholder": "__TODO__",
2534
- "submit": "__TODO__",
2535
- "submitting": "__TODO__",
2536
- "success": "__TODO__",
2537
- "missingToken": "__TODO__",
2538
- "tokenExpired": "__TODO__",
2539
- "tokenMismatch": "__TODO__",
2540
- "failed": "__TODO__"
2571
+ "title": "Définir un nouveau mot de passe",
2572
+ "intro": "Choisissez un nouveau mot de passe pour votre compte CourtHive. Le lien dans votre e-mail est à usage unique.",
2573
+ "newPasswordPlaceholder": "Nouveau mot de passe (au moins 8 caractères)",
2574
+ "confirmPlaceholder": "Confirmer le nouveau mot de passe",
2575
+ "submit": "Définir le nouveau mot de passe",
2576
+ "submitting": "Enregistrement…",
2577
+ "success": "Votre mot de passe a été modifié. Redirection vers la connexion…",
2578
+ "missingToken": "Ce lien de réinitialisation n'a pas de jeton. Réessayez de cliquer sur le lien dans votre e-mail, ou demandez-en un nouveau.",
2579
+ "tokenExpired": "Ce lien de réinitialisation a expiré. Demandez-en un nouveau via le lien « Mot de passe oublié ? » de l'écran de connexion.",
2580
+ "tokenMismatch": "Ce lien ne correspond plus à votre e-mail de contact actuel — demandez-en un nouveau.",
2581
+ "failed": "Impossible de réinitialiser votre mot de passe. Essayez de demander un nouveau lien."
2541
2582
  },
2542
2583
  "noAccess": {
2543
- "title": "__TODO__",
2544
- "message": "__TODO__",
2545
- "logOut": "__TODO__"
2584
+ "title": "Aucun accès administrateur",
2585
+ "message": "Votre compte n'a pas accès à la console d'administration. Si vous gérez un tournoi, utilisez plutôt l'application TMX. Contactez votre administrateur de fournisseur si vous pensez qu'il s'agit d'une erreur.",
2586
+ "logOut": "Se déconnecter"
2546
2587
  },
2547
2588
  "admin": {
2548
- "abbreviation": "__TODO__",
2549
- "providerId": "__TODO__",
2550
- "impersonating": "__TODO__",
2551
- "tournaments": "__TODO__",
2552
- "noTournaments": "__TODO__",
2553
- "tournamentName": "__TODO__",
2554
- "startDate": "__TODO__",
2555
- "endDate": "__TODO__",
2556
- "calendarLoadError": "__TODO__",
2557
- "policyDefinitions": "__TODO__",
2558
- "policyEditorComingSoon": "__TODO__",
2559
- "quickActions": "__TODO__",
2560
- "manageProviders": "__TODO__",
2561
- "manageUsers": "__TODO__",
2562
- "backToSystem": "__TODO__",
2563
- "noProviderSelected": "__TODO__",
2564
- "selectProviderHint": "__TODO__",
2565
- "dashboard": "__TODO__",
2566
- "providerDashboardComingSoon": "__TODO__",
2567
- "runAudit": "__TODO__",
2568
- "auditClean": "__TODO__",
2569
- "auditWarning": "__TODO__",
2570
- "auditError": "__TODO__",
2571
- "tournamentDetail": "__TODO__",
2572
- "selectTournament": "__TODO__",
2573
- "loadingTournament": "__TODO__",
2574
- "tournamentNotFound": "__TODO__",
2575
- "tournamentLoadError": "__TODO__",
2576
- "tournamentMissingFromStorage": "__TODO__",
2577
- "participants": "__TODO__",
2578
- "venues": "__TODO__",
2579
- "event": "__TODO__",
2580
- "type": "__TODO__",
2581
- "entries": "__TODO__",
2582
- "draws": "__TODO__",
2583
- "noEvents": "__TODO__",
2589
+ "abbreviation": "Abréviation",
2590
+ "providerId": "ID du fournisseur",
2591
+ "impersonating": "Usurpation de ce fournisseur",
2592
+ "tournaments": "Tournois",
2593
+ "noTournaments": "Aucun tournoi trouvé",
2594
+ "tournamentName": "Tournoi",
2595
+ "startDate": "Début",
2596
+ "endDate": "Fin",
2597
+ "calendarLoadError": "Impossible de charger le calendrier",
2598
+ "policyDefinitions": "Définitions de politiques",
2599
+ "policyEditorComingSoon": "Éditeur de politiques bientôt disponible.",
2600
+ "quickActions": "Actions rapides",
2601
+ "manageProviders": "Gérer les fournisseurs",
2602
+ "manageUsers": "Gérer les utilisateurs",
2603
+ "backToSystem": "Retour au système",
2604
+ "noProviderSelected": "Aucun fournisseur sélectionné",
2605
+ "selectProviderHint": "Sélectionnez un fournisseur sur la page Système pour voir son tableau de bord admin.",
2606
+ "dashboard": "Tableau de bord",
2607
+ "providerDashboardComingSoon": "Tableau de bord fournisseur bientôt disponible.",
2608
+ "runAudit": "Lancer l'audit",
2609
+ "auditClean": "Les {{total}} entrées de calendrier vérifiées dans le stockage",
2610
+ "auditWarning": "{{missing}} des {{total}} entrées de calendrier absentes du stockage",
2611
+ "auditError": "Échec de l'audit du calendrier",
2612
+ "tournamentDetail": "Détail du tournoi",
2613
+ "selectTournament": "Sélectionnez un tournoi dans le calendrier pour voir les détails.",
2614
+ "loadingTournament": "Chargement des infos du tournoi...",
2615
+ "tournamentNotFound": "Infos du tournoi indisponibles.",
2616
+ "tournamentLoadError": "Impossible de charger les infos du tournoi.",
2617
+ "tournamentMissingFromStorage": "Ce tournoi existe dans le calendrier mais pas dans le stockage.",
2618
+ "participants": "Participants",
2619
+ "venues": "Sites",
2620
+ "event": "Épreuve",
2621
+ "type": "Type",
2622
+ "entries": "Inscriptions",
2623
+ "draws": "Tableaux",
2624
+ "noEvents": "Aucune épreuve",
2584
2625
  "providerDashboard": {
2585
- "loading": "__TODO__",
2586
- "loadError": "__TODO__",
2626
+ "loading": "Chargement du tableau de bord…",
2627
+ "loadError": "Impossible de charger la configuration du fournisseur.",
2587
2628
  "brand": {
2588
- "title": "__TODO__",
2589
- "editTheme": "__TODO__",
2590
- "logoAlt": "__TODO__",
2591
- "unnamed": "__TODO__",
2592
- "noBrand": "__TODO__",
2593
- "themeTokens": "__TODO__"
2629
+ "title": "Marque et identité",
2630
+ "editTheme": "Modifier le thème",
2631
+ "logoAlt": "Logo du fournisseur",
2632
+ "unnamed": "Fournisseur sans nom",
2633
+ "noBrand": "Aucune couleur de marque définie",
2634
+ "themeTokens": "{{count}} remplacement(s) de jeton de thème"
2594
2635
  },
2595
2636
  "checklist": {
2596
- "title": "__TODO__",
2597
- "progress": "__TODO__",
2598
- "appName": "__TODO__",
2599
- "brand": "__TODO__",
2600
- "logo": "__TODO__",
2601
- "privacy": "__TODO__"
2637
+ "title": "Prise en main",
2638
+ "progress": "{{done}} sur {{total}} terminé(s)",
2639
+ "appName": "Définir votre nom d'affichage",
2640
+ "brand": "Définir vos couleurs de marque",
2641
+ "logo": "Téléverser un logo",
2642
+ "privacy": "Configurer la confidentialité des participants"
2602
2643
  },
2603
2644
  "config": {
2604
- "title": "__TODO__",
2605
- "editSettings": "__TODO__",
2606
- "permissions": "__TODO__",
2607
- "policies": "__TODO__",
2608
- "privacy": "__TODO__",
2609
- "scoringApp": "__TODO__",
2610
- "none": "__TODO__"
2645
+ "title": "Configuration en un coup d'œil",
2646
+ "editSettings": "Modifier les paramètres",
2647
+ "permissions": "{{count}} permission(s) activée(s)",
2648
+ "policies": "{{count}} jeu(x) de politiques configuré(s)",
2649
+ "privacy": "{{count}} champ(s) de confidentialité publié(s)",
2650
+ "scoringApp": "Application de scores : {{app}}",
2651
+ "none": "Paramètres par défaut de la plateforme"
2611
2652
  },
2612
2653
  "tournaments": {
2613
- "title": "__TODO__",
2614
- "total": "__TODO__",
2615
- "upcoming": "__TODO__",
2616
- "live": "__TODO__",
2617
- "completed": "__TODO__",
2618
- "none": "__TODO__",
2619
- "loadError": "__TODO__"
2654
+ "title": "Tournois",
2655
+ "total": "Total",
2656
+ "upcoming": "À venir",
2657
+ "live": "En cours",
2658
+ "completed": "Terminés",
2659
+ "none": "Aucun tournoi pour l'instant",
2660
+ "loadError": "Impossible de charger les tournois",
2661
+ "openInTmx": "Ouvrir dans TMX"
2620
2662
  },
2621
2663
  "activity": {
2622
- "title": "__TODO__"
2664
+ "title": "Activité par année"
2665
+ },
2666
+ "rankings": {
2667
+ "title": "Classements",
2668
+ "launch": "Ouvrir la page des classements",
2669
+ "configure": "Configurer la politique de classement",
2670
+ "recompute": "Recalculer les classements",
2671
+ "recomputing": "Recalcul des classements…",
2672
+ "policySet": "Une politique de points de classement est configurée. Recalculez pour actualiser les points de tous les tournois et régénérer les instantanés de classement.",
2673
+ "policyUnsetHint": "Sélectionnez d'abord une politique de points de classement pour activer le recalcul.",
2674
+ "pipelineOff": "Le pipeline de classements n'est pas configuré sur le serveur (RANKINGS_PIPELINE_URL). Rien n'a été recalculé.",
2675
+ "failed": "Impossible de recalculer les classements.",
2676
+ "result": "{{republished}}/{{tournaments}} tournois recalculés ; {{snapshots}} instantané(s) généré(s).",
2677
+ "unprocessed": "__TODO__",
2678
+ "unprocessedRunning": "__TODO__",
2679
+ "fromDateLabel": "__TODO__",
2680
+ "fromDateRequired": "__TODO__",
2681
+ "rerunFromDate": "__TODO__",
2682
+ "rerunRunning": "__TODO__",
2683
+ "bulkNone": "__TODO__"
2623
2684
  }
2624
- }
2685
+ },
2686
+ "notLoggedInTitle": "Vous n'êtes pas connecté",
2687
+ "notLoggedInHint": "Connectez-vous pour voir votre tableau de bord fournisseur.",
2688
+ "logIn": "Se connecter"
2625
2689
  },
2626
2690
  "ams": {
2627
- "officials": "__TODO__",
2628
- "rosters": "__TODO__",
2629
- "membership": "__TODO__",
2630
- "sanctioning": "__TODO__",
2631
- "conferences": "__TODO__",
2632
- "sids": "__TODO__",
2633
- "seamPlaceholder": "__TODO__"
2691
+ "officials": "Officiels",
2692
+ "rosters": "Effectifs",
2693
+ "membership": "Adhésion",
2694
+ "sanctioning": "Homologation",
2695
+ "conferences": "Conférences",
2696
+ "sids": "Outils SID",
2697
+ "seamPlaceholder": "Bientôt disponible — développé par WS-14–16."
2634
2698
  },
2635
2699
  "console": {
2636
- "title": "__TODO__",
2637
- "amsSection": "__TODO__",
2638
- "platformSection": "__TODO__"
2700
+ "title": "Console CourtHive",
2701
+ "amsSection": "Gestion des associés",
2702
+ "platformSection": "Admin de la plateforme"
2639
2703
  },
2640
- "recoveryEmail": "__TODO__",
2641
- "recoveryEmailHelp": "__TODO__",
2642
- "verified": "__TODO__",
2643
- "unverified": "__TODO__",
2644
- "sendVerification": "__TODO__",
2645
- "verificationSent": "__TODO__",
2646
- "alreadyVerified": "__TODO__",
2647
- "noRecoveryEmail": "__TODO__",
2704
+ "recoveryEmail": "E-mail de récupération",
2705
+ "recoveryEmailHelp": "Boîte aux lettres réelle pour la récupération du mot de passe. Distincte de l'e-mail de connexion ci-dessus.",
2706
+ "verified": "Vérifié",
2707
+ "unverified": "Non vérifié",
2708
+ "sendVerification": "Envoyer la vérification",
2709
+ "verificationSent": "E-mail de vérification envoyé",
2710
+ "alreadyVerified": "E-mail de récupération déjà vérifié",
2711
+ "noRecoveryEmail": "Aucun e-mail de récupération défini",
2648
2712
  "timepicker": {
2649
- "am": "__TODO__",
2650
- "pm": "__TODO__",
2651
- "selectTime": "__TODO__",
2652
- "enterTime": "__TODO__",
2653
- "hour": "__TODO__",
2654
- "minute": "__TODO__",
2655
- "clear": "__TODO__"
2713
+ "am": "AM",
2714
+ "pm": "PM",
2715
+ "selectTime": "Sélectionner l'heure",
2716
+ "enterTime": "Saisir l'heure",
2717
+ "hour": "Heure",
2718
+ "minute": "Minute",
2719
+ "clear": "Effacer"
2656
2720
  },
2657
2721
  "onboarding": {
2658
- "title": "__TODO__",
2659
- "yourProvider": "__TODO__",
2660
- "intro": "__TODO__",
2661
- "allDone": "__TODO__",
2662
- "setUp": "__TODO__",
2663
- "getStarted": "__TODO__",
2664
- "skipForNow": "__TODO__",
2665
- "finish": "__TODO__"
2722
+ "title": "Bienvenue — configurons {{name}}",
2723
+ "yourProvider": "votre fournisseur",
2724
+ "intro": "{{count}} étape(s) restante(s) pour terminer la configuration. Vous pouvez en ignorer et y revenir plus tard.",
2725
+ "allDone": "Tout est prêt. 🎉",
2726
+ "setUp": "Configurer",
2727
+ "getStarted": "Commencer",
2728
+ "skipForNow": "Ignorer pour l'instant",
2729
+ "finish": "Terminer"
2666
2730
  },
2667
2731
  "me": {
2668
2732
  "verification": {
2669
- "title": "__TODO__",
2670
- "checking": "__TODO__",
2671
- "signInToManage": "__TODO__",
2672
- "yourEmail": "__TODO__",
2673
- "verified": "__TODO__",
2674
- "notVerified": "__TODO__",
2675
- "resend": "__TODO__",
2676
- "sent": "__TODO__",
2677
- "sendFailed": "__TODO__"
2733
+ "title": "Vérification de l'e-mail",
2734
+ "checking": "Vérification…",
2735
+ "signInToManage": "Connectez-vous pour gérer la vérification de l'e-mail.",
2736
+ "yourEmail": "votre e-mail",
2737
+ "verified": "✓ {{email}} est vérifié.",
2738
+ "notVerified": "{{email}} n'est pas encore vérifié. Vérifiez-le pour devenir éligible en tant que marqueur officiel.",
2739
+ "resend": "Renvoyer l'e-mail de vérification",
2740
+ "sent": "E-mail de vérification envoyé — vérifiez votre boîte de réception.",
2741
+ "sendFailed": "Impossible d'envoyer l'e-mail. Veuillez réessayer plus tard."
2678
2742
  }
2679
2743
  },
2680
2744
  "crowd": {
2681
- "trackers": "__TODO__",
2682
- "trackersFor": "__TODO__",
2683
- "loading": "__TODO__",
2684
- "close": "__TODO__",
2685
- "cancel": "__TODO__",
2686
- "promote": "__TODO__",
2687
- "demote": "__TODO__",
2688
- "noActiveTrackers": "__TODO__",
2689
- "activeTrackers_one": "__TODO__",
2690
- "activeTrackers_other": "__TODO__",
2691
- "viewTrackers": "__TODO__",
2692
- "setDelegatedOutcome": "__TODO__",
2693
- "confirmDelegatedOutcome": "__TODO__",
2745
+ "trackers": "Suiveurs du public",
2746
+ "trackersFor": "Suiveurs du public — {{label}}",
2747
+ "loading": "Chargement…",
2748
+ "close": "Fermer",
2749
+ "cancel": "Annuler",
2750
+ "promote": "Promouvoir",
2751
+ "demote": "Rétrograder",
2752
+ "noActiveTrackers": "Aucun suiveur public actif",
2753
+ "activeTrackers_one": "{{count}} suiveur actif",
2754
+ "activeTrackers_other": "{{count}} suiveurs actifs",
2755
+ "viewTrackers": "Voir les suiveurs du public ({{count}})",
2756
+ "setDelegatedOutcome": "Définir le résultat délégué",
2757
+ "confirmDelegatedOutcome": "Confirmer le résultat délégué",
2694
2758
  "badge": {
2695
- "official": "__TODO__",
2696
- "participant": "__TODO__",
2697
- "crowd": "__TODO__",
2698
- "anon": "__TODO__",
2699
- "verified": "__TODO__",
2700
- "nominated": "__TODO__"
2759
+ "official": "OFFICIEL",
2760
+ "participant": "PARTICIPANT",
2761
+ "crowd": "PUBLIC",
2762
+ "anon": "ANON",
2763
+ "verified": "VÉRIFIÉ",
2764
+ "nominated": "NOMMÉ"
2701
2765
  },
2702
2766
  "reason": {
2703
- "signInRequired": "__TODO__",
2704
- "emailNotVerified": "__TODO__"
2767
+ "signInRequired": "Connexion requise pour être nommé",
2768
+ "emailNotVerified": "E-mail non vérifié — ne peut pas être nommé"
2705
2769
  },
2706
2770
  "toast": {
2707
- "nominateFirst": "__TODO__",
2708
- "noOutcomeToConfirm": "__TODO__"
2771
+ "nominateFirst": "Nommez un marqueur vérifié avant de définir un résultat délégué.",
2772
+ "noOutcomeToConfirm": "Aucun résultat délégué à confirmer pour ce match."
2709
2773
  },
2710
2774
  "tooltip": {
2711
- "liveTracker": "__TODO__",
2712
- "unconfirmed": "__TODO__",
2713
- "unconfirmedAria": "__TODO__"
2775
+ "liveTracker": "Score reporté via un suiveur en direct",
2776
+ "unconfirmed": "Score délégué non confirmé — confirmez pour le rendre officiel",
2777
+ "unconfirmedAria": "Score délégué non confirmé en attente de confirmation"
2714
2778
  }
2779
+ },
2780
+ "providerSetup": {
2781
+ "wizardTitle": "Configurer votre fournisseur",
2782
+ "progress": "Étape {{current}} sur {{total}}",
2783
+ "back": "Retour",
2784
+ "skip": "Ignorer",
2785
+ "next": "Suivant",
2786
+ "finish": "Terminer",
2787
+ "identity": {
2788
+ "title": "Marque et identité",
2789
+ "intro": "Configurons l'apparence de votre organisation sur la plateforme. Nous passerons par quelques étapes rapides — vous pouvez en ignorer et les modifier plus tard."
2790
+ },
2791
+ "displayName": {
2792
+ "title": "Définir votre nom d'affichage",
2793
+ "intro": "Le nom affiché dans la barre de navigation et les titres de page à la place de « TMX »."
2794
+ },
2795
+ "brandColors": {
2796
+ "title": "Définir vos couleurs de marque",
2797
+ "intro": "Choisissez vos couleurs de marque ci-dessous — chacune met à jour les parties correspondantes de l'application. Pour un contrôle total, utilisez le mode Avancé.",
2798
+ "advanced": "Avancé — remplacements de jetons bruts et fichier de thème",
2799
+ "downloadTemplate": "Télécharger le modèle de thème (.css)"
2800
+ },
2801
+ "logo": {
2802
+ "title": "Téléverser un logo",
2803
+ "intro": "Collez l'URL d'une image ou téléversez un PNG/JPG/WebP/GIF pour vos logos de barre de navigation et d'accueil."
2804
+ },
2805
+ "privacy": {
2806
+ "title": "Configurer la confidentialité des participants",
2807
+ "intro": "Choisissez quels détails des participants sont publiés. Tout est privé par défaut."
2808
+ }
2809
+ },
2810
+ "providerPolicies": {
2811
+ "title": "Politiques",
2812
+ "intro": "Sélectionnez une politique pour chaque type dans votre catalogue de politiques. Créez ou modifiez les politiques sur la page Politiques.",
2813
+ "rankingPoints": "Politique de points de classement",
2814
+ "privacy": "Politique de confidentialité des participants",
2815
+ "keepCurrent": "— conserver l'actuelle —",
2816
+ "none": "— aucune —",
2817
+ "clear": "— effacer —",
2818
+ "manage": "Gérer les politiques",
2819
+ "privacyApplyExisting": "Appliquer aux tournois existants",
2820
+ "privacyIncludeInProgress": "Appliquer aussi aux tournois en cours",
2821
+ "privacySaveFirst": "Enregistrez d'abord votre modification de politique de confidentialité, puis appliquez-la aux tournois existants.",
2822
+ "privacyNoPolicy": "Sélectionnez et enregistrez d'abord une politique de confidentialité des participants.",
2823
+ "privacyApplyFailed": "Impossible d'appliquer la politique de confidentialité aux tournois existants.",
2824
+ "privacyApplyResult": "Politique de confidentialité appliquée à {{attached}} tournoi(s) ; {{already}} l'avaient déjà ; {{failed}} en échec."
2825
+ },
2826
+ "cns": "Console",
2827
+ "session": {
2828
+ "expiredMessage": "__TODO__",
2829
+ "logInAgain": "__TODO__"
2715
2830
  }
2716
2831
  }