@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.
@@ -79,8 +79,8 @@
79
79
  "ovw": "Overview",
80
80
  "prt": "Participants",
81
81
  "evt": "Events",
82
- "sch": "Schedule (legacy)",
83
- "sch2": "Schedule",
82
+ "sch": "Schedule",
83
+ "sch2": "Schedule 2",
84
84
  "ven": "Venues",
85
85
  "rpt": "Reports",
86
86
  "pub": "Publishing",
@@ -1048,7 +1048,78 @@
1048
1048
  "noTime": "No scheduled time, so readiness cannot be projected.",
1049
1049
  "unknownMatchUp": "This matchUp is no longer in the tournament."
1050
1050
  }
1051
+ },
1052
+ "actions": {
1053
+ "trigger": "MatchUp actions",
1054
+ "viewDraw": "View draw",
1055
+ "participants": "Participants"
1056
+ },
1057
+ "rest": {
1058
+ "heading": "Rest",
1059
+ "hoursMinutes": "{{hours}}h {{minutes}}m",
1060
+ "minutesOnly": "{{minutes}}m",
1061
+ "rested": "{{rested}} rested — {{required}} required",
1062
+ "resting": "{{rested}} of {{required}} — ready {{time}}",
1063
+ "onCourt": "On court now",
1064
+ "onCourtUntil": "On court now — ready {{time}}",
1065
+ "onCourtOverrun": "On court now — past the expected finish",
1066
+ "anchorUnreliable": "Prior match has no recorded finish — rest cannot be measured",
1067
+ "noPriorMatch": "No prior match today",
1068
+ "typeChange": "type change",
1069
+ "ordinal": "match #{{ordinal}} today",
1070
+ "ordinalLimit": "match #{{ordinal}} today, limit {{limit}}",
1071
+ "atLimit": "At the daily match limit",
1072
+ "source": {
1073
+ "endTime": "from recorded end time",
1074
+ "scoredTime": "from score entry (est.)",
1075
+ "startTime": "projected from start time (est.)",
1076
+ "calledAt": "projected from call to court (est.)",
1077
+ "scheduledTime": "projected from scheduled time (est.)"
1078
+ },
1079
+ "discarded": "Could not read: {{rungs}}",
1080
+ "discardedName": {
1081
+ "endTime": "recorded end time",
1082
+ "scoredTime": "score entry",
1083
+ "startTime": "start time",
1084
+ "calledAt": "call to court",
1085
+ "scheduledTime": "scheduled time"
1086
+ },
1087
+ "skip": {
1088
+ "generic": "Rest cannot be evaluated for this matchUp.",
1089
+ "bye": "A BYE needs no rest.",
1090
+ "completed": "Already complete — rest no longer applies.",
1091
+ "noParticipants": "Participants not yet determined, so there is no one to rest.",
1092
+ "unknownMatchUp": "This matchUp is no longer in the tournament."
1093
+ }
1051
1094
  }
1095
+ },
1096
+ "byeScheduledTitle": "Match is scheduled",
1097
+ "byeScheduledBody": "This match already has scheduling information. Assigning a BYE will leave the court slot occupied unless you remove it.",
1098
+ "byeKeepScheduling": "Keep scheduling",
1099
+ "byeRemoveScheduling": "Remove scheduling",
1100
+ "startAllRest": {
1101
+ "title": "Start matches with players still resting?",
1102
+ "pill": "{{count}} needs rest",
1103
+ "intro": "{{count}} of these matches has a player who has not had their recovery time:",
1104
+ "resting": "{{name}}{{where}} — {{rested}} rested of {{required}} required",
1105
+ "onCourt": "{{name}}{{where}} — still on court in an earlier match"
1106
+ },
1107
+ "card": {
1108
+ "rest": {
1109
+ "onCourt": "on court",
1110
+ "none": "no prior match",
1111
+ "unknown": "rest unknown",
1112
+ "limit": "#{{ordinal}}",
1113
+ "tooltipRest": "{{name}} — {{rested}} rested of {{required}} required",
1114
+ "tooltipOnCourt": "{{name}} — still on court",
1115
+ "tooltipOnCourtOverrun": "{{name}} — still on court, past the expected finish",
1116
+ "tooltipNone": "{{name}} — no prior match today",
1117
+ "tooltipUnknown": "{{name}} — prior match has no recorded finish"
1118
+ }
1119
+ },
1120
+ "venueFrame": {
1121
+ "notice": "Times in {{timeZone}} — venue zone not set",
1122
+ "noticeTitle": "This tournament has no time zone set, so times are shown in this device’s zone ({{timeZone}}). Set the venue’s time zone so every operator reads the same clock."
1052
1123
  }
1053
1124
  },
1054
1125
  "penalties": {
@@ -1148,7 +1219,10 @@
1148
1219
  "themeSystem": "System",
1149
1220
  "font": "Font",
1150
1221
  "dangerZone": "Danger Zone",
1151
- "schedule2": "Schedule Page 2"
1222
+ "schedule2": "Schedule Page 2",
1223
+ "options": "Options",
1224
+ "officialsBoard": "Officials board",
1225
+ "linkedTournaments": "Linked Tournaments"
1152
1226
  },
1153
1227
  "editTournamentName": {
1154
1228
  "title": "Edit Tournament Name",
@@ -1368,7 +1442,8 @@
1368
1442
  "notClaimed": "Not claimed",
1369
1443
  "offline": "Offline",
1370
1444
  "online": "Online",
1371
- "uploadWarning": "Warning: This action will replace the tournament record on the server"
1445
+ "uploadWarning": "Warning: This action will replace the tournament record on the server",
1446
+ "scopedAccess": "Scoped access"
1372
1447
  },
1373
1448
  "manageAccess": {
1374
1449
  "title": "Manage access",
@@ -1416,7 +1491,7 @@
1416
1491
  },
1417
1492
  "editGroupNames": {
1418
1493
  "title": "Edit group names",
1419
- "minChars": "minimum 3 characters",
1494
+ "minChars": "minimum 4 characters",
1420
1495
  "groupsRenamed": "Groups renamed"
1421
1496
  },
1422
1497
  "addFlights": {
@@ -1586,15 +1661,15 @@
1586
1661
  "usageList": "{{name}} is used by: {{events}}"
1587
1662
  },
1588
1663
  "firstLogin": {
1589
- "title": "Set your password",
1590
- "intro": "Your account was created with a temporary password. Choose a new password to finish signing in.",
1591
- "newPasswordLabel": "New password",
1592
- "newPasswordPlaceholder": "minimum 8 characters",
1593
- "confirmPasswordLabel": "Confirm password",
1594
- "confirmPasswordPlaceholder": "re-enter new password",
1595
- "setPassword": "Set password",
1596
- "failed": "Could not set your password. Please try again.",
1597
- "tokenExpired": "This sign-in session expired. Please log in again."
1664
+ "title": "Set Your Password",
1665
+ "intro": "Your administrator assigned you a temporary password. Please choose a new password to continue.",
1666
+ "newPasswordLabel": "New Password",
1667
+ "newPasswordPlaceholder": "At least 8 characters",
1668
+ "confirmPasswordLabel": "Confirm Password",
1669
+ "confirmPasswordPlaceholder": "Re-enter new password",
1670
+ "setPassword": "Set Password",
1671
+ "failed": "Failed to set new password.",
1672
+ "tokenExpired": "Your sign-in expired. Please log in again."
1598
1673
  },
1599
1674
  "forgotPassword": {
1600
1675
  "title": "Reset your password",
@@ -1652,16 +1727,16 @@
1652
1727
  "failed": "Delete failed."
1653
1728
  },
1654
1729
  "contactEmail": {
1655
- "title": "Recovery email",
1656
- "label": "Recovery email",
1730
+ "title": "Contact email",
1731
+ "label": "Email address",
1657
1732
  "save": "Save",
1658
1733
  "resend": "Resend verification",
1659
- "savedPending": "Verification email sent to {{email}}.",
1660
- "resent": "Verification email sent.",
1661
- "alreadyVerified": "Recovery email is already verified.",
1662
- "failed": "Could not update recovery email. Please try again.",
1663
- "statusNotSet": "No recovery email set. Add one so you can recover access if you lose your password.",
1664
- "statusPending": "Pending verification — check {{email}} and click the link.",
1734
+ "savedPending": "Verification email sent to {{email}}. Check your inbox.",
1735
+ "resent": "Verification email re-sent.",
1736
+ "alreadyVerified": "Your contact email is already verified.",
1737
+ "failed": "Could not save contact email.",
1738
+ "statusNotSet": "No contact email is set yet. Set one so you can recover your password by email.",
1739
+ "statusPending": "Pending verification: {{email}}. Click the link in your inbox.",
1665
1740
  "statusVerified": "Verified: {{email}}"
1666
1741
  },
1667
1742
  "editUser": {
@@ -1728,6 +1803,57 @@
1728
1803
  "title": "Rename draws",
1729
1804
  "minChars": "minimum 2 characters",
1730
1805
  "drawRenamed": "Draw renamed"
1806
+ },
1807
+ "groupProfile": {
1808
+ "title": "Group profile",
1809
+ "empty": "No members in this group yet.",
1810
+ "addMembers": "Add members",
1811
+ "removeSelected": "Remove selected",
1812
+ "selectToAdd": "Select participants to add",
1813
+ "blockingRole": "Members of a {{role}} group block an official from being assigned to their matchUps.",
1814
+ "columns": {
1815
+ "role": "Role",
1816
+ "name": "Name",
1817
+ "contact": "Contact"
1818
+ },
1819
+ "counts": {
1820
+ "members_one": "{{count}} member",
1821
+ "members_other": "{{count}} members"
1822
+ },
1823
+ "contactPerson": "Contact person",
1824
+ "contactPersonNone": "None"
1825
+ },
1826
+ "callSheet": {
1827
+ "title": "Call sheet",
1828
+ "contactSelected": "Contact selected",
1829
+ "reachable_one": "{{count}} reachable",
1830
+ "reachable_other": "{{count}} reachable",
1831
+ "withoutContact_one": "{{count}} without contact details",
1832
+ "withoutContact_other": "{{count}} without contact details",
1833
+ "noContact": "No contact details recorded",
1834
+ "textAll_one": "Text {{count}}",
1835
+ "textAll_other": "Text {{count}}",
1836
+ "emailAll_one": "Email {{count}}",
1837
+ "emailAll_other": "Email {{count}}",
1838
+ "copyNumbers": "Copy numbers",
1839
+ "print": "Print",
1840
+ "notReached_one": "{{count}} person will not receive this",
1841
+ "notReached_other": "{{count}} people will not receive this",
1842
+ "noMobiles": "Nobody on this sheet has a mobile number",
1843
+ "noEmails": "Nobody on this sheet has an email address",
1844
+ "noNumbers": "No numbers to copy",
1845
+ "numbersCopied_one": "{{count}} number copied",
1846
+ "numbersCopied_other": "{{count}} numbers copied",
1847
+ "copyFailed": "Could not copy to the clipboard",
1848
+ "columns": {
1849
+ "name": "Name",
1850
+ "role": "Role",
1851
+ "contact": "Contact",
1852
+ "mobile": "Mobile",
1853
+ "telephone": "Telephone",
1854
+ "email": "Email",
1855
+ "public": "Public"
1856
+ }
1731
1857
  }
1732
1858
  },
1733
1859
  "dashboard": {
@@ -1906,7 +2032,18 @@
1906
2032
  "deleteForbidden": "You are not authorized to delete this tournament.",
1907
2033
  "matchUpScoredElsewhere": "Another user just scored this match ({{score}}). Review before saving.",
1908
2034
  "overwriteRemoteScore": "Another user scored this match ({{score}}). Overwrite with your result?",
1909
- "cannotModifyParticipant": "Participant could not be saved"
2035
+ "cannotModifyParticipant": "Participant could not be saved",
2036
+ "schedule": {
2037
+ "endBeforeStart": "End time {{endTime}} is before the start time {{startTime}} — check the AM/PM setting.",
2038
+ "startAfterEnd": "Start time {{startTime}} is after the end time {{endTime}} — check the AM/PM setting.",
2039
+ "beforeCourtOpens": "{{time}} is before the court opens at {{earliest}}.",
2040
+ "afterCourtCloses": "{{time}} is after the court closes at {{latest}}.",
2041
+ "invalidEndTime": "End time not saved: it must be after the start time, or within 12 hours of it if the match finished after midnight.",
2042
+ "invalidStartTime": "Start time not saved: it must come before the end time already recorded.",
2043
+ "invalidTime": "That time could not be recorded.",
2044
+ "courtNotFound": "That court no longer exists. Refresh the tournament and try again.",
2045
+ "notSaved": "Schedule change was not saved: {{reason}}"
2046
+ }
1910
2047
  },
1911
2048
  "loginMenu": {
1912
2049
  "authorization": "Authorization",
@@ -2008,7 +2145,16 @@
2008
2145
  "cityState": "City/State",
2009
2146
  "nickname": "Nickname",
2010
2147
  "role": "Role",
2011
- "teamAffiliation": "Team affiliation"
2148
+ "teamAffiliation": "Team affiliation",
2149
+ "contactPublic": "Public contact",
2150
+ "contactPublicYes": "Contact may be shared publicly",
2151
+ "contactPublicNo": "Contact is not shared publicly",
2152
+ "contactActions": "Contact",
2153
+ "contactCall": "Call",
2154
+ "contactText": "Send a text message",
2155
+ "contactEmail": "Send an email",
2156
+ "contactPrivateMark": "Not shared publicly",
2157
+ "contactMore": "More contacts on the call sheet"
2012
2158
  },
2013
2159
  "bracket": {
2014
2160
  "participant": "Participant",
@@ -2144,7 +2290,7 @@
2144
2290
  "viewAvailability": "View Availability",
2145
2291
  "viewTable": "View Table",
2146
2292
  "setDefaultAvailability": "Set Default Availability",
2147
- "saveToTournament": "Save",
2293
+ "saveToTournament": "Save to Tournament",
2148
2294
  "grid": {
2149
2295
  "view": "View",
2150
2296
  "day1": "1 Day",
@@ -2222,7 +2368,8 @@
2222
2368
  "addVenue": "Add to tournament",
2223
2369
  "added": "Venue added from the registry",
2224
2370
  "searching": "Searching…"
2225
- }
2371
+ },
2372
+ "addCourtsPreview": "Will add: {{names}}"
2226
2373
  },
2227
2374
  "events": {
2228
2375
  "title": "Events",
@@ -2324,7 +2471,20 @@
2324
2471
  "country": "Country",
2325
2472
  "countryPlaceholder": "Country of origin",
2326
2473
  "nickname": "Nickname",
2327
- "nicknamePlaceholder": "Display name"
2474
+ "nicknamePlaceholder": "Display name",
2475
+ "mobile": "Mobile",
2476
+ "mobilePlaceholder": "Mobile number",
2477
+ "email": "Email",
2478
+ "emailPlaceholder": "Email address",
2479
+ "contactIsPublic": "Contact may be shared publicly",
2480
+ "contactRelationship": "Contact is",
2481
+ "contactName": "Contact name",
2482
+ "contactNamePlaceholder": "Name of the contact, if not the participant",
2483
+ "primaryContact": "Primary contact",
2484
+ "additionalContact": "Contact",
2485
+ "telephone": "Telephone",
2486
+ "telephonePlaceholder": "Landline or desk number",
2487
+ "whichPrimary": "Which contact is primary?"
2328
2488
  },
2329
2489
  "newTeam": "New team",
2330
2490
  "newGroup": "New group",
@@ -2350,14 +2510,30 @@
2350
2510
  "participantProfile": "Participant profile",
2351
2511
  "renameTeam": "Rename team",
2352
2512
  "editGroup": "Edit group",
2353
- "deleteParticipant": "Delete participant"
2513
+ "deleteParticipant": "Delete participant",
2514
+ "manageMembers": "Manage members"
2354
2515
  },
2355
2516
  "grouping": {
2356
2517
  "namePlaceholder": "Participant name",
2357
2518
  "nicknamePlaceholder": "Nickname / abbreviation",
2358
2519
  "preferNickname": "Prefer nickname in draws",
2359
2520
  "nameTooShort": "Please enter a name of at least 3 characters"
2360
- }
2521
+ },
2522
+ "staffRole": "Role",
2523
+ "contactRelationship": {
2524
+ "unspecified": "Unspecified",
2525
+ "self": "The participant",
2526
+ "parent": "Parent",
2527
+ "guardian": "Guardian",
2528
+ "chaperone": "Chaperone",
2529
+ "emergency": "Emergency contact",
2530
+ "other": "Other"
2531
+ },
2532
+ "selected": "selected",
2533
+ "closeTheDay": "Close the day",
2534
+ "closeTheDayNobody": "Nobody is currently signed in",
2535
+ "closeTheDayConfirm_one": "Sign out {{count}} person who is still signed in today?",
2536
+ "closeTheDayConfirm_other": "Sign out {{count}} people who are still signed in today?"
2361
2537
  }
2362
2538
  },
2363
2539
  "overlays": {
@@ -2590,7 +2766,8 @@
2590
2766
  "grantError": "Failed to grant access.",
2591
2767
  "revokeError": "Failed to revoke access.",
2592
2768
  "granted": "{{email}} granted access",
2593
- "revoked": "{{email}} access revoked"
2769
+ "revoked": "{{email}} access revoked",
2770
+ "scopedAccess": "Scoped access (courts, days, events) →"
2594
2771
  },
2595
2772
  "providerConfig": {
2596
2773
  "editCapsButton": "Edit Caps",
@@ -2982,14 +3159,27 @@
2982
3159
  "officiating": {
2983
3160
  "conflictWarning": "This official has a potential conflict of interest with a participant in this match. Assign anyway?",
2984
3161
  "selectOfficial": "Select official",
2985
- "noOfficialsFound": "No officials found"
3162
+ "noOfficialsFound": "No officials found",
3163
+ "notChecked": "Conflicts could not be checked for this official"
2986
3164
  },
2987
3165
  "participantRoles": {
2988
3166
  "OTHER": "Other",
2989
3167
  "COACH": "Coach",
2990
3168
  "MEDICAL": "Medical",
2991
3169
  "PHYSIO": "Physio",
2992
- "TRAINER": "Trainer"
3170
+ "TRAINER": "Trainer",
3171
+ "ADMINISTRATION": "Administration",
3172
+ "CAPTAIN": "Captain",
3173
+ "DIRECTOR": "Tournament Director",
3174
+ "HOSPITALITY": "Hospitality",
3175
+ "MEDIA": "Media",
3176
+ "SCOREKEEPER": "Scorekeeper",
3177
+ "SECURITY": "Security",
3178
+ "STRINGER": "Stringer",
3179
+ "SUPERVISOR": "Supervisor",
3180
+ "TIMEKEEPER": "Timekeeper",
3181
+ "TRANSPORT": "Transport",
3182
+ "VOLUNTEER": "Volunteer"
2993
3183
  },
2994
3184
  "nav": {
2995
3185
  "programs": "Programs"
@@ -3027,5 +3217,172 @@
3027
3217
  "alias": "id",
3028
3218
  "city": "city"
3029
3219
  }
3220
+ },
3221
+ "capability": {
3222
+ "denied": {
3223
+ "provider": "Not available under this provider’s configuration.",
3224
+ "createCompetitor": "This provider does not allow competitors to be added here.",
3225
+ "createOfficial": "This provider does not allow officials to be added here.",
3226
+ "importParticipants": "This provider does not allow importing participants.",
3227
+ "deleteParticipants": "This provider does not allow deleting participants.",
3228
+ "editParticipantDetails": "This provider does not allow editing participant details.",
3229
+ "modifyEntries": "This provider does not allow changing event entries.",
3230
+ "createEvent": "This provider does not allow events to be created in TMX.",
3231
+ "deleteEvent": "This provider does not allow deleting events.",
3232
+ "createDraw": "This provider does not allow draws to be created here.",
3233
+ "deleteDraw": "This provider does not allow deleting draws.",
3234
+ "assignPositions": "This provider does not allow draw positions to be assigned here.",
3235
+ "modifyStructures": "This provider does not allow draw structures to be changed.",
3236
+ "createVenue": "This provider does not allow venues to be created here.",
3237
+ "deleteVenue": "This provider does not allow deleting venues.",
3238
+ "modifySchedule": "This provider does not allow the schedule to be changed here.",
3239
+ "useBulkScheduling": "This provider does not allow bulk scheduling.",
3240
+ "enterScores": "This provider does not allow scores to be entered here.",
3241
+ "publish": "This provider does not allow publishing.",
3242
+ "unpublish": "This provider does not allow unpublishing.",
3243
+ "useChat": "Chat is disabled for this provider."
3244
+ },
3245
+ "outOfScope": "Outside the courts, days or events you have been assigned."
3246
+ },
3247
+ "demoMode": {
3248
+ "title": "Demo mode",
3249
+ "menuItem": "Demo mode…",
3250
+ "clientOnly": "Client-side simulation only. The server still enforces the real provider configuration.",
3251
+ "posture": "POSTURE",
3252
+ "capabilities": "CAPABILITIES",
3253
+ "exit": "Exit demo mode",
3254
+ "badgeLabel": "DEMO",
3255
+ "bannerText": "Demo mode — {{preset}} · {{count}} capabilities disabled · client-side only",
3256
+ "legend": "UI+MUT = control hidden and mutation refused · UI = control hidden only · MUT = mutation refused only · — = no gate implemented, toggling changes nothing",
3257
+ "presets": {
3258
+ "providerDefaults": "Provider defaults (no simulation)",
3259
+ "recorder": "Scoring only (Recorder)",
3260
+ "scheduler": "Schedule + score",
3261
+ "registrar": "Registration desk",
3262
+ "director": "Tournament director",
3263
+ "readOnly": "Read only",
3264
+ "custom": "Custom"
3265
+ },
3266
+ "groups": {
3267
+ "participants": "Participants",
3268
+ "events": "Events",
3269
+ "draws": "Draws",
3270
+ "scheduling": "Scheduling",
3271
+ "venues": "Venues",
3272
+ "scoring": "Scoring",
3273
+ "publishing": "Publishing",
3274
+ "settings": "Settings",
3275
+ "communication": "Communication"
3276
+ },
3277
+ "badge": {
3278
+ "both": "Enforced by a hidden control and by the mutation gate.",
3279
+ "ui": "Hides the control, but the mutation itself is ungated.",
3280
+ "mutation": "The mutation is refused, but the control is still offered.",
3281
+ "none": "No gate implemented — toggling this changes nothing."
3282
+ }
3283
+ },
3284
+ "checkIn": {
3285
+ "action": "Check in",
3286
+ "title": "Checked in",
3287
+ "clickToCheckIn": "Click to check in",
3288
+ "clickToCheckOut": "Click to check out",
3289
+ "toggleFailed": "Could not change the check-in state",
3290
+ "callBeforeCheckIn_one": "{{count}} participant has not checked in. Call to court anyway?",
3291
+ "callBeforeCheckIn_other": "{{count}} participants have not checked in. Call to court anyway?",
3292
+ "columnHeader": "Checked in",
3293
+ "columnTooltip": "Participants who have presented at the desk for this match",
3294
+ "badgeComplete_one": "The participant has checked in",
3295
+ "badgeComplete_other": "All {{count}} participants have checked in",
3296
+ "badgePartial_one": "{{count}} participant has not checked in yet",
3297
+ "badgePartial_other": "{{count}} participants have not checked in yet",
3298
+ "callOnDropBeforeCheckIn_one": "{{count}} participant has not checked in. Call this match to court anyway?",
3299
+ "callOnDropBeforeCheckIn_other": "{{count}} participants have not checked in. Call this match to court anyway?",
3300
+ "promptMode": {
3301
+ "label": "Check-in prompts",
3302
+ "off": "Off",
3303
+ "on": "On",
3304
+ "auto": "Auto",
3305
+ "offHint": "Never ask before calling a match to court.",
3306
+ "onHint": "Always ask when someone has not checked in.",
3307
+ "autoHint": "Ask only when this tournament is using check-in today."
3308
+ }
3309
+ },
3310
+ "ofc": "Officials",
3311
+ "officials": {
3312
+ "empty": "No officials on this tournament yet",
3313
+ "state": {
3314
+ "onCourt": "On court",
3315
+ "assigned": "Assigned",
3316
+ "waiting": "Waiting",
3317
+ "available": "Available",
3318
+ "availableHint": "Not signed in today — engaged, but not known to be here"
3319
+ },
3320
+ "columns": {
3321
+ "name": "Official",
3322
+ "state": "State",
3323
+ "court": "Court",
3324
+ "next": "Next",
3325
+ "matches": "Matches",
3326
+ "onCourt": "On court",
3327
+ "contact": "Contact"
3328
+ },
3329
+ "callSheet": "Call sheet",
3330
+ "callSheetSubtitle": "Officials"
3331
+ },
3332
+ "grants": {
3333
+ "title": "Scoped tournament access",
3334
+ "loading": "Loading access…",
3335
+ "unavailable": "Scoped access is unavailable right now.",
3336
+ "grantAccess": "Grant access",
3337
+ "grant": "Grant",
3338
+ "cancel": "Cancel",
3339
+ "grantee": "Person",
3340
+ "chooseGrantee": "Choose a person…",
3341
+ "capability": "May",
3342
+ "everything": "Everything (scope-limited)",
3343
+ "grantedBy": "Granted by",
3344
+ "revoke": "Revoke",
3345
+ "revoked": "{{email}} — grant revoked",
3346
+ "granted": "{{email}} granted",
3347
+ "confirmRevoke": "Revoke this grant from {{email}}? They keep any access their tournament assignment gives them.",
3348
+ "empty": "No scoped grants on this tournament.",
3349
+ "emptyMeaning": "No scoped grants does not mean no access: anyone assigned to this tournament is unrestricted by this mechanism. A grant narrows what one person may do.",
3350
+ "scope": {
3351
+ "label": "Where",
3352
+ "wholeTournament": "Whole tournament",
3353
+ "wholeTournamentNote": "Anywhere in this tournament.",
3354
+ "theseCourts": "These courts",
3355
+ "thisDay": "This day",
3356
+ "thisEvent": "This event",
3357
+ "advanced": "Advanced",
3358
+ "advancedNote": "Ids, comma separated. Leave a row blank to leave that dimension unrestricted.",
3359
+ "commaSeparated": "id, id, id",
3360
+ "noneAvailable": "This tournament has nothing to choose from in this dimension yet."
3361
+ },
3362
+ "window": {
3363
+ "label": "When",
3364
+ "shift": "A shift",
3365
+ "tournament": "Whole tournament",
3366
+ "none": "No expiry",
3367
+ "from": "From {{when}}",
3368
+ "until": "until {{when}}",
3369
+ "noExpiry": "No expiry",
3370
+ "lapsed": "Lapsed",
3371
+ "warning": "Delivery roles are handed over between shifts. A grant with no expiry outlives the person who needed it.",
3372
+ "blocking": "Expired {{when}} — blocking all access",
3373
+ "inert": "Expired — no effect, another grant is live",
3374
+ "cliff": "When the window closes, this person can do nothing on this tournament until the grant is extended or revoked."
3375
+ },
3376
+ "issues": {
3377
+ "chooseGrantee": "Choose who this grant is for.",
3378
+ "chooseCapability": "Choose what they may do.",
3379
+ "chooseScopeValues": "Choose at least one — or switch to Whole tournament.",
3380
+ "advancedEmpty": "Fill in at least one dimension — or switch to Whole tournament.",
3381
+ "chooseEnd": "Choose when the shift ends."
3382
+ },
3383
+ "extend": "Extend",
3384
+ "extendTitle": "Extend access",
3385
+ "lockout_one": "{{who}} cannot act on this tournament at all — their scoped access has expired. Extend it or revoke it.",
3386
+ "lockout_other": "{{count}} people cannot act on this tournament at all ({{who}}) — their scoped access has expired. Extend or revoke."
3030
3387
  }
3031
3388
  }