diff --git a/src/locales/de/messages.po b/src/locales/de/messages.po index b011c0d..a7eaae2 100644 --- a/src/locales/de/messages.po +++ b/src/locales/de/messages.po @@ -18,7 +18,7 @@ msgid " (Losers)" msgstr " (Verlierer)" #. placeholder {0}: activeDevice.volume_percent -#: src/features/spotify/components/spotify-sheet.tsx:163 +#: src/features/spotify/components/spotify-sheet.tsx:162 msgid " (Volume: {0}%)" msgstr " (Lautstärke: {0}%)" @@ -26,7 +26,7 @@ msgstr " (Lautstärke: {0}%)" msgid "(713) 867-5309" msgstr "(713) 867-5309" -#: src/features/spotify/components/spotify-sheet.tsx:148 +#: src/features/spotify/components/spotify-sheet.tsx:147 msgid "(Active)" msgstr "(Aktiv)" @@ -38,14 +38,14 @@ msgstr "{0, plural, one {# Bracket in} other {# Brackets in}}" #. placeholder {0}: enrolledPlayers.length #. placeholder {0}: players.length #: src/features/players/components/players-activity-table.tsx:100 -#: src/features/tournaments/components/edit-enrolled-players.tsx:135 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:158 msgid "{0, plural, one {# player} other {# players}}" msgstr "{0, plural, one {# Spieler} other {# Spieler}}" #. placeholder {0}: enrolledTeams.length #. placeholder {0}: group.teams.length #. placeholder {0}: orderedTeams.length -#: src/features/tournaments/components/edit-enrolled-teams.tsx:154 +#: src/features/tournaments/components/enrollment/team-section.tsx:243 #: src/features/tournaments/components/group-preview.tsx:27 #: src/features/tournaments/components/seed-tournament.tsx:116 #: src/features/tournaments/components/setup-group-stage.tsx:224 @@ -53,10 +53,15 @@ msgid "{0, plural, one {# team} other {# teams}}" msgstr "{0, plural, one {# Team} other {# Teams}}" #. placeholder {0}: result.totalItems -#: src/features/activities/components/activities-table.tsx:341 +#: src/features/activities/components/activities-table.tsx:125 msgid "{0, plural, one {# total activity} other {# total activities}}" msgstr "{0, plural, one {# Aktivität insgesamt} other {# Aktivitäten insgesamt}}" +#. placeholder {0}: result.totalItems +#: src/features/telemetry/components/client-events-table.tsx:87 +msgid "{0, plural, one {# total event} other {# total events}}" +msgstr "" + #. placeholder {0}: selectedConfig.total_group_matches #: src/features/tournaments/components/setup-group-stage.tsx:249 msgid "{0, plural, one {# total group stage match} other {# total group stage matches}}" @@ -73,7 +78,9 @@ msgid "{0, plural, one {# wildcard} other {# wildcards}}" msgstr "{0, plural, one {# Wildcard} other {# Wildcards}}" #. placeholder {0}: freeAgents.length -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:126 +#. placeholder {0}: props.count +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:124 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:22 msgid "{0, plural, one {player enrolled} other {players enrolled}}" msgstr "{0, plural, one {Spieler angemeldet} other {Spieler angemeldet}}" @@ -88,6 +95,11 @@ msgstr "{0} um {1}" msgid "{0} Badge Holders" msgstr "{0} Abzeichen-Inhaber" +#. placeholder {0}: recentErrors.totalItems +#: src/lib/telemetry/alerts.server.ts:104 +msgid "{0} client errors in the last 15 minutes" +msgstr "" + #. placeholder {0}: match.away?.name #. placeholder {0}: match.home?.name #: src/features/bracket/components/match-form.tsx:90 @@ -131,8 +143,9 @@ msgid "{0}d" msgstr "{0}T" #. placeholder {0}: activity.duration -#: src/features/activities/components/activities-table.tsx:83 -#: src/features/activities/components/activities-table.tsx:163 +#. placeholder {0}: selectedActivity.duration +#: src/features/activities/components/activities-table.tsx:148 +#: src/features/activities/components/activities-table.tsx:193 msgid "{0}ms" msgstr "{0}ms" @@ -145,15 +158,22 @@ msgstr "{count, plural, one {Spieler (#)} other {Spieler (#)}}" msgid "{count, plural, one {Teams (#)} other {Teams (#)}}" msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}" +#: src/lib/telemetry/alerts.server.ts:167 +msgid "{deniedCount} denied admin access attempts in the last 15 minutes" +msgstr "" + #: src/features/players/components/players-activity-table.tsx:44 +#: src/features/telemetry/components/shared/relative-time.tsx:17 msgid "{diffDays}d ago" msgstr "vor {diffDays}T" #: src/features/players/components/players-activity-table.tsx:43 +#: src/features/telemetry/components/shared/relative-time.tsx:16 msgid "{diffHours}h ago" msgstr "vor {diffHours}Std" #: src/features/players/components/players-activity-table.tsx:42 +#: src/features/telemetry/components/shared/relative-time.tsx:15 msgid "{diffMins}m ago" msgstr "vor {diffMins}Min" @@ -177,7 +197,11 @@ msgstr "{n, plural, one {# garantiertes Spiel} other {# garantierte Spiele}}" msgid "{n, plural, one {# wildcard} other {# wildcards}}" msgstr "{n, plural, one {# Wildcard} other {# Wildcards}}" -#: src/app/routes/_authed/admin/tournaments/$id/teams.tsx:23 +#: src/lib/telemetry/alerts.server.ts:154 +msgid "{name} failed {count} times in the last 15 minutes" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/teams.tsx:24 msgid "{name} Teams" msgstr "{name}-Teams" @@ -331,6 +355,10 @@ msgstr "2. Frühere Abgabe" msgid "2nd place" msgstr "2. Platz" +#: src/features/telemetry/components/usage-screen.tsx:256 +msgid "30d" +msgstr "" + #: src/features/teams/components/team-form/duration-picker.tsx:22 msgid "30s" msgstr "30 s" @@ -343,6 +371,10 @@ msgstr "3. Platz" msgid "5s" msgstr "5 s" +#: src/features/telemetry/components/usage-screen.tsx:255 +msgid "7d" +msgstr "" + #. placeholder {0}: number?.slice(0, 3) #. placeholder {1}: number?.slice(3, 6) #. placeholder {2}: number?.slice(6) @@ -350,6 +382,11 @@ msgstr "5 s" msgid "A code was sent to +1 ({0}) {1}-{2}" msgstr "Ein Code wurde an +1 ({0}) {1}-{2} gesendet" +#. placeholder {0}: info.message.slice(0, 120) +#: src/lib/telemetry/alerts.server.ts:125 +msgid "A new error appeared: {0}" +msgstr "" + #: src/features/bracket/components/match-report.tsx:304 msgid "a team" msgstr "ein Team" @@ -370,7 +407,7 @@ msgstr "Akzentfarbe" msgid "Access denied" msgstr "Zugriff verweigert" -#: src/components/DefaultCatchBoundary.tsx:58 +#: src/components/DefaultCatchBoundary.tsx:60 msgid "Access Denied" msgstr "Zugriff verweigert" @@ -379,34 +416,33 @@ msgid "Account created successfully!" msgstr "Konto erfolgreich erstellt!" #. placeholder {0}: activeDevice.name -#: src/features/spotify/components/spotify-sheet.tsx:161 +#: src/features/spotify/components/spotify-sheet.tsx:160 msgid "Active device: {0}" msgstr "Aktives Gerät: {0}" -#: src/app/routes/_authed/admin/activities.tsx:21 -#: src/features/admin/components/admin-page.tsx:90 -msgid "Activities" -msgstr "Aktivitäten" +#: src/features/admin/components/dashboard/usage-card.tsx:39 +msgid "Active players" +msgstr "" -#: src/features/activities/components/activities-table.tsx:120 +#: src/features/activities/components/activities-table.tsx:159 msgid "Activity Details" msgstr "Aktivitätsdetails" -#: src/components/ios-install-prompt.tsx:58 +#: src/components/ios-install-prompt.tsx:63 msgid "Add FLXN to your home screen for a smoother experience" msgstr "Leg FLXN auf deinen Homescreen für ein flüssigeres Erlebnis" -#: src/features/tournaments/components/edit-enrolled-players.tsx:117 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:130 msgid "Add Player" msgstr "Spieler hinzufügen" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:136 +#: src/features/tournaments/components/enrollment/team-section.tsx:213 msgid "Add Team" msgstr "Team hinzufügen" -#: src/app/routes/_authed/admin.tsx:14 -#: src/app/routes/_authed/admin/index.tsx:9 -#: src/features/core/hooks/use-links.ts:36 +#: src/app/routes/_authed/admin.tsx:15 +#: src/app/routes/_authed/admin/index.tsx:22 +#: src/features/core/hooks/use-links.ts:37 msgid "Admin" msgstr "Admin" @@ -415,7 +451,7 @@ msgid "Aero" msgstr "Aero" #: src/app/routes/_authed/stats.tsx:59 -#: src/features/activities/components/activities-table.tsx:328 +#: src/features/activities/components/activities-table.tsx:92 #: src/features/players/components/profile/index.tsx:28 msgid "All" msgstr "Alle" @@ -432,7 +468,7 @@ msgstr "Alle Gruppenspiele sind beendet! Fülle den K.-o.-Baum, um qualifizierte msgid "ALM" msgstr "ALM" -#: src/components/DefaultCatchBoundary.tsx:92 +#: src/components/DefaultCatchBoundary.tsx:94 msgid "An error occurred while loading this page." msgstr "Beim Laden dieser Seite ist ein Fehler aufgetreten." @@ -448,6 +484,10 @@ msgstr "Ein unerwarteter Fehler ist aufgetreten. Bitte versuche es erneut." msgid "Announce matchup" msgstr "Matchup ansagen" +#: src/features/telemetry/components/client-events-table.tsx:49 +msgid "Anonymous" +msgstr "" + #: src/app/routes/_authed/settings.tsx:35 msgid "Appearance" msgstr "Erscheinungsbild" @@ -456,7 +496,7 @@ msgstr "Erscheinungsbild" msgid "Are you sure you want to unenroll from this tournament? You can enroll again at any point before the deadline." msgstr "Bist du sicher, dass du dich von diesem Turnier abmelden möchtest? Du kannst dich jederzeit vor Ablauf der Frist wieder anmelden." -#: src/features/activities/components/activities-table.tsx:200 +#: src/features/activities/components/activities-table.tsx:221 msgid "Arguments" msgstr "Argumente" @@ -464,7 +504,7 @@ msgstr "Argumente" msgid "Art Deco" msgstr "Art déco" -#: src/features/tournaments/components/manage-tournament.tsx:69 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:149 msgid "Assign Partners" msgstr "Partner zuweisen" @@ -473,12 +513,12 @@ msgstr "Partner zuweisen" msgid "At least one team must have 10 cups" msgstr "Mindestens ein Team muss 10 Becher haben" -#: src/contexts/spotify-context.tsx:158 +#: src/contexts/spotify-context.tsx:157 msgid "Authentication failed: {error}" msgstr "Authentifizierung fehlgeschlagen: {error}" #. placeholder {0}: decodeURIComponent(details) -#: src/contexts/spotify-context.tsx:157 +#: src/contexts/spotify-context.tsx:156 msgid "Authentication failed: {error} - {0}" msgstr "Authentifizierung fehlgeschlagen: {error} - {0}" @@ -520,15 +560,15 @@ msgstr "Ø Niederlagen-Marge" msgid "Avg Win Margin" msgstr "Ø Sieg-Marge" -#: src/features/admin/components/award-badges.tsx:104 +#: src/features/admin/components/award-badges.tsx:98 msgid "Award Badge" msgstr "Abzeichen verleihen" -#: src/features/admin/components/admin-page.tsx:55 +#: src/features/admin/components/dashboard/tools-list.tsx:54 msgid "Award Badges" msgstr "Abzeichen verleihen" -#: src/features/admin/components/award-badges.tsx:65 +#: src/features/admin/components/award-badges.tsx:59 msgid "Award Manual Badge" msgstr "Abzeichen manuell verleihen" @@ -554,23 +594,23 @@ msgstr "AWM" msgid "Back" msgstr "Zurück" -#: src/features/admin/components/award-badges.tsx:37 +#: src/features/admin/components/award-badges.tsx:33 msgid "Badge awarded to {playerName}" msgstr "Abzeichen an {playerName} verliehen" -#: src/features/admin/components/admin-page.tsx:86 +#: src/features/admin/components/dashboard/tools-list.tsx:85 msgid "Badge recalculation failed. Check the server logs." msgstr "Abzeichen-Neuberechnung fehlgeschlagen. Prüfe die Server-Logs." -#: src/features/admin/components/admin-page.tsx:39 +#: src/features/admin/components/dashboard/tools-list.tsx:38 msgid "Badge recalculation is already running" msgstr "Abzeichen-Neuberechnung läuft bereits" -#: src/features/admin/components/admin-page.tsx:38 +#: src/features/admin/components/dashboard/tools-list.tsx:37 msgid "Badge recalculation started in the background" msgstr "Abzeichen-Neuberechnung im Hintergrund gestartet" -#: src/features/admin/components/award-badges.tsx:70 +#: src/features/admin/components/award-badges.tsx:64 msgid "Badge Type" msgstr "Abzeichentyp" @@ -592,12 +632,12 @@ msgid "Both teams cannot have 10 cups" msgstr "Beide Teams können nicht 10 Becher haben" #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:150 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:151 msgid "Bracket" msgstr "Turnierbaum" #: src/app/routes/_authed/admin/preview.tsx:13 -#: src/features/admin/components/admin-page.tsx:102 +#: src/features/admin/components/dashboard/tools-list.tsx:96 msgid "Bracket Preview" msgstr "Turnierbaum-Vorschau" @@ -614,6 +654,10 @@ msgstr "Brutal" msgid "CA" msgstr "CA" +#: src/features/admin/components/dashboard/now-strip.tsx:52 +msgid "Calls today" +msgstr "" + #: src/components/sheet/slide-panel/slide-panel.tsx:41 #: src/components/sheet/slide-panel/slide-panel.tsx:190 #: src/features/bracket/components/match-form.tsx:160 @@ -633,11 +677,12 @@ msgstr "Abbrechen" msgid "Cannot create groups" msgstr "Gruppen können nicht erstellt werden" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:138 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:136 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:41 msgid "Cannot create teams with an odd number of players. Please have one player unenroll." msgstr "Teams können nicht mit einer ungeraden Anzahl an Spielern erstellt werden. Bitte lass einen Spieler austragen." -#: src/features/spotify/components/spotify-controls-bar.tsx:144 +#: src/features/spotify/components/spotify-controls-bar.tsx:143 msgid "Capture current state" msgstr "Aktuellen Status erfassen" @@ -659,7 +704,7 @@ msgstr "Champions" msgid "Change Logo" msgstr "Logo ändern" -#: src/features/admin/components/award-badges.tsx:87 +#: src/features/admin/components/award-badges.tsx:81 msgid "Choose a player" msgstr "Wähle einen Spieler" @@ -671,6 +716,18 @@ msgstr "Knete" msgid "Clear selected player" msgstr "Ausgewählten Spieler entfernen" +#: src/lib/telemetry/alerts.server.ts:103 +msgid "Client error spike" +msgstr "" + +#: src/features/admin/components/dashboard/errors-card.tsx:21 +msgid "Client errors" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:203 +msgid "Client errors per day" +msgstr "" + #: src/components/sheet/modal.tsx:35 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169 #: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36 @@ -717,7 +774,7 @@ msgstr "Bestätigen" msgid "Confirm {scoreText}" msgstr "{scoreText} bestätigen" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:175 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:173 msgid "Confirm & Create Teams" msgstr "Bestätigen & Teams erstellen" @@ -738,15 +795,15 @@ msgstr "Einrichtung bestätigen" msgid "Confirm Unenrollment" msgstr "Austragung bestätigen" -#: src/features/spotify/components/spotify-controls-bar.tsx:52 +#: src/features/spotify/components/spotify-controls-bar.tsx:51 msgid "Connect Spotify" msgstr "Spotify verbinden" -#: src/features/spotify/components/spotify-sheet.tsx:87 +#: src/features/spotify/components/spotify-sheet.tsx:86 msgid "Connect with Spotify" msgstr "Mit Spotify verbinden" -#: src/features/spotify/components/spotify-sheet.tsx:75 +#: src/features/spotify/components/spotify-sheet.tsx:74 msgid "Connect your Spotify account" msgstr "Verbinde dein Spotify-Konto" @@ -796,7 +853,8 @@ msgstr "Team erstellen" msgid "Create Tournament" msgstr "Turnier erstellen" -#: src/features/activities/components/activities-table.tsx:168 +#: src/features/activities/components/activities-table.tsx:198 +#: src/features/telemetry/components/client-events-table.tsx:149 msgid "Created" msgstr "Erstellt" @@ -825,6 +883,15 @@ msgstr "Becher erzielt" msgid "Custom Hex Code" msgstr "Benutzerdefinierter Hex-Code" +#: src/features/admin/components/dashboard/usage-card.tsx:41 +#: src/features/telemetry/components/usage-screen.tsx:159 +msgid "Daily active players" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:47 +msgid "Daily page views" +msgstr "" + #: src/features/settings/components/color-scheme-picker.tsx:39 msgid "Dark" msgstr "Dunkel" @@ -833,7 +900,7 @@ msgstr "Dunkel" msgid "Dark Academia" msgstr "Dark Academia" -#: src/features/activities/components/activities-table.tsx:356 +#: src/features/activities/components/activities-table.tsx:119 msgid "Date" msgstr "Datum" @@ -845,6 +912,10 @@ msgstr "Tiefsee" msgid "Default" msgstr "Standard" +#: src/lib/telemetry/alerts.server.ts:166 +msgid "Denied access attempt" +msgstr "" + #: src/features/tournaments/components/tournament-form.tsx:150 msgid "Description" msgstr "Beschreibung" @@ -853,11 +924,11 @@ msgstr "Beschreibung" msgid "deviceId is required for transfer action" msgstr "deviceId ist für die Übertragungsaktion erforderlich" -#: src/features/spotify/components/spotify-sheet.tsx:188 +#: src/features/spotify/components/spotify-sheet.tsx:187 msgid "Disconnect Spotify" msgstr "Spotify trennen" -#: src/components/ios-install-prompt.tsx:65 +#: src/components/ios-install-prompt.tsx:70 msgid "Dismiss" msgstr "Schließen" @@ -871,28 +942,25 @@ msgstr "Sieht das richtig aus?" msgid "Downstream matches were reset because the correction changed who advances." msgstr "Nachfolgende Matches wurden zurückgesetzt, da sich durch die Korrektur geändert hat, wer weiterkommt." -#: src/features/activities/components/activities-table.tsx:161 -#: src/features/activities/components/activities-table.tsx:372 +#: src/features/activities/components/activities-table.tsx:120 +#: src/features/activities/components/activities-table.tsx:190 msgid "Duration" msgstr "Dauer" +#: src/features/telemetry/components/usage-screen.tsx:233 +msgid "Duration p50 / p95" +msgstr "" + #: src/features/tournaments/components/tournament-stats.tsx:176 msgid "Earlier regional formats aren't supported in the app and order of matches or displayed winners may be unreliable." msgstr "Frühere regionale Formate werden in der App nicht unterstützt. Die Reihenfolge der Matches oder angezeigten Gewinner kann unzuverlässig sein." #. placeholder {0}: team.name #: src/features/teams/components/manage-teams.tsx:35 +#: src/features/tournaments/components/enrollment/team-section.tsx:96 msgid "Edit {0}" msgstr "{0} bearbeiten" -#: src/features/tournaments/components/manage-tournament.tsx:117 -msgid "Edit Enrolled Teams" -msgstr "Angemeldete Teams bearbeiten" - -#: src/features/tournaments/components/manage-tournament.tsx:63 -msgid "Edit Enrollments" -msgstr "Anmeldungen bearbeiten" - #: src/features/bracket/components/match-card.tsx:392 msgid "Edit Match" msgstr "Match bearbeiten" @@ -906,17 +974,18 @@ msgstr "Spielstand bearbeiten" msgid "Edit Prediction" msgstr "Tipp bearbeiten" -#: src/features/tournaments/components/manage-tournament.tsx:58 -#: src/features/tournaments/components/manage-tournament.tsx:109 +#: src/features/tournaments/components/manage-tournament.tsx:65 +#: src/features/tournaments/components/manage-tournament.tsx:92 msgid "Edit Rules" msgstr "Regeln bearbeiten" #: src/features/teams/components/manage-teams.tsx:35 +#: src/features/tournaments/components/enrollment/team-section.tsx:96 msgid "Edit Team" msgstr "Team bearbeiten" -#: src/features/tournaments/components/manage-tournament.tsx:53 -#: src/features/tournaments/components/manage-tournament.tsx:89 +#: src/features/tournaments/components/manage-tournament.tsx:60 +#: src/features/tournaments/components/manage-tournament.tsx:72 msgid "Edit Tournament" msgstr "Turnier bearbeiten" @@ -940,6 +1009,10 @@ msgstr "Enddatum (optional)" msgid "End Match" msgstr "Match beenden" +#: src/features/telemetry/components/usage-screen.tsx:156 +msgid "Engagement" +msgstr "" + #: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:26 msgid "Enroll" msgstr "Anmelden" @@ -968,12 +1041,13 @@ msgstr "Dein Team anmelden" msgid "Enrolled" msgstr "Angemeldet" -#: src/features/tournaments/components/edit-enrolled-players.tsx:132 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:155 #: src/features/tournaments/components/upcoming-tournament/enrolled-players-list-button.tsx:39 msgid "Enrolled Players" msgstr "Angemeldete Spieler" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:151 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28 +#: src/features/tournaments/components/enrollment/team-section.tsx:240 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145 #: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31 msgid "Enrolled Teams" @@ -983,16 +1057,22 @@ msgstr "Angemeldete Teams" msgid "Enrolling as a free agent adds you to a pool of players looking for teammates." msgstr "Als Free Agent kommst du in einen Pool von Spielern, die noch einen Teampartner suchen." +#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33 +#: src/features/admin/components/dashboard/tournament-card.tsx:61 #: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:68 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:69 msgid "Enrollment" msgstr "Anmeldung" +#: src/features/tournaments/components/manage-tournament.tsx:55 +msgid "Enrollment & Teams" +msgstr "" + #: src/features/tournaments/components/tournament-form.tsx:196 msgid "Enrollment Due" msgstr "Anmeldeschluss" -#: src/features/tournaments/components/upcoming-tournament/index.tsx:80 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:81 msgid "Enrollment has been closed for this tournament." msgstr "Die Anmeldung für dieses Turnier ist geschlossen." @@ -1013,14 +1093,39 @@ msgstr "Gib deinen Namen ein" msgid "Enter your phone number" msgstr "Gib deine Telefonnummer ein" -#: src/features/activities/components/activities-table.tsx:187 +#: src/features/telemetry/components/error-browser/error-group-row.tsx:29 +msgid "Error group reopened" +msgstr "" + +#: src/features/telemetry/components/error-browser/error-group-row.tsx:29 +msgid "Error group resolved" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:207 msgid "Error Message" msgstr "Fehlermeldung" -#: src/components/DefaultCatchBoundary.tsx:96 +#: src/components/DefaultCatchBoundary.tsx:98 msgid "Error: {errorMessage}" msgstr "Fehler: {errorMessage}" +#: src/app/routes/_authed/admin/telemetry.tsx:51 +#: src/features/telemetry/components/usage-screen.tsx:200 +msgid "Errors" +msgstr "" + +#: src/features/telemetry/components/client-events-table.tsx:113 +msgid "Event Details" +msgstr "" + +#: src/features/telemetry/components/client-events-table.tsx:70 +msgid "Event name" +msgstr "" + +#: src/app/routes/_authed/admin/telemetry.tsx:48 +msgid "Events" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:368 msgid "Expand standings" msgstr "Tabelle erweitern" @@ -1029,16 +1134,12 @@ msgstr "Tabelle erweitern" msgid "eyes" msgstr "Augen" -#: src/features/activities/components/activities-table.tsx:145 +#: src/features/activities/components/activities-table.tsx:181 msgid "Failed" msgstr "Fehlgeschlagen" -#: src/features/admin/components/award-badges.tsx:41 -msgid "Failed to award badge" -msgstr "Abzeichen konnte nicht vergeben werden" - #: src/app/routes/api/spotify/capture.ts:54 -#: src/contexts/spotify-context.tsx:427 +#: src/contexts/spotify-context.tsx:426 msgid "Failed to capture playback state" msgstr "Wiedergabestatus konnte nicht erfasst werden" @@ -1054,7 +1155,7 @@ msgstr "Team konnte nicht erstellt werden" msgid "Failed to create tournament" msgstr "Turnier konnte nicht erstellt werden" -#: src/contexts/spotify-context.tsx:335 +#: src/contexts/spotify-context.tsx:334 msgid "Failed to get devices" msgstr "Geräte konnten nicht abgerufen werden" @@ -1068,19 +1169,19 @@ msgid "Failed to load team" msgstr "Team konnte nicht geladen werden" #: src/app/routes/api/spotify/resume.ts:54 -#: src/contexts/spotify-context.tsx:447 +#: src/contexts/spotify-context.tsx:446 msgid "Failed to resume playback state" msgstr "Wiedergabestatus konnte nicht fortgesetzt werden" -#: src/contexts/spotify-context.tsx:360 +#: src/contexts/spotify-context.tsx:359 msgid "Failed to set active device" msgstr "Aktives Gerät konnte nicht festgelegt werden" -#: src/contexts/spotify-context.tsx:314 +#: src/contexts/spotify-context.tsx:313 msgid "Failed to set volume" msgstr "Lautstärke konnte nicht festgelegt werden" -#: src/features/admin/components/admin-page.tsx:42 +#: src/features/admin/components/dashboard/tools-list.tsx:41 msgid "Failed to start badge recalculation" msgstr "Abzeichen-Neuberechnung konnte nicht gestartet werden" @@ -1092,19 +1193,19 @@ msgstr "Team konnte nicht aktualisiert werden" msgid "Failed to update tournament" msgstr "Turnier konnte nicht aktualisiert werden" -#: src/app/routes/api/teams/upload-logo.ts:140 -#: src/app/routes/api/tournaments/upload-logo.ts:138 +#: src/app/routes/api/teams/upload-logo.ts:141 +#: src/app/routes/api/tournaments/upload-logo.ts:139 #: src/features/teams/components/team-form/index.tsx:148 #: src/features/tournaments/components/tournament-form.tsx:88 msgid "Failed to upload logo" msgstr "Logo konnte nicht hochgeladen werden" -#: src/features/activities/components/activities-table.tsx:330 +#: src/features/activities/components/activities-table.tsx:94 msgid "Failure" msgstr "Fehler" -#: src/app/routes/api/teams/upload-logo.ts:79 -#: src/app/routes/api/tournaments/upload-logo.ts:80 +#: src/app/routes/api/teams/upload-logo.ts:80 +#: src/app/routes/api/tournaments/upload-logo.ts:81 msgid "File too large. Maximum size is 10MB." msgstr "Datei zu groß. Maximale Größe ist 10 MB." @@ -1112,7 +1213,7 @@ msgstr "Datei zu groß. Maximale Größe ist 10 MB." msgid "Final" msgstr "Finale" -#: src/features/tournaments/components/started-tournament/index.tsx:114 +#: src/features/tournaments/components/started-tournament/index.tsx:115 msgid "Final Results" msgstr "Endergebnisse" @@ -1150,11 +1251,19 @@ msgstr "Free-Agent-Anmeldung" msgid "Free Agents" msgstr "Free Agents" -#: src/features/activities/components/activities-table.tsx:124 +#: src/features/telemetry/components/usage-screen.tsx:226 +msgid "Function" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:165 msgid "Function Name" msgstr "Funktionsname" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:148 +#: src/app/routes/_authed/admin/telemetry.tsx:45 +msgid "Functions" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:146 msgid "Generate Random Pairings" msgstr "Zufällige Paarungen generieren" @@ -1163,11 +1272,15 @@ msgstr "Zufällige Paarungen generieren" msgid "Go back" msgstr "Zurück" -#: src/components/DefaultCatchBoundary.tsx:67 -#: src/components/DefaultCatchBoundary.tsx:132 +#: src/components/DefaultCatchBoundary.tsx:69 +#: src/components/DefaultCatchBoundary.tsx:134 msgid "Go Back" msgstr "Zurück" +#: src/features/telemetry/components/usage-screen.tsx:54 +msgid "Good" +msgstr "" + #: src/themes/seventies/manifest.ts:6 msgid "Groovy" msgstr "Groovy" @@ -1229,13 +1342,13 @@ msgstr "Hast du schon mal mitgespielt?" msgid "Head to Head" msgstr "Direktvergleich" -#: src/components/DefaultCatchBoundary.tsx:103 +#: src/components/DefaultCatchBoundary.tsx:105 msgid "Hide details" msgstr "Details ausblenden" -#: src/components/DefaultCatchBoundary.tsx:74 -#: src/components/DefaultCatchBoundary.tsx:125 -#: src/features/core/hooks/use-links.ts:11 +#: src/components/DefaultCatchBoundary.tsx:76 +#: src/components/DefaultCatchBoundary.tsx:127 +#: src/features/core/hooks/use-links.ts:12 msgid "Home" msgstr "Start" @@ -1263,7 +1376,7 @@ msgstr "So funktioniert die Tipp-Wertung" #. placeholder {0}: response.status #. placeholder {1}: response.statusText -#: src/contexts/spotify-context.tsx:65 +#: src/contexts/spotify-context.tsx:64 msgid "HTTP {0}: {1}" msgstr "HTTP {0}: {1}" @@ -1275,6 +1388,10 @@ msgstr "Wenn du zum ersten Mal dabei bist, wähle <0>Neuer Spieler, andernfa msgid "Important: Enrolling as a free agent does not guarantee a tournament spot. To secure a spot, one team member must register through the app and select a walkout song." msgstr "Wichtig: Die Anmeldung als Free Agent garantiert keinen Turnierplatz. Um dir einen Platz zu sichern, muss sich ein Teammitglied über die App registrieren und einen Walkout-Song auswählen." +#: src/features/telemetry/components/error-browser/error-browser.tsx:56 +msgid "Include resolved" +msgstr "" + #: src/features/login/components/code-prompt.tsx:43 msgid "Incorrect code" msgstr "Falscher Code" @@ -1283,8 +1400,8 @@ msgstr "Falscher Code" msgid "Invalid action" msgstr "Ungültige Aktion" -#: src/app/routes/api/teams/upload-logo.ts:65 -#: src/app/routes/api/tournaments/upload-logo.ts:66 +#: src/app/routes/api/teams/upload-logo.ts:66 +#: src/app/routes/api/tournaments/upload-logo.ts:67 msgid "Invalid file type. Only JPEG, PNG and GIF are allowed." msgstr "Ungültiger Dateityp. Nur JPEG, PNG und GIF sind erlaubt." @@ -1292,8 +1409,8 @@ msgstr "Ungültiger Dateityp. Nur JPEG, PNG und GIF sind erlaubt." msgid "Invalid hex color format" msgstr "Ungültiges Hex-Farbformat" -#: src/app/routes/api/teams/upload-logo.ts:33 -#: src/app/routes/api/tournaments/upload-logo.ts:34 +#: src/app/routes/api/teams/upload-logo.ts:34 +#: src/app/routes/api/tournaments/upload-logo.ts:35 msgid "Invalid input" msgstr "Ungültige Eingabe" @@ -1302,10 +1419,11 @@ msgid "Invalid request" msgstr "Ungültige Anfrage" #: src/features/players/components/players-activity-table.tsx:41 +#: src/features/telemetry/components/shared/relative-time.tsx:14 msgid "Just now" msgstr "Gerade eben" -#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:166 +#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:107 msgid "Knockout Bracket" msgstr "K.-o.-Runde" @@ -1347,7 +1465,7 @@ msgid "Last name must be 3-20 characters long and contain only letters" msgstr "Der Nachname muss 3-20 Zeichen lang sein und darf nur Buchstaben enthalten" #. placeholder {0}: migrationStatus.result.totalBadgesEarned -#: src/features/admin/components/admin-page.tsx:74 +#: src/features/admin/components/dashboard/tools-list.tsx:73 msgid "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}" msgstr "Letzte Neuberechnung: {0, plural, one {# Abzeichen verdient} other {# Abzeichen verdient}}" @@ -1359,7 +1477,7 @@ msgstr "Hell" msgid "lip" msgstr "Lippen" -#: src/features/tournaments/components/started-tournament/index.tsx:121 +#: src/features/tournaments/components/started-tournament/index.tsx:122 msgid "Live Matches" msgstr "Live-Matches" @@ -1381,8 +1499,8 @@ msgstr "Ort ist erforderlich" msgid "Logo" msgstr "Logo" -#: src/app/routes/api/teams/upload-logo.ts:46 -#: src/app/routes/api/tournaments/upload-logo.ts:47 +#: src/app/routes/api/teams/upload-logo.ts:47 +#: src/app/routes/api/tournaments/upload-logo.ts:48 msgid "Logo file is required" msgstr "Logo-Datei ist erforderlich" @@ -1420,26 +1538,24 @@ msgstr "Tipp abgeben" msgid "Make Your Prediction" msgstr "Gib deinen Tipp ab" +#: src/features/admin/components/dashboard/tournament-card.tsx:68 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:89 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:143 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:144 msgid "Manage" msgstr "Verwalten" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:28 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:29 #: src/app/routes/_authed/admin/tournaments/$id/index.tsx:23 msgid "Manage {name}" msgstr "{name} verwalten" -#: src/features/tournaments/components/manage-tournament.tsx:117 -msgid "Manage Enrollments" -msgstr "Anmeldungen verwalten" - -#: src/features/tournaments/components/manage-tournament.tsx:76 +#: src/features/tournaments/components/enrollment/team-section.tsx:234 msgid "Manage Team Songs/Logos" msgstr "Team-Songs/Logos verwalten" #: src/app/routes/_authed/admin/tournaments/index.tsx:17 -#: src/features/admin/components/admin-page.tsx:50 +#: src/features/admin/components/dashboard/tools-list.tsx:49 +#: src/features/admin/components/dashboard/tournament-card.tsx:25 msgid "Manage Tournaments" msgstr "Turniere verwalten" @@ -1450,6 +1566,10 @@ msgstr "Turniere verwalten" msgid "margin" msgstr "Differenz" +#: src/features/telemetry/components/error-browser/error-group-row.tsx:98 +msgid "Mark resolved" +msgstr "" + #. placeholder {0}: match.order #. placeholder {1}: match.round + 1 #: src/features/bracket/components/match-dock.tsx:126 @@ -1514,11 +1634,15 @@ msgstr "Matchup" msgid "Matchup details" msgstr "Matchup-Details" +#: src/features/telemetry/components/usage-screen.tsx:169 +msgid "MAU" +msgstr "" + #: src/features/players/components/league-head-to-head.tsx:120 msgid "Me" msgstr "Ich" -#: src/features/admin/components/admin-page.tsx:60 +#: src/features/admin/components/dashboard/tools-list.tsx:59 msgid "Migrate Badge Progress" msgstr "Abzeichen-Fortschritt migrieren" @@ -1532,6 +1656,7 @@ msgid "MMR Calculation:" msgstr "MMR-Berechnung:" #: src/features/teams/components/team-form/index.tsx:200 +#: src/features/telemetry/components/client-events-table.tsx:119 #: src/features/tournaments/components/tournament-form.tsx:137 msgid "Name" msgstr "Name" @@ -1545,7 +1670,8 @@ msgstr "Name ist erforderlich" msgid "Name updated successfully!" msgstr "Name erfolgreich aktualisiert!" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:132 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:130 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:35 msgid "Need at least 2 players to create teams" msgstr "Mindestens 2 Spieler nötig, um Teams zu erstellen" @@ -1554,6 +1680,10 @@ msgstr "Mindestens 2 Spieler nötig, um Teams zu erstellen" msgid "Need at least 4 teams to create a group stage format. Current team count: {0}" msgstr "Mindestens 4 Teams nötig, um eine Gruppenphase zu erstellen. Aktuelle Teamanzahl: {0}" +#: src/features/telemetry/components/usage-screen.tsx:56 +msgid "Needs improvement" +msgstr "" + #: src/features/reactions/components/emoji-picker.tsx:23 msgid "nerd" msgstr "Nerd" @@ -1567,6 +1697,7 @@ msgid "Neumorphic" msgstr "Neumorph" #: src/features/players/components/players-activity-table.tsx:27 +#: src/features/telemetry/components/shared/relative-time.tsx:6 msgid "Never" msgstr "Nie" @@ -1574,6 +1705,10 @@ msgstr "Nie" msgid "Never active" msgstr "Nie aktiv" +#: src/lib/telemetry/alerts.server.ts:124 +msgid "New client error" +msgstr "" + #: src/features/login/components/player-prompt/new-player-button.tsx:18 msgid "New Player" msgstr "Neuer Spieler" @@ -1582,7 +1717,7 @@ msgstr "Neuer Spieler" msgid "Next match" msgstr "Nächstes Match" -#: src/features/spotify/components/spotify-controls-bar.tsx:130 +#: src/features/spotify/components/spotify-controls-bar.tsx:129 msgid "Next track" msgstr "Nächster Titel" @@ -1597,11 +1732,11 @@ msgstr "Kein Zugriffstoken gefunden" msgid "No active device found. Please select a device first." msgstr "Kein aktives Gerät gefunden. Bitte wähle zuerst ein Gerät aus." -#: src/features/spotify/components/spotify-controls-bar.tsx:204 +#: src/features/spotify/components/spotify-controls-bar.tsx:203 msgid "No active device. Please select a device in settings." msgstr "Kein aktives Gerät. Bitte wähle ein Gerät in den Einstellungen aus." -#: src/features/tournaments/components/started-tournament/index.tsx:142 +#: src/features/tournaments/components/started-tournament/index.tsx:143 msgid "No active matches" msgstr "Keine aktiven Matches" @@ -1609,18 +1744,26 @@ msgstr "Keine aktiven Matches" msgid "No active playback to capture" msgstr "Keine aktive Wiedergabe zum Erfassen" -#: src/features/activities/components/activities-table.tsx:234 +#: src/features/activities/components/activities-table.tsx:132 msgid "No Activities Found" msgstr "Keine Aktivitäten gefunden" +#: src/features/admin/components/dashboard/activity-feed.tsx:78 +msgid "No activity yet" +msgstr "" + #: src/features/badges/components/badge-stats-table.tsx:45 msgid "No Badges Available" msgstr "Keine Abzeichen verfügbar" -#: src/features/spotify/components/spotify-sheet.tsx:155 +#: src/features/spotify/components/spotify-sheet.tsx:154 msgid "No devices found." msgstr "Keine Geräte gefunden." +#: src/features/telemetry/components/client-events-table.tsx:94 +msgid "No Events Found" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:294 msgid "No groups have been created yet" msgstr "Es wurden noch keine Gruppen erstellt" @@ -1637,7 +1780,7 @@ msgstr "Keine Spieleraktivität gefunden" msgid "No players available" msgstr "Keine Spieler verfügbar" -#: src/features/tournaments/components/edit-enrolled-players.tsx:145 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:168 #: src/features/tournaments/components/upcoming-tournament/enrolled-players-list-button.tsx:42 msgid "No players enrolled yet" msgstr "Noch keine Spieler angemeldet" @@ -1668,7 +1811,7 @@ msgstr "Kein Snapshot angegeben" msgid "No song selected" msgstr "Kein Song ausgewählt" -#: src/features/spotify/components/spotify-controls-bar.tsx:157 +#: src/features/spotify/components/spotify-controls-bar.tsx:156 msgid "No state captured" msgstr "Kein Status erfasst" @@ -1689,7 +1832,7 @@ msgstr "Keine Teams zugewiesen" msgid "No Teams Enrolled" msgstr "Keine Teams angemeldet" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:164 +#: src/features/tournaments/components/enrollment/team-section.tsx:253 msgid "No teams enrolled yet" msgstr "Noch keine Teams angemeldet" @@ -1701,10 +1844,19 @@ msgstr "Keine Teams gefunden, die zu \"{search}\" passen" msgid "No tournaments found" msgstr "Keine Turniere gefunden" +#: src/features/admin/components/dashboard/tournament-card.tsx:18 +msgid "No tournaments yet" +msgstr "" + #: src/features/tournaments/components/tournament-card-list.tsx:40 msgid "No Tournaments Yet" msgstr "Noch keine Turniere" +#: src/features/admin/components/dashboard/errors-card.tsx:53 +#: src/features/telemetry/components/error-browser/error-browser.tsx:27 +msgid "No unresolved errors" +msgstr "" + #: src/features/predictions/components/prediction-leaderboard.tsx:136 msgid "Nobody made a prediction for this tournament." msgstr "Niemand hat einen Tipp für dieses Turnier abgegeben." @@ -1717,6 +1869,10 @@ msgstr "Stimmt nicht" msgid "Not right — enter our score" msgstr "Stimmt nicht — unser Ergebnis eingeben" +#: src/features/telemetry/components/error-browser/error-browser.tsx:28 +msgid "Nothing has broken in the last 30 days. Keep it up." +msgstr "" + #: src/features/settings/components/notifications-section.tsx:18 #: src/features/settings/components/notifications-section.tsx:59 msgid "Notifications" @@ -1738,7 +1894,7 @@ msgstr "Benachrichtigungen auf diesem Gerät deaktiviert" msgid "Notifications enabled on this device" msgstr "Benachrichtigungen auf diesem Gerät aktiviert" -#: src/features/spotify/components/spotify-sheet.tsx:96 +#: src/features/spotify/components/spotify-sheet.tsx:95 msgid "Now Playing" msgstr "Läuft gerade" @@ -1758,7 +1914,15 @@ msgstr "Sobald du angemeldet bist, kannst du andere Free Agents und ihre Telefon msgid "One time code" msgstr "Einmalcode" -#: src/features/admin/components/admin-page.tsx:95 +#: src/features/admin/components/dashboard/now-strip.tsx:44 +msgid "Online now" +msgstr "" + +#: src/features/admin/components/dashboard/now-strip.tsx:46 +msgid "Open errors" +msgstr "" + +#: src/features/admin/components/dashboard/tools-list.tsx:89 msgid "Open Pocketbase" msgstr "Pocketbase öffnen" @@ -1767,7 +1931,7 @@ msgid "Opponent" msgstr "Gegner" #: src/features/tournaments/components/upcoming-tournament/enroll-team/team-selection-view.tsx:60 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:92 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:93 msgid "or" msgstr "oder" @@ -1800,7 +1964,23 @@ msgstr "Übersicht" msgid "owo" msgstr "owo" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:157 +#: src/features/telemetry/components/usage-screen.tsx:97 +msgid "p50" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:113 +msgid "p95" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:45 +msgid "Page views" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:177 +msgid "Page views by route" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:155 msgid "Partner Assignments" msgstr "Partner-Zuweisungen" @@ -1808,7 +1988,11 @@ msgstr "Partner-Zuweisungen" msgid "Partners will be randomly assigned when enrollment closes" msgstr "Partner werden nach Anmeldeschluss zufällig zugewiesen" -#: src/features/spotify/components/spotify-controls-bar.tsx:117 +#: src/features/telemetry/components/client-events-table.tsx:122 +msgid "Path" +msgstr "" + +#: src/features/spotify/components/spotify-controls-bar.tsx:116 msgid "Pause" msgstr "Pause" @@ -1839,7 +2023,7 @@ msgstr "Wähle zuerst die früheren Spiele — diese Teams stehen noch nicht fes msgid "PICKS" msgstr "TIPPS" -#: src/features/spotify/components/spotify-controls-bar.tsx:117 +#: src/features/spotify/components/spotify-controls-bar.tsx:116 msgid "Play" msgstr "Abspielen" @@ -1847,23 +2031,22 @@ msgstr "Abspielen" msgid "Playback control failed" msgstr "Wiedergabesteuerung fehlgeschlagen" -#: src/features/activities/components/activities-table.tsx:154 -#: src/features/admin/components/award-badges.tsx:35 +#: src/features/activities/components/activities-table.tsx:98 +#: src/features/activities/components/activities-table.tsx:188 +#: src/features/admin/components/award-badges.tsx:31 +#: src/features/telemetry/components/client-events-table.tsx:73 +#: src/features/telemetry/components/client-events-table.tsx:120 msgid "Player" msgstr "Spieler" -#: src/features/teams/components/team-form/players-picker.tsx:45 +#: src/features/teams/components/team-form/players-picker.tsx:46 msgid "Player 1" msgstr "Spieler 1" -#: src/features/teams/components/team-form/players-picker.tsx:53 +#: src/features/teams/components/team-form/players-picker.tsx:54 msgid "Player 2" msgstr "Spieler 2" -#: src/app/routes/_authed/admin/activities.tsx:59 -msgid "Player Activity" -msgstr "Spieleraktivität" - #: src/features/login/components/player-prompt/index.tsx:46 msgid "Player already exists" msgstr "Spieler existiert bereits" @@ -1880,6 +2063,7 @@ msgstr "Spieler erfolgreich entfernt" msgid "Player Stats" msgstr "Spielerstatistiken" +#: src/app/routes/_authed/admin/telemetry.tsx:54 #: src/features/teams/components/team-profile/index.tsx:29 msgid "Players" msgstr "Spieler" @@ -1889,10 +2073,14 @@ msgid "Players are required" msgstr "Spieler sind erforderlich" #. placeholder {0}: activeDevice.name -#: src/features/spotify/components/spotify-controls-bar.tsx:175 +#: src/features/spotify/components/spotify-controls-bar.tsx:174 msgid "Playing on {0}" msgstr "Wird auf {0} abgespielt" +#: src/features/telemetry/components/usage-screen.tsx:58 +msgid "Poor" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:314 msgid "Populate Knockout Bracket" msgstr "K.-o.-Runde befüllen" @@ -1919,11 +2107,11 @@ msgstr "Tipps sind offen" msgid "Previous match" msgstr "Vorheriges Spiel" -#: src/features/spotify/components/spotify-controls-bar.tsx:105 +#: src/features/spotify/components/spotify-controls-bar.tsx:104 msgid "Previous track" msgstr "Vorheriger Titel" -#: src/features/core/hooks/use-links.ts:27 +#: src/features/core/hooks/use-links.ts:28 msgid "Profile" msgstr "Profil" @@ -1931,6 +2119,10 @@ msgstr "Profil" msgid "Progress " msgstr "Fortschritt " +#: src/features/telemetry/components/client-events-table.tsx:136 +msgid "Props" +msgstr "" + #: src/app/routes/_authed/tournaments/$id.predictions_.$playerId.tsx:106 #: src/features/predictions/components/prediction-leaderboard.tsx:261 msgid "PTS" @@ -1944,7 +2136,7 @@ msgstr "Q" msgid "Quest Log" msgstr "Questlog" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:167 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:165 msgid "Re-roll" msgstr "Neu würfeln" @@ -1954,10 +2146,14 @@ msgstr "Reaktionen" #. placeholder {0}: migrationStatus.playersProcessed #. placeholder {1}: migrationStatus.totalPlayers -#: src/features/admin/components/admin-page.tsx:67 +#: src/features/admin/components/dashboard/tools-list.tsx:66 msgid "Recalculating badges in the background ({0}/{1})" msgstr "Abzeichen werden im Hintergrund neu berechnet ({0}/{1})" +#: src/features/admin/components/dashboard/activity-feed.tsx:34 +msgid "Recent activity" +msgstr "" + #: src/features/tournaments/components/started-tournament/sections/recent-results.tsx:34 msgid "Recently finished" msgstr "Kürzlich beendet" @@ -1972,6 +2168,10 @@ msgstr "Regional" msgid "Regional Tournament" msgstr "Regionalturnier" +#: src/features/telemetry/components/error-browser/error-group-row.tsx:98 +msgid "Reopen" +msgstr "" + #: src/features/bracket/components/match-report.tsx:127 msgid "Report cleared" msgstr "Meldung gelöscht" @@ -1981,11 +2181,15 @@ msgstr "Meldung gelöscht" msgid "Report Score" msgstr "Ergebnis melden" -#: src/contexts/spotify-context.tsx:60 +#: src/contexts/spotify-context.tsx:59 msgid "Request failed" msgstr "Anfrage fehlgeschlagen" -#: src/features/spotify/components/spotify-controls-bar.tsx:157 +#: src/features/telemetry/components/error-browser/error-group-row.tsx:63 +msgid "Resolved" +msgstr "" + +#: src/features/spotify/components/spotify-controls-bar.tsx:156 msgid "Restore captured state" msgstr "Erfassten Status wiederherstellen" @@ -1993,7 +2197,7 @@ msgstr "Erfassten Status wiederherstellen" msgid "Results" msgstr "Ergebnisse" -#: src/components/DefaultCatchBoundary.tsx:117 +#: src/components/DefaultCatchBoundary.tsx:119 msgid "Retry" msgstr "Erneut versuchen" @@ -2010,16 +2214,21 @@ msgstr "rofl" msgid "Round {0}" msgstr "Runde {0}" +#: src/features/telemetry/components/client-events-table.tsx:125 +msgid "Route" +msgstr "" + #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:142 #: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:23 msgid "Rules" msgstr "Regeln" -#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:38 +#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:36 msgid "Run {name}" msgstr "{name} ausführen" -#: src/features/tournaments/components/manage-tournament.tsx:82 +#: src/features/admin/components/dashboard/tournament-card.tsx:53 +#: src/features/tournaments/components/manage-tournament.tsx:49 msgid "Run Tournament" msgstr "Turnier starten" @@ -2053,7 +2262,7 @@ msgstr "Schrei" msgid "Search for a Song" msgstr "Nach einem Song suchen" -#: src/features/tournaments/components/edit-enrolled-players.tsx:120 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:133 msgid "Search for players to enroll..." msgstr "Spieler zum Anmelden suchen..." @@ -2061,7 +2270,7 @@ msgstr "Spieler zum Anmelden suchen..." msgid "Search for songs..." msgstr "Nach Songs suchen..." -#: src/features/tournaments/components/edit-enrolled-teams.tsx:139 +#: src/features/tournaments/components/enrollment/team-section.tsx:216 msgid "Search for teams to enroll..." msgstr "Teams zum Anmelden suchen..." @@ -2095,11 +2304,11 @@ msgstr "Segment darf höchstens 15 Sekunden lang sein" msgid "Segment must be within song duration" msgstr "Segment muss innerhalb der Songdauer liegen" -#: src/features/admin/components/award-badges.tsx:71 +#: src/features/admin/components/award-badges.tsx:65 msgid "Select a badge" msgstr "Abzeichen auswählen" -#: src/features/spotify/components/spotify-sheet.tsx:145 +#: src/features/spotify/components/spotify-sheet.tsx:144 msgid "Select a device..." msgstr "Gerät auswählen..." @@ -2121,7 +2330,7 @@ msgstr "Uhrzeit auswählen" msgid "Select Color" msgstr "Farbe auswählen" -#: src/features/spotify/components/spotify-sheet.tsx:127 +#: src/features/spotify/components/spotify-sheet.tsx:126 msgid "Select Device" msgstr "Gerät auswählen" @@ -2141,7 +2350,7 @@ msgstr "Anmeldeschluss auswählen" msgid "Select one of your existing teams" msgstr "Wähle eines deiner bestehenden Teams" -#: src/features/admin/components/award-badges.tsx:86 +#: src/features/admin/components/award-badges.tsx:80 msgid "Select Player" msgstr "Spieler auswählen" @@ -2174,20 +2383,32 @@ msgstr "Testbenachrichtigung senden" msgid "Series is tied" msgstr "Serie steht unentschieden" -#: src/app/routes/_authed/admin/activities.tsx:58 -msgid "Server Functions" -msgstr "Serverfunktionen" +#: src/lib/telemetry/alerts.server.ts:153 +msgid "Server function failing" +msgstr "" -#: src/features/activities/components/activities-table.tsx:309 +#: src/features/telemetry/components/usage-screen.tsx:186 +msgid "Server functions" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:82 msgid "serverFn name" msgstr "serverFn-Name" +#: src/features/telemetry/components/client-events-table.tsx:128 +msgid "Session" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:172 +msgid "Sessions" +msgstr "" + #: src/app/routes/_authed/settings.tsx:16 #: src/features/core/components/settings-button.tsx:46 msgid "Settings" msgstr "Einstellungen" -#: src/components/DefaultCatchBoundary.tsx:103 +#: src/components/DefaultCatchBoundary.tsx:105 msgid "Show details" msgstr "Details anzeigen" @@ -2213,7 +2434,11 @@ msgstr "Skizzenbuch" msgid "Skeuomorphic" msgstr "Skeuomorph" -#: src/components/DefaultCatchBoundary.tsx:89 +#: src/features/activities/components/activities-table.tsx:113 +msgid "Slow >1s (this page)" +msgstr "" + +#: src/components/DefaultCatchBoundary.tsx:91 msgid "Something went wrong" msgstr "Etwas ist schiefgelaufen" @@ -2241,8 +2466,8 @@ msgstr "Song-Segment darf höchstens 15 Sekunden lang sein" msgid "Song start time is required" msgstr "Startzeit des Songs ist erforderlich" -#: src/features/activities/components/activities-table.tsx:345 #: src/features/players/components/player-stats-table.tsx:340 +#: src/features/telemetry/components/shared/search-filter-bar.tsx:102 msgid "Sort:" msgstr "Sortieren:" @@ -2250,7 +2475,7 @@ msgstr "Sortieren:" msgid "Sorted by win percentage" msgstr "Sortiert nach Gewinnquote" -#: src/features/spotify/components/spotify-sheet.tsx:68 +#: src/features/spotify/components/spotify-sheet.tsx:67 msgid "Spotify Controls" msgstr "Spotify-Steuerung" @@ -2262,7 +2487,7 @@ msgstr "Für die Wiedergabesteuerung ist Spotify Premium erforderlich." msgid "Spotify premium required" msgstr "Spotify Premium erforderlich" -#: src/features/spotify/components/spotify-controls-bar.tsx:180 +#: src/features/spotify/components/spotify-controls-bar.tsx:179 msgid "Spotify settings" msgstr "Spotify-Einstellungen" @@ -2292,6 +2517,10 @@ msgstr "Startzeit ist erforderlich" msgid "Start typing to search..." msgstr "Tippen, um zu suchen …" +#: src/features/admin/components/dashboard/tournament-card.tsx:43 +msgid "Starts in" +msgstr "" + #: src/features/players/components/player-stats-table.tsx:372 msgid "Stat abbreviations and MMR info" msgstr "Stat-Abkürzungen und MMR-Infos" @@ -2300,7 +2529,7 @@ msgstr "Stat-Abkürzungen und MMR-Infos" msgid "Stat Abbreviations:" msgstr "Stat-Abkürzungen:" -#: src/features/core/hooks/use-links.ts:16 +#: src/features/core/hooks/use-links.ts:17 #: src/features/players/components/profile/index.tsx:26 #: src/features/teams/components/team-profile/index.tsx:34 msgid "Statistics" @@ -2315,8 +2544,8 @@ msgstr "Stats" msgid "Stats Comparison" msgstr "Stats-Vergleich" -#: src/features/activities/components/activities-table.tsx:131 -#: src/features/activities/components/activities-table.tsx:321 +#: src/features/activities/components/activities-table.tsx:85 +#: src/features/activities/components/activities-table.tsx:167 msgid "Status" msgstr "Status" @@ -2328,8 +2557,8 @@ msgstr "Status" msgid "Submit" msgstr "Absenden" -#: src/features/activities/components/activities-table.tsx:138 -#: src/features/activities/components/activities-table.tsx:329 +#: src/features/activities/components/activities-table.tsx:93 +#: src/features/activities/components/activities-table.tsx:174 msgid "Success" msgstr "Erfolg" @@ -2337,8 +2566,7 @@ msgstr "Erfolg" msgid "Successfully logged in. Welcome back!" msgstr "Erfolgreich angemeldet. Willkommen zurück!" -#: src/features/activities/components/activities-table.tsx:42 -#: src/features/activities/components/activities-table.tsx:112 +#: src/features/activities/components/activities-table.tsx:53 #: src/features/settings/components/color-scheme-picker.tsx:47 msgid "System" msgstr "System" @@ -2351,11 +2579,11 @@ msgstr "T" msgid "Tap an opponent below to compare" msgstr "Tippe unten auf einen Gegner zum Vergleichen" -#: src/components/ios-install-prompt.tsx:43 +#: src/components/ios-install-prompt.tsx:48 msgid "Tap Menu (⋮) → Add to Home screen" msgstr "Tippe auf Menü (⋮) → Zum Home-Bildschirm hinzufügen" -#: src/components/ios-install-prompt.tsx:42 +#: src/components/ios-install-prompt.tsx:47 msgid "Tap Share → Add to Home Screen" msgstr "Tippe auf Teilen → Zum Home-Bildschirm hinzufügen" @@ -2385,7 +2613,7 @@ msgstr "Team-Details" msgid "Team enrolled successfully!" msgstr "Team erfolgreich angemeldet!" -#: src/app/routes/api/teams/upload-logo.ts:92 +#: src/app/routes/api/teams/upload-logo.ts:93 #: src/features/teams/components/team-profile/index.tsx:21 msgid "Team not found" msgstr "Team nicht gefunden" @@ -2419,11 +2647,15 @@ msgstr "Teams" msgid "Teams created successfully!" msgstr "Teams erfolgreich erstellt!" +#: src/app/routes/_authed/admin/telemetry.tsx:20 +msgid "Telemetry" +msgstr "" + #: src/themes/terminal/manifest.ts:6 msgid "Terminal" msgstr "Terminal" -#: src/app/routes/api/push/test.ts:29 +#: src/app/routes/api/push/test.ts:30 msgid "Test notification — push is working on this device." msgstr "Test-Benachrichtigung — Push funktioniert auf diesem Gerät." @@ -2498,6 +2730,10 @@ msgstr "Die besten {0, plural, one {# Team} other {# Teams}} aus jeder Gruppe ko msgid "Top {n} advance" msgstr "Top {n} kommen weiter" +#: src/features/telemetry/components/usage-screen.tsx:191 +msgid "Top functions by call count" +msgstr "" + #: src/features/matches/components/team-head-to-head-sheet.tsx:158 #: src/features/players/components/player-head-to-head-sheet.tsx:193 msgid "Total Cups" @@ -2517,7 +2753,7 @@ msgstr "Turnier erstellt, aber Logo-Upload fehlgeschlagen: {0}" msgid "Tournament created successfully!" msgstr "Turnier erfolgreich erstellt!" -#: src/app/routes/api/tournaments/upload-logo.ts:93 +#: src/app/routes/api/tournaments/upload-logo.ts:94 msgid "Tournament not found" msgstr "Turnier nicht gefunden" @@ -2536,7 +2772,7 @@ msgid "Tournament updated successfully!" msgstr "Turnier erfolgreich aktualisiert!" #: src/app/routes/_authed/tournaments/index.tsx:17 -#: src/features/core/hooks/use-links.ts:21 +#: src/features/core/hooks/use-links.ts:22 #: src/features/teams/components/team-profile/index.tsx:53 #: src/features/teams/components/team-profile/skeleton.tsx:80 msgid "Tournaments" @@ -2550,6 +2786,10 @@ msgstr "trackId ist für die playTrack-Aktion erforderlich" msgid "Try the new themes" msgstr "Probier die neuen Designs aus" +#: src/features/admin/components/dashboard/quiet-boundary.tsx:26 +msgid "Unavailable right now" +msgstr "" + #: src/features/tournaments/components/upcoming-tournament/unenroll-free-agent.tsx:26 #: src/features/tournaments/components/upcoming-tournament/unenroll-team.tsx:34 msgid "Unenroll" @@ -2563,12 +2803,12 @@ msgstr "Vom Turnier abmelden?" msgid "Unenroll Team" msgstr "Team abmelden" -#: src/components/DefaultCatchBoundary.tsx:39 +#: src/components/DefaultCatchBoundary.tsx:40 msgid "Unknown error" msgstr "Unbekannter Fehler" -#: src/app/routes/api/teams/upload-logo.ts:141 -#: src/app/routes/api/tournaments/upload-logo.ts:139 +#: src/app/routes/api/teams/upload-logo.ts:142 +#: src/app/routes/api/tournaments/upload-logo.ts:140 msgid "Unknown error occurred" msgstr "Unbekannter Fehler aufgetreten" @@ -2585,7 +2825,7 @@ msgstr "Unbekannter Spieler" msgid "Unnamed Player" msgstr "Unbenannter Spieler" -#: src/features/tournaments/components/started-tournament/index.tsx:128 +#: src/features/tournaments/components/started-tournament/index.tsx:129 msgid "Upcoming" msgstr "Bevorstehend" @@ -2607,10 +2847,23 @@ msgstr "Team aktualisieren" msgid "Update Tournament" msgstr "Turnier aktualisieren" -#: src/features/activities/components/activities-table.tsx:176 +#: src/app/routes/_authed/admin/telemetry.tsx:57 +msgid "Usage" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:34 +msgid "Usage, 7 days" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:202 +#: src/features/telemetry/components/client-events-table.tsx:146 msgid "User Agent" msgstr "User-Agent" +#: src/features/telemetry/components/client-events-table.tsx:131 +msgid "Value" +msgstr "" + #: src/features/bracket/components/match-card.tsx:201 #: src/features/bracket/components/match-card.tsx:226 msgid "versus" @@ -2645,6 +2898,10 @@ msgstr "Tipps ansehen" msgid "Viewport" msgstr "Viewport" +#: src/features/telemetry/components/usage-screen.tsx:211 +msgid "Vitals" +msgstr "" + #: src/app/routes/api/spotify/playback.ts:70 msgid "volumePercent must be a number" msgstr "volumePercent muss eine Zahl sein" @@ -2680,6 +2937,10 @@ msgstr "Walkout-Segment ({segmentDuration}s)" msgid "Walkout Song" msgstr "Walkout-Song" +#: src/features/telemetry/components/usage-screen.tsx:165 +msgid "WAU" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:407 msgid "WC" msgstr "WC" @@ -2731,7 +2992,7 @@ msgstr "Du und 1 weitere" msgid "You are not authorized to perform this action" msgstr "Du bist nicht berechtigt, diese Aktion durchzuführen" -#: src/components/DefaultCatchBoundary.tsx:60 +#: src/components/DefaultCatchBoundary.tsx:62 msgid "You don't have permission to access this page." msgstr "Du hast keine Berechtigung, auf diese Seite zuzugreifen." @@ -2755,7 +3016,7 @@ msgstr "Du bist der erste Free Agent!" msgid "You've been added as a free agent!" msgstr "Du wurdest als Free Agent hinzugefügt!" -#: src/components/DefaultCatchBoundary.tsx:46 +#: src/components/DefaultCatchBoundary.tsx:48 msgid "You've been logged out" msgstr "Du wurdest abgemeldet" diff --git a/src/locales/en/messages.po b/src/locales/en/messages.po index 0cdc7bf..59df585 100644 --- a/src/locales/en/messages.po +++ b/src/locales/en/messages.po @@ -18,7 +18,7 @@ msgid " (Losers)" msgstr " (Losers)" #. placeholder {0}: activeDevice.volume_percent -#: src/features/spotify/components/spotify-sheet.tsx:163 +#: src/features/spotify/components/spotify-sheet.tsx:162 msgid " (Volume: {0}%)" msgstr " (Volume: {0}%)" @@ -26,7 +26,7 @@ msgstr " (Volume: {0}%)" msgid "(713) 867-5309" msgstr "(713) 867-5309" -#: src/features/spotify/components/spotify-sheet.tsx:148 +#: src/features/spotify/components/spotify-sheet.tsx:147 msgid "(Active)" msgstr "(Active)" @@ -38,14 +38,14 @@ msgstr "{0, plural, one {# bracket in} other {# brackets in}}" #. placeholder {0}: enrolledPlayers.length #. placeholder {0}: players.length #: src/features/players/components/players-activity-table.tsx:100 -#: src/features/tournaments/components/edit-enrolled-players.tsx:135 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:158 msgid "{0, plural, one {# player} other {# players}}" msgstr "{0, plural, one {# player} other {# players}}" #. placeholder {0}: enrolledTeams.length #. placeholder {0}: group.teams.length #. placeholder {0}: orderedTeams.length -#: src/features/tournaments/components/edit-enrolled-teams.tsx:154 +#: src/features/tournaments/components/enrollment/team-section.tsx:243 #: src/features/tournaments/components/group-preview.tsx:27 #: src/features/tournaments/components/seed-tournament.tsx:116 #: src/features/tournaments/components/setup-group-stage.tsx:224 @@ -53,10 +53,15 @@ msgid "{0, plural, one {# team} other {# teams}}" msgstr "{0, plural, one {# team} other {# teams}}" #. placeholder {0}: result.totalItems -#: src/features/activities/components/activities-table.tsx:341 +#: src/features/activities/components/activities-table.tsx:125 msgid "{0, plural, one {# total activity} other {# total activities}}" msgstr "{0, plural, one {# total activity} other {# total activities}}" +#. placeholder {0}: result.totalItems +#: src/features/telemetry/components/client-events-table.tsx:87 +msgid "{0, plural, one {# total event} other {# total events}}" +msgstr "{0, plural, one {# total event} other {# total events}}" + #. placeholder {0}: selectedConfig.total_group_matches #: src/features/tournaments/components/setup-group-stage.tsx:249 msgid "{0, plural, one {# total group stage match} other {# total group stage matches}}" @@ -73,7 +78,9 @@ msgid "{0, plural, one {# wildcard} other {# wildcards}}" msgstr "{0, plural, one {# wildcard} other {# wildcards}}" #. placeholder {0}: freeAgents.length -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:126 +#. placeholder {0}: props.count +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:124 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:22 msgid "{0, plural, one {player enrolled} other {players enrolled}}" msgstr "{0, plural, one {player enrolled} other {players enrolled}}" @@ -88,6 +95,11 @@ msgstr "{0} at {1}" msgid "{0} Badge Holders" msgstr "{0} Badge Holders" +#. placeholder {0}: recentErrors.totalItems +#: src/lib/telemetry/alerts.server.ts:104 +msgid "{0} client errors in the last 15 minutes" +msgstr "{0} client errors in the last 15 minutes" + #. placeholder {0}: match.away?.name #. placeholder {0}: match.home?.name #: src/features/bracket/components/match-form.tsx:90 @@ -131,8 +143,9 @@ msgid "{0}d" msgstr "{0}d" #. placeholder {0}: activity.duration -#: src/features/activities/components/activities-table.tsx:83 -#: src/features/activities/components/activities-table.tsx:163 +#. placeholder {0}: selectedActivity.duration +#: src/features/activities/components/activities-table.tsx:148 +#: src/features/activities/components/activities-table.tsx:193 msgid "{0}ms" msgstr "{0}ms" @@ -145,15 +158,22 @@ msgstr "{count, plural, one {Players (#)} other {Players (#)}}" msgid "{count, plural, one {Teams (#)} other {Teams (#)}}" msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}" +#: src/lib/telemetry/alerts.server.ts:167 +msgid "{deniedCount} denied admin access attempts in the last 15 minutes" +msgstr "{deniedCount} denied admin access attempts in the last 15 minutes" + #: src/features/players/components/players-activity-table.tsx:44 +#: src/features/telemetry/components/shared/relative-time.tsx:17 msgid "{diffDays}d ago" msgstr "{diffDays}d ago" #: src/features/players/components/players-activity-table.tsx:43 +#: src/features/telemetry/components/shared/relative-time.tsx:16 msgid "{diffHours}h ago" msgstr "{diffHours}h ago" #: src/features/players/components/players-activity-table.tsx:42 +#: src/features/telemetry/components/shared/relative-time.tsx:15 msgid "{diffMins}m ago" msgstr "{diffMins}m ago" @@ -177,7 +197,11 @@ msgstr "{n, plural, one {# match guaranteed} other {# matches guaranteed}}" msgid "{n, plural, one {# wildcard} other {# wildcards}}" msgstr "{n, plural, one {# wildcard} other {# wildcards}}" -#: src/app/routes/_authed/admin/tournaments/$id/teams.tsx:23 +#: src/lib/telemetry/alerts.server.ts:154 +msgid "{name} failed {count} times in the last 15 minutes" +msgstr "{name} failed {count} times in the last 15 minutes" + +#: src/app/routes/_authed/admin/tournaments/$id/teams.tsx:24 msgid "{name} Teams" msgstr "{name} Teams" @@ -331,6 +355,10 @@ msgstr "2. Earlier submission" msgid "2nd place" msgstr "2nd place" +#: src/features/telemetry/components/usage-screen.tsx:256 +msgid "30d" +msgstr "30d" + #: src/features/teams/components/team-form/duration-picker.tsx:22 msgid "30s" msgstr "30s" @@ -343,6 +371,10 @@ msgstr "3rd place" msgid "5s" msgstr "5s" +#: src/features/telemetry/components/usage-screen.tsx:255 +msgid "7d" +msgstr "7d" + #. placeholder {0}: number?.slice(0, 3) #. placeholder {1}: number?.slice(3, 6) #. placeholder {2}: number?.slice(6) @@ -350,6 +382,11 @@ msgstr "5s" msgid "A code was sent to +1 ({0}) {1}-{2}" msgstr "A code was sent to +1 ({0}) {1}-{2}" +#. placeholder {0}: info.message.slice(0, 120) +#: src/lib/telemetry/alerts.server.ts:125 +msgid "A new error appeared: {0}" +msgstr "A new error appeared: {0}" + #: src/features/bracket/components/match-report.tsx:304 msgid "a team" msgstr "a team" @@ -370,7 +407,7 @@ msgstr "Accent Color" msgid "Access denied" msgstr "Access denied" -#: src/components/DefaultCatchBoundary.tsx:58 +#: src/components/DefaultCatchBoundary.tsx:60 msgid "Access Denied" msgstr "Access Denied" @@ -379,34 +416,33 @@ msgid "Account created successfully!" msgstr "Account created successfully!" #. placeholder {0}: activeDevice.name -#: src/features/spotify/components/spotify-sheet.tsx:161 +#: src/features/spotify/components/spotify-sheet.tsx:160 msgid "Active device: {0}" msgstr "Active device: {0}" -#: src/app/routes/_authed/admin/activities.tsx:21 -#: src/features/admin/components/admin-page.tsx:90 -msgid "Activities" -msgstr "Activities" +#: src/features/admin/components/dashboard/usage-card.tsx:39 +msgid "Active players" +msgstr "Active players" -#: src/features/activities/components/activities-table.tsx:120 +#: src/features/activities/components/activities-table.tsx:159 msgid "Activity Details" msgstr "Activity Details" -#: src/components/ios-install-prompt.tsx:58 +#: src/components/ios-install-prompt.tsx:63 msgid "Add FLXN to your home screen for a smoother experience" msgstr "Add FLXN to your home screen for a smoother experience" -#: src/features/tournaments/components/edit-enrolled-players.tsx:117 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:130 msgid "Add Player" msgstr "Add Player" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:136 +#: src/features/tournaments/components/enrollment/team-section.tsx:213 msgid "Add Team" msgstr "Add Team" -#: src/app/routes/_authed/admin.tsx:14 -#: src/app/routes/_authed/admin/index.tsx:9 -#: src/features/core/hooks/use-links.ts:36 +#: src/app/routes/_authed/admin.tsx:15 +#: src/app/routes/_authed/admin/index.tsx:22 +#: src/features/core/hooks/use-links.ts:37 msgid "Admin" msgstr "Admin" @@ -415,7 +451,7 @@ msgid "Aero" msgstr "Aero" #: src/app/routes/_authed/stats.tsx:59 -#: src/features/activities/components/activities-table.tsx:328 +#: src/features/activities/components/activities-table.tsx:92 #: src/features/players/components/profile/index.tsx:28 msgid "All" msgstr "All" @@ -432,7 +468,7 @@ msgstr "All group matches are finished! Populate the knockout bracket to advance msgid "ALM" msgstr "ALM" -#: src/components/DefaultCatchBoundary.tsx:92 +#: src/components/DefaultCatchBoundary.tsx:94 msgid "An error occurred while loading this page." msgstr "An error occurred while loading this page." @@ -448,6 +484,10 @@ msgstr "An unexpected error occurred. Please try again." msgid "Announce matchup" msgstr "Announce matchup" +#: src/features/telemetry/components/client-events-table.tsx:49 +msgid "Anonymous" +msgstr "Anonymous" + #: src/app/routes/_authed/settings.tsx:35 msgid "Appearance" msgstr "Appearance" @@ -456,7 +496,7 @@ msgstr "Appearance" msgid "Are you sure you want to unenroll from this tournament? You can enroll again at any point before the deadline." msgstr "Are you sure you want to unenroll from this tournament? You can enroll again at any point before the deadline." -#: src/features/activities/components/activities-table.tsx:200 +#: src/features/activities/components/activities-table.tsx:221 msgid "Arguments" msgstr "Arguments" @@ -464,7 +504,7 @@ msgstr "Arguments" msgid "Art Deco" msgstr "Art Deco" -#: src/features/tournaments/components/manage-tournament.tsx:69 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:149 msgid "Assign Partners" msgstr "Assign Partners" @@ -473,12 +513,12 @@ msgstr "Assign Partners" msgid "At least one team must have 10 cups" msgstr "At least one team must have 10 cups" -#: src/contexts/spotify-context.tsx:158 +#: src/contexts/spotify-context.tsx:157 msgid "Authentication failed: {error}" msgstr "Authentication failed: {error}" #. placeholder {0}: decodeURIComponent(details) -#: src/contexts/spotify-context.tsx:157 +#: src/contexts/spotify-context.tsx:156 msgid "Authentication failed: {error} - {0}" msgstr "Authentication failed: {error} - {0}" @@ -520,15 +560,15 @@ msgstr "Avg Loss Margin" msgid "Avg Win Margin" msgstr "Avg Win Margin" -#: src/features/admin/components/award-badges.tsx:104 +#: src/features/admin/components/award-badges.tsx:98 msgid "Award Badge" msgstr "Award Badge" -#: src/features/admin/components/admin-page.tsx:55 +#: src/features/admin/components/dashboard/tools-list.tsx:54 msgid "Award Badges" msgstr "Award Badges" -#: src/features/admin/components/award-badges.tsx:65 +#: src/features/admin/components/award-badges.tsx:59 msgid "Award Manual Badge" msgstr "Award Manual Badge" @@ -554,23 +594,23 @@ msgstr "AWM" msgid "Back" msgstr "Back" -#: src/features/admin/components/award-badges.tsx:37 +#: src/features/admin/components/award-badges.tsx:33 msgid "Badge awarded to {playerName}" msgstr "Badge awarded to {playerName}" -#: src/features/admin/components/admin-page.tsx:86 +#: src/features/admin/components/dashboard/tools-list.tsx:85 msgid "Badge recalculation failed. Check the server logs." msgstr "Badge recalculation failed. Check the server logs." -#: src/features/admin/components/admin-page.tsx:39 +#: src/features/admin/components/dashboard/tools-list.tsx:38 msgid "Badge recalculation is already running" msgstr "Badge recalculation is already running" -#: src/features/admin/components/admin-page.tsx:38 +#: src/features/admin/components/dashboard/tools-list.tsx:37 msgid "Badge recalculation started in the background" msgstr "Badge recalculation started in the background" -#: src/features/admin/components/award-badges.tsx:70 +#: src/features/admin/components/award-badges.tsx:64 msgid "Badge Type" msgstr "Badge Type" @@ -592,12 +632,12 @@ msgid "Both teams cannot have 10 cups" msgstr "Both teams cannot have 10 cups" #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:150 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:151 msgid "Bracket" msgstr "Bracket" #: src/app/routes/_authed/admin/preview.tsx:13 -#: src/features/admin/components/admin-page.tsx:102 +#: src/features/admin/components/dashboard/tools-list.tsx:96 msgid "Bracket Preview" msgstr "Bracket Preview" @@ -614,6 +654,10 @@ msgstr "Brutal" msgid "CA" msgstr "CA" +#: src/features/admin/components/dashboard/now-strip.tsx:52 +msgid "Calls today" +msgstr "Calls today" + #: src/components/sheet/slide-panel/slide-panel.tsx:41 #: src/components/sheet/slide-panel/slide-panel.tsx:190 #: src/features/bracket/components/match-form.tsx:160 @@ -633,11 +677,12 @@ msgstr "Cancel" msgid "Cannot create groups" msgstr "Cannot create groups" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:138 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:136 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:41 msgid "Cannot create teams with an odd number of players. Please have one player unenroll." msgstr "Cannot create teams with an odd number of players. Please have one player unenroll." -#: src/features/spotify/components/spotify-controls-bar.tsx:144 +#: src/features/spotify/components/spotify-controls-bar.tsx:143 msgid "Capture current state" msgstr "Capture current state" @@ -659,7 +704,7 @@ msgstr "Champions" msgid "Change Logo" msgstr "Change Logo" -#: src/features/admin/components/award-badges.tsx:87 +#: src/features/admin/components/award-badges.tsx:81 msgid "Choose a player" msgstr "Choose a player" @@ -671,6 +716,18 @@ msgstr "Claymation" msgid "Clear selected player" msgstr "Clear selected player" +#: src/lib/telemetry/alerts.server.ts:103 +msgid "Client error spike" +msgstr "Client error spike" + +#: src/features/admin/components/dashboard/errors-card.tsx:21 +msgid "Client errors" +msgstr "Client errors" + +#: src/features/telemetry/components/usage-screen.tsx:203 +msgid "Client errors per day" +msgstr "Client errors per day" + #: src/components/sheet/modal.tsx:35 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169 #: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36 @@ -717,7 +774,7 @@ msgstr "Confirm" msgid "Confirm {scoreText}" msgstr "Confirm {scoreText}" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:175 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:173 msgid "Confirm & Create Teams" msgstr "Confirm & Create Teams" @@ -738,15 +795,15 @@ msgstr "Confirm Setup" msgid "Confirm Unenrollment" msgstr "Confirm Unenrollment" -#: src/features/spotify/components/spotify-controls-bar.tsx:52 +#: src/features/spotify/components/spotify-controls-bar.tsx:51 msgid "Connect Spotify" msgstr "Connect Spotify" -#: src/features/spotify/components/spotify-sheet.tsx:87 +#: src/features/spotify/components/spotify-sheet.tsx:86 msgid "Connect with Spotify" msgstr "Connect with Spotify" -#: src/features/spotify/components/spotify-sheet.tsx:75 +#: src/features/spotify/components/spotify-sheet.tsx:74 msgid "Connect your Spotify account" msgstr "Connect your Spotify account" @@ -796,7 +853,8 @@ msgstr "Create Team" msgid "Create Tournament" msgstr "Create Tournament" -#: src/features/activities/components/activities-table.tsx:168 +#: src/features/activities/components/activities-table.tsx:198 +#: src/features/telemetry/components/client-events-table.tsx:149 msgid "Created" msgstr "Created" @@ -825,6 +883,15 @@ msgstr "Cups Made" msgid "Custom Hex Code" msgstr "Custom Hex Code" +#: src/features/admin/components/dashboard/usage-card.tsx:41 +#: src/features/telemetry/components/usage-screen.tsx:159 +msgid "Daily active players" +msgstr "Daily active players" + +#: src/features/admin/components/dashboard/usage-card.tsx:47 +msgid "Daily page views" +msgstr "Daily page views" + #: src/features/settings/components/color-scheme-picker.tsx:39 msgid "Dark" msgstr "Dark" @@ -833,7 +900,7 @@ msgstr "Dark" msgid "Dark Academia" msgstr "Dark Academia" -#: src/features/activities/components/activities-table.tsx:356 +#: src/features/activities/components/activities-table.tsx:119 msgid "Date" msgstr "Date" @@ -845,6 +912,10 @@ msgstr "Deep Sea" msgid "Default" msgstr "Default" +#: src/lib/telemetry/alerts.server.ts:166 +msgid "Denied access attempt" +msgstr "Denied access attempt" + #: src/features/tournaments/components/tournament-form.tsx:150 msgid "Description" msgstr "Description" @@ -853,11 +924,11 @@ msgstr "Description" msgid "deviceId is required for transfer action" msgstr "deviceId is required for transfer action" -#: src/features/spotify/components/spotify-sheet.tsx:188 +#: src/features/spotify/components/spotify-sheet.tsx:187 msgid "Disconnect Spotify" msgstr "Disconnect Spotify" -#: src/components/ios-install-prompt.tsx:65 +#: src/components/ios-install-prompt.tsx:70 msgid "Dismiss" msgstr "Dismiss" @@ -871,28 +942,25 @@ msgstr "Does this look right?" msgid "Downstream matches were reset because the correction changed who advances." msgstr "Downstream matches were reset because the correction changed who advances." -#: src/features/activities/components/activities-table.tsx:161 -#: src/features/activities/components/activities-table.tsx:372 +#: src/features/activities/components/activities-table.tsx:120 +#: src/features/activities/components/activities-table.tsx:190 msgid "Duration" msgstr "Duration" +#: src/features/telemetry/components/usage-screen.tsx:233 +msgid "Duration p50 / p95" +msgstr "Duration p50 / p95" + #: src/features/tournaments/components/tournament-stats.tsx:176 msgid "Earlier regional formats aren't supported in the app and order of matches or displayed winners may be unreliable." msgstr "Earlier regional formats aren't supported in the app and order of matches or displayed winners may be unreliable." #. placeholder {0}: team.name #: src/features/teams/components/manage-teams.tsx:35 +#: src/features/tournaments/components/enrollment/team-section.tsx:96 msgid "Edit {0}" msgstr "Edit {0}" -#: src/features/tournaments/components/manage-tournament.tsx:117 -msgid "Edit Enrolled Teams" -msgstr "Edit Enrolled Teams" - -#: src/features/tournaments/components/manage-tournament.tsx:63 -msgid "Edit Enrollments" -msgstr "Edit Enrollments" - #: src/features/bracket/components/match-card.tsx:392 msgid "Edit Match" msgstr "Edit Match" @@ -906,17 +974,18 @@ msgstr "Edit match score" msgid "Edit Prediction" msgstr "Edit Prediction" -#: src/features/tournaments/components/manage-tournament.tsx:58 -#: src/features/tournaments/components/manage-tournament.tsx:109 +#: src/features/tournaments/components/manage-tournament.tsx:65 +#: src/features/tournaments/components/manage-tournament.tsx:92 msgid "Edit Rules" msgstr "Edit Rules" #: src/features/teams/components/manage-teams.tsx:35 +#: src/features/tournaments/components/enrollment/team-section.tsx:96 msgid "Edit Team" msgstr "Edit Team" -#: src/features/tournaments/components/manage-tournament.tsx:53 -#: src/features/tournaments/components/manage-tournament.tsx:89 +#: src/features/tournaments/components/manage-tournament.tsx:60 +#: src/features/tournaments/components/manage-tournament.tsx:72 msgid "Edit Tournament" msgstr "Edit Tournament" @@ -940,6 +1009,10 @@ msgstr "End Date (Optional)" msgid "End Match" msgstr "End Match" +#: src/features/telemetry/components/usage-screen.tsx:156 +msgid "Engagement" +msgstr "Engagement" + #: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:26 msgid "Enroll" msgstr "Enroll" @@ -968,12 +1041,13 @@ msgstr "Enroll Your Team" msgid "Enrolled" msgstr "Enrolled" -#: src/features/tournaments/components/edit-enrolled-players.tsx:132 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:155 #: src/features/tournaments/components/upcoming-tournament/enrolled-players-list-button.tsx:39 msgid "Enrolled Players" msgstr "Enrolled Players" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:151 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28 +#: src/features/tournaments/components/enrollment/team-section.tsx:240 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145 #: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31 msgid "Enrolled Teams" @@ -983,16 +1057,22 @@ msgstr "Enrolled Teams" msgid "Enrolling as a free agent adds you to a pool of players looking for teammates." msgstr "Enrolling as a free agent adds you to a pool of players looking for teammates." +#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33 +#: src/features/admin/components/dashboard/tournament-card.tsx:61 #: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:68 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:69 msgid "Enrollment" msgstr "Enrollment" +#: src/features/tournaments/components/manage-tournament.tsx:55 +msgid "Enrollment & Teams" +msgstr "Enrollment & Teams" + #: src/features/tournaments/components/tournament-form.tsx:196 msgid "Enrollment Due" msgstr "Enrollment Due" -#: src/features/tournaments/components/upcoming-tournament/index.tsx:80 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:81 msgid "Enrollment has been closed for this tournament." msgstr "Enrollment has been closed for this tournament." @@ -1013,14 +1093,39 @@ msgstr "Enter your name" msgid "Enter your phone number" msgstr "Enter your phone number" -#: src/features/activities/components/activities-table.tsx:187 +#: src/features/telemetry/components/error-browser/error-group-row.tsx:29 +msgid "Error group reopened" +msgstr "Error group reopened" + +#: src/features/telemetry/components/error-browser/error-group-row.tsx:29 +msgid "Error group resolved" +msgstr "Error group resolved" + +#: src/features/activities/components/activities-table.tsx:207 msgid "Error Message" msgstr "Error Message" -#: src/components/DefaultCatchBoundary.tsx:96 +#: src/components/DefaultCatchBoundary.tsx:98 msgid "Error: {errorMessage}" msgstr "Error: {errorMessage}" +#: src/app/routes/_authed/admin/telemetry.tsx:51 +#: src/features/telemetry/components/usage-screen.tsx:200 +msgid "Errors" +msgstr "Errors" + +#: src/features/telemetry/components/client-events-table.tsx:113 +msgid "Event Details" +msgstr "Event Details" + +#: src/features/telemetry/components/client-events-table.tsx:70 +msgid "Event name" +msgstr "Event name" + +#: src/app/routes/_authed/admin/telemetry.tsx:48 +msgid "Events" +msgstr "Events" + #: src/features/tournaments/components/group-stage-view.tsx:368 msgid "Expand standings" msgstr "Expand standings" @@ -1029,16 +1134,12 @@ msgstr "Expand standings" msgid "eyes" msgstr "eyes" -#: src/features/activities/components/activities-table.tsx:145 +#: src/features/activities/components/activities-table.tsx:181 msgid "Failed" msgstr "Failed" -#: src/features/admin/components/award-badges.tsx:41 -msgid "Failed to award badge" -msgstr "Failed to award badge" - #: src/app/routes/api/spotify/capture.ts:54 -#: src/contexts/spotify-context.tsx:427 +#: src/contexts/spotify-context.tsx:426 msgid "Failed to capture playback state" msgstr "Failed to capture playback state" @@ -1054,7 +1155,7 @@ msgstr "Failed to create team" msgid "Failed to create tournament" msgstr "Failed to create tournament" -#: src/contexts/spotify-context.tsx:335 +#: src/contexts/spotify-context.tsx:334 msgid "Failed to get devices" msgstr "Failed to get devices" @@ -1068,19 +1169,19 @@ msgid "Failed to load team" msgstr "Failed to load team" #: src/app/routes/api/spotify/resume.ts:54 -#: src/contexts/spotify-context.tsx:447 +#: src/contexts/spotify-context.tsx:446 msgid "Failed to resume playback state" msgstr "Failed to resume playback state" -#: src/contexts/spotify-context.tsx:360 +#: src/contexts/spotify-context.tsx:359 msgid "Failed to set active device" msgstr "Failed to set active device" -#: src/contexts/spotify-context.tsx:314 +#: src/contexts/spotify-context.tsx:313 msgid "Failed to set volume" msgstr "Failed to set volume" -#: src/features/admin/components/admin-page.tsx:42 +#: src/features/admin/components/dashboard/tools-list.tsx:41 msgid "Failed to start badge recalculation" msgstr "Failed to start badge recalculation" @@ -1092,19 +1193,19 @@ msgstr "Failed to update team" msgid "Failed to update tournament" msgstr "Failed to update tournament" -#: src/app/routes/api/teams/upload-logo.ts:140 -#: src/app/routes/api/tournaments/upload-logo.ts:138 +#: src/app/routes/api/teams/upload-logo.ts:141 +#: src/app/routes/api/tournaments/upload-logo.ts:139 #: src/features/teams/components/team-form/index.tsx:148 #: src/features/tournaments/components/tournament-form.tsx:88 msgid "Failed to upload logo" msgstr "Failed to upload logo" -#: src/features/activities/components/activities-table.tsx:330 +#: src/features/activities/components/activities-table.tsx:94 msgid "Failure" msgstr "Failure" -#: src/app/routes/api/teams/upload-logo.ts:79 -#: src/app/routes/api/tournaments/upload-logo.ts:80 +#: src/app/routes/api/teams/upload-logo.ts:80 +#: src/app/routes/api/tournaments/upload-logo.ts:81 msgid "File too large. Maximum size is 10MB." msgstr "File too large. Maximum size is 10MB." @@ -1112,7 +1213,7 @@ msgstr "File too large. Maximum size is 10MB." msgid "Final" msgstr "Final" -#: src/features/tournaments/components/started-tournament/index.tsx:114 +#: src/features/tournaments/components/started-tournament/index.tsx:115 msgid "Final Results" msgstr "Final Results" @@ -1150,11 +1251,19 @@ msgstr "Free Agent Enrollment" msgid "Free Agents" msgstr "Free Agents" -#: src/features/activities/components/activities-table.tsx:124 +#: src/features/telemetry/components/usage-screen.tsx:226 +msgid "Function" +msgstr "Function" + +#: src/features/activities/components/activities-table.tsx:165 msgid "Function Name" msgstr "Function Name" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:148 +#: src/app/routes/_authed/admin/telemetry.tsx:45 +msgid "Functions" +msgstr "Functions" + +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:146 msgid "Generate Random Pairings" msgstr "Generate Random Pairings" @@ -1163,11 +1272,15 @@ msgstr "Generate Random Pairings" msgid "Go back" msgstr "Go back" -#: src/components/DefaultCatchBoundary.tsx:67 -#: src/components/DefaultCatchBoundary.tsx:132 +#: src/components/DefaultCatchBoundary.tsx:69 +#: src/components/DefaultCatchBoundary.tsx:134 msgid "Go Back" msgstr "Go Back" +#: src/features/telemetry/components/usage-screen.tsx:54 +msgid "Good" +msgstr "Good" + #: src/themes/seventies/manifest.ts:6 msgid "Groovy" msgstr "Groovy" @@ -1229,13 +1342,13 @@ msgstr "Have you played before?" msgid "Head to Head" msgstr "Head to Head" -#: src/components/DefaultCatchBoundary.tsx:103 +#: src/components/DefaultCatchBoundary.tsx:105 msgid "Hide details" msgstr "Hide details" -#: src/components/DefaultCatchBoundary.tsx:74 -#: src/components/DefaultCatchBoundary.tsx:125 -#: src/features/core/hooks/use-links.ts:11 +#: src/components/DefaultCatchBoundary.tsx:76 +#: src/components/DefaultCatchBoundary.tsx:127 +#: src/features/core/hooks/use-links.ts:12 msgid "Home" msgstr "Home" @@ -1263,7 +1376,7 @@ msgstr "How prediction scoring works" #. placeholder {0}: response.status #. placeholder {1}: response.statusText -#: src/contexts/spotify-context.tsx:65 +#: src/contexts/spotify-context.tsx:64 msgid "HTTP {0}: {1}" msgstr "HTTP {0}: {1}" @@ -1275,6 +1388,10 @@ msgstr "If this is your first time participating, please select <0>New Player1s (this page)" +msgstr "Slow >1s (this page)" + +#: src/components/DefaultCatchBoundary.tsx:91 msgid "Something went wrong" msgstr "Something went wrong" @@ -2241,8 +2466,8 @@ msgstr "Song segment must be no more than 15 seconds" msgid "Song start time is required" msgstr "Song start time is required" -#: src/features/activities/components/activities-table.tsx:345 #: src/features/players/components/player-stats-table.tsx:340 +#: src/features/telemetry/components/shared/search-filter-bar.tsx:102 msgid "Sort:" msgstr "Sort:" @@ -2250,7 +2475,7 @@ msgstr "Sort:" msgid "Sorted by win percentage" msgstr "Sorted by win percentage" -#: src/features/spotify/components/spotify-sheet.tsx:68 +#: src/features/spotify/components/spotify-sheet.tsx:67 msgid "Spotify Controls" msgstr "Spotify Controls" @@ -2262,7 +2487,7 @@ msgstr "Spotify Premium is required for playback control." msgid "Spotify premium required" msgstr "Spotify premium required" -#: src/features/spotify/components/spotify-controls-bar.tsx:180 +#: src/features/spotify/components/spotify-controls-bar.tsx:179 msgid "Spotify settings" msgstr "Spotify settings" @@ -2292,6 +2517,10 @@ msgstr "Start time is required" msgid "Start typing to search..." msgstr "Start typing to search..." +#: src/features/admin/components/dashboard/tournament-card.tsx:43 +msgid "Starts in" +msgstr "Starts in" + #: src/features/players/components/player-stats-table.tsx:372 msgid "Stat abbreviations and MMR info" msgstr "Stat abbreviations and MMR info" @@ -2300,7 +2529,7 @@ msgstr "Stat abbreviations and MMR info" msgid "Stat Abbreviations:" msgstr "Stat Abbreviations:" -#: src/features/core/hooks/use-links.ts:16 +#: src/features/core/hooks/use-links.ts:17 #: src/features/players/components/profile/index.tsx:26 #: src/features/teams/components/team-profile/index.tsx:34 msgid "Statistics" @@ -2315,8 +2544,8 @@ msgstr "Stats" msgid "Stats Comparison" msgstr "Stats Comparison" -#: src/features/activities/components/activities-table.tsx:131 -#: src/features/activities/components/activities-table.tsx:321 +#: src/features/activities/components/activities-table.tsx:85 +#: src/features/activities/components/activities-table.tsx:167 msgid "Status" msgstr "Status" @@ -2328,8 +2557,8 @@ msgstr "Status" msgid "Submit" msgstr "Submit" -#: src/features/activities/components/activities-table.tsx:138 -#: src/features/activities/components/activities-table.tsx:329 +#: src/features/activities/components/activities-table.tsx:93 +#: src/features/activities/components/activities-table.tsx:174 msgid "Success" msgstr "Success" @@ -2337,8 +2566,7 @@ msgstr "Success" msgid "Successfully logged in. Welcome back!" msgstr "Successfully logged in. Welcome back!" -#: src/features/activities/components/activities-table.tsx:42 -#: src/features/activities/components/activities-table.tsx:112 +#: src/features/activities/components/activities-table.tsx:53 #: src/features/settings/components/color-scheme-picker.tsx:47 msgid "System" msgstr "System" @@ -2351,11 +2579,11 @@ msgstr "T" msgid "Tap an opponent below to compare" msgstr "Tap an opponent below to compare" -#: src/components/ios-install-prompt.tsx:43 +#: src/components/ios-install-prompt.tsx:48 msgid "Tap Menu (⋮) → Add to Home screen" msgstr "Tap Menu (⋮) → Add to Home screen" -#: src/components/ios-install-prompt.tsx:42 +#: src/components/ios-install-prompt.tsx:47 msgid "Tap Share → Add to Home Screen" msgstr "Tap Share → Add to Home Screen" @@ -2385,7 +2613,7 @@ msgstr "Team Details" msgid "Team enrolled successfully!" msgstr "Team enrolled successfully!" -#: src/app/routes/api/teams/upload-logo.ts:92 +#: src/app/routes/api/teams/upload-logo.ts:93 #: src/features/teams/components/team-profile/index.tsx:21 msgid "Team not found" msgstr "Team not found" @@ -2419,11 +2647,15 @@ msgstr "Teams" msgid "Teams created successfully!" msgstr "Teams created successfully!" +#: src/app/routes/_authed/admin/telemetry.tsx:20 +msgid "Telemetry" +msgstr "Telemetry" + #: src/themes/terminal/manifest.ts:6 msgid "Terminal" msgstr "Terminal" -#: src/app/routes/api/push/test.ts:29 +#: src/app/routes/api/push/test.ts:30 msgid "Test notification — push is working on this device." msgstr "Test notification — push is working on this device." @@ -2498,6 +2730,10 @@ msgstr "Top {0, plural, one {# team} other {# teams}} from each group will advan msgid "Top {n} advance" msgstr "Top {n} advance" +#: src/features/telemetry/components/usage-screen.tsx:191 +msgid "Top functions by call count" +msgstr "Top functions by call count" + #: src/features/matches/components/team-head-to-head-sheet.tsx:158 #: src/features/players/components/player-head-to-head-sheet.tsx:193 msgid "Total Cups" @@ -2517,7 +2753,7 @@ msgstr "Tournament created but logo upload failed: {0}" msgid "Tournament created successfully!" msgstr "Tournament created successfully!" -#: src/app/routes/api/tournaments/upload-logo.ts:93 +#: src/app/routes/api/tournaments/upload-logo.ts:94 msgid "Tournament not found" msgstr "Tournament not found" @@ -2536,7 +2772,7 @@ msgid "Tournament updated successfully!" msgstr "Tournament updated successfully!" #: src/app/routes/_authed/tournaments/index.tsx:17 -#: src/features/core/hooks/use-links.ts:21 +#: src/features/core/hooks/use-links.ts:22 #: src/features/teams/components/team-profile/index.tsx:53 #: src/features/teams/components/team-profile/skeleton.tsx:80 msgid "Tournaments" @@ -2550,6 +2786,10 @@ msgstr "trackId is required for playTrack action" msgid "Try the new themes" msgstr "Try the new themes" +#: src/features/admin/components/dashboard/quiet-boundary.tsx:26 +msgid "Unavailable right now" +msgstr "Unavailable right now" + #: src/features/tournaments/components/upcoming-tournament/unenroll-free-agent.tsx:26 #: src/features/tournaments/components/upcoming-tournament/unenroll-team.tsx:34 msgid "Unenroll" @@ -2563,12 +2803,12 @@ msgstr "Unenroll from tournament?" msgid "Unenroll Team" msgstr "Unenroll Team" -#: src/components/DefaultCatchBoundary.tsx:39 +#: src/components/DefaultCatchBoundary.tsx:40 msgid "Unknown error" msgstr "Unknown error" -#: src/app/routes/api/teams/upload-logo.ts:141 -#: src/app/routes/api/tournaments/upload-logo.ts:139 +#: src/app/routes/api/teams/upload-logo.ts:142 +#: src/app/routes/api/tournaments/upload-logo.ts:140 msgid "Unknown error occurred" msgstr "Unknown error occurred" @@ -2585,7 +2825,7 @@ msgstr "Unknown Player" msgid "Unnamed Player" msgstr "Unnamed Player" -#: src/features/tournaments/components/started-tournament/index.tsx:128 +#: src/features/tournaments/components/started-tournament/index.tsx:129 msgid "Upcoming" msgstr "Upcoming" @@ -2607,10 +2847,23 @@ msgstr "Update Team" msgid "Update Tournament" msgstr "Update Tournament" -#: src/features/activities/components/activities-table.tsx:176 +#: src/app/routes/_authed/admin/telemetry.tsx:57 +msgid "Usage" +msgstr "Usage" + +#: src/features/admin/components/dashboard/usage-card.tsx:34 +msgid "Usage, 7 days" +msgstr "Usage, 7 days" + +#: src/features/activities/components/activities-table.tsx:202 +#: src/features/telemetry/components/client-events-table.tsx:146 msgid "User Agent" msgstr "User Agent" +#: src/features/telemetry/components/client-events-table.tsx:131 +msgid "Value" +msgstr "Value" + #: src/features/bracket/components/match-card.tsx:201 #: src/features/bracket/components/match-card.tsx:226 msgid "versus" @@ -2645,6 +2898,10 @@ msgstr "View Predictions" msgid "Viewport" msgstr "Viewport" +#: src/features/telemetry/components/usage-screen.tsx:211 +msgid "Vitals" +msgstr "Vitals" + #: src/app/routes/api/spotify/playback.ts:70 msgid "volumePercent must be a number" msgstr "volumePercent must be a number" @@ -2680,6 +2937,10 @@ msgstr "Walkout Segment ({segmentDuration}s)" msgid "Walkout Song" msgstr "Walkout Song" +#: src/features/telemetry/components/usage-screen.tsx:165 +msgid "WAU" +msgstr "WAU" + #: src/features/tournaments/components/group-stage-view.tsx:407 msgid "WC" msgstr "WC" @@ -2731,7 +2992,7 @@ msgstr "You and 1 other" msgid "You are not authorized to perform this action" msgstr "You are not authorized to perform this action" -#: src/components/DefaultCatchBoundary.tsx:60 +#: src/components/DefaultCatchBoundary.tsx:62 msgid "You don't have permission to access this page." msgstr "You don't have permission to access this page." @@ -2755,7 +3016,7 @@ msgstr "You're the first free agent!" msgid "You've been added as a free agent!" msgstr "You've been added as a free agent!" -#: src/components/DefaultCatchBoundary.tsx:46 +#: src/components/DefaultCatchBoundary.tsx:48 msgid "You've been logged out" msgstr "You've been logged out" diff --git a/src/locales/es/messages.po b/src/locales/es/messages.po index 1a962de..2ecd106 100644 --- a/src/locales/es/messages.po +++ b/src/locales/es/messages.po @@ -18,7 +18,7 @@ msgid " (Losers)" msgstr " (Perdedores)" #. placeholder {0}: activeDevice.volume_percent -#: src/features/spotify/components/spotify-sheet.tsx:163 +#: src/features/spotify/components/spotify-sheet.tsx:162 msgid " (Volume: {0}%)" msgstr " (Volumen: {0}%)" @@ -26,7 +26,7 @@ msgstr " (Volumen: {0}%)" msgid "(713) 867-5309" msgstr "(713) 867-5309" -#: src/features/spotify/components/spotify-sheet.tsx:148 +#: src/features/spotify/components/spotify-sheet.tsx:147 msgid "(Active)" msgstr "(Activo)" @@ -38,14 +38,14 @@ msgstr "{0, plural, one {# bracket en} other {# brackets en}}" #. placeholder {0}: enrolledPlayers.length #. placeholder {0}: players.length #: src/features/players/components/players-activity-table.tsx:100 -#: src/features/tournaments/components/edit-enrolled-players.tsx:135 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:158 msgid "{0, plural, one {# player} other {# players}}" msgstr "{0, plural, one {# jugador} other {# jugadores}}" #. placeholder {0}: enrolledTeams.length #. placeholder {0}: group.teams.length #. placeholder {0}: orderedTeams.length -#: src/features/tournaments/components/edit-enrolled-teams.tsx:154 +#: src/features/tournaments/components/enrollment/team-section.tsx:243 #: src/features/tournaments/components/group-preview.tsx:27 #: src/features/tournaments/components/seed-tournament.tsx:116 #: src/features/tournaments/components/setup-group-stage.tsx:224 @@ -53,10 +53,15 @@ msgid "{0, plural, one {# team} other {# teams}}" msgstr "{0, plural, one {# equipo} other {# equipos}}" #. placeholder {0}: result.totalItems -#: src/features/activities/components/activities-table.tsx:341 +#: src/features/activities/components/activities-table.tsx:125 msgid "{0, plural, one {# total activity} other {# total activities}}" msgstr "{0, plural, one {# actividad total} other {# actividades totales}}" +#. placeholder {0}: result.totalItems +#: src/features/telemetry/components/client-events-table.tsx:87 +msgid "{0, plural, one {# total event} other {# total events}}" +msgstr "" + #. placeholder {0}: selectedConfig.total_group_matches #: src/features/tournaments/components/setup-group-stage.tsx:249 msgid "{0, plural, one {# total group stage match} other {# total group stage matches}}" @@ -73,7 +78,9 @@ msgid "{0, plural, one {# wildcard} other {# wildcards}}" msgstr "{0, plural, one {# comodín} other {# comodines}}" #. placeholder {0}: freeAgents.length -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:126 +#. placeholder {0}: props.count +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:124 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:22 msgid "{0, plural, one {player enrolled} other {players enrolled}}" msgstr "{0, plural, one {jugador inscrito} other {jugadores inscritos}}" @@ -88,6 +95,11 @@ msgstr "{0} a las {1}" msgid "{0} Badge Holders" msgstr "Poseedores de la insignia {0}" +#. placeholder {0}: recentErrors.totalItems +#: src/lib/telemetry/alerts.server.ts:104 +msgid "{0} client errors in the last 15 minutes" +msgstr "" + #. placeholder {0}: match.away?.name #. placeholder {0}: match.home?.name #: src/features/bracket/components/match-form.tsx:90 @@ -131,8 +143,9 @@ msgid "{0}d" msgstr "{0}d" #. placeholder {0}: activity.duration -#: src/features/activities/components/activities-table.tsx:83 -#: src/features/activities/components/activities-table.tsx:163 +#. placeholder {0}: selectedActivity.duration +#: src/features/activities/components/activities-table.tsx:148 +#: src/features/activities/components/activities-table.tsx:193 msgid "{0}ms" msgstr "{0}ms" @@ -145,15 +158,22 @@ msgstr "{count, plural, one {Jugadores (#)} other {Jugadores (#)}}" msgid "{count, plural, one {Teams (#)} other {Teams (#)}}" msgstr "{count, plural, one {Equipos (#)} other {Equipos (#)}}" +#: src/lib/telemetry/alerts.server.ts:167 +msgid "{deniedCount} denied admin access attempts in the last 15 minutes" +msgstr "" + #: src/features/players/components/players-activity-table.tsx:44 +#: src/features/telemetry/components/shared/relative-time.tsx:17 msgid "{diffDays}d ago" msgstr "hace {diffDays}d" #: src/features/players/components/players-activity-table.tsx:43 +#: src/features/telemetry/components/shared/relative-time.tsx:16 msgid "{diffHours}h ago" msgstr "hace {diffHours}h" #: src/features/players/components/players-activity-table.tsx:42 +#: src/features/telemetry/components/shared/relative-time.tsx:15 msgid "{diffMins}m ago" msgstr "hace {diffMins}m" @@ -177,7 +197,11 @@ msgstr "{n, plural, one {# partido garantizado} other {# partidos garantizados}} msgid "{n, plural, one {# wildcard} other {# wildcards}}" msgstr "{n, plural, one {# comodín} other {# comodines}}" -#: src/app/routes/_authed/admin/tournaments/$id/teams.tsx:23 +#: src/lib/telemetry/alerts.server.ts:154 +msgid "{name} failed {count} times in the last 15 minutes" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/teams.tsx:24 msgid "{name} Teams" msgstr "Equipos de {name}" @@ -331,6 +355,10 @@ msgstr "2. Envío más temprano" msgid "2nd place" msgstr "2do lugar" +#: src/features/telemetry/components/usage-screen.tsx:256 +msgid "30d" +msgstr "" + #: src/features/teams/components/team-form/duration-picker.tsx:22 msgid "30s" msgstr "30s" @@ -343,6 +371,10 @@ msgstr "3er lugar" msgid "5s" msgstr "5s" +#: src/features/telemetry/components/usage-screen.tsx:255 +msgid "7d" +msgstr "" + #. placeholder {0}: number?.slice(0, 3) #. placeholder {1}: number?.slice(3, 6) #. placeholder {2}: number?.slice(6) @@ -350,6 +382,11 @@ msgstr "5s" msgid "A code was sent to +1 ({0}) {1}-{2}" msgstr "Se envió un código al +1 ({0}) {1}-{2}" +#. placeholder {0}: info.message.slice(0, 120) +#: src/lib/telemetry/alerts.server.ts:125 +msgid "A new error appeared: {0}" +msgstr "" + #: src/features/bracket/components/match-report.tsx:304 msgid "a team" msgstr "un equipo" @@ -370,7 +407,7 @@ msgstr "Color de acento" msgid "Access denied" msgstr "Acceso denegado" -#: src/components/DefaultCatchBoundary.tsx:58 +#: src/components/DefaultCatchBoundary.tsx:60 msgid "Access Denied" msgstr "Acceso Denegado" @@ -379,34 +416,33 @@ msgid "Account created successfully!" msgstr "¡Cuenta creada exitosamente!" #. placeholder {0}: activeDevice.name -#: src/features/spotify/components/spotify-sheet.tsx:161 +#: src/features/spotify/components/spotify-sheet.tsx:160 msgid "Active device: {0}" msgstr "Dispositivo activo: {0}" -#: src/app/routes/_authed/admin/activities.tsx:21 -#: src/features/admin/components/admin-page.tsx:90 -msgid "Activities" -msgstr "Actividades" +#: src/features/admin/components/dashboard/usage-card.tsx:39 +msgid "Active players" +msgstr "" -#: src/features/activities/components/activities-table.tsx:120 +#: src/features/activities/components/activities-table.tsx:159 msgid "Activity Details" msgstr "Detalles de la actividad" -#: src/components/ios-install-prompt.tsx:58 +#: src/components/ios-install-prompt.tsx:63 msgid "Add FLXN to your home screen for a smoother experience" msgstr "Agrega FLXN a tu pantalla de inicio para una experiencia más fluida" -#: src/features/tournaments/components/edit-enrolled-players.tsx:117 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:130 msgid "Add Player" msgstr "Agregar Jugador" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:136 +#: src/features/tournaments/components/enrollment/team-section.tsx:213 msgid "Add Team" msgstr "Agregar Equipo" -#: src/app/routes/_authed/admin.tsx:14 -#: src/app/routes/_authed/admin/index.tsx:9 -#: src/features/core/hooks/use-links.ts:36 +#: src/app/routes/_authed/admin.tsx:15 +#: src/app/routes/_authed/admin/index.tsx:22 +#: src/features/core/hooks/use-links.ts:37 msgid "Admin" msgstr "Admin" @@ -415,7 +451,7 @@ msgid "Aero" msgstr "Aero" #: src/app/routes/_authed/stats.tsx:59 -#: src/features/activities/components/activities-table.tsx:328 +#: src/features/activities/components/activities-table.tsx:92 #: src/features/players/components/profile/index.tsx:28 msgid "All" msgstr "Todos" @@ -432,7 +468,7 @@ msgstr "¡Todos los partidos de grupo terminaron! Llena el bracket eliminatorio msgid "ALM" msgstr "ALM" -#: src/components/DefaultCatchBoundary.tsx:92 +#: src/components/DefaultCatchBoundary.tsx:94 msgid "An error occurred while loading this page." msgstr "Ocurrió un error al cargar esta página." @@ -448,6 +484,10 @@ msgstr "Ocurrió un error inesperado. Intenta de nuevo." msgid "Announce matchup" msgstr "Anunciar enfrentamiento" +#: src/features/telemetry/components/client-events-table.tsx:49 +msgid "Anonymous" +msgstr "" + #: src/app/routes/_authed/settings.tsx:35 msgid "Appearance" msgstr "Apariencia" @@ -456,7 +496,7 @@ msgstr "Apariencia" msgid "Are you sure you want to unenroll from this tournament? You can enroll again at any point before the deadline." msgstr "¿Seguro que quieres darte de baja de este torneo? Puedes volver a inscribirte en cualquier momento antes de la fecha límite." -#: src/features/activities/components/activities-table.tsx:200 +#: src/features/activities/components/activities-table.tsx:221 msgid "Arguments" msgstr "Argumentos" @@ -464,7 +504,7 @@ msgstr "Argumentos" msgid "Art Deco" msgstr "Art Déco" -#: src/features/tournaments/components/manage-tournament.tsx:69 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:149 msgid "Assign Partners" msgstr "Asignar Compañeros" @@ -473,12 +513,12 @@ msgstr "Asignar Compañeros" msgid "At least one team must have 10 cups" msgstr "Al menos un equipo debe tener 10 vasos" -#: src/contexts/spotify-context.tsx:158 +#: src/contexts/spotify-context.tsx:157 msgid "Authentication failed: {error}" msgstr "Falló la autenticación: {error}" #. placeholder {0}: decodeURIComponent(details) -#: src/contexts/spotify-context.tsx:157 +#: src/contexts/spotify-context.tsx:156 msgid "Authentication failed: {error} - {0}" msgstr "Falló la autenticación: {error} - {0}" @@ -520,15 +560,15 @@ msgstr "Prom. Margen de Derrota" msgid "Avg Win Margin" msgstr "Prom. Margen de Victoria" -#: src/features/admin/components/award-badges.tsx:104 +#: src/features/admin/components/award-badges.tsx:98 msgid "Award Badge" msgstr "Otorgar insignia" -#: src/features/admin/components/admin-page.tsx:55 +#: src/features/admin/components/dashboard/tools-list.tsx:54 msgid "Award Badges" msgstr "Otorgar insignias" -#: src/features/admin/components/award-badges.tsx:65 +#: src/features/admin/components/award-badges.tsx:59 msgid "Award Manual Badge" msgstr "Otorgar insignia manual" @@ -554,23 +594,23 @@ msgstr "AWM" msgid "Back" msgstr "Atrás" -#: src/features/admin/components/award-badges.tsx:37 +#: src/features/admin/components/award-badges.tsx:33 msgid "Badge awarded to {playerName}" msgstr "Insignia otorgada a {playerName}" -#: src/features/admin/components/admin-page.tsx:86 +#: src/features/admin/components/dashboard/tools-list.tsx:85 msgid "Badge recalculation failed. Check the server logs." msgstr "Falló el recálculo de insignias. Revisa los registros del servidor." -#: src/features/admin/components/admin-page.tsx:39 +#: src/features/admin/components/dashboard/tools-list.tsx:38 msgid "Badge recalculation is already running" msgstr "El recálculo de insignias ya está en curso" -#: src/features/admin/components/admin-page.tsx:38 +#: src/features/admin/components/dashboard/tools-list.tsx:37 msgid "Badge recalculation started in the background" msgstr "Recálculo de insignias iniciado en segundo plano" -#: src/features/admin/components/award-badges.tsx:70 +#: src/features/admin/components/award-badges.tsx:64 msgid "Badge Type" msgstr "Tipo de insignia" @@ -592,12 +632,12 @@ msgid "Both teams cannot have 10 cups" msgstr "Los dos equipos no pueden tener 10 vasos" #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:150 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:151 msgid "Bracket" msgstr "Bracket" #: src/app/routes/_authed/admin/preview.tsx:13 -#: src/features/admin/components/admin-page.tsx:102 +#: src/features/admin/components/dashboard/tools-list.tsx:96 msgid "Bracket Preview" msgstr "Vista previa del bracket" @@ -614,6 +654,10 @@ msgstr "Brutal" msgid "CA" msgstr "VC" +#: src/features/admin/components/dashboard/now-strip.tsx:52 +msgid "Calls today" +msgstr "" + #: src/components/sheet/slide-panel/slide-panel.tsx:41 #: src/components/sheet/slide-panel/slide-panel.tsx:190 #: src/features/bracket/components/match-form.tsx:160 @@ -633,11 +677,12 @@ msgstr "Cancelar" msgid "Cannot create groups" msgstr "No se pueden crear grupos" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:138 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:136 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:41 msgid "Cannot create teams with an odd number of players. Please have one player unenroll." msgstr "No se pueden crear equipos con un número impar de jugadores. Pide que un jugador se dé de baja." -#: src/features/spotify/components/spotify-controls-bar.tsx:144 +#: src/features/spotify/components/spotify-controls-bar.tsx:143 msgid "Capture current state" msgstr "Capturar estado actual" @@ -659,7 +704,7 @@ msgstr "Campeones" msgid "Change Logo" msgstr "Cambiar logo" -#: src/features/admin/components/award-badges.tsx:87 +#: src/features/admin/components/award-badges.tsx:81 msgid "Choose a player" msgstr "Elige un jugador" @@ -671,6 +716,18 @@ msgstr "Plastilina" msgid "Clear selected player" msgstr "Quitar jugador seleccionado" +#: src/lib/telemetry/alerts.server.ts:103 +msgid "Client error spike" +msgstr "" + +#: src/features/admin/components/dashboard/errors-card.tsx:21 +msgid "Client errors" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:203 +msgid "Client errors per day" +msgstr "" + #: src/components/sheet/modal.tsx:35 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169 #: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36 @@ -717,7 +774,7 @@ msgstr "Confirmar" msgid "Confirm {scoreText}" msgstr "Confirmar {scoreText}" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:175 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:173 msgid "Confirm & Create Teams" msgstr "Confirmar y crear equipos" @@ -738,15 +795,15 @@ msgstr "Confirmar configuración" msgid "Confirm Unenrollment" msgstr "Confirmar baja" -#: src/features/spotify/components/spotify-controls-bar.tsx:52 +#: src/features/spotify/components/spotify-controls-bar.tsx:51 msgid "Connect Spotify" msgstr "Conectar Spotify" -#: src/features/spotify/components/spotify-sheet.tsx:87 +#: src/features/spotify/components/spotify-sheet.tsx:86 msgid "Connect with Spotify" msgstr "Conectar con Spotify" -#: src/features/spotify/components/spotify-sheet.tsx:75 +#: src/features/spotify/components/spotify-sheet.tsx:74 msgid "Connect your Spotify account" msgstr "Conecta tu cuenta de Spotify" @@ -796,7 +853,8 @@ msgstr "Crear equipo" msgid "Create Tournament" msgstr "Crear torneo" -#: src/features/activities/components/activities-table.tsx:168 +#: src/features/activities/components/activities-table.tsx:198 +#: src/features/telemetry/components/client-events-table.tsx:149 msgid "Created" msgstr "Creado" @@ -825,6 +883,15 @@ msgstr "Vasos anotados" msgid "Custom Hex Code" msgstr "Código hex personalizado" +#: src/features/admin/components/dashboard/usage-card.tsx:41 +#: src/features/telemetry/components/usage-screen.tsx:159 +msgid "Daily active players" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:47 +msgid "Daily page views" +msgstr "" + #: src/features/settings/components/color-scheme-picker.tsx:39 msgid "Dark" msgstr "Oscuro" @@ -833,7 +900,7 @@ msgstr "Oscuro" msgid "Dark Academia" msgstr "Academia Oscura" -#: src/features/activities/components/activities-table.tsx:356 +#: src/features/activities/components/activities-table.tsx:119 msgid "Date" msgstr "Fecha" @@ -845,6 +912,10 @@ msgstr "Mar Profundo" msgid "Default" msgstr "Predeterminado" +#: src/lib/telemetry/alerts.server.ts:166 +msgid "Denied access attempt" +msgstr "" + #: src/features/tournaments/components/tournament-form.tsx:150 msgid "Description" msgstr "Descripción" @@ -853,11 +924,11 @@ msgstr "Descripción" msgid "deviceId is required for transfer action" msgstr "Se requiere deviceId para la acción de transferencia" -#: src/features/spotify/components/spotify-sheet.tsx:188 +#: src/features/spotify/components/spotify-sheet.tsx:187 msgid "Disconnect Spotify" msgstr "Desconectar Spotify" -#: src/components/ios-install-prompt.tsx:65 +#: src/components/ios-install-prompt.tsx:70 msgid "Dismiss" msgstr "Cerrar" @@ -871,28 +942,25 @@ msgstr "¿Se ve bien así?" msgid "Downstream matches were reset because the correction changed who advances." msgstr "Los partidos posteriores se reiniciaron porque la corrección cambió quién avanza." -#: src/features/activities/components/activities-table.tsx:161 -#: src/features/activities/components/activities-table.tsx:372 +#: src/features/activities/components/activities-table.tsx:120 +#: src/features/activities/components/activities-table.tsx:190 msgid "Duration" msgstr "Duración" +#: src/features/telemetry/components/usage-screen.tsx:233 +msgid "Duration p50 / p95" +msgstr "" + #: src/features/tournaments/components/tournament-stats.tsx:176 msgid "Earlier regional formats aren't supported in the app and order of matches or displayed winners may be unreliable." msgstr "Los formatos regionales anteriores no son compatibles con la app, así que el orden de los partidos o los ganadores mostrados podrían no ser confiables." #. placeholder {0}: team.name #: src/features/teams/components/manage-teams.tsx:35 +#: src/features/tournaments/components/enrollment/team-section.tsx:96 msgid "Edit {0}" msgstr "Editar {0}" -#: src/features/tournaments/components/manage-tournament.tsx:117 -msgid "Edit Enrolled Teams" -msgstr "Editar equipos inscritos" - -#: src/features/tournaments/components/manage-tournament.tsx:63 -msgid "Edit Enrollments" -msgstr "Editar inscripciones" - #: src/features/bracket/components/match-card.tsx:392 msgid "Edit Match" msgstr "Editar partido" @@ -906,17 +974,18 @@ msgstr "Editar marcador del partido" msgid "Edit Prediction" msgstr "Editar predicción" -#: src/features/tournaments/components/manage-tournament.tsx:58 -#: src/features/tournaments/components/manage-tournament.tsx:109 +#: src/features/tournaments/components/manage-tournament.tsx:65 +#: src/features/tournaments/components/manage-tournament.tsx:92 msgid "Edit Rules" msgstr "Editar reglas" #: src/features/teams/components/manage-teams.tsx:35 +#: src/features/tournaments/components/enrollment/team-section.tsx:96 msgid "Edit Team" msgstr "Editar equipo" -#: src/features/tournaments/components/manage-tournament.tsx:53 -#: src/features/tournaments/components/manage-tournament.tsx:89 +#: src/features/tournaments/components/manage-tournament.tsx:60 +#: src/features/tournaments/components/manage-tournament.tsx:72 msgid "Edit Tournament" msgstr "Editar torneo" @@ -940,6 +1009,10 @@ msgstr "Fecha de fin (opcional)" msgid "End Match" msgstr "Terminar partido" +#: src/features/telemetry/components/usage-screen.tsx:156 +msgid "Engagement" +msgstr "" + #: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:26 msgid "Enroll" msgstr "Inscribirse" @@ -968,12 +1041,13 @@ msgstr "Inscribe a tu equipo" msgid "Enrolled" msgstr "Inscrito" -#: src/features/tournaments/components/edit-enrolled-players.tsx:132 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:155 #: src/features/tournaments/components/upcoming-tournament/enrolled-players-list-button.tsx:39 msgid "Enrolled Players" msgstr "Jugadores inscritos" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:151 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28 +#: src/features/tournaments/components/enrollment/team-section.tsx:240 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145 #: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31 msgid "Enrolled Teams" @@ -983,16 +1057,22 @@ msgstr "Equipos inscritos" msgid "Enrolling as a free agent adds you to a pool of players looking for teammates." msgstr "Inscribirte como agente libre te agrega a un grupo de jugadores buscando compañeros de equipo." +#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33 +#: src/features/admin/components/dashboard/tournament-card.tsx:61 #: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:68 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:69 msgid "Enrollment" msgstr "Inscripción" +#: src/features/tournaments/components/manage-tournament.tsx:55 +msgid "Enrollment & Teams" +msgstr "" + #: src/features/tournaments/components/tournament-form.tsx:196 msgid "Enrollment Due" msgstr "Fecha límite de inscripción" -#: src/features/tournaments/components/upcoming-tournament/index.tsx:80 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:81 msgid "Enrollment has been closed for this tournament." msgstr "La inscripción para este torneo ya está cerrada." @@ -1013,14 +1093,39 @@ msgstr "Ingresa tu nombre" msgid "Enter your phone number" msgstr "Ingresa tu número de teléfono" -#: src/features/activities/components/activities-table.tsx:187 +#: src/features/telemetry/components/error-browser/error-group-row.tsx:29 +msgid "Error group reopened" +msgstr "" + +#: src/features/telemetry/components/error-browser/error-group-row.tsx:29 +msgid "Error group resolved" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:207 msgid "Error Message" msgstr "Mensaje de error" -#: src/components/DefaultCatchBoundary.tsx:96 +#: src/components/DefaultCatchBoundary.tsx:98 msgid "Error: {errorMessage}" msgstr "Error: {errorMessage}" +#: src/app/routes/_authed/admin/telemetry.tsx:51 +#: src/features/telemetry/components/usage-screen.tsx:200 +msgid "Errors" +msgstr "" + +#: src/features/telemetry/components/client-events-table.tsx:113 +msgid "Event Details" +msgstr "" + +#: src/features/telemetry/components/client-events-table.tsx:70 +msgid "Event name" +msgstr "" + +#: src/app/routes/_authed/admin/telemetry.tsx:48 +msgid "Events" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:368 msgid "Expand standings" msgstr "Expandir tabla de posiciones" @@ -1029,16 +1134,12 @@ msgstr "Expandir tabla de posiciones" msgid "eyes" msgstr "ojos" -#: src/features/activities/components/activities-table.tsx:145 +#: src/features/activities/components/activities-table.tsx:181 msgid "Failed" msgstr "Fallido" -#: src/features/admin/components/award-badges.tsx:41 -msgid "Failed to award badge" -msgstr "No se pudo otorgar la insignia" - #: src/app/routes/api/spotify/capture.ts:54 -#: src/contexts/spotify-context.tsx:427 +#: src/contexts/spotify-context.tsx:426 msgid "Failed to capture playback state" msgstr "No se pudo capturar el estado de reproducción" @@ -1054,7 +1155,7 @@ msgstr "No se pudo crear el equipo" msgid "Failed to create tournament" msgstr "No se pudo crear el torneo" -#: src/contexts/spotify-context.tsx:335 +#: src/contexts/spotify-context.tsx:334 msgid "Failed to get devices" msgstr "No se pudieron obtener los dispositivos" @@ -1068,19 +1169,19 @@ msgid "Failed to load team" msgstr "No se pudo cargar el equipo" #: src/app/routes/api/spotify/resume.ts:54 -#: src/contexts/spotify-context.tsx:447 +#: src/contexts/spotify-context.tsx:446 msgid "Failed to resume playback state" msgstr "No se pudo reanudar el estado de reproducción" -#: src/contexts/spotify-context.tsx:360 +#: src/contexts/spotify-context.tsx:359 msgid "Failed to set active device" msgstr "No se pudo establecer el dispositivo activo" -#: src/contexts/spotify-context.tsx:314 +#: src/contexts/spotify-context.tsx:313 msgid "Failed to set volume" msgstr "No se pudo ajustar el volumen" -#: src/features/admin/components/admin-page.tsx:42 +#: src/features/admin/components/dashboard/tools-list.tsx:41 msgid "Failed to start badge recalculation" msgstr "No se pudo iniciar el recálculo de insignias" @@ -1092,19 +1193,19 @@ msgstr "No se pudo actualizar el equipo" msgid "Failed to update tournament" msgstr "No se pudo actualizar el torneo" -#: src/app/routes/api/teams/upload-logo.ts:140 -#: src/app/routes/api/tournaments/upload-logo.ts:138 +#: src/app/routes/api/teams/upload-logo.ts:141 +#: src/app/routes/api/tournaments/upload-logo.ts:139 #: src/features/teams/components/team-form/index.tsx:148 #: src/features/tournaments/components/tournament-form.tsx:88 msgid "Failed to upload logo" msgstr "No se pudo subir el logo" -#: src/features/activities/components/activities-table.tsx:330 +#: src/features/activities/components/activities-table.tsx:94 msgid "Failure" msgstr "Fallo" -#: src/app/routes/api/teams/upload-logo.ts:79 -#: src/app/routes/api/tournaments/upload-logo.ts:80 +#: src/app/routes/api/teams/upload-logo.ts:80 +#: src/app/routes/api/tournaments/upload-logo.ts:81 msgid "File too large. Maximum size is 10MB." msgstr "El archivo es demasiado grande. El tamaño máximo es 10MB." @@ -1112,7 +1213,7 @@ msgstr "El archivo es demasiado grande. El tamaño máximo es 10MB." msgid "Final" msgstr "Final" -#: src/features/tournaments/components/started-tournament/index.tsx:114 +#: src/features/tournaments/components/started-tournament/index.tsx:115 msgid "Final Results" msgstr "Resultados finales" @@ -1150,11 +1251,19 @@ msgstr "Inscripción de agente libre" msgid "Free Agents" msgstr "Agentes libres" -#: src/features/activities/components/activities-table.tsx:124 +#: src/features/telemetry/components/usage-screen.tsx:226 +msgid "Function" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:165 msgid "Function Name" msgstr "Nombre de la función" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:148 +#: src/app/routes/_authed/admin/telemetry.tsx:45 +msgid "Functions" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:146 msgid "Generate Random Pairings" msgstr "Generar emparejamientos aleatorios" @@ -1163,11 +1272,15 @@ msgstr "Generar emparejamientos aleatorios" msgid "Go back" msgstr "Regresar" -#: src/components/DefaultCatchBoundary.tsx:67 -#: src/components/DefaultCatchBoundary.tsx:132 +#: src/components/DefaultCatchBoundary.tsx:69 +#: src/components/DefaultCatchBoundary.tsx:134 msgid "Go Back" msgstr "Regresar" +#: src/features/telemetry/components/usage-screen.tsx:54 +msgid "Good" +msgstr "" + #: src/themes/seventies/manifest.ts:6 msgid "Groovy" msgstr "Setentero" @@ -1229,13 +1342,13 @@ msgstr "¿Ya has jugado antes?" msgid "Head to Head" msgstr "Cara a cara" -#: src/components/DefaultCatchBoundary.tsx:103 +#: src/components/DefaultCatchBoundary.tsx:105 msgid "Hide details" msgstr "Ocultar detalles" -#: src/components/DefaultCatchBoundary.tsx:74 -#: src/components/DefaultCatchBoundary.tsx:125 -#: src/features/core/hooks/use-links.ts:11 +#: src/components/DefaultCatchBoundary.tsx:76 +#: src/components/DefaultCatchBoundary.tsx:127 +#: src/features/core/hooks/use-links.ts:12 msgid "Home" msgstr "Inicio" @@ -1263,7 +1376,7 @@ msgstr "Cómo funciona la puntuación de predicciones" #. placeholder {0}: response.status #. placeholder {1}: response.statusText -#: src/contexts/spotify-context.tsx:65 +#: src/contexts/spotify-context.tsx:64 msgid "HTTP {0}: {1}" msgstr "HTTP {0}: {1}" @@ -1275,6 +1388,10 @@ msgstr "Si es tu primera vez participando, selecciona <0>Nuevo jugador; si n msgid "Important: Enrolling as a free agent does not guarantee a tournament spot. To secure a spot, one team member must register through the app and select a walkout song." msgstr "Importante: inscribirte como agente libre no garantiza un lugar en el torneo. Para asegurar un lugar, un integrante del equipo debe registrarse en la app y elegir una canción de entrada." +#: src/features/telemetry/components/error-browser/error-browser.tsx:56 +msgid "Include resolved" +msgstr "" + #: src/features/login/components/code-prompt.tsx:43 msgid "Incorrect code" msgstr "Código incorrecto" @@ -1283,8 +1400,8 @@ msgstr "Código incorrecto" msgid "Invalid action" msgstr "Acción no válida" -#: src/app/routes/api/teams/upload-logo.ts:65 -#: src/app/routes/api/tournaments/upload-logo.ts:66 +#: src/app/routes/api/teams/upload-logo.ts:66 +#: src/app/routes/api/tournaments/upload-logo.ts:67 msgid "Invalid file type. Only JPEG, PNG and GIF are allowed." msgstr "Tipo de archivo no válido. Solo se permiten JPEG, PNG y GIF." @@ -1292,8 +1409,8 @@ msgstr "Tipo de archivo no válido. Solo se permiten JPEG, PNG y GIF." msgid "Invalid hex color format" msgstr "Formato de color hexadecimal no válido" -#: src/app/routes/api/teams/upload-logo.ts:33 -#: src/app/routes/api/tournaments/upload-logo.ts:34 +#: src/app/routes/api/teams/upload-logo.ts:34 +#: src/app/routes/api/tournaments/upload-logo.ts:35 msgid "Invalid input" msgstr "Entrada no válida" @@ -1302,10 +1419,11 @@ msgid "Invalid request" msgstr "Solicitud no válida" #: src/features/players/components/players-activity-table.tsx:41 +#: src/features/telemetry/components/shared/relative-time.tsx:14 msgid "Just now" msgstr "Justo ahora" -#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:166 +#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:107 msgid "Knockout Bracket" msgstr "Bracket eliminatorio" @@ -1347,7 +1465,7 @@ msgid "Last name must be 3-20 characters long and contain only letters" msgstr "El apellido debe tener entre 3 y 20 caracteres y contener solo letras" #. placeholder {0}: migrationStatus.result.totalBadgesEarned -#: src/features/admin/components/admin-page.tsx:74 +#: src/features/admin/components/dashboard/tools-list.tsx:73 msgid "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}" msgstr "Último recálculo: {0, plural, one {# insignia obtenida} other {# insignias obtenidas}}" @@ -1359,7 +1477,7 @@ msgstr "Claro" msgid "lip" msgstr "labios" -#: src/features/tournaments/components/started-tournament/index.tsx:121 +#: src/features/tournaments/components/started-tournament/index.tsx:122 msgid "Live Matches" msgstr "Partidos en vivo" @@ -1381,8 +1499,8 @@ msgstr "La ubicación es obligatoria" msgid "Logo" msgstr "Logo" -#: src/app/routes/api/teams/upload-logo.ts:46 -#: src/app/routes/api/tournaments/upload-logo.ts:47 +#: src/app/routes/api/teams/upload-logo.ts:47 +#: src/app/routes/api/tournaments/upload-logo.ts:48 msgid "Logo file is required" msgstr "El archivo del logo es obligatorio" @@ -1420,26 +1538,24 @@ msgstr "Hacer predicción" msgid "Make Your Prediction" msgstr "Haz tu predicción" +#: src/features/admin/components/dashboard/tournament-card.tsx:68 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:89 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:143 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:144 msgid "Manage" msgstr "Administrar" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:28 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:29 #: src/app/routes/_authed/admin/tournaments/$id/index.tsx:23 msgid "Manage {name}" msgstr "Administrar {name}" -#: src/features/tournaments/components/manage-tournament.tsx:117 -msgid "Manage Enrollments" -msgstr "Administrar inscripciones" - -#: src/features/tournaments/components/manage-tournament.tsx:76 +#: src/features/tournaments/components/enrollment/team-section.tsx:234 msgid "Manage Team Songs/Logos" msgstr "Administrar canciones/logos del equipo" #: src/app/routes/_authed/admin/tournaments/index.tsx:17 -#: src/features/admin/components/admin-page.tsx:50 +#: src/features/admin/components/dashboard/tools-list.tsx:49 +#: src/features/admin/components/dashboard/tournament-card.tsx:25 msgid "Manage Tournaments" msgstr "Administrar torneos" @@ -1450,6 +1566,10 @@ msgstr "Administrar torneos" msgid "margin" msgstr "margen" +#: src/features/telemetry/components/error-browser/error-group-row.tsx:98 +msgid "Mark resolved" +msgstr "" + #. placeholder {0}: match.order #. placeholder {1}: match.round + 1 #: src/features/bracket/components/match-dock.tsx:126 @@ -1514,11 +1634,15 @@ msgstr "Enfrentamiento" msgid "Matchup details" msgstr "Detalles del enfrentamiento" +#: src/features/telemetry/components/usage-screen.tsx:169 +msgid "MAU" +msgstr "" + #: src/features/players/components/league-head-to-head.tsx:120 msgid "Me" msgstr "Yo" -#: src/features/admin/components/admin-page.tsx:60 +#: src/features/admin/components/dashboard/tools-list.tsx:59 msgid "Migrate Badge Progress" msgstr "Migrar progreso de insignias" @@ -1532,6 +1656,7 @@ msgid "MMR Calculation:" msgstr "Cálculo de MMR:" #: src/features/teams/components/team-form/index.tsx:200 +#: src/features/telemetry/components/client-events-table.tsx:119 #: src/features/tournaments/components/tournament-form.tsx:137 msgid "Name" msgstr "Nombre" @@ -1545,7 +1670,8 @@ msgstr "El nombre es obligatorio" msgid "Name updated successfully!" msgstr "¡Nombre actualizado con éxito!" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:132 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:130 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:35 msgid "Need at least 2 players to create teams" msgstr "Se necesitan al menos 2 jugadores para crear equipos" @@ -1554,6 +1680,10 @@ msgstr "Se necesitan al menos 2 jugadores para crear equipos" msgid "Need at least 4 teams to create a group stage format. Current team count: {0}" msgstr "Se necesitan al menos 4 equipos para crear un formato de fase de grupos. Equipos actuales: {0}" +#: src/features/telemetry/components/usage-screen.tsx:56 +msgid "Needs improvement" +msgstr "" + #: src/features/reactions/components/emoji-picker.tsx:23 msgid "nerd" msgstr "nerd" @@ -1567,6 +1697,7 @@ msgid "Neumorphic" msgstr "Neumórfico" #: src/features/players/components/players-activity-table.tsx:27 +#: src/features/telemetry/components/shared/relative-time.tsx:6 msgid "Never" msgstr "Nunca" @@ -1574,6 +1705,10 @@ msgstr "Nunca" msgid "Never active" msgstr "Nunca activo" +#: src/lib/telemetry/alerts.server.ts:124 +msgid "New client error" +msgstr "" + #: src/features/login/components/player-prompt/new-player-button.tsx:18 msgid "New Player" msgstr "Nuevo jugador" @@ -1582,7 +1717,7 @@ msgstr "Nuevo jugador" msgid "Next match" msgstr "Siguiente partido" -#: src/features/spotify/components/spotify-controls-bar.tsx:130 +#: src/features/spotify/components/spotify-controls-bar.tsx:129 msgid "Next track" msgstr "Siguiente canción" @@ -1597,11 +1732,11 @@ msgstr "No se encontró el token de acceso" msgid "No active device found. Please select a device first." msgstr "No se encontró ningún dispositivo activo. Selecciona un dispositivo primero." -#: src/features/spotify/components/spotify-controls-bar.tsx:204 +#: src/features/spotify/components/spotify-controls-bar.tsx:203 msgid "No active device. Please select a device in settings." msgstr "No hay ningún dispositivo activo. Selecciona un dispositivo en configuración." -#: src/features/tournaments/components/started-tournament/index.tsx:142 +#: src/features/tournaments/components/started-tournament/index.tsx:143 msgid "No active matches" msgstr "No hay partidos activos" @@ -1609,18 +1744,26 @@ msgstr "No hay partidos activos" msgid "No active playback to capture" msgstr "No hay reproducción activa para capturar" -#: src/features/activities/components/activities-table.tsx:234 +#: src/features/activities/components/activities-table.tsx:132 msgid "No Activities Found" msgstr "No se encontraron actividades" +#: src/features/admin/components/dashboard/activity-feed.tsx:78 +msgid "No activity yet" +msgstr "" + #: src/features/badges/components/badge-stats-table.tsx:45 msgid "No Badges Available" msgstr "No hay insignias disponibles" -#: src/features/spotify/components/spotify-sheet.tsx:155 +#: src/features/spotify/components/spotify-sheet.tsx:154 msgid "No devices found." msgstr "No se encontraron dispositivos." +#: src/features/telemetry/components/client-events-table.tsx:94 +msgid "No Events Found" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:294 msgid "No groups have been created yet" msgstr "Aún no se han creado grupos" @@ -1637,7 +1780,7 @@ msgstr "No se encontró actividad de jugadores" msgid "No players available" msgstr "No hay jugadores disponibles" -#: src/features/tournaments/components/edit-enrolled-players.tsx:145 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:168 #: src/features/tournaments/components/upcoming-tournament/enrolled-players-list-button.tsx:42 msgid "No players enrolled yet" msgstr "Aún no hay jugadores inscritos" @@ -1668,7 +1811,7 @@ msgstr "No se proporcionó ninguna instantánea" msgid "No song selected" msgstr "No hay canción seleccionada" -#: src/features/spotify/components/spotify-controls-bar.tsx:157 +#: src/features/spotify/components/spotify-controls-bar.tsx:156 msgid "No state captured" msgstr "No se capturó ningún estado" @@ -1689,7 +1832,7 @@ msgstr "No hay equipos asignados" msgid "No Teams Enrolled" msgstr "No hay equipos inscritos" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:164 +#: src/features/tournaments/components/enrollment/team-section.tsx:253 msgid "No teams enrolled yet" msgstr "Aún no hay equipos inscritos" @@ -1701,10 +1844,19 @@ msgstr "No se encontraron equipos que coincidan con \"{search}\"" msgid "No tournaments found" msgstr "No se encontraron torneos" +#: src/features/admin/components/dashboard/tournament-card.tsx:18 +msgid "No tournaments yet" +msgstr "" + #: src/features/tournaments/components/tournament-card-list.tsx:40 msgid "No Tournaments Yet" msgstr "Aún no hay torneos" +#: src/features/admin/components/dashboard/errors-card.tsx:53 +#: src/features/telemetry/components/error-browser/error-browser.tsx:27 +msgid "No unresolved errors" +msgstr "" + #: src/features/predictions/components/prediction-leaderboard.tsx:136 msgid "Nobody made a prediction for this tournament." msgstr "Nadie hizo una predicción para este torneo." @@ -1717,6 +1869,10 @@ msgstr "Incorrecto" msgid "Not right — enter our score" msgstr "Incorrecto — ingresa nuestro marcador" +#: src/features/telemetry/components/error-browser/error-browser.tsx:28 +msgid "Nothing has broken in the last 30 days. Keep it up." +msgstr "" + #: src/features/settings/components/notifications-section.tsx:18 #: src/features/settings/components/notifications-section.tsx:59 msgid "Notifications" @@ -1738,7 +1894,7 @@ msgstr "Notificaciones desactivadas en este dispositivo" msgid "Notifications enabled on this device" msgstr "Notificaciones activadas en este dispositivo" -#: src/features/spotify/components/spotify-sheet.tsx:96 +#: src/features/spotify/components/spotify-sheet.tsx:95 msgid "Now Playing" msgstr "Sonando ahora" @@ -1758,7 +1914,15 @@ msgstr "Una vez inscrito, puedes ver a otros agentes libres y su número de tel msgid "One time code" msgstr "Código de un solo uso" -#: src/features/admin/components/admin-page.tsx:95 +#: src/features/admin/components/dashboard/now-strip.tsx:44 +msgid "Online now" +msgstr "" + +#: src/features/admin/components/dashboard/now-strip.tsx:46 +msgid "Open errors" +msgstr "" + +#: src/features/admin/components/dashboard/tools-list.tsx:89 msgid "Open Pocketbase" msgstr "Abrir Pocketbase" @@ -1767,7 +1931,7 @@ msgid "Opponent" msgstr "Rival" #: src/features/tournaments/components/upcoming-tournament/enroll-team/team-selection-view.tsx:60 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:92 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:93 msgid "or" msgstr "o" @@ -1800,7 +1964,23 @@ msgstr "Resumen" msgid "owo" msgstr "owo" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:157 +#: src/features/telemetry/components/usage-screen.tsx:97 +msgid "p50" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:113 +msgid "p95" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:45 +msgid "Page views" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:177 +msgid "Page views by route" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:155 msgid "Partner Assignments" msgstr "Asignación de compañeros" @@ -1808,7 +1988,11 @@ msgstr "Asignación de compañeros" msgid "Partners will be randomly assigned when enrollment closes" msgstr "Los compañeros se asignarán al azar cuando cierre la inscripción" -#: src/features/spotify/components/spotify-controls-bar.tsx:117 +#: src/features/telemetry/components/client-events-table.tsx:122 +msgid "Path" +msgstr "" + +#: src/features/spotify/components/spotify-controls-bar.tsx:116 msgid "Pause" msgstr "Pausar" @@ -1839,7 +2023,7 @@ msgstr "Elige primero los partidos anteriores — estos equipos todavía no est msgid "PICKS" msgstr "PICKS" -#: src/features/spotify/components/spotify-controls-bar.tsx:117 +#: src/features/spotify/components/spotify-controls-bar.tsx:116 msgid "Play" msgstr "Reproducir" @@ -1847,23 +2031,22 @@ msgstr "Reproducir" msgid "Playback control failed" msgstr "Falló el control de reproducción" -#: src/features/activities/components/activities-table.tsx:154 -#: src/features/admin/components/award-badges.tsx:35 +#: src/features/activities/components/activities-table.tsx:98 +#: src/features/activities/components/activities-table.tsx:188 +#: src/features/admin/components/award-badges.tsx:31 +#: src/features/telemetry/components/client-events-table.tsx:73 +#: src/features/telemetry/components/client-events-table.tsx:120 msgid "Player" msgstr "Jugador" -#: src/features/teams/components/team-form/players-picker.tsx:45 +#: src/features/teams/components/team-form/players-picker.tsx:46 msgid "Player 1" msgstr "Jugador 1" -#: src/features/teams/components/team-form/players-picker.tsx:53 +#: src/features/teams/components/team-form/players-picker.tsx:54 msgid "Player 2" msgstr "Jugador 2" -#: src/app/routes/_authed/admin/activities.tsx:59 -msgid "Player Activity" -msgstr "Actividad de jugadores" - #: src/features/login/components/player-prompt/index.tsx:46 msgid "Player already exists" msgstr "El jugador ya existe" @@ -1880,6 +2063,7 @@ msgstr "Jugador eliminado con éxito" msgid "Player Stats" msgstr "Estadísticas de jugador" +#: src/app/routes/_authed/admin/telemetry.tsx:54 #: src/features/teams/components/team-profile/index.tsx:29 msgid "Players" msgstr "Jugadores" @@ -1889,10 +2073,14 @@ msgid "Players are required" msgstr "Los jugadores son obligatorios" #. placeholder {0}: activeDevice.name -#: src/features/spotify/components/spotify-controls-bar.tsx:175 +#: src/features/spotify/components/spotify-controls-bar.tsx:174 msgid "Playing on {0}" msgstr "Reproduciendo en {0}" +#: src/features/telemetry/components/usage-screen.tsx:58 +msgid "Poor" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:314 msgid "Populate Knockout Bracket" msgstr "Llenar el bracket eliminatorio" @@ -1919,11 +2107,11 @@ msgstr "Las predicciones están abiertas" msgid "Previous match" msgstr "Partido anterior" -#: src/features/spotify/components/spotify-controls-bar.tsx:105 +#: src/features/spotify/components/spotify-controls-bar.tsx:104 msgid "Previous track" msgstr "Pista anterior" -#: src/features/core/hooks/use-links.ts:27 +#: src/features/core/hooks/use-links.ts:28 msgid "Profile" msgstr "Perfil" @@ -1931,6 +2119,10 @@ msgstr "Perfil" msgid "Progress " msgstr "Progreso " +#: src/features/telemetry/components/client-events-table.tsx:136 +msgid "Props" +msgstr "" + #: src/app/routes/_authed/tournaments/$id.predictions_.$playerId.tsx:106 #: src/features/predictions/components/prediction-leaderboard.tsx:261 msgid "PTS" @@ -1944,7 +2136,7 @@ msgstr "C" msgid "Quest Log" msgstr "Misiones" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:167 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:165 msgid "Re-roll" msgstr "Volver a sortear" @@ -1954,10 +2146,14 @@ msgstr "Reacciones" #. placeholder {0}: migrationStatus.playersProcessed #. placeholder {1}: migrationStatus.totalPlayers -#: src/features/admin/components/admin-page.tsx:67 +#: src/features/admin/components/dashboard/tools-list.tsx:66 msgid "Recalculating badges in the background ({0}/{1})" msgstr "Recalculando insignias en segundo plano ({0}/{1})" +#: src/features/admin/components/dashboard/activity-feed.tsx:34 +msgid "Recent activity" +msgstr "" + #: src/features/tournaments/components/started-tournament/sections/recent-results.tsx:34 msgid "Recently finished" msgstr "Recién terminados" @@ -1972,6 +2168,10 @@ msgstr "Regional" msgid "Regional Tournament" msgstr "Torneo regional" +#: src/features/telemetry/components/error-browser/error-group-row.tsx:98 +msgid "Reopen" +msgstr "" + #: src/features/bracket/components/match-report.tsx:127 msgid "Report cleared" msgstr "Reporte eliminado" @@ -1981,11 +2181,15 @@ msgstr "Reporte eliminado" msgid "Report Score" msgstr "Reportar marcador" -#: src/contexts/spotify-context.tsx:60 +#: src/contexts/spotify-context.tsx:59 msgid "Request failed" msgstr "Falló la solicitud" -#: src/features/spotify/components/spotify-controls-bar.tsx:157 +#: src/features/telemetry/components/error-browser/error-group-row.tsx:63 +msgid "Resolved" +msgstr "" + +#: src/features/spotify/components/spotify-controls-bar.tsx:156 msgid "Restore captured state" msgstr "Restaurar estado capturado" @@ -1993,7 +2197,7 @@ msgstr "Restaurar estado capturado" msgid "Results" msgstr "Resultados" -#: src/components/DefaultCatchBoundary.tsx:117 +#: src/components/DefaultCatchBoundary.tsx:119 msgid "Retry" msgstr "Reintentar" @@ -2010,16 +2214,21 @@ msgstr "carcajada" msgid "Round {0}" msgstr "Ronda {0}" +#: src/features/telemetry/components/client-events-table.tsx:125 +msgid "Route" +msgstr "" + #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:142 #: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:23 msgid "Rules" msgstr "Reglas" -#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:38 +#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:36 msgid "Run {name}" msgstr "Ejecutar {name}" -#: src/features/tournaments/components/manage-tournament.tsx:82 +#: src/features/admin/components/dashboard/tournament-card.tsx:53 +#: src/features/tournaments/components/manage-tournament.tsx:49 msgid "Run Tournament" msgstr "Iniciar torneo" @@ -2053,7 +2262,7 @@ msgstr "grito" msgid "Search for a Song" msgstr "Buscar una canción" -#: src/features/tournaments/components/edit-enrolled-players.tsx:120 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:133 msgid "Search for players to enroll..." msgstr "Buscar jugadores para inscribir..." @@ -2061,7 +2270,7 @@ msgstr "Buscar jugadores para inscribir..." msgid "Search for songs..." msgstr "Buscar canciones..." -#: src/features/tournaments/components/edit-enrolled-teams.tsx:139 +#: src/features/tournaments/components/enrollment/team-section.tsx:216 msgid "Search for teams to enroll..." msgstr "Buscar equipos para inscribir..." @@ -2095,11 +2304,11 @@ msgstr "El segmento no debe durar más de 15 segundos" msgid "Segment must be within song duration" msgstr "El segmento debe estar dentro de la duración de la canción" -#: src/features/admin/components/award-badges.tsx:71 +#: src/features/admin/components/award-badges.tsx:65 msgid "Select a badge" msgstr "Selecciona una insignia" -#: src/features/spotify/components/spotify-sheet.tsx:145 +#: src/features/spotify/components/spotify-sheet.tsx:144 msgid "Select a device..." msgstr "Selecciona un dispositivo..." @@ -2121,7 +2330,7 @@ msgstr "Selecciona una hora" msgid "Select Color" msgstr "Selecciona un color" -#: src/features/spotify/components/spotify-sheet.tsx:127 +#: src/features/spotify/components/spotify-sheet.tsx:126 msgid "Select Device" msgstr "Selecciona un dispositivo" @@ -2141,7 +2350,7 @@ msgstr "Selecciona fecha límite de inscripción" msgid "Select one of your existing teams" msgstr "Selecciona uno de tus equipos existentes" -#: src/features/admin/components/award-badges.tsx:86 +#: src/features/admin/components/award-badges.tsx:80 msgid "Select Player" msgstr "Selecciona jugador" @@ -2174,20 +2383,32 @@ msgstr "Enviar notificación de prueba" msgid "Series is tied" msgstr "La serie está empatada" -#: src/app/routes/_authed/admin/activities.tsx:58 -msgid "Server Functions" -msgstr "Funciones del servidor" +#: src/lib/telemetry/alerts.server.ts:153 +msgid "Server function failing" +msgstr "" -#: src/features/activities/components/activities-table.tsx:309 +#: src/features/telemetry/components/usage-screen.tsx:186 +msgid "Server functions" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:82 msgid "serverFn name" msgstr "nombre de serverFn" +#: src/features/telemetry/components/client-events-table.tsx:128 +msgid "Session" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:172 +msgid "Sessions" +msgstr "" + #: src/app/routes/_authed/settings.tsx:16 #: src/features/core/components/settings-button.tsx:46 msgid "Settings" msgstr "Configuración" -#: src/components/DefaultCatchBoundary.tsx:103 +#: src/components/DefaultCatchBoundary.tsx:105 msgid "Show details" msgstr "Mostrar detalles" @@ -2213,7 +2434,11 @@ msgstr "Cuaderno" msgid "Skeuomorphic" msgstr "Esqueuomórfico" -#: src/components/DefaultCatchBoundary.tsx:89 +#: src/features/activities/components/activities-table.tsx:113 +msgid "Slow >1s (this page)" +msgstr "" + +#: src/components/DefaultCatchBoundary.tsx:91 msgid "Something went wrong" msgstr "Algo salió mal" @@ -2241,8 +2466,8 @@ msgstr "El segmento de la canción no debe durar más de 15 segundos" msgid "Song start time is required" msgstr "Se requiere la hora de inicio de la canción" -#: src/features/activities/components/activities-table.tsx:345 #: src/features/players/components/player-stats-table.tsx:340 +#: src/features/telemetry/components/shared/search-filter-bar.tsx:102 msgid "Sort:" msgstr "Ordenar:" @@ -2250,7 +2475,7 @@ msgstr "Ordenar:" msgid "Sorted by win percentage" msgstr "Ordenado por porcentaje de victorias" -#: src/features/spotify/components/spotify-sheet.tsx:68 +#: src/features/spotify/components/spotify-sheet.tsx:67 msgid "Spotify Controls" msgstr "Controles de Spotify" @@ -2262,7 +2487,7 @@ msgstr "Se requiere Spotify Premium para controlar la reproducción." msgid "Spotify premium required" msgstr "Se requiere Spotify Premium" -#: src/features/spotify/components/spotify-controls-bar.tsx:180 +#: src/features/spotify/components/spotify-controls-bar.tsx:179 msgid "Spotify settings" msgstr "Configuración de Spotify" @@ -2292,6 +2517,10 @@ msgstr "Se requiere la hora de inicio" msgid "Start typing to search..." msgstr "Empieza a escribir para buscar..." +#: src/features/admin/components/dashboard/tournament-card.tsx:43 +msgid "Starts in" +msgstr "" + #: src/features/players/components/player-stats-table.tsx:372 msgid "Stat abbreviations and MMR info" msgstr "Abreviaturas de estadísticas e información de MMR" @@ -2300,7 +2529,7 @@ msgstr "Abreviaturas de estadísticas e información de MMR" msgid "Stat Abbreviations:" msgstr "Abreviaturas de estadísticas:" -#: src/features/core/hooks/use-links.ts:16 +#: src/features/core/hooks/use-links.ts:17 #: src/features/players/components/profile/index.tsx:26 #: src/features/teams/components/team-profile/index.tsx:34 msgid "Statistics" @@ -2315,8 +2544,8 @@ msgstr "Estadísticas" msgid "Stats Comparison" msgstr "Comparación de estadísticas" -#: src/features/activities/components/activities-table.tsx:131 -#: src/features/activities/components/activities-table.tsx:321 +#: src/features/activities/components/activities-table.tsx:85 +#: src/features/activities/components/activities-table.tsx:167 msgid "Status" msgstr "Estado" @@ -2328,8 +2557,8 @@ msgstr "Estado" msgid "Submit" msgstr "Enviar" -#: src/features/activities/components/activities-table.tsx:138 -#: src/features/activities/components/activities-table.tsx:329 +#: src/features/activities/components/activities-table.tsx:93 +#: src/features/activities/components/activities-table.tsx:174 msgid "Success" msgstr "Éxito" @@ -2337,8 +2566,7 @@ msgstr "Éxito" msgid "Successfully logged in. Welcome back!" msgstr "Inicio de sesión exitoso. ¡Bienvenido de vuelta!" -#: src/features/activities/components/activities-table.tsx:42 -#: src/features/activities/components/activities-table.tsx:112 +#: src/features/activities/components/activities-table.tsx:53 #: src/features/settings/components/color-scheme-picker.tsx:47 msgid "System" msgstr "Sistema" @@ -2351,11 +2579,11 @@ msgstr "T" msgid "Tap an opponent below to compare" msgstr "Toca un oponente abajo para comparar" -#: src/components/ios-install-prompt.tsx:43 +#: src/components/ios-install-prompt.tsx:48 msgid "Tap Menu (⋮) → Add to Home screen" msgstr "Toca Menú (⋮) → Agregar a pantalla de inicio" -#: src/components/ios-install-prompt.tsx:42 +#: src/components/ios-install-prompt.tsx:47 msgid "Tap Share → Add to Home Screen" msgstr "Toca Compartir → Agregar a pantalla de inicio" @@ -2385,7 +2613,7 @@ msgstr "Detalles del equipo" msgid "Team enrolled successfully!" msgstr "¡Equipo inscrito exitosamente!" -#: src/app/routes/api/teams/upload-logo.ts:92 +#: src/app/routes/api/teams/upload-logo.ts:93 #: src/features/teams/components/team-profile/index.tsx:21 msgid "Team not found" msgstr "Equipo no encontrado" @@ -2419,11 +2647,15 @@ msgstr "Equipos" msgid "Teams created successfully!" msgstr "¡Equipos creados exitosamente!" +#: src/app/routes/_authed/admin/telemetry.tsx:20 +msgid "Telemetry" +msgstr "" + #: src/themes/terminal/manifest.ts:6 msgid "Terminal" msgstr "Terminal" -#: src/app/routes/api/push/test.ts:29 +#: src/app/routes/api/push/test.ts:30 msgid "Test notification — push is working on this device." msgstr "Notificación de prueba: las notificaciones push funcionan en este dispositivo." @@ -2498,6 +2730,10 @@ msgstr "{0, plural, one {El mejor equipo de cada grupo avanzará} other {Los mej msgid "Top {n} advance" msgstr "Los mejores {n} avanzan" +#: src/features/telemetry/components/usage-screen.tsx:191 +msgid "Top functions by call count" +msgstr "" + #: src/features/matches/components/team-head-to-head-sheet.tsx:158 #: src/features/players/components/player-head-to-head-sheet.tsx:193 msgid "Total Cups" @@ -2517,7 +2753,7 @@ msgstr "Torneo creado, pero falló la carga del logo: {0}" msgid "Tournament created successfully!" msgstr "¡Torneo creado exitosamente!" -#: src/app/routes/api/tournaments/upload-logo.ts:93 +#: src/app/routes/api/tournaments/upload-logo.ts:94 msgid "Tournament not found" msgstr "Torneo no encontrado" @@ -2536,7 +2772,7 @@ msgid "Tournament updated successfully!" msgstr "¡Torneo actualizado con éxito!" #: src/app/routes/_authed/tournaments/index.tsx:17 -#: src/features/core/hooks/use-links.ts:21 +#: src/features/core/hooks/use-links.ts:22 #: src/features/teams/components/team-profile/index.tsx:53 #: src/features/teams/components/team-profile/skeleton.tsx:80 msgid "Tournaments" @@ -2550,6 +2786,10 @@ msgstr "Se requiere trackId para la acción playTrack" msgid "Try the new themes" msgstr "Prueba los nuevos temas" +#: src/features/admin/components/dashboard/quiet-boundary.tsx:26 +msgid "Unavailable right now" +msgstr "" + #: src/features/tournaments/components/upcoming-tournament/unenroll-free-agent.tsx:26 #: src/features/tournaments/components/upcoming-tournament/unenroll-team.tsx:34 msgid "Unenroll" @@ -2563,12 +2803,12 @@ msgstr "¿Cancelar inscripción del torneo?" msgid "Unenroll Team" msgstr "Cancelar inscripción del equipo" -#: src/components/DefaultCatchBoundary.tsx:39 +#: src/components/DefaultCatchBoundary.tsx:40 msgid "Unknown error" msgstr "Error desconocido" -#: src/app/routes/api/teams/upload-logo.ts:141 -#: src/app/routes/api/tournaments/upload-logo.ts:139 +#: src/app/routes/api/teams/upload-logo.ts:142 +#: src/app/routes/api/tournaments/upload-logo.ts:140 msgid "Unknown error occurred" msgstr "Ocurrió un error desconocido" @@ -2585,7 +2825,7 @@ msgstr "Jugador desconocido" msgid "Unnamed Player" msgstr "Jugador sin nombre" -#: src/features/tournaments/components/started-tournament/index.tsx:128 +#: src/features/tournaments/components/started-tournament/index.tsx:129 msgid "Upcoming" msgstr "Próximos" @@ -2607,10 +2847,23 @@ msgstr "Actualizar equipo" msgid "Update Tournament" msgstr "Actualizar torneo" -#: src/features/activities/components/activities-table.tsx:176 +#: src/app/routes/_authed/admin/telemetry.tsx:57 +msgid "Usage" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:34 +msgid "Usage, 7 days" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:202 +#: src/features/telemetry/components/client-events-table.tsx:146 msgid "User Agent" msgstr "User Agent" +#: src/features/telemetry/components/client-events-table.tsx:131 +msgid "Value" +msgstr "" + #: src/features/bracket/components/match-card.tsx:201 #: src/features/bracket/components/match-card.tsx:226 msgid "versus" @@ -2645,6 +2898,10 @@ msgstr "Ver predicciones" msgid "Viewport" msgstr "Viewport" +#: src/features/telemetry/components/usage-screen.tsx:211 +msgid "Vitals" +msgstr "" + #: src/app/routes/api/spotify/playback.ts:70 msgid "volumePercent must be a number" msgstr "volumePercent debe ser un número" @@ -2680,6 +2937,10 @@ msgstr "Segmento de entrada ({segmentDuration}s)" msgid "Walkout Song" msgstr "Canción de entrada" +#: src/features/telemetry/components/usage-screen.tsx:165 +msgid "WAU" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:407 msgid "WC" msgstr "COM" @@ -2731,7 +2992,7 @@ msgstr "Tú y 1 más" msgid "You are not authorized to perform this action" msgstr "No tienes autorización para realizar esta acción" -#: src/components/DefaultCatchBoundary.tsx:60 +#: src/components/DefaultCatchBoundary.tsx:62 msgid "You don't have permission to access this page." msgstr "No tienes permiso para acceder a esta página." @@ -2755,7 +3016,7 @@ msgstr "¡Eres el primer agente libre!" msgid "You've been added as a free agent!" msgstr "¡Te agregamos como agente libre!" -#: src/components/DefaultCatchBoundary.tsx:46 +#: src/components/DefaultCatchBoundary.tsx:48 msgid "You've been logged out" msgstr "Se cerró tu sesión" diff --git a/src/locales/ja/messages.po b/src/locales/ja/messages.po index d63374b..9136b9e 100644 --- a/src/locales/ja/messages.po +++ b/src/locales/ja/messages.po @@ -18,7 +18,7 @@ msgid " (Losers)" msgstr " (敗者側)" #. placeholder {0}: activeDevice.volume_percent -#: src/features/spotify/components/spotify-sheet.tsx:163 +#: src/features/spotify/components/spotify-sheet.tsx:162 msgid " (Volume: {0}%)" msgstr " (音量:{0}%)" @@ -26,7 +26,7 @@ msgstr " (音量:{0}%)" msgid "(713) 867-5309" msgstr "(713) 867-5309" -#: src/features/spotify/components/spotify-sheet.tsx:148 +#: src/features/spotify/components/spotify-sheet.tsx:147 msgid "(Active)" msgstr "(アクティブ)" @@ -38,14 +38,14 @@ msgstr "{0, plural, one {#ブラケット参加} other {#ブラケット参加}} #. placeholder {0}: enrolledPlayers.length #. placeholder {0}: players.length #: src/features/players/components/players-activity-table.tsx:100 -#: src/features/tournaments/components/edit-enrolled-players.tsx:135 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:158 msgid "{0, plural, one {# player} other {# players}}" msgstr "{0, plural, one {#人のプレイヤー} other {#人のプレイヤー}}" #. placeholder {0}: enrolledTeams.length #. placeholder {0}: group.teams.length #. placeholder {0}: orderedTeams.length -#: src/features/tournaments/components/edit-enrolled-teams.tsx:154 +#: src/features/tournaments/components/enrollment/team-section.tsx:243 #: src/features/tournaments/components/group-preview.tsx:27 #: src/features/tournaments/components/seed-tournament.tsx:116 #: src/features/tournaments/components/setup-group-stage.tsx:224 @@ -53,10 +53,15 @@ msgid "{0, plural, one {# team} other {# teams}}" msgstr "{0, plural, one {#チーム} other {#チーム}}" #. placeholder {0}: result.totalItems -#: src/features/activities/components/activities-table.tsx:341 +#: src/features/activities/components/activities-table.tsx:125 msgid "{0, plural, one {# total activity} other {# total activities}}" msgstr "{0, plural, one {アクティビティ合計#件} other {アクティビティ合計#件}}" +#. placeholder {0}: result.totalItems +#: src/features/telemetry/components/client-events-table.tsx:87 +msgid "{0, plural, one {# total event} other {# total events}}" +msgstr "" + #. placeholder {0}: selectedConfig.total_group_matches #: src/features/tournaments/components/setup-group-stage.tsx:249 msgid "{0, plural, one {# total group stage match} other {# total group stage matches}}" @@ -73,7 +78,9 @@ msgid "{0, plural, one {# wildcard} other {# wildcards}}" msgstr "{0, plural, one {ワイルドカード#枠} other {ワイルドカード#枠}}" #. placeholder {0}: freeAgents.length -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:126 +#. placeholder {0}: props.count +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:124 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:22 msgid "{0, plural, one {player enrolled} other {players enrolled}}" msgstr "{0, plural, one {人のプレイヤーが登録済み} other {人のプレイヤーが登録済み}}" @@ -88,6 +95,11 @@ msgstr "{0} {1}" msgid "{0} Badge Holders" msgstr "{0}バッジ保有者" +#. placeholder {0}: recentErrors.totalItems +#: src/lib/telemetry/alerts.server.ts:104 +msgid "{0} client errors in the last 15 minutes" +msgstr "" + #. placeholder {0}: match.away?.name #. placeholder {0}: match.home?.name #: src/features/bracket/components/match-form.tsx:90 @@ -131,8 +143,9 @@ msgid "{0}d" msgstr "{0}日" #. placeholder {0}: activity.duration -#: src/features/activities/components/activities-table.tsx:83 -#: src/features/activities/components/activities-table.tsx:163 +#. placeholder {0}: selectedActivity.duration +#: src/features/activities/components/activities-table.tsx:148 +#: src/features/activities/components/activities-table.tsx:193 msgid "{0}ms" msgstr "{0}ms" @@ -145,15 +158,22 @@ msgstr "{count, plural, one {プレイヤー(#)} other {プレイヤー(# msgid "{count, plural, one {Teams (#)} other {Teams (#)}}" msgstr "{count, plural, one {チーム(#)} other {チーム(#)}}" +#: src/lib/telemetry/alerts.server.ts:167 +msgid "{deniedCount} denied admin access attempts in the last 15 minutes" +msgstr "" + #: src/features/players/components/players-activity-table.tsx:44 +#: src/features/telemetry/components/shared/relative-time.tsx:17 msgid "{diffDays}d ago" msgstr "{diffDays}日前" #: src/features/players/components/players-activity-table.tsx:43 +#: src/features/telemetry/components/shared/relative-time.tsx:16 msgid "{diffHours}h ago" msgstr "{diffHours}時間前" #: src/features/players/components/players-activity-table.tsx:42 +#: src/features/telemetry/components/shared/relative-time.tsx:15 msgid "{diffMins}m ago" msgstr "{diffMins}分前" @@ -177,7 +197,11 @@ msgstr "{n, plural, one {#試合保証} other {#試合保証}}" msgid "{n, plural, one {# wildcard} other {# wildcards}}" msgstr "{n, plural, one {#ワイルドカード} other {#ワイルドカード}}" -#: src/app/routes/_authed/admin/tournaments/$id/teams.tsx:23 +#: src/lib/telemetry/alerts.server.ts:154 +msgid "{name} failed {count} times in the last 15 minutes" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/teams.tsx:24 msgid "{name} Teams" msgstr "{name}のチーム" @@ -331,6 +355,10 @@ msgstr "2. 早い提出" msgid "2nd place" msgstr "2位" +#: src/features/telemetry/components/usage-screen.tsx:256 +msgid "30d" +msgstr "" + #: src/features/teams/components/team-form/duration-picker.tsx:22 msgid "30s" msgstr "30秒" @@ -343,6 +371,10 @@ msgstr "3位" msgid "5s" msgstr "5秒" +#: src/features/telemetry/components/usage-screen.tsx:255 +msgid "7d" +msgstr "" + #. placeholder {0}: number?.slice(0, 3) #. placeholder {1}: number?.slice(3, 6) #. placeholder {2}: number?.slice(6) @@ -350,6 +382,11 @@ msgstr "5秒" msgid "A code was sent to +1 ({0}) {1}-{2}" msgstr "認証コードを +1 ({0}) {1}-{2} に送信しました" +#. placeholder {0}: info.message.slice(0, 120) +#: src/lib/telemetry/alerts.server.ts:125 +msgid "A new error appeared: {0}" +msgstr "" + #: src/features/bracket/components/match-report.tsx:304 msgid "a team" msgstr "チーム" @@ -370,7 +407,7 @@ msgstr "アクセントカラー" msgid "Access denied" msgstr "アクセスが拒否されました" -#: src/components/DefaultCatchBoundary.tsx:58 +#: src/components/DefaultCatchBoundary.tsx:60 msgid "Access Denied" msgstr "アクセス拒否" @@ -379,34 +416,33 @@ msgid "Account created successfully!" msgstr "アカウントが作成されました!" #. placeholder {0}: activeDevice.name -#: src/features/spotify/components/spotify-sheet.tsx:161 +#: src/features/spotify/components/spotify-sheet.tsx:160 msgid "Active device: {0}" msgstr "アクティブなデバイス: {0}" -#: src/app/routes/_authed/admin/activities.tsx:21 -#: src/features/admin/components/admin-page.tsx:90 -msgid "Activities" -msgstr "アクティビティ" +#: src/features/admin/components/dashboard/usage-card.tsx:39 +msgid "Active players" +msgstr "" -#: src/features/activities/components/activities-table.tsx:120 +#: src/features/activities/components/activities-table.tsx:159 msgid "Activity Details" msgstr "アクティビティの詳細" -#: src/components/ios-install-prompt.tsx:58 +#: src/components/ios-install-prompt.tsx:63 msgid "Add FLXN to your home screen for a smoother experience" msgstr "FLXNをホーム画面に追加すると、もっと快適に使えます" -#: src/features/tournaments/components/edit-enrolled-players.tsx:117 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:130 msgid "Add Player" msgstr "プレイヤーを追加" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:136 +#: src/features/tournaments/components/enrollment/team-section.tsx:213 msgid "Add Team" msgstr "チームを追加" -#: src/app/routes/_authed/admin.tsx:14 -#: src/app/routes/_authed/admin/index.tsx:9 -#: src/features/core/hooks/use-links.ts:36 +#: src/app/routes/_authed/admin.tsx:15 +#: src/app/routes/_authed/admin/index.tsx:22 +#: src/features/core/hooks/use-links.ts:37 msgid "Admin" msgstr "管理者" @@ -415,7 +451,7 @@ msgid "Aero" msgstr "エアロ" #: src/app/routes/_authed/stats.tsx:59 -#: src/features/activities/components/activities-table.tsx:328 +#: src/features/activities/components/activities-table.tsx:92 #: src/features/players/components/profile/index.tsx:28 msgid "All" msgstr "すべて" @@ -432,7 +468,7 @@ msgstr "グループステージの全試合が終了しました!勝ち上が msgid "ALM" msgstr "ALM" -#: src/components/DefaultCatchBoundary.tsx:92 +#: src/components/DefaultCatchBoundary.tsx:94 msgid "An error occurred while loading this page." msgstr "このページの読み込み中にエラーが発生しました。" @@ -448,6 +484,10 @@ msgstr "予期しないエラーが発生しました。もう一度お試しく msgid "Announce matchup" msgstr "対戦カードを発表" +#: src/features/telemetry/components/client-events-table.tsx:49 +msgid "Anonymous" +msgstr "" + #: src/app/routes/_authed/settings.tsx:35 msgid "Appearance" msgstr "外観" @@ -456,7 +496,7 @@ msgstr "外観" msgid "Are you sure you want to unenroll from this tournament? You can enroll again at any point before the deadline." msgstr "このトーナメントから登録を解除してもよろしいですか?締め切りまではいつでも再登録できます。" -#: src/features/activities/components/activities-table.tsx:200 +#: src/features/activities/components/activities-table.tsx:221 msgid "Arguments" msgstr "引数" @@ -464,7 +504,7 @@ msgstr "引数" msgid "Art Deco" msgstr "アールデコ" -#: src/features/tournaments/components/manage-tournament.tsx:69 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:149 msgid "Assign Partners" msgstr "パートナーを割り当て" @@ -473,12 +513,12 @@ msgstr "パートナーを割り当て" msgid "At least one team must have 10 cups" msgstr "少なくとも一方のチームは10カップである必要があります" -#: src/contexts/spotify-context.tsx:158 +#: src/contexts/spotify-context.tsx:157 msgid "Authentication failed: {error}" msgstr "認証に失敗しました: {error}" #. placeholder {0}: decodeURIComponent(details) -#: src/contexts/spotify-context.tsx:157 +#: src/contexts/spotify-context.tsx:156 msgid "Authentication failed: {error} - {0}" msgstr "認証に失敗しました: {error} - {0}" @@ -520,15 +560,15 @@ msgstr "平均敗差" msgid "Avg Win Margin" msgstr "平均勝差" -#: src/features/admin/components/award-badges.tsx:104 +#: src/features/admin/components/award-badges.tsx:98 msgid "Award Badge" msgstr "バッジを付与" -#: src/features/admin/components/admin-page.tsx:55 +#: src/features/admin/components/dashboard/tools-list.tsx:54 msgid "Award Badges" msgstr "バッジを付与" -#: src/features/admin/components/award-badges.tsx:65 +#: src/features/admin/components/award-badges.tsx:59 msgid "Award Manual Badge" msgstr "手動でバッジを付与" @@ -554,23 +594,23 @@ msgstr "AWM" msgid "Back" msgstr "戻る" -#: src/features/admin/components/award-badges.tsx:37 +#: src/features/admin/components/award-badges.tsx:33 msgid "Badge awarded to {playerName}" msgstr "{playerName}にバッジを付与しました" -#: src/features/admin/components/admin-page.tsx:86 +#: src/features/admin/components/dashboard/tools-list.tsx:85 msgid "Badge recalculation failed. Check the server logs." msgstr "バッジの再計算に失敗しました。サーバーログを確認してください。" -#: src/features/admin/components/admin-page.tsx:39 +#: src/features/admin/components/dashboard/tools-list.tsx:38 msgid "Badge recalculation is already running" msgstr "バッジの再計算はすでに実行中です" -#: src/features/admin/components/admin-page.tsx:38 +#: src/features/admin/components/dashboard/tools-list.tsx:37 msgid "Badge recalculation started in the background" msgstr "バックグラウンドでバッジの再計算を開始しました" -#: src/features/admin/components/award-badges.tsx:70 +#: src/features/admin/components/award-badges.tsx:64 msgid "Badge Type" msgstr "バッジの種類" @@ -592,12 +632,12 @@ msgid "Both teams cannot have 10 cups" msgstr "両チーム同時に10カップにはなりません" #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:150 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:151 msgid "Bracket" msgstr "ブラケット" #: src/app/routes/_authed/admin/preview.tsx:13 -#: src/features/admin/components/admin-page.tsx:102 +#: src/features/admin/components/dashboard/tools-list.tsx:96 msgid "Bracket Preview" msgstr "ブラケットプレビュー" @@ -614,6 +654,10 @@ msgstr "ブルータル" msgid "CA" msgstr "CA" +#: src/features/admin/components/dashboard/now-strip.tsx:52 +msgid "Calls today" +msgstr "" + #: src/components/sheet/slide-panel/slide-panel.tsx:41 #: src/components/sheet/slide-panel/slide-panel.tsx:190 #: src/features/bracket/components/match-form.tsx:160 @@ -633,11 +677,12 @@ msgstr "キャンセル" msgid "Cannot create groups" msgstr "グループを作成できません" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:138 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:136 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:41 msgid "Cannot create teams with an odd number of players. Please have one player unenroll." msgstr "参加者が奇数のためチームを作成できません。どなたか1人、参加を取り消してください。" -#: src/features/spotify/components/spotify-controls-bar.tsx:144 +#: src/features/spotify/components/spotify-controls-bar.tsx:143 msgid "Capture current state" msgstr "現在の状態をキャプチャ" @@ -659,7 +704,7 @@ msgstr "チャンピオン" msgid "Change Logo" msgstr "ロゴを変更" -#: src/features/admin/components/award-badges.tsx:87 +#: src/features/admin/components/award-badges.tsx:81 msgid "Choose a player" msgstr "プレイヤーを選択" @@ -671,6 +716,18 @@ msgstr "クレイ" msgid "Clear selected player" msgstr "選択したプレイヤーを解除" +#: src/lib/telemetry/alerts.server.ts:103 +msgid "Client error spike" +msgstr "" + +#: src/features/admin/components/dashboard/errors-card.tsx:21 +msgid "Client errors" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:203 +msgid "Client errors per day" +msgstr "" + #: src/components/sheet/modal.tsx:35 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169 #: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36 @@ -717,7 +774,7 @@ msgstr "確認" msgid "Confirm {scoreText}" msgstr "{scoreText}を確認" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:175 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:173 msgid "Confirm & Create Teams" msgstr "確認してチームを作成" @@ -738,15 +795,15 @@ msgstr "設定を確認" msgid "Confirm Unenrollment" msgstr "参加取り消しを確認" -#: src/features/spotify/components/spotify-controls-bar.tsx:52 +#: src/features/spotify/components/spotify-controls-bar.tsx:51 msgid "Connect Spotify" msgstr "Spotifyと連携" -#: src/features/spotify/components/spotify-sheet.tsx:87 +#: src/features/spotify/components/spotify-sheet.tsx:86 msgid "Connect with Spotify" msgstr "Spotifyと連携する" -#: src/features/spotify/components/spotify-sheet.tsx:75 +#: src/features/spotify/components/spotify-sheet.tsx:74 msgid "Connect your Spotify account" msgstr "Spotifyアカウントを連携しましょう" @@ -796,7 +853,8 @@ msgstr "チームを作成" msgid "Create Tournament" msgstr "トーナメントを作成" -#: src/features/activities/components/activities-table.tsx:168 +#: src/features/activities/components/activities-table.tsx:198 +#: src/features/telemetry/components/client-events-table.tsx:149 msgid "Created" msgstr "作成日" @@ -825,6 +883,15 @@ msgstr "決めたカップ" msgid "Custom Hex Code" msgstr "カスタムHEXコード" +#: src/features/admin/components/dashboard/usage-card.tsx:41 +#: src/features/telemetry/components/usage-screen.tsx:159 +msgid "Daily active players" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:47 +msgid "Daily page views" +msgstr "" + #: src/features/settings/components/color-scheme-picker.tsx:39 msgid "Dark" msgstr "ダーク" @@ -833,7 +900,7 @@ msgstr "ダーク" msgid "Dark Academia" msgstr "ダークアカデミア" -#: src/features/activities/components/activities-table.tsx:356 +#: src/features/activities/components/activities-table.tsx:119 msgid "Date" msgstr "日付" @@ -845,6 +912,10 @@ msgstr "深海" msgid "Default" msgstr "デフォルト" +#: src/lib/telemetry/alerts.server.ts:166 +msgid "Denied access attempt" +msgstr "" + #: src/features/tournaments/components/tournament-form.tsx:150 msgid "Description" msgstr "説明" @@ -853,11 +924,11 @@ msgstr "説明" msgid "deviceId is required for transfer action" msgstr "転送操作にはdeviceIdが必要です" -#: src/features/spotify/components/spotify-sheet.tsx:188 +#: src/features/spotify/components/spotify-sheet.tsx:187 msgid "Disconnect Spotify" msgstr "Spotifyの連携を解除" -#: src/components/ios-install-prompt.tsx:65 +#: src/components/ios-install-prompt.tsx:70 msgid "Dismiss" msgstr "閉じる" @@ -871,28 +942,25 @@ msgstr "これで合っていますか?" msgid "Downstream matches were reset because the correction changed who advances." msgstr "修正により勝ち上がりの相手が変わったため、以降の試合はリセットされました。" -#: src/features/activities/components/activities-table.tsx:161 -#: src/features/activities/components/activities-table.tsx:372 +#: src/features/activities/components/activities-table.tsx:120 +#: src/features/activities/components/activities-table.tsx:190 msgid "Duration" msgstr "所要時間" +#: src/features/telemetry/components/usage-screen.tsx:233 +msgid "Duration p50 / p95" +msgstr "" + #: src/features/tournaments/components/tournament-stats.tsx:176 msgid "Earlier regional formats aren't supported in the app and order of matches or displayed winners may be unreliable." msgstr "以前の地域フォーマットはアプリでサポートされていないため、試合の順序や表示される勝者が正しくない場合があります。" #. placeholder {0}: team.name #: src/features/teams/components/manage-teams.tsx:35 +#: src/features/tournaments/components/enrollment/team-section.tsx:96 msgid "Edit {0}" msgstr "{0}を編集" -#: src/features/tournaments/components/manage-tournament.tsx:117 -msgid "Edit Enrolled Teams" -msgstr "参加チームを編集" - -#: src/features/tournaments/components/manage-tournament.tsx:63 -msgid "Edit Enrollments" -msgstr "参加登録を編集" - #: src/features/bracket/components/match-card.tsx:392 msgid "Edit Match" msgstr "試合を編集" @@ -906,17 +974,18 @@ msgstr "試合スコアを編集" msgid "Edit Prediction" msgstr "予想を編集" -#: src/features/tournaments/components/manage-tournament.tsx:58 -#: src/features/tournaments/components/manage-tournament.tsx:109 +#: src/features/tournaments/components/manage-tournament.tsx:65 +#: src/features/tournaments/components/manage-tournament.tsx:92 msgid "Edit Rules" msgstr "ルールを編集" #: src/features/teams/components/manage-teams.tsx:35 +#: src/features/tournaments/components/enrollment/team-section.tsx:96 msgid "Edit Team" msgstr "チームを編集" -#: src/features/tournaments/components/manage-tournament.tsx:53 -#: src/features/tournaments/components/manage-tournament.tsx:89 +#: src/features/tournaments/components/manage-tournament.tsx:60 +#: src/features/tournaments/components/manage-tournament.tsx:72 msgid "Edit Tournament" msgstr "トーナメントを編集" @@ -940,6 +1009,10 @@ msgstr "終了日(任意)" msgid "End Match" msgstr "試合を終了" +#: src/features/telemetry/components/usage-screen.tsx:156 +msgid "Engagement" +msgstr "" + #: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:26 msgid "Enroll" msgstr "参加登録" @@ -968,12 +1041,13 @@ msgstr "チームを登録" msgid "Enrolled" msgstr "登録済み" -#: src/features/tournaments/components/edit-enrolled-players.tsx:132 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:155 #: src/features/tournaments/components/upcoming-tournament/enrolled-players-list-button.tsx:39 msgid "Enrolled Players" msgstr "登録済みプレイヤー" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:151 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28 +#: src/features/tournaments/components/enrollment/team-section.tsx:240 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145 #: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31 msgid "Enrolled Teams" @@ -983,16 +1057,22 @@ msgstr "登録済みチーム" msgid "Enrolling as a free agent adds you to a pool of players looking for teammates." msgstr "フリーエージェントとして登録すると、チームメイトを探しているプレイヤーのプールに追加されます。" +#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33 +#: src/features/admin/components/dashboard/tournament-card.tsx:61 #: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:68 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:69 msgid "Enrollment" msgstr "参加登録" +#: src/features/tournaments/components/manage-tournament.tsx:55 +msgid "Enrollment & Teams" +msgstr "" + #: src/features/tournaments/components/tournament-form.tsx:196 msgid "Enrollment Due" msgstr "登録締切" -#: src/features/tournaments/components/upcoming-tournament/index.tsx:80 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:81 msgid "Enrollment has been closed for this tournament." msgstr "このトーナメントの参加登録は締め切られました。" @@ -1013,14 +1093,39 @@ msgstr "名前を入力" msgid "Enter your phone number" msgstr "電話番号を入力" -#: src/features/activities/components/activities-table.tsx:187 +#: src/features/telemetry/components/error-browser/error-group-row.tsx:29 +msgid "Error group reopened" +msgstr "" + +#: src/features/telemetry/components/error-browser/error-group-row.tsx:29 +msgid "Error group resolved" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:207 msgid "Error Message" msgstr "エラーメッセージ" -#: src/components/DefaultCatchBoundary.tsx:96 +#: src/components/DefaultCatchBoundary.tsx:98 msgid "Error: {errorMessage}" msgstr "エラー: {errorMessage}" +#: src/app/routes/_authed/admin/telemetry.tsx:51 +#: src/features/telemetry/components/usage-screen.tsx:200 +msgid "Errors" +msgstr "" + +#: src/features/telemetry/components/client-events-table.tsx:113 +msgid "Event Details" +msgstr "" + +#: src/features/telemetry/components/client-events-table.tsx:70 +msgid "Event name" +msgstr "" + +#: src/app/routes/_authed/admin/telemetry.tsx:48 +msgid "Events" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:368 msgid "Expand standings" msgstr "順位表を展開" @@ -1029,16 +1134,12 @@ msgstr "順位表を展開" msgid "eyes" msgstr "目" -#: src/features/activities/components/activities-table.tsx:145 +#: src/features/activities/components/activities-table.tsx:181 msgid "Failed" msgstr "失敗" -#: src/features/admin/components/award-badges.tsx:41 -msgid "Failed to award badge" -msgstr "バッジの付与に失敗しました" - #: src/app/routes/api/spotify/capture.ts:54 -#: src/contexts/spotify-context.tsx:427 +#: src/contexts/spotify-context.tsx:426 msgid "Failed to capture playback state" msgstr "再生状態の取得に失敗しました" @@ -1054,7 +1155,7 @@ msgstr "チームの作成に失敗しました" msgid "Failed to create tournament" msgstr "トーナメントの作成に失敗しました" -#: src/contexts/spotify-context.tsx:335 +#: src/contexts/spotify-context.tsx:334 msgid "Failed to get devices" msgstr "デバイスの取得に失敗しました" @@ -1068,19 +1169,19 @@ msgid "Failed to load team" msgstr "チームの読み込みに失敗しました" #: src/app/routes/api/spotify/resume.ts:54 -#: src/contexts/spotify-context.tsx:447 +#: src/contexts/spotify-context.tsx:446 msgid "Failed to resume playback state" msgstr "再生状態の再開に失敗しました" -#: src/contexts/spotify-context.tsx:360 +#: src/contexts/spotify-context.tsx:359 msgid "Failed to set active device" msgstr "アクティブなデバイスの設定に失敗しました" -#: src/contexts/spotify-context.tsx:314 +#: src/contexts/spotify-context.tsx:313 msgid "Failed to set volume" msgstr "音量の設定に失敗しました" -#: src/features/admin/components/admin-page.tsx:42 +#: src/features/admin/components/dashboard/tools-list.tsx:41 msgid "Failed to start badge recalculation" msgstr "バッジの再計算を開始できませんでした" @@ -1092,19 +1193,19 @@ msgstr "チームの更新に失敗しました" msgid "Failed to update tournament" msgstr "トーナメントの更新に失敗しました" -#: src/app/routes/api/teams/upload-logo.ts:140 -#: src/app/routes/api/tournaments/upload-logo.ts:138 +#: src/app/routes/api/teams/upload-logo.ts:141 +#: src/app/routes/api/tournaments/upload-logo.ts:139 #: src/features/teams/components/team-form/index.tsx:148 #: src/features/tournaments/components/tournament-form.tsx:88 msgid "Failed to upload logo" msgstr "ロゴのアップロードに失敗しました" -#: src/features/activities/components/activities-table.tsx:330 +#: src/features/activities/components/activities-table.tsx:94 msgid "Failure" msgstr "失敗" -#: src/app/routes/api/teams/upload-logo.ts:79 -#: src/app/routes/api/tournaments/upload-logo.ts:80 +#: src/app/routes/api/teams/upload-logo.ts:80 +#: src/app/routes/api/tournaments/upload-logo.ts:81 msgid "File too large. Maximum size is 10MB." msgstr "ファイルサイズが大きすぎます。最大サイズは10MBです。" @@ -1112,7 +1213,7 @@ msgstr "ファイルサイズが大きすぎます。最大サイズは10MBで msgid "Final" msgstr "決勝" -#: src/features/tournaments/components/started-tournament/index.tsx:114 +#: src/features/tournaments/components/started-tournament/index.tsx:115 msgid "Final Results" msgstr "最終結果" @@ -1150,11 +1251,19 @@ msgstr "フリーエージェント登録" msgid "Free Agents" msgstr "フリーエージェント" -#: src/features/activities/components/activities-table.tsx:124 +#: src/features/telemetry/components/usage-screen.tsx:226 +msgid "Function" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:165 msgid "Function Name" msgstr "関数名" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:148 +#: src/app/routes/_authed/admin/telemetry.tsx:45 +msgid "Functions" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:146 msgid "Generate Random Pairings" msgstr "ランダムペアリングを生成" @@ -1163,11 +1272,15 @@ msgstr "ランダムペアリングを生成" msgid "Go back" msgstr "戻る" -#: src/components/DefaultCatchBoundary.tsx:67 -#: src/components/DefaultCatchBoundary.tsx:132 +#: src/components/DefaultCatchBoundary.tsx:69 +#: src/components/DefaultCatchBoundary.tsx:134 msgid "Go Back" msgstr "戻る" +#: src/features/telemetry/components/usage-screen.tsx:54 +msgid "Good" +msgstr "" + #: src/themes/seventies/manifest.ts:6 msgid "Groovy" msgstr "グルーヴィー" @@ -1229,13 +1342,13 @@ msgstr "参加したことはありますか?" msgid "Head to Head" msgstr "対戦成績" -#: src/components/DefaultCatchBoundary.tsx:103 +#: src/components/DefaultCatchBoundary.tsx:105 msgid "Hide details" msgstr "詳細を隠す" -#: src/components/DefaultCatchBoundary.tsx:74 -#: src/components/DefaultCatchBoundary.tsx:125 -#: src/features/core/hooks/use-links.ts:11 +#: src/components/DefaultCatchBoundary.tsx:76 +#: src/components/DefaultCatchBoundary.tsx:127 +#: src/features/core/hooks/use-links.ts:12 msgid "Home" msgstr "ホーム" @@ -1263,7 +1376,7 @@ msgstr "予想のスコアの仕組み" #. placeholder {0}: response.status #. placeholder {1}: response.statusText -#: src/contexts/spotify-context.tsx:65 +#: src/contexts/spotify-context.tsx:64 msgid "HTTP {0}: {1}" msgstr "HTTP {0}: {1}" @@ -1275,6 +1388,10 @@ msgstr "初めて参加する場合は<0>新しいプレイヤーを、そ msgid "Important: Enrolling as a free agent does not guarantee a tournament spot. To secure a spot, one team member must register through the app and select a walkout song." msgstr "重要: フリーエージェントとして登録しても、トーナメントへの参加枠は保証されません。参加枠を確保するには、チームメンバーの1人がアプリから登録し、ウォークアウトソングを選択する必要があります。" +#: src/features/telemetry/components/error-browser/error-browser.tsx:56 +msgid "Include resolved" +msgstr "" + #: src/features/login/components/code-prompt.tsx:43 msgid "Incorrect code" msgstr "コードが正しくありません" @@ -1283,8 +1400,8 @@ msgstr "コードが正しくありません" msgid "Invalid action" msgstr "無効な操作です" -#: src/app/routes/api/teams/upload-logo.ts:65 -#: src/app/routes/api/tournaments/upload-logo.ts:66 +#: src/app/routes/api/teams/upload-logo.ts:66 +#: src/app/routes/api/tournaments/upload-logo.ts:67 msgid "Invalid file type. Only JPEG, PNG and GIF are allowed." msgstr "無効なファイル形式です。JPEG、PNG、GIFのみ使用できます。" @@ -1292,8 +1409,8 @@ msgstr "無効なファイル形式です。JPEG、PNG、GIFのみ使用でき msgid "Invalid hex color format" msgstr "無効なHEXカラー形式です" -#: src/app/routes/api/teams/upload-logo.ts:33 -#: src/app/routes/api/tournaments/upload-logo.ts:34 +#: src/app/routes/api/teams/upload-logo.ts:34 +#: src/app/routes/api/tournaments/upload-logo.ts:35 msgid "Invalid input" msgstr "無効な入力です" @@ -1302,10 +1419,11 @@ msgid "Invalid request" msgstr "無効なリクエストです" #: src/features/players/components/players-activity-table.tsx:41 +#: src/features/telemetry/components/shared/relative-time.tsx:14 msgid "Just now" msgstr "たった今" -#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:166 +#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:107 msgid "Knockout Bracket" msgstr "ノックアウトブラケット" @@ -1347,7 +1465,7 @@ msgid "Last name must be 3-20 characters long and contain only letters" msgstr "姓は3〜20文字の英字のみで入力してください" #. placeholder {0}: migrationStatus.result.totalBadgesEarned -#: src/features/admin/components/admin-page.tsx:74 +#: src/features/admin/components/dashboard/tools-list.tsx:73 msgid "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}" msgstr "前回の再計算:{0, plural, one {# 個のバッジを獲得} other {# 個のバッジを獲得}}" @@ -1359,7 +1477,7 @@ msgstr "ライト" msgid "lip" msgstr "唇" -#: src/features/tournaments/components/started-tournament/index.tsx:121 +#: src/features/tournaments/components/started-tournament/index.tsx:122 msgid "Live Matches" msgstr "ライブ試合" @@ -1381,8 +1499,8 @@ msgstr "場所は必須です" msgid "Logo" msgstr "ロゴ" -#: src/app/routes/api/teams/upload-logo.ts:46 -#: src/app/routes/api/tournaments/upload-logo.ts:47 +#: src/app/routes/api/teams/upload-logo.ts:47 +#: src/app/routes/api/tournaments/upload-logo.ts:48 msgid "Logo file is required" msgstr "ロゴファイルは必須です" @@ -1420,26 +1538,24 @@ msgstr "予想する" msgid "Make Your Prediction" msgstr "予想を入力" +#: src/features/admin/components/dashboard/tournament-card.tsx:68 #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:89 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:143 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:144 msgid "Manage" msgstr "管理" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:28 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:29 #: src/app/routes/_authed/admin/tournaments/$id/index.tsx:23 msgid "Manage {name}" msgstr "{name}を管理" -#: src/features/tournaments/components/manage-tournament.tsx:117 -msgid "Manage Enrollments" -msgstr "登録を管理" - -#: src/features/tournaments/components/manage-tournament.tsx:76 +#: src/features/tournaments/components/enrollment/team-section.tsx:234 msgid "Manage Team Songs/Logos" msgstr "チームの曲・ロゴを管理" #: src/app/routes/_authed/admin/tournaments/index.tsx:17 -#: src/features/admin/components/admin-page.tsx:50 +#: src/features/admin/components/dashboard/tools-list.tsx:49 +#: src/features/admin/components/dashboard/tournament-card.tsx:25 msgid "Manage Tournaments" msgstr "トーナメント管理" @@ -1450,6 +1566,10 @@ msgstr "トーナメント管理" msgid "margin" msgstr "得点差" +#: src/features/telemetry/components/error-browser/error-group-row.tsx:98 +msgid "Mark resolved" +msgstr "" + #. placeholder {0}: match.order #. placeholder {1}: match.round + 1 #: src/features/bracket/components/match-dock.tsx:126 @@ -1514,11 +1634,15 @@ msgstr "対戦カード" msgid "Matchup details" msgstr "対戦カードの詳細" +#: src/features/telemetry/components/usage-screen.tsx:169 +msgid "MAU" +msgstr "" + #: src/features/players/components/league-head-to-head.tsx:120 msgid "Me" msgstr "自分" -#: src/features/admin/components/admin-page.tsx:60 +#: src/features/admin/components/dashboard/tools-list.tsx:59 msgid "Migrate Badge Progress" msgstr "バッジ進捗を移行" @@ -1532,6 +1656,7 @@ msgid "MMR Calculation:" msgstr "MMR計算:" #: src/features/teams/components/team-form/index.tsx:200 +#: src/features/telemetry/components/client-events-table.tsx:119 #: src/features/tournaments/components/tournament-form.tsx:137 msgid "Name" msgstr "名前" @@ -1545,7 +1670,8 @@ msgstr "名前を入力してください" msgid "Name updated successfully!" msgstr "名前を更新しました!" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:132 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:130 +#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:35 msgid "Need at least 2 players to create teams" msgstr "チームを作成するには2人以上のプレイヤーが必要です" @@ -1554,6 +1680,10 @@ msgstr "チームを作成するには2人以上のプレイヤーが必要で msgid "Need at least 4 teams to create a group stage format. Current team count: {0}" msgstr "グループステージ形式を作成するには4チーム以上が必要です。現在のチーム数: {0}" +#: src/features/telemetry/components/usage-screen.tsx:56 +msgid "Needs improvement" +msgstr "" + #: src/features/reactions/components/emoji-picker.tsx:23 msgid "nerd" msgstr "オタク" @@ -1567,6 +1697,7 @@ msgid "Neumorphic" msgstr "ネウモーフィズム" #: src/features/players/components/players-activity-table.tsx:27 +#: src/features/telemetry/components/shared/relative-time.tsx:6 msgid "Never" msgstr "なし" @@ -1574,6 +1705,10 @@ msgstr "なし" msgid "Never active" msgstr "アクティビティなし" +#: src/lib/telemetry/alerts.server.ts:124 +msgid "New client error" +msgstr "" + #: src/features/login/components/player-prompt/new-player-button.tsx:18 msgid "New Player" msgstr "新しいプレイヤー" @@ -1582,7 +1717,7 @@ msgstr "新しいプレイヤー" msgid "Next match" msgstr "次の試合" -#: src/features/spotify/components/spotify-controls-bar.tsx:130 +#: src/features/spotify/components/spotify-controls-bar.tsx:129 msgid "Next track" msgstr "次のトラック" @@ -1597,11 +1732,11 @@ msgstr "アクセストークンが見つかりません" msgid "No active device found. Please select a device first." msgstr "アクティブなデバイスが見つかりません。先にデバイスを選択してください。" -#: src/features/spotify/components/spotify-controls-bar.tsx:204 +#: src/features/spotify/components/spotify-controls-bar.tsx:203 msgid "No active device. Please select a device in settings." msgstr "アクティブなデバイスがありません。設定でデバイスを選択してください。" -#: src/features/tournaments/components/started-tournament/index.tsx:142 +#: src/features/tournaments/components/started-tournament/index.tsx:143 msgid "No active matches" msgstr "進行中の試合はありません" @@ -1609,18 +1744,26 @@ msgstr "進行中の試合はありません" msgid "No active playback to capture" msgstr "キャプチャする再生中のプレイバックがありません" -#: src/features/activities/components/activities-table.tsx:234 +#: src/features/activities/components/activities-table.tsx:132 msgid "No Activities Found" msgstr "アクティビティが見つかりません" +#: src/features/admin/components/dashboard/activity-feed.tsx:78 +msgid "No activity yet" +msgstr "" + #: src/features/badges/components/badge-stats-table.tsx:45 msgid "No Badges Available" msgstr "利用可能なバッジがありません" -#: src/features/spotify/components/spotify-sheet.tsx:155 +#: src/features/spotify/components/spotify-sheet.tsx:154 msgid "No devices found." msgstr "デバイスが見つかりません。" +#: src/features/telemetry/components/client-events-table.tsx:94 +msgid "No Events Found" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:294 msgid "No groups have been created yet" msgstr "まだグループが作成されていません" @@ -1637,7 +1780,7 @@ msgstr "プレイヤーのアクティビティが見つかりません" msgid "No players available" msgstr "利用可能なプレイヤーがいません" -#: src/features/tournaments/components/edit-enrolled-players.tsx:145 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:168 #: src/features/tournaments/components/upcoming-tournament/enrolled-players-list-button.tsx:42 msgid "No players enrolled yet" msgstr "まだプレイヤーが登録されていません" @@ -1668,7 +1811,7 @@ msgstr "スナップショットが提供されていません" msgid "No song selected" msgstr "曲が選択されていません" -#: src/features/spotify/components/spotify-controls-bar.tsx:157 +#: src/features/spotify/components/spotify-controls-bar.tsx:156 msgid "No state captured" msgstr "キャプチャされた状態がありません" @@ -1689,7 +1832,7 @@ msgstr "割り当てられたチームがありません" msgid "No Teams Enrolled" msgstr "登録されたチームがありません" -#: src/features/tournaments/components/edit-enrolled-teams.tsx:164 +#: src/features/tournaments/components/enrollment/team-section.tsx:253 msgid "No teams enrolled yet" msgstr "まだチームが登録されていません" @@ -1701,10 +1844,19 @@ msgstr "「{search}」に一致するチームが見つかりません" msgid "No tournaments found" msgstr "トーナメントが見つかりません" +#: src/features/admin/components/dashboard/tournament-card.tsx:18 +msgid "No tournaments yet" +msgstr "" + #: src/features/tournaments/components/tournament-card-list.tsx:40 msgid "No Tournaments Yet" msgstr "トーナメントはまだありません" +#: src/features/admin/components/dashboard/errors-card.tsx:53 +#: src/features/telemetry/components/error-browser/error-browser.tsx:27 +msgid "No unresolved errors" +msgstr "" + #: src/features/predictions/components/prediction-leaderboard.tsx:136 msgid "Nobody made a prediction for this tournament." msgstr "このトーナメントで予想をした人はいません。" @@ -1717,6 +1869,10 @@ msgstr "違う" msgid "Not right — enter our score" msgstr "違う — スコアを入力" +#: src/features/telemetry/components/error-browser/error-browser.tsx:28 +msgid "Nothing has broken in the last 30 days. Keep it up." +msgstr "" + #: src/features/settings/components/notifications-section.tsx:18 #: src/features/settings/components/notifications-section.tsx:59 msgid "Notifications" @@ -1738,7 +1894,7 @@ msgstr "このデバイスでは通知が無効になっています" msgid "Notifications enabled on this device" msgstr "このデバイスでは通知が有効になっています" -#: src/features/spotify/components/spotify-sheet.tsx:96 +#: src/features/spotify/components/spotify-sheet.tsx:95 msgid "Now Playing" msgstr "再生中" @@ -1758,7 +1914,15 @@ msgstr "登録が完了すると、他のフリーエージェントとその電 msgid "One time code" msgstr "ワンタイムコード" -#: src/features/admin/components/admin-page.tsx:95 +#: src/features/admin/components/dashboard/now-strip.tsx:44 +msgid "Online now" +msgstr "" + +#: src/features/admin/components/dashboard/now-strip.tsx:46 +msgid "Open errors" +msgstr "" + +#: src/features/admin/components/dashboard/tools-list.tsx:89 msgid "Open Pocketbase" msgstr "Pocketbaseを開く" @@ -1767,7 +1931,7 @@ msgid "Opponent" msgstr "対戦相手" #: src/features/tournaments/components/upcoming-tournament/enroll-team/team-selection-view.tsx:60 -#: src/features/tournaments/components/upcoming-tournament/index.tsx:92 +#: src/features/tournaments/components/upcoming-tournament/index.tsx:93 msgid "or" msgstr "または" @@ -1800,7 +1964,23 @@ msgstr "概要" msgid "owo" msgstr "owo" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:157 +#: src/features/telemetry/components/usage-screen.tsx:97 +msgid "p50" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:113 +msgid "p95" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:45 +msgid "Page views" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:177 +msgid "Page views by route" +msgstr "" + +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:155 msgid "Partner Assignments" msgstr "パートナー割り当て" @@ -1808,7 +1988,11 @@ msgstr "パートナー割り当て" msgid "Partners will be randomly assigned when enrollment closes" msgstr "登録が締め切られると、パートナーはランダムに割り当てられます" -#: src/features/spotify/components/spotify-controls-bar.tsx:117 +#: src/features/telemetry/components/client-events-table.tsx:122 +msgid "Path" +msgstr "" + +#: src/features/spotify/components/spotify-controls-bar.tsx:116 msgid "Pause" msgstr "一時停止" @@ -1839,7 +2023,7 @@ msgstr "先に前の試合を選んでください — これらのチームは msgid "PICKS" msgstr "PICKS" -#: src/features/spotify/components/spotify-controls-bar.tsx:117 +#: src/features/spotify/components/spotify-controls-bar.tsx:116 msgid "Play" msgstr "再生" @@ -1847,23 +2031,22 @@ msgstr "再生" msgid "Playback control failed" msgstr "再生コントロールに失敗しました" -#: src/features/activities/components/activities-table.tsx:154 -#: src/features/admin/components/award-badges.tsx:35 +#: src/features/activities/components/activities-table.tsx:98 +#: src/features/activities/components/activities-table.tsx:188 +#: src/features/admin/components/award-badges.tsx:31 +#: src/features/telemetry/components/client-events-table.tsx:73 +#: src/features/telemetry/components/client-events-table.tsx:120 msgid "Player" msgstr "プレイヤー" -#: src/features/teams/components/team-form/players-picker.tsx:45 +#: src/features/teams/components/team-form/players-picker.tsx:46 msgid "Player 1" msgstr "プレイヤー1" -#: src/features/teams/components/team-form/players-picker.tsx:53 +#: src/features/teams/components/team-form/players-picker.tsx:54 msgid "Player 2" msgstr "プレイヤー2" -#: src/app/routes/_authed/admin/activities.tsx:59 -msgid "Player Activity" -msgstr "プレイヤーアクティビティ" - #: src/features/login/components/player-prompt/index.tsx:46 msgid "Player already exists" msgstr "プレイヤーは既に存在します" @@ -1880,6 +2063,7 @@ msgstr "プレイヤーを削除しました" msgid "Player Stats" msgstr "プレイヤースタッツ" +#: src/app/routes/_authed/admin/telemetry.tsx:54 #: src/features/teams/components/team-profile/index.tsx:29 msgid "Players" msgstr "プレイヤー" @@ -1889,10 +2073,14 @@ msgid "Players are required" msgstr "プレイヤーの選択が必要です" #. placeholder {0}: activeDevice.name -#: src/features/spotify/components/spotify-controls-bar.tsx:175 +#: src/features/spotify/components/spotify-controls-bar.tsx:174 msgid "Playing on {0}" msgstr "{0}で再生中" +#: src/features/telemetry/components/usage-screen.tsx:58 +msgid "Poor" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:314 msgid "Populate Knockout Bracket" msgstr "ノックアウトブラケットを作成" @@ -1919,11 +2107,11 @@ msgstr "予想受付中" msgid "Previous match" msgstr "前の試合" -#: src/features/spotify/components/spotify-controls-bar.tsx:105 +#: src/features/spotify/components/spotify-controls-bar.tsx:104 msgid "Previous track" msgstr "前のトラック" -#: src/features/core/hooks/use-links.ts:27 +#: src/features/core/hooks/use-links.ts:28 msgid "Profile" msgstr "プロフィール" @@ -1931,6 +2119,10 @@ msgstr "プロフィール" msgid "Progress " msgstr "進行状況 " +#: src/features/telemetry/components/client-events-table.tsx:136 +msgid "Props" +msgstr "" + #: src/app/routes/_authed/tournaments/$id.predictions_.$playerId.tsx:106 #: src/features/predictions/components/prediction-leaderboard.tsx:261 msgid "PTS" @@ -1944,7 +2136,7 @@ msgstr "Q" msgid "Quest Log" msgstr "クエスト" -#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:167 +#: src/app/routes/_authed/admin/tournaments/$id/assign-partners.tsx:165 msgid "Re-roll" msgstr "再抽選" @@ -1954,10 +2146,14 @@ msgstr "リアクション" #. placeholder {0}: migrationStatus.playersProcessed #. placeholder {1}: migrationStatus.totalPlayers -#: src/features/admin/components/admin-page.tsx:67 +#: src/features/admin/components/dashboard/tools-list.tsx:66 msgid "Recalculating badges in the background ({0}/{1})" msgstr "バックグラウンドでバッジを再計算中({0}/{1})" +#: src/features/admin/components/dashboard/activity-feed.tsx:34 +msgid "Recent activity" +msgstr "" + #: src/features/tournaments/components/started-tournament/sections/recent-results.tsx:34 msgid "Recently finished" msgstr "最近終了した試合" @@ -1972,6 +2168,10 @@ msgstr "地域" msgid "Regional Tournament" msgstr "地域トーナメント" +#: src/features/telemetry/components/error-browser/error-group-row.tsx:98 +msgid "Reopen" +msgstr "" + #: src/features/bracket/components/match-report.tsx:127 msgid "Report cleared" msgstr "報告を取り消しました" @@ -1981,11 +2181,15 @@ msgstr "報告を取り消しました" msgid "Report Score" msgstr "スコアを報告" -#: src/contexts/spotify-context.tsx:60 +#: src/contexts/spotify-context.tsx:59 msgid "Request failed" msgstr "リクエストに失敗しました" -#: src/features/spotify/components/spotify-controls-bar.tsx:157 +#: src/features/telemetry/components/error-browser/error-group-row.tsx:63 +msgid "Resolved" +msgstr "" + +#: src/features/spotify/components/spotify-controls-bar.tsx:156 msgid "Restore captured state" msgstr "キャプチャした状態を復元" @@ -1993,7 +2197,7 @@ msgstr "キャプチャした状態を復元" msgid "Results" msgstr "結果" -#: src/components/DefaultCatchBoundary.tsx:117 +#: src/components/DefaultCatchBoundary.tsx:119 msgid "Retry" msgstr "再試行" @@ -2010,16 +2214,21 @@ msgstr "大笑い" msgid "Round {0}" msgstr "ラウンド{0}" +#: src/features/telemetry/components/client-events-table.tsx:125 +msgid "Route" +msgstr "" + #: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:142 #: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:23 msgid "Rules" msgstr "ルール" -#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:38 +#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:36 msgid "Run {name}" msgstr "{name}を実行" -#: src/features/tournaments/components/manage-tournament.tsx:82 +#: src/features/admin/components/dashboard/tournament-card.tsx:53 +#: src/features/tournaments/components/manage-tournament.tsx:49 msgid "Run Tournament" msgstr "トーナメントを実行" @@ -2053,7 +2262,7 @@ msgstr "絶叫" msgid "Search for a Song" msgstr "曲を検索" -#: src/features/tournaments/components/edit-enrolled-players.tsx:120 +#: src/features/tournaments/components/enrollment/free-agent-section.tsx:133 msgid "Search for players to enroll..." msgstr "登録するプレイヤーを検索..." @@ -2061,7 +2270,7 @@ msgstr "登録するプレイヤーを検索..." msgid "Search for songs..." msgstr "曲を検索..." -#: src/features/tournaments/components/edit-enrolled-teams.tsx:139 +#: src/features/tournaments/components/enrollment/team-section.tsx:216 msgid "Search for teams to enroll..." msgstr "登録するチームを検索..." @@ -2095,11 +2304,11 @@ msgstr "セグメントは15秒以内にしてください" msgid "Segment must be within song duration" msgstr "セグメントは曲の長さ内に収めてください" -#: src/features/admin/components/award-badges.tsx:71 +#: src/features/admin/components/award-badges.tsx:65 msgid "Select a badge" msgstr "バッジを選択" -#: src/features/spotify/components/spotify-sheet.tsx:145 +#: src/features/spotify/components/spotify-sheet.tsx:144 msgid "Select a device..." msgstr "デバイスを選択..." @@ -2121,7 +2330,7 @@ msgstr "時間を選択" msgid "Select Color" msgstr "カラーを選択" -#: src/features/spotify/components/spotify-sheet.tsx:127 +#: src/features/spotify/components/spotify-sheet.tsx:126 msgid "Select Device" msgstr "デバイスを選択" @@ -2141,7 +2350,7 @@ msgstr "登録締切日を選択" msgid "Select one of your existing teams" msgstr "既存のチームから選択してください" -#: src/features/admin/components/award-badges.tsx:86 +#: src/features/admin/components/award-badges.tsx:80 msgid "Select Player" msgstr "プレイヤーを選択" @@ -2174,20 +2383,32 @@ msgstr "テスト通知を送信" msgid "Series is tied" msgstr "シリーズはタイです" -#: src/app/routes/_authed/admin/activities.tsx:58 -msgid "Server Functions" -msgstr "サーバー関数" +#: src/lib/telemetry/alerts.server.ts:153 +msgid "Server function failing" +msgstr "" -#: src/features/activities/components/activities-table.tsx:309 +#: src/features/telemetry/components/usage-screen.tsx:186 +msgid "Server functions" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:82 msgid "serverFn name" msgstr "serverFn名" +#: src/features/telemetry/components/client-events-table.tsx:128 +msgid "Session" +msgstr "" + +#: src/features/telemetry/components/usage-screen.tsx:172 +msgid "Sessions" +msgstr "" + #: src/app/routes/_authed/settings.tsx:16 #: src/features/core/components/settings-button.tsx:46 msgid "Settings" msgstr "設定" -#: src/components/DefaultCatchBoundary.tsx:103 +#: src/components/DefaultCatchBoundary.tsx:105 msgid "Show details" msgstr "詳細を表示" @@ -2213,7 +2434,11 @@ msgstr "スケッチ" msgid "Skeuomorphic" msgstr "スキューモーフィズム" -#: src/components/DefaultCatchBoundary.tsx:89 +#: src/features/activities/components/activities-table.tsx:113 +msgid "Slow >1s (this page)" +msgstr "" + +#: src/components/DefaultCatchBoundary.tsx:91 msgid "Something went wrong" msgstr "問題が発生しました" @@ -2241,8 +2466,8 @@ msgstr "曲のセグメントは15秒以内にしてください" msgid "Song start time is required" msgstr "曲の開始時間を入力してください" -#: src/features/activities/components/activities-table.tsx:345 #: src/features/players/components/player-stats-table.tsx:340 +#: src/features/telemetry/components/shared/search-filter-bar.tsx:102 msgid "Sort:" msgstr "並び替え:" @@ -2250,7 +2475,7 @@ msgstr "並び替え:" msgid "Sorted by win percentage" msgstr "勝率順に並び替え" -#: src/features/spotify/components/spotify-sheet.tsx:68 +#: src/features/spotify/components/spotify-sheet.tsx:67 msgid "Spotify Controls" msgstr "Spotifyコントロール" @@ -2262,7 +2487,7 @@ msgstr "再生を操作するにはSpotify Premiumが必要です。" msgid "Spotify premium required" msgstr "Spotify Premiumが必要です" -#: src/features/spotify/components/spotify-controls-bar.tsx:180 +#: src/features/spotify/components/spotify-controls-bar.tsx:179 msgid "Spotify settings" msgstr "Spotify設定" @@ -2292,6 +2517,10 @@ msgstr "開始時間を入力してください" msgid "Start typing to search..." msgstr "入力して検索..." +#: src/features/admin/components/dashboard/tournament-card.tsx:43 +msgid "Starts in" +msgstr "" + #: src/features/players/components/player-stats-table.tsx:372 msgid "Stat abbreviations and MMR info" msgstr "スタッツ略語とMMR情報" @@ -2300,7 +2529,7 @@ msgstr "スタッツ略語とMMR情報" msgid "Stat Abbreviations:" msgstr "スタッツ略語:" -#: src/features/core/hooks/use-links.ts:16 +#: src/features/core/hooks/use-links.ts:17 #: src/features/players/components/profile/index.tsx:26 #: src/features/teams/components/team-profile/index.tsx:34 msgid "Statistics" @@ -2315,8 +2544,8 @@ msgstr "スタッツ" msgid "Stats Comparison" msgstr "スタッツ比較" -#: src/features/activities/components/activities-table.tsx:131 -#: src/features/activities/components/activities-table.tsx:321 +#: src/features/activities/components/activities-table.tsx:85 +#: src/features/activities/components/activities-table.tsx:167 msgid "Status" msgstr "ステータス" @@ -2328,8 +2557,8 @@ msgstr "ステータス" msgid "Submit" msgstr "送信" -#: src/features/activities/components/activities-table.tsx:138 -#: src/features/activities/components/activities-table.tsx:329 +#: src/features/activities/components/activities-table.tsx:93 +#: src/features/activities/components/activities-table.tsx:174 msgid "Success" msgstr "成功" @@ -2337,8 +2566,7 @@ msgstr "成功" msgid "Successfully logged in. Welcome back!" msgstr "ログインしました。おかえりなさい!" -#: src/features/activities/components/activities-table.tsx:42 -#: src/features/activities/components/activities-table.tsx:112 +#: src/features/activities/components/activities-table.tsx:53 #: src/features/settings/components/color-scheme-picker.tsx:47 msgid "System" msgstr "システム" @@ -2351,11 +2579,11 @@ msgstr "T" msgid "Tap an opponent below to compare" msgstr "下の対戦相手をタップして比較" -#: src/components/ios-install-prompt.tsx:43 +#: src/components/ios-install-prompt.tsx:48 msgid "Tap Menu (⋮) → Add to Home screen" msgstr "メニュー (⋮) をタップ →「ホーム画面に追加」" -#: src/components/ios-install-prompt.tsx:42 +#: src/components/ios-install-prompt.tsx:47 msgid "Tap Share → Add to Home Screen" msgstr "共有をタップ →「ホーム画面に追加」" @@ -2385,7 +2613,7 @@ msgstr "チーム詳細" msgid "Team enrolled successfully!" msgstr "チームを登録しました!" -#: src/app/routes/api/teams/upload-logo.ts:92 +#: src/app/routes/api/teams/upload-logo.ts:93 #: src/features/teams/components/team-profile/index.tsx:21 msgid "Team not found" msgstr "チームが見つかりません" @@ -2419,11 +2647,15 @@ msgstr "チーム" msgid "Teams created successfully!" msgstr "チームを作成しました!" +#: src/app/routes/_authed/admin/telemetry.tsx:20 +msgid "Telemetry" +msgstr "" + #: src/themes/terminal/manifest.ts:6 msgid "Terminal" msgstr "ターミナル" -#: src/app/routes/api/push/test.ts:29 +#: src/app/routes/api/push/test.ts:30 msgid "Test notification — push is working on this device." msgstr "テスト通知 — このデバイスでプッシュ通知が機能しています。" @@ -2498,6 +2730,10 @@ msgstr "各グループの上位{0, plural, one {#チーム} other {#チーム}} msgid "Top {n} advance" msgstr "上位{n}チームが勝ち上がり" +#: src/features/telemetry/components/usage-screen.tsx:191 +msgid "Top functions by call count" +msgstr "" + #: src/features/matches/components/team-head-to-head-sheet.tsx:158 #: src/features/players/components/player-head-to-head-sheet.tsx:193 msgid "Total Cups" @@ -2517,7 +2753,7 @@ msgstr "トーナメントを作成しましたが、ロゴのアップロード msgid "Tournament created successfully!" msgstr "トーナメントを作成しました!" -#: src/app/routes/api/tournaments/upload-logo.ts:93 +#: src/app/routes/api/tournaments/upload-logo.ts:94 msgid "Tournament not found" msgstr "トーナメントが見つかりません" @@ -2536,7 +2772,7 @@ msgid "Tournament updated successfully!" msgstr "トーナメントを更新しました!" #: src/app/routes/_authed/tournaments/index.tsx:17 -#: src/features/core/hooks/use-links.ts:21 +#: src/features/core/hooks/use-links.ts:22 #: src/features/teams/components/team-profile/index.tsx:53 #: src/features/teams/components/team-profile/skeleton.tsx:80 msgid "Tournaments" @@ -2550,6 +2786,10 @@ msgstr "playTrackアクションにはtrackIdが必要です" msgid "Try the new themes" msgstr "新しいテーマを試してみましょう" +#: src/features/admin/components/dashboard/quiet-boundary.tsx:26 +msgid "Unavailable right now" +msgstr "" + #: src/features/tournaments/components/upcoming-tournament/unenroll-free-agent.tsx:26 #: src/features/tournaments/components/upcoming-tournament/unenroll-team.tsx:34 msgid "Unenroll" @@ -2563,12 +2803,12 @@ msgstr "トーナメントから登録解除しますか?" msgid "Unenroll Team" msgstr "チームを登録解除" -#: src/components/DefaultCatchBoundary.tsx:39 +#: src/components/DefaultCatchBoundary.tsx:40 msgid "Unknown error" msgstr "不明なエラー" -#: src/app/routes/api/teams/upload-logo.ts:141 -#: src/app/routes/api/tournaments/upload-logo.ts:139 +#: src/app/routes/api/teams/upload-logo.ts:142 +#: src/app/routes/api/tournaments/upload-logo.ts:140 msgid "Unknown error occurred" msgstr "不明なエラーが発生しました" @@ -2585,7 +2825,7 @@ msgstr "不明なプレイヤー" msgid "Unnamed Player" msgstr "名前未設定のプレイヤー" -#: src/features/tournaments/components/started-tournament/index.tsx:128 +#: src/features/tournaments/components/started-tournament/index.tsx:129 msgid "Upcoming" msgstr "開催予定" @@ -2607,10 +2847,23 @@ msgstr "チームを更新" msgid "Update Tournament" msgstr "トーナメントを更新" -#: src/features/activities/components/activities-table.tsx:176 +#: src/app/routes/_authed/admin/telemetry.tsx:57 +msgid "Usage" +msgstr "" + +#: src/features/admin/components/dashboard/usage-card.tsx:34 +msgid "Usage, 7 days" +msgstr "" + +#: src/features/activities/components/activities-table.tsx:202 +#: src/features/telemetry/components/client-events-table.tsx:146 msgid "User Agent" msgstr "ユーザーエージェント" +#: src/features/telemetry/components/client-events-table.tsx:131 +msgid "Value" +msgstr "" + #: src/features/bracket/components/match-card.tsx:201 #: src/features/bracket/components/match-card.tsx:226 msgid "versus" @@ -2645,6 +2898,10 @@ msgstr "予想を見る" msgid "Viewport" msgstr "ビューポート" +#: src/features/telemetry/components/usage-screen.tsx:211 +msgid "Vitals" +msgstr "" + #: src/app/routes/api/spotify/playback.ts:70 msgid "volumePercent must be a number" msgstr "volumePercentは数値である必要があります" @@ -2680,6 +2937,10 @@ msgstr "ウォークアウト区間({segmentDuration}秒)" msgid "Walkout Song" msgstr "ウォークアウトソング" +#: src/features/telemetry/components/usage-screen.tsx:165 +msgid "WAU" +msgstr "" + #: src/features/tournaments/components/group-stage-view.tsx:407 msgid "WC" msgstr "WC" @@ -2731,7 +2992,7 @@ msgstr "あなたと他1人" msgid "You are not authorized to perform this action" msgstr "この操作を実行する権限がありません" -#: src/components/DefaultCatchBoundary.tsx:60 +#: src/components/DefaultCatchBoundary.tsx:62 msgid "You don't have permission to access this page." msgstr "このページにアクセスする権限がありません。" @@ -2755,7 +3016,7 @@ msgstr "あなたが最初のフリーエージェントです!" msgid "You've been added as a free agent!" msgstr "フリーエージェントとして追加されました!" -#: src/components/DefaultCatchBoundary.tsx:46 +#: src/components/DefaultCatchBoundary.tsx:48 msgid "You've been logged out" msgstr "ログアウトしました"