@courthive/i18n 0.3.0 → 0.4.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.
- package/dist/locales/ar.json +939 -725
- package/dist/locales/cs.json +729 -515
- package/dist/locales/de.json +939 -725
- package/dist/locales/en.json +234 -20
- package/dist/locales/es.json +939 -725
- package/dist/locales/fr.json +939 -725
- package/dist/locales/hr.json +729 -515
- package/dist/locales/pt-BR.json +939 -725
- package/dist/locales/zh-CN.json +897 -683
- package/dist/manifest.json +38 -38
- package/package.json +3 -2
package/dist/locales/en.json
CHANGED
|
@@ -425,7 +425,8 @@
|
|
|
425
425
|
"restoreSuccess": "Draw restored",
|
|
426
426
|
"restoreFailure": "Restore failed",
|
|
427
427
|
"calendarLoadError": "Failed to load calendar",
|
|
428
|
-
"deletedDrawsLoadError": "Failed to load deleted draws"
|
|
428
|
+
"deletedDrawsLoadError": "Failed to load deleted draws",
|
|
429
|
+
"providerLockedToActive": "Locked to the active provider in your session. Stop impersonation (or switch providers) to inspect another tenant's deleted draws."
|
|
429
430
|
}
|
|
430
431
|
},
|
|
431
432
|
"round_names": {
|
|
@@ -473,7 +474,9 @@
|
|
|
473
474
|
"normal": "Normal",
|
|
474
475
|
"winloss_abbreviation": "W/L",
|
|
475
476
|
"cancelled": "Cancelled",
|
|
476
|
-
"abandoned": "Abandoned"
|
|
477
|
+
"abandoned": "Abandoned",
|
|
478
|
+
"scoreThisMatch": "Score this match",
|
|
479
|
+
"openScorecard": "Open scorecard"
|
|
477
480
|
},
|
|
478
481
|
"draws": {
|
|
479
482
|
"seedlimit": "Seed Limit",
|
|
@@ -943,8 +946,10 @@
|
|
|
943
946
|
"event": "By Event",
|
|
944
947
|
"draw": "By Draw",
|
|
945
948
|
"round": "By Round",
|
|
946
|
-
"structure": "By Structure"
|
|
947
|
-
|
|
949
|
+
"structure": "By Structure",
|
|
950
|
+
"time": "By Time"
|
|
951
|
+
},
|
|
952
|
+
"showCompleted": "Show completed"
|
|
948
953
|
},
|
|
949
954
|
"penalties": {
|
|
950
955
|
"fail2signout": "Failed to Sign Out",
|
|
@@ -982,7 +987,8 @@
|
|
|
982
987
|
"validationDetails": "Validation details",
|
|
983
988
|
"dismiss": "Dismiss",
|
|
984
989
|
"iSavedIt": "I saved it",
|
|
985
|
-
"remove": "Remove"
|
|
990
|
+
"remove": "Remove",
|
|
991
|
+
"continueAndUnschedule": "Continue & unschedule"
|
|
986
992
|
},
|
|
987
993
|
"modals": {
|
|
988
994
|
"deleteEvents": {
|
|
@@ -1052,7 +1058,8 @@
|
|
|
1052
1058
|
"editDates": {
|
|
1053
1059
|
"title": "Edit Dates",
|
|
1054
1060
|
"startDateLabel": "Start Date",
|
|
1055
|
-
"endDateLabel": "End Date"
|
|
1061
|
+
"endDateLabel": "End Date",
|
|
1062
|
+
"timeZoneDetectedHint": "Detected from your browser ({{zone}}). Confirm, change, or clear."
|
|
1056
1063
|
},
|
|
1057
1064
|
"invalidParticipants": {
|
|
1058
1065
|
"title": "Invalid Participants"
|
|
@@ -1308,7 +1315,7 @@
|
|
|
1308
1315
|
},
|
|
1309
1316
|
"editGroupNames": {
|
|
1310
1317
|
"title": "Edit group names",
|
|
1311
|
-
"minChars": "minimum
|
|
1318
|
+
"minChars": "minimum 3 characters",
|
|
1312
1319
|
"groupsRenamed": "Groups renamed"
|
|
1313
1320
|
},
|
|
1314
1321
|
"addFlights": {
|
|
@@ -1331,8 +1338,7 @@
|
|
|
1331
1338
|
"groupSize": "Group size",
|
|
1332
1339
|
"positionsToBePlayedOff": "Positions to be played off:",
|
|
1333
1340
|
"selectPositions": "Select group finishing positions. Selections must be sequential",
|
|
1334
|
-
"structureAdded": "Structure added"
|
|
1335
|
-
"selectEligible": "__TODO__"
|
|
1341
|
+
"structureAdded": "Structure added"
|
|
1336
1342
|
},
|
|
1337
1343
|
"addToEvent": {
|
|
1338
1344
|
"title": "Add to event",
|
|
@@ -1640,7 +1646,10 @@
|
|
|
1640
1646
|
"noneSet": "None",
|
|
1641
1647
|
"practiceCapacity": "Practice capacity",
|
|
1642
1648
|
"practiceUnlimited": "Unlimited",
|
|
1643
|
-
"practiceClosed": "Closed"
|
|
1649
|
+
"practiceClosed": "Closed",
|
|
1650
|
+
"setTimeZone": "Set time zone",
|
|
1651
|
+
"setTimeZoneDetected": "(detected: {{zone}})",
|
|
1652
|
+
"practiceNoneAllocated": "None allocated"
|
|
1644
1653
|
},
|
|
1645
1654
|
"drawers": {
|
|
1646
1655
|
"editTournament": {
|
|
@@ -1655,7 +1664,17 @@
|
|
|
1655
1664
|
"activeDates": "Active Dates",
|
|
1656
1665
|
"timeZoneLabel": "Time zone",
|
|
1657
1666
|
"timeZonePlaceholder": "e.g. America/New_York",
|
|
1658
|
-
"timeZoneInvalid": "Not a recognised IANA time zone"
|
|
1667
|
+
"timeZoneInvalid": "Not a recognised IANA time zone",
|
|
1668
|
+
"tierSystemLabel": "Tier system",
|
|
1669
|
+
"tierSystemPlaceholder": "e.g. ITF_JUNIOR, ATP, PPA",
|
|
1670
|
+
"tierSystemNone": "—",
|
|
1671
|
+
"tierSystemUnknown": "(unknown: {{system}})",
|
|
1672
|
+
"tierValueLabel": "Tier value",
|
|
1673
|
+
"tierValuePlaceholder": "e.g. J500, Masters 1000, Gold",
|
|
1674
|
+
"tierNumericRankLabel": "Tier rank (optional)",
|
|
1675
|
+
"tierNumericRankPlaceholder": "Lower = higher tier",
|
|
1676
|
+
"tierSystemMissing": "Tier value entered without a system",
|
|
1677
|
+
"tierValueMissing": "Tier system entered without a value"
|
|
1659
1678
|
},
|
|
1660
1679
|
"addDraw": {
|
|
1661
1680
|
"missingName": "Missing Draw name",
|
|
@@ -1773,7 +1792,12 @@
|
|
|
1773
1792
|
"cannotDeleteParticipant": "Participant is assigned to a draw and cannot be deleted",
|
|
1774
1793
|
"magicLinkSent": "If an account exists for that email, a login link is on its way.",
|
|
1775
1794
|
"magicLinkInvalid": "That login link is invalid or has expired. Please request a new one.",
|
|
1776
|
-
"addedTeamParticipants": "Generated {{count}} team participant(s) from the team column"
|
|
1795
|
+
"addedTeamParticipants": "Generated {{count}} team participant(s) from the team column",
|
|
1796
|
+
"activeDatesPrompt": "Set active dates so the public schedule shows only the days you play.",
|
|
1797
|
+
"activeDatesPromptAction": "Set active dates",
|
|
1798
|
+
"cannotDeleteTournament": "Cannot delete tournament",
|
|
1799
|
+
"tournamentNotEnded": "Cannot delete a tournament before its end date. Set the end date to a past date first, then delete.",
|
|
1800
|
+
"deleteForbidden": "You are not authorized to delete this tournament."
|
|
1777
1801
|
},
|
|
1778
1802
|
"loginMenu": {
|
|
1779
1803
|
"authorization": "Authorization",
|
|
@@ -1932,7 +1956,8 @@
|
|
|
1932
1956
|
"profile": "Profile",
|
|
1933
1957
|
"official": "Official",
|
|
1934
1958
|
"status": "Status",
|
|
1935
|
-
"updatedAt": "Updated"
|
|
1959
|
+
"updatedAt": "Updated",
|
|
1960
|
+
"calledAt": "Called"
|
|
1936
1961
|
},
|
|
1937
1962
|
"tournaments": {
|
|
1938
1963
|
"open": "Open"
|
|
@@ -2079,7 +2104,11 @@
|
|
|
2079
2104
|
"eventNameRequired": "Event name must be at least 5 characters",
|
|
2080
2105
|
"any": "Any",
|
|
2081
2106
|
"custom": "Custom",
|
|
2082
|
-
"categorySaveWarning": "Category saved to event but not added to tournament categories"
|
|
2107
|
+
"categorySaveWarning": "Category saved to event but not added to tournament categories",
|
|
2108
|
+
"competitionFormatLabel": "Sport rules",
|
|
2109
|
+
"competitionFormatNone": "None",
|
|
2110
|
+
"competitionFormatTennis": "Tennis (standard)",
|
|
2111
|
+
"competitionFormatIntennse": "INTENNSE (standard)"
|
|
2083
2112
|
},
|
|
2084
2113
|
"editFormat": {
|
|
2085
2114
|
"noChanges": "No changes",
|
|
@@ -2102,7 +2131,8 @@
|
|
|
2102
2131
|
"autoPlaceParticipants": "Auto place participants",
|
|
2103
2132
|
"configureDraft": "Configure draft",
|
|
2104
2133
|
"resolveDraft": "Resolve draft",
|
|
2105
|
-
"draftStatus": "Draft"
|
|
2134
|
+
"draftStatus": "Draft",
|
|
2135
|
+
"recalculateStats": "Recalculate stats"
|
|
2106
2136
|
}
|
|
2107
2137
|
},
|
|
2108
2138
|
"participants": {
|
|
@@ -2427,7 +2457,9 @@
|
|
|
2427
2457
|
},
|
|
2428
2458
|
"allowed": {
|
|
2429
2459
|
"universeHint": "Comma-separated list. Empty means unrestricted (everything allowed).",
|
|
2430
|
-
"selectionHint": "
|
|
2460
|
+
"selectionHint": "Select which options this provider may use. None selected = all allowed.",
|
|
2461
|
+
"restrictedHint": "Choose within your provisioner-allowed set. None selected = all of these.",
|
|
2462
|
+
"unrestrictedHint": "None selected = all allowed. Select to restrict."
|
|
2431
2463
|
},
|
|
2432
2464
|
"branding": {
|
|
2433
2465
|
"appName": "App name",
|
|
@@ -2436,7 +2468,14 @@
|
|
|
2436
2468
|
"navbarLogoHeight": "Navbar logo height (px)",
|
|
2437
2469
|
"splashLogoUrl": "Splash logo URL",
|
|
2438
2470
|
"accentColor": "Accent color (CSS)",
|
|
2439
|
-
"stylesheetUrl": "Provider stylesheet URL (escape hatch)"
|
|
2471
|
+
"stylesheetUrl": "Provider stylesheet URL (escape hatch)",
|
|
2472
|
+
"preview": "Live preview (mock navbar)",
|
|
2473
|
+
"uploadThemeAssets": "Upload & link theme assets",
|
|
2474
|
+
"uploadNoFiles": "Choose a .css file (and any fonts) first.",
|
|
2475
|
+
"uploading": "Uploading…",
|
|
2476
|
+
"uploadLinked": "Uploaded {{count}} file(s); stylesheet URL linked.",
|
|
2477
|
+
"uploadedNoCss": "Uploaded {{count}} file(s) — add a .css file to link the stylesheet URL.",
|
|
2478
|
+
"uploadFailed": "Upload failed: {{reason}}"
|
|
2440
2479
|
},
|
|
2441
2480
|
"defaults": {
|
|
2442
2481
|
"defaultEventType": "Default event type",
|
|
@@ -2485,7 +2524,10 @@
|
|
|
2485
2524
|
"tokenExpired": "This verification link has expired. Request a fresh one from your contact-email settings.",
|
|
2486
2525
|
"tokenMismatch": "This link no longer matches your current contact email — it was probably superseded by a more recent change.",
|
|
2487
2526
|
"tryAgain": "Try again",
|
|
2488
|
-
"failed": "Verification failed. Try requesting a fresh link."
|
|
2527
|
+
"failed": "Verification failed. Try requesting a fresh link.",
|
|
2528
|
+
"verifiedRedirect": "Your email is verified. Taking you to My CourtHive…",
|
|
2529
|
+
"verifiedSignIn": "Your email is verified. You can now sign in.",
|
|
2530
|
+
"invalidOrExpired": "This verification link is invalid or has expired. Sign in to My CourtHive to request a new one."
|
|
2489
2531
|
},
|
|
2490
2532
|
"resetPassword": {
|
|
2491
2533
|
"title": "Set a new password",
|
|
@@ -2541,7 +2583,64 @@
|
|
|
2541
2583
|
"type": "Type",
|
|
2542
2584
|
"entries": "Entries",
|
|
2543
2585
|
"draws": "Draws",
|
|
2544
|
-
"noEvents": "No events"
|
|
2586
|
+
"noEvents": "No events",
|
|
2587
|
+
"providerDashboard": {
|
|
2588
|
+
"loading": "Loading dashboard…",
|
|
2589
|
+
"loadError": "Could not load provider configuration.",
|
|
2590
|
+
"brand": {
|
|
2591
|
+
"title": "Brand & Identity",
|
|
2592
|
+
"editTheme": "Edit theme",
|
|
2593
|
+
"logoAlt": "Provider logo",
|
|
2594
|
+
"unnamed": "Unnamed provider",
|
|
2595
|
+
"noBrand": "No brand colors set yet",
|
|
2596
|
+
"themeTokens": "{{count}} theme token override(s)"
|
|
2597
|
+
},
|
|
2598
|
+
"checklist": {
|
|
2599
|
+
"title": "Getting started",
|
|
2600
|
+
"progress": "{{done}} of {{total}} complete",
|
|
2601
|
+
"appName": "Set your display name",
|
|
2602
|
+
"brand": "Set your brand colors",
|
|
2603
|
+
"logo": "Upload a logo",
|
|
2604
|
+
"privacy": "Configure participant privacy"
|
|
2605
|
+
},
|
|
2606
|
+
"config": {
|
|
2607
|
+
"title": "Configuration at a glance",
|
|
2608
|
+
"editSettings": "Edit settings",
|
|
2609
|
+
"permissions": "{{count}} permission(s) enabled",
|
|
2610
|
+
"policies": "{{count}} policy set(s) configured",
|
|
2611
|
+
"privacy": "{{count}} privacy field(s) published",
|
|
2612
|
+
"scoringApp": "Scoring app: {{app}}",
|
|
2613
|
+
"none": "Using platform defaults"
|
|
2614
|
+
},
|
|
2615
|
+
"tournaments": {
|
|
2616
|
+
"title": "Tournaments",
|
|
2617
|
+
"total": "Total",
|
|
2618
|
+
"upcoming": "Upcoming",
|
|
2619
|
+
"live": "In progress",
|
|
2620
|
+
"completed": "Completed",
|
|
2621
|
+
"none": "No tournaments yet",
|
|
2622
|
+
"loadError": "Could not load tournaments",
|
|
2623
|
+
"openInTmx": "Open in TMX"
|
|
2624
|
+
},
|
|
2625
|
+
"activity": {
|
|
2626
|
+
"title": "Activity by year"
|
|
2627
|
+
},
|
|
2628
|
+
"rankings": {
|
|
2629
|
+
"title": "Rankings",
|
|
2630
|
+
"launch": "Launch rankings page",
|
|
2631
|
+
"configure": "Configure ranking policy",
|
|
2632
|
+
"recompute": "Recompute rankings",
|
|
2633
|
+
"recomputing": "Recomputing rankings…",
|
|
2634
|
+
"policySet": "A ranking-points policy is configured. Recompute to refresh points across all tournaments and regenerate ranking snapshots.",
|
|
2635
|
+
"policyUnsetHint": "Select a ranking-points policy first to enable recompute.",
|
|
2636
|
+
"pipelineOff": "The rankings pipeline is not configured on the server (RANKINGS_PIPELINE_URL). Nothing was recomputed.",
|
|
2637
|
+
"failed": "Could not recompute rankings.",
|
|
2638
|
+
"result": "Recomputed {{republished}}/{{tournaments}} tournaments; generated {{snapshots}} snapshot(s)."
|
|
2639
|
+
}
|
|
2640
|
+
},
|
|
2641
|
+
"notLoggedInTitle": "You're not signed in",
|
|
2642
|
+
"notLoggedInHint": "Sign in to view your provider dashboard.",
|
|
2643
|
+
"logIn": "Sign in"
|
|
2545
2644
|
},
|
|
2546
2645
|
"ams": {
|
|
2547
2646
|
"officials": "Officials",
|
|
@@ -2564,5 +2663,120 @@
|
|
|
2564
2663
|
"sendVerification": "Send verification",
|
|
2565
2664
|
"verificationSent": "Verification email sent",
|
|
2566
2665
|
"alreadyVerified": "Recovery email already verified",
|
|
2567
|
-
"noRecoveryEmail": "No recovery email set"
|
|
2666
|
+
"noRecoveryEmail": "No recovery email set",
|
|
2667
|
+
"timepicker": {
|
|
2668
|
+
"am": "AM",
|
|
2669
|
+
"pm": "PM",
|
|
2670
|
+
"selectTime": "Select time",
|
|
2671
|
+
"enterTime": "Enter time",
|
|
2672
|
+
"hour": "Hour",
|
|
2673
|
+
"minute": "Minute",
|
|
2674
|
+
"clear": "Clear"
|
|
2675
|
+
},
|
|
2676
|
+
"onboarding": {
|
|
2677
|
+
"title": "Welcome — let's set up {{name}}",
|
|
2678
|
+
"yourProvider": "your provider",
|
|
2679
|
+
"intro": "{{count}} step(s) left to finish setting up. You can skip any of these and come back later.",
|
|
2680
|
+
"allDone": "You're all set up. 🎉",
|
|
2681
|
+
"setUp": "Set up",
|
|
2682
|
+
"getStarted": "Get started",
|
|
2683
|
+
"skipForNow": "Skip for now",
|
|
2684
|
+
"finish": "Finish"
|
|
2685
|
+
},
|
|
2686
|
+
"me": {
|
|
2687
|
+
"verification": {
|
|
2688
|
+
"title": "Email verification",
|
|
2689
|
+
"checking": "Checking…",
|
|
2690
|
+
"signInToManage": "Sign in to manage email verification.",
|
|
2691
|
+
"yourEmail": "your email",
|
|
2692
|
+
"verified": "✓ {{email}} is verified.",
|
|
2693
|
+
"notVerified": "{{email}} is not verified yet. Verify it to become eligible as an official scorer.",
|
|
2694
|
+
"resend": "Resend verification email",
|
|
2695
|
+
"sent": "Verification email sent — check your inbox.",
|
|
2696
|
+
"sendFailed": "Could not send the email. Please try again later."
|
|
2697
|
+
}
|
|
2698
|
+
},
|
|
2699
|
+
"crowd": {
|
|
2700
|
+
"trackers": "Crowd trackers",
|
|
2701
|
+
"trackersFor": "Crowd trackers — {{label}}",
|
|
2702
|
+
"loading": "Loading…",
|
|
2703
|
+
"close": "Close",
|
|
2704
|
+
"cancel": "Cancel",
|
|
2705
|
+
"promote": "Promote",
|
|
2706
|
+
"demote": "Demote",
|
|
2707
|
+
"noActiveTrackers": "No active crowd trackers",
|
|
2708
|
+
"activeTrackers_one": "{{count}} active tracker",
|
|
2709
|
+
"activeTrackers_other": "{{count}} active trackers",
|
|
2710
|
+
"viewTrackers": "View crowd trackers ({{count}})",
|
|
2711
|
+
"setDelegatedOutcome": "Set delegated outcome",
|
|
2712
|
+
"confirmDelegatedOutcome": "Confirm delegated outcome",
|
|
2713
|
+
"badge": {
|
|
2714
|
+
"official": "OFFICIAL",
|
|
2715
|
+
"participant": "PARTICIPANT",
|
|
2716
|
+
"crowd": "CROWD",
|
|
2717
|
+
"anon": "ANON",
|
|
2718
|
+
"verified": "VERIFIED",
|
|
2719
|
+
"nominated": "NOMINATED"
|
|
2720
|
+
},
|
|
2721
|
+
"reason": {
|
|
2722
|
+
"signInRequired": "Sign-in required to be nominated",
|
|
2723
|
+
"emailNotVerified": "Email not verified — cannot be nominated"
|
|
2724
|
+
},
|
|
2725
|
+
"toast": {
|
|
2726
|
+
"nominateFirst": "Nominate a verified scorer before setting a delegated outcome.",
|
|
2727
|
+
"noOutcomeToConfirm": "No delegated outcome to confirm on this match."
|
|
2728
|
+
},
|
|
2729
|
+
"tooltip": {
|
|
2730
|
+
"liveTracker": "Score reported via live tracker",
|
|
2731
|
+
"unconfirmed": "Unconfirmed delegated score — confirm to make it official",
|
|
2732
|
+
"unconfirmedAria": "Unconfirmed delegated score awaiting confirmation"
|
|
2733
|
+
}
|
|
2734
|
+
},
|
|
2735
|
+
"providerSetup": {
|
|
2736
|
+
"wizardTitle": "Set up your provider",
|
|
2737
|
+
"progress": "Step {{current}} of {{total}}",
|
|
2738
|
+
"back": "Back",
|
|
2739
|
+
"skip": "Skip",
|
|
2740
|
+
"next": "Next",
|
|
2741
|
+
"finish": "Finish",
|
|
2742
|
+
"identity": {
|
|
2743
|
+
"title": "Brand & identity",
|
|
2744
|
+
"intro": "Let's set up how your organization appears across the platform. We'll walk through a few quick steps — you can skip any and change them later."
|
|
2745
|
+
},
|
|
2746
|
+
"displayName": {
|
|
2747
|
+
"title": "Set your display name",
|
|
2748
|
+
"intro": "The name shown in the navbar and page titles in place of \"TMX\"."
|
|
2749
|
+
},
|
|
2750
|
+
"brandColors": {
|
|
2751
|
+
"title": "Set your brand colors",
|
|
2752
|
+
"intro": "Choose your brand colors below — each one updates the matching parts of the app. For full control, use Advanced.",
|
|
2753
|
+
"advanced": "Advanced — raw token overrides & theme file",
|
|
2754
|
+
"downloadTemplate": "Download theme template (.css)"
|
|
2755
|
+
},
|
|
2756
|
+
"logo": {
|
|
2757
|
+
"title": "Upload a logo",
|
|
2758
|
+
"intro": "Paste an image URL or upload a PNG/JPG/WebP/GIF for your navbar and splash logos."
|
|
2759
|
+
},
|
|
2760
|
+
"privacy": {
|
|
2761
|
+
"title": "Configure participant privacy",
|
|
2762
|
+
"intro": "Choose what participant details are published. Everything defaults to private."
|
|
2763
|
+
}
|
|
2764
|
+
},
|
|
2765
|
+
"providerPolicies": {
|
|
2766
|
+
"title": "Policies",
|
|
2767
|
+
"intro": "Select a policy for each type from your policy catalog. Create or edit policies on the Policies page.",
|
|
2768
|
+
"rankingPoints": "Ranking points policy",
|
|
2769
|
+
"privacy": "Participant privacy policy",
|
|
2770
|
+
"keepCurrent": "— keep current —",
|
|
2771
|
+
"none": "— none —",
|
|
2772
|
+
"clear": "— clear —",
|
|
2773
|
+
"manage": "Manage policies",
|
|
2774
|
+
"privacyApplyExisting": "Apply to existing tournaments",
|
|
2775
|
+
"privacyIncludeInProgress": "Also apply to in-progress tournaments",
|
|
2776
|
+
"privacySaveFirst": "Save your privacy policy change first, then apply it to existing tournaments.",
|
|
2777
|
+
"privacyNoPolicy": "Select and save a participant privacy policy first.",
|
|
2778
|
+
"privacyApplyFailed": "Could not apply the privacy policy to existing tournaments.",
|
|
2779
|
+
"privacyApplyResult": "Privacy policy applied to {{attached}} tournament(s); {{already}} already had it; {{failed}} failed."
|
|
2780
|
+
},
|
|
2781
|
+
"cns": "Console"
|
|
2568
2782
|
}
|