diff --git a/src/features/bracket/components/match-dock.tsx b/src/features/bracket/components/match-dock.tsx index ac76f73..d458bdc 100644 --- a/src/features/bracket/components/match-dock.tsx +++ b/src/features/bracket/components/match-dock.tsx @@ -176,7 +176,12 @@ const MatchDock = ({ match, onClose }: MatchDockProps) => { variant="subtle" size="sm" onClick={() => { - track("h2h_viewed", { source: "match_dock" }); + track("h2h_viewed", { + source: "match_dock", + context: [match?.home?.name, match?.away?.name] + .filter(Boolean) + .join(" v "), + }); h2hSheet.open(); }} aria-label={t`View head-to-head`} diff --git a/src/features/matches/components/match-card.tsx b/src/features/matches/components/match-card.tsx index ccc6be5..ad258f1 100644 --- a/src/features/matches/components/match-card.tsx +++ b/src/features/matches/components/match-card.tsx @@ -42,7 +42,10 @@ const MatchCard = ({ match, hideH2H = false }: MatchCardProps) => { const handleH2HClick = (e: React.MouseEvent) => { e.stopPropagation(); - track("h2h_viewed", { source: "match_card" }); + track("h2h_viewed", { + source: "match_card", + context: [match.home?.name, match.away?.name].filter(Boolean).join(" v "), + }); h2hSheet.open(); }; diff --git a/src/features/players/components/league-head-to-head.tsx b/src/features/players/components/league-head-to-head.tsx index 3482622..9a9ee4c 100644 --- a/src/features/players/components/league-head-to-head.tsx +++ b/src/features/players/components/league-head-to-head.tsx @@ -53,7 +53,12 @@ const LeagueHeadToHead = () => { setPlayer1Id(playerId); } else { setPlayer2Id(playerId); - track("h2h_viewed", { source: "stats" }); + const opponent = + allPlayerStats?.find((p) => p.player_id === playerId)?.player_name || ""; + track("h2h_viewed", { + source: "stats", + context: [player1Name, opponent].filter(Boolean).join(" v "), + }); h2hSheet.open(); } }; diff --git a/src/features/players/components/player-stats-table.tsx b/src/features/players/components/player-stats-table.tsx index e91b1d9..d0c0873 100644 --- a/src/features/players/components/player-stats-table.tsx +++ b/src/features/players/components/player-stats-table.tsx @@ -293,11 +293,10 @@ const PlayerStatsTable = ({ viewType = 'all' }: PlayerStatsTableProps) => { }, [navigate]); const handleSort = (key: SortKey) => { - track("stats_sorted", { value: key }); - setSortConfig((prev) => ({ - key, - direction: prev.key === key && prev.direction === "desc" ? "asc" : "desc", - })); + const direction = + sortConfig.key === key && sortConfig.direction === "desc" ? "asc" : "desc"; + track("stats_sorted", { value: key, context: direction }); + setSortConfig({ key, direction }); }; const getSortIcon = (key: SortKey) => { diff --git a/src/features/players/components/profile/header.tsx b/src/features/players/components/profile/header.tsx index 0c1c342..92e02e2 100644 --- a/src/features/players/components/profile/header.tsx +++ b/src/features/players/components/profile/header.tsx @@ -55,7 +55,10 @@ const Header = ({ player }: HeaderProps) => { size="sm" radius="xl" onClick={() => { - track("h2h_viewed", { source: "profile" }); + track("h2h_viewed", { + source: "profile", + context: [player.first_name, player.last_name].filter(Boolean).join(" "), + }); h2hSheet.open(); }} w={40} diff --git a/src/features/predictions/components/prediction-editor.tsx b/src/features/predictions/components/prediction-editor.tsx index 97ad7dc..9012e70 100644 --- a/src/features/predictions/components/prediction-editor.tsx +++ b/src/features/predictions/components/prediction-editor.tsx @@ -218,7 +218,10 @@ export const PredictionEditor: React.FC = ({ radius="md" onClick={() => { if (activeResolved?.home && activeResolved?.away) { - track("h2h_viewed", { source: "predictions" }); + track("h2h_viewed", { + source: "predictions", + context: `${activeResolved.home.name} v ${activeResolved.away.name}`, + }); } matchupSheet.open(); }} diff --git a/src/features/telemetry/server.ts b/src/features/telemetry/server.ts index 45934a6..6a8bc2f 100644 --- a/src/features/telemetry/server.ts +++ b/src/features/telemetry/server.ts @@ -73,6 +73,8 @@ const errorGroupsSchema = z.object({ limit: z.number().max(100).optional(), }); +// Aggregates raw rows, not rollups: a brand-new error must appear immediately, +// not on the next rollup tick. export const getClientErrorGroups = createServerFn() .validator(errorGroupsSchema) .middleware([superTokensAdminFunctionMiddleware]) @@ -80,46 +82,60 @@ export const getClientErrorGroups = createServerFn() toServerResult(async () => { const { from, to, includeResolved = false, limit = 50 } = data; - const rollups = await pbAdmin.getRollupRange({ - metrics: ["client_error.count"], - from, - to, - }); + const toExclusive = new Date(`${to}T00:00:00.000Z`); + toExclusive.setUTCDate(toExclusive.getUTCDate() + 1); + const filter = `created >= '${from} 00:00:00.000Z' && created < '${toExclusive + .toISOString() + .replace("T", " ")}'`; - const countByGroup = new Map(); - for (const rollup of rollups) { - if (!rollup.dim) continue; - countByGroup.set(rollup.dim, (countByGroup.get(rollup.dim) ?? 0) + rollup.value); - } + const byGroup = new Map(); + await pbAdmin.pageCollection<{ + group_hash: string; + message: string; + stack?: string; + source?: string; + path?: string; + resolved?: boolean; + created: string; + }>( + "client_errors", + { filter, fields: "group_hash,message,stack,source,path,resolved,created" }, + (rows) => { + for (const row of rows) { + const existing = byGroup.get(row.group_hash); + if (existing) { + existing.count++; + // Paged in created-asc order, so each row is the newest so far. + existing.lastSeen = row.created; + existing.resolved = !!row.resolved; + existing.sample = { + message: row.message, + stack: row.stack, + path: row.path, + source: row.source, + }; + } else { + byGroup.set(row.group_hash, { + group_hash: row.group_hash, + count: 1, + lastSeen: row.created, + resolved: !!row.resolved, + sample: { + message: row.message, + stack: row.stack, + path: row.path, + source: row.source, + }, + }); + } + } + } + ); - const topGroups = [...countByGroup.entries()] - .sort((a, b) => b[1] - a[1]) + return [...byGroup.values()] + .filter((group) => includeResolved || !group.resolved) + .sort((a, b) => b.count - a.count) .slice(0, limit); - - const groups: ClientErrorGroup[] = []; - for (const [groupHash, count] of topGroups) { - const latest = await pbAdmin.searchClientErrors({ groupHash, perPage: 1 }); - const sample = latest.items[0]; - if (!sample) continue; - - const resolved = !!sample.resolved; - if (resolved && !includeResolved) continue; - - groups.push({ - group_hash: groupHash, - count, - lastSeen: sample.created, - resolved, - sample: { - message: sample.message, - stack: sample.stack, - path: sample.path, - source: sample.source, - }, - }); - } - - return groups; }) ); @@ -303,16 +319,17 @@ export const getSessionTimeline = createServerFn() for (const event of events.items) { if (event.name.startsWith("vital.")) continue; const props = event.props as - | { emoji?: string; source?: string; tournament?: string; value?: string } + | { emoji?: string; source?: string; tournament?: string; value?: string; context?: string } | null | undefined; const breakdown = props?.emoji ?? props?.value ?? props?.source ?? props?.tournament; + const detail = [breakdown, props?.context].filter(Boolean).join(" · "); entries.push({ ts: event.created, kind: event.name === "page_view" ? "page_view" : "event", label: event.name === "page_view" ? event.path || event.route_id || "?" : event.name, - detail: event.name === "page_view" ? undefined : (breakdown ?? event.path), + detail: event.name === "page_view" ? undefined : (detail || event.path), }); } diff --git a/src/locales/de/messages.po b/src/locales/de/messages.po index 98a8a46..e5f80db 100644 --- a/src/locales/de/messages.po +++ b/src/locales/de/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/features/matches/components/match-card.tsx:80 +#: src/features/matches/components/match-card.tsx:83 msgid " (Losers)" msgstr " (Verlierer)" @@ -228,7 +228,7 @@ msgstr "{namesList} und 1 weitere" msgid "{size}-team knockout" msgstr "{size}-Team-K.-o.-Runde" -#: src/features/players/components/player-stats-table.tsx:446 +#: src/features/players/components/player-stats-table.tsx:445 msgid "* Confidence penalty applied for players with <15 matches" msgstr "* Vertrauensabschlag für Spieler mit <15 Spielen" @@ -241,7 +241,7 @@ msgstr "* Falls nötig" msgid "* PICKS shows correct picks / total picks made" msgstr "* PICKS zeigt richtige Picks / insgesamt abgegebene Picks" -#: src/features/players/components/player-stats-table.tsx:449 +#: src/features/players/components/player-stats-table.tsx:448 msgid "** Not an official rating" msgstr "** Keine offizielle Wertung" @@ -254,19 +254,19 @@ msgstr "&" msgid "#{0}" msgstr "#{0}" -#: src/features/players/components/player-stats-table.tsx:416 +#: src/features/players/components/player-stats-table.tsx:415 msgid "• <0>AC: Average Cups Per Match" msgstr "• <0>AC: Durchschnittliche Becher pro Spiel" -#: src/features/players/components/player-stats-table.tsx:419 +#: src/features/players/components/player-stats-table.tsx:418 msgid "• <0>ACA: Average Cups Against" msgstr "• <0>ACA: Durchschnittlich kassierte Becher" -#: src/features/players/components/player-stats-table.tsx:413 +#: src/features/players/components/player-stats-table.tsx:412 msgid "• <0>ALM: Average Loss Margin" msgstr "• <0>ALM: Durchschnittlicher Rückstand bei Niederlage" -#: src/features/players/components/player-stats-table.tsx:410 +#: src/features/players/components/player-stats-table.tsx:409 msgid "• <0>AWM: Average Win Margin" msgstr "• <0>AWM: Durchschnittlicher Vorsprung bei Sieg" @@ -274,15 +274,15 @@ msgstr "• <0>AWM: Durchschnittlicher Vorsprung bei Sieg" msgid "• <0>Bracket reset: only picked if your bracket triggers it — worth double the Final" msgstr "• <0>Bracket-Reset: wird nur gewertet, wenn dein Bracket ihn auslöst — zählt doppelt so viel wie das Finale" -#: src/features/players/components/player-stats-table.tsx:425 +#: src/features/players/components/player-stats-table.tsx:424 msgid "• <0>CA: Cups Against" msgstr "• <0>CA: Kassierte Becher" -#: src/features/players/components/player-stats-table.tsx:422 +#: src/features/players/components/player-stats-table.tsx:421 msgid "• <0>CF: Cups For" msgstr "• <0>CF: Erzielte Becher" -#: src/features/players/components/player-stats-table.tsx:404 +#: src/features/players/components/player-stats-table.tsx:403 msgid "• <0>L: Losses" msgstr "• <0>L: Niederlagen" @@ -290,23 +290,23 @@ msgstr "• <0>L: Niederlagen" msgid "• <0>Losers bracket: 5, 10, 20, 40…" msgstr "• <0>Verlierer-Bracket: 5, 10, 20, 40…" -#: src/features/players/components/player-stats-table.tsx:392 +#: src/features/players/components/player-stats-table.tsx:391 msgid "• <0>M: Matches" msgstr "• <0>M: Spiele" -#: src/features/players/components/player-stats-table.tsx:398 +#: src/features/players/components/player-stats-table.tsx:397 msgid "• <0>MMR: Matchmaking Rating" msgstr "• <0>MMR: Matchmaking-Wertung" -#: src/features/players/components/player-stats-table.tsx:395 +#: src/features/players/components/player-stats-table.tsx:394 msgid "• <0>T: Tournaments" msgstr "• <0>T: Turniere" -#: src/features/players/components/player-stats-table.tsx:401 +#: src/features/players/components/player-stats-table.tsx:400 msgid "• <0>W: Wins" msgstr "• <0>W: Siege" -#: src/features/players/components/player-stats-table.tsx:407 +#: src/features/players/components/player-stats-table.tsx:406 msgid "• <0>W%: Win Percentage" msgstr "• <0>W%: Siegquote" @@ -314,11 +314,11 @@ msgstr "• <0>W%: Siegquote" msgid "• <0>Winners bracket: 10, 20, 40, 80…" msgstr "• <0>Gewinner-Bracket: 10, 20, 40, 80…" -#: src/features/players/components/player-stats-table.tsx:437 +#: src/features/players/components/player-stats-table.tsx:436 msgid "• Average Cups/Match (25%)" msgstr "• Durchschnittliche Becher/Spiel (25%)" -#: src/features/players/components/player-stats-table.tsx:440 +#: src/features/players/components/player-stats-table.tsx:439 msgid "• Average Win Margin (15%)" msgstr "• Durchschnittlicher Vorsprung bei Sieg (15%)" @@ -326,11 +326,11 @@ msgstr "• Durchschnittlicher Vorsprung bei Sieg (15%)" msgid "• Each correct pick earns points, doubling every round" msgstr "• Jeder richtige Tipp bringt Punkte, die sich jede Runde verdoppeln" -#: src/features/players/components/player-stats-table.tsx:443 +#: src/features/players/components/player-stats-table.tsx:442 msgid "• Match Volume Bonus (10%)" msgstr "• Match-Volumen-Bonus (10%)" -#: src/features/players/components/player-stats-table.tsx:434 +#: src/features/players/components/player-stats-table.tsx:433 msgid "• Win Rate (50%)" msgstr "• Siegquote (50%)" @@ -720,7 +720,7 @@ msgstr "Wähle einen Spieler" msgid "Claymation" msgstr "Knete" -#: src/features/players/components/league-head-to-head.tsx:102 +#: src/features/players/components/league-head-to-head.tsx:107 msgid "Clear selected player" msgstr "Ausgewählten Spieler entfernen" @@ -1335,11 +1335,11 @@ msgstr "Hast du schon mal mitgespielt?" #: src/app/routes/_authed/stats.tsx:56 #: src/features/bracket/components/match-dock.tsx:174 -#: src/features/bracket/components/match-dock.tsx:219 -#: src/features/matches/components/match-card.tsx:86 -#: src/features/matches/components/match-card.tsx:230 -#: src/features/players/components/league-head-to-head.tsx:193 -#: src/features/players/components/profile/header.tsx:94 +#: src/features/bracket/components/match-dock.tsx:224 +#: src/features/matches/components/match-card.tsx:89 +#: src/features/matches/components/match-card.tsx:233 +#: src/features/players/components/league-head-to-head.tsx:198 +#: src/features/players/components/profile/header.tsx:97 msgid "Head to Head" msgstr "Direktvergleich" @@ -1611,7 +1611,7 @@ msgstr "Match-Verlauf ({totalMatches})" msgid "Match started!" msgstr "Match gestartet!" -#: src/features/players/components/player-stats-table.tsx:376 +#: src/features/players/components/player-stats-table.tsx:375 #: src/features/players/components/profile/index.tsx:87 #: src/features/players/components/profile/skeleton.tsx:70 #: src/features/teams/components/team-profile/index.tsx:44 @@ -1630,11 +1630,11 @@ msgstr "Matches für Regionals sind ungeordnet" msgid "Matches Played" msgstr "Gespielte Matches" -#: src/features/predictions/components/prediction-editor.tsx:249 +#: src/features/predictions/components/prediction-editor.tsx:252 msgid "Matchup" msgstr "Matchup" -#: src/features/predictions/components/prediction-editor.tsx:226 +#: src/features/predictions/components/prediction-editor.tsx:229 msgid "Matchup details" msgstr "Matchup-Details" @@ -1642,7 +1642,7 @@ msgstr "Matchup-Details" msgid "MAU" msgstr "MAU" -#: src/features/players/components/league-head-to-head.tsx:123 +#: src/features/players/components/league-head-to-head.tsx:128 msgid "Me" msgstr "Ich" @@ -1651,11 +1651,11 @@ msgid "Migrate Badge Progress" msgstr "Abzeichen-Fortschritt migrieren" #: src/features/players/components/player-stats-table.tsx:131 -#: src/features/players/components/player-stats-table.tsx:356 +#: src/features/players/components/player-stats-table.tsx:355 msgid "MMR" msgstr "MMR" -#: src/features/players/components/player-stats-table.tsx:431 +#: src/features/players/components/player-stats-table.tsx:430 msgid "MMR Calculation:" msgstr "MMR-Berechnung:" @@ -1775,7 +1775,7 @@ msgstr "Keine Matches geplant" msgid "No player activity found" msgstr "Keine Spieleraktivität gefunden" -#: src/features/players/components/league-head-to-head.tsx:151 +#: src/features/players/components/league-head-to-head.tsx:156 msgid "No players available" msgstr "Keine Spieler verfügbar" @@ -1784,8 +1784,8 @@ msgstr "Keine Spieler verfügbar" msgid "No players enrolled yet" msgstr "Noch keine Spieler angemeldet" -#: src/features/players/components/league-head-to-head.tsx:151 -#: src/features/players/components/player-stats-table.tsx:486 +#: src/features/players/components/league-head-to-head.tsx:156 +#: src/features/players/components/player-stats-table.tsx:485 msgid "No players found matching \"{search}\"" msgstr "Keine Spieler gefunden, die zu \"{search}\" passen" @@ -1818,7 +1818,7 @@ msgstr "Kein Song ausgewählt" msgid "No state captured" msgstr "Kein Status erfasst" -#: src/features/players/components/player-stats-table.tsx:319 +#: src/features/players/components/player-stats-table.tsx:318 msgid "No Stats Available" msgstr "Keine Statistiken verfügbar" @@ -2182,7 +2182,7 @@ msgid "rofl" msgstr "rofl" #. placeholder {0}: match.round + 1 -#: src/features/matches/components/match-card.tsx:79 +#: src/features/matches/components/match-card.tsx:82 msgid "Round {0}" msgstr "Runde {0}" @@ -2245,8 +2245,8 @@ msgstr "Nach Songs suchen..." msgid "Search for teams to enroll..." msgstr "Teams zum Anmelden suchen..." -#: src/features/players/components/league-head-to-head.tsx:132 -#: src/features/players/components/player-stats-table.tsx:332 +#: src/features/players/components/league-head-to-head.tsx:137 +#: src/features/players/components/player-stats-table.tsx:331 msgid "Search players" msgstr "Spieler suchen" @@ -2283,7 +2283,7 @@ msgstr "Abzeichen auswählen" msgid "Select a device..." msgstr "Gerät auswählen..." -#: src/features/players/components/league-head-to-head.tsx:112 +#: src/features/players/components/league-head-to-head.tsx:117 msgid "Select a player" msgstr "Wähle einen Spieler" @@ -2382,7 +2382,7 @@ msgstr "Details anzeigen" #. placeholder {0}: filteredAndSortedStats.length #. placeholder {1}: playerStats.length -#: src/features/players/components/player-stats-table.tsx:329 +#: src/features/players/components/player-stats-table.tsx:328 msgid "Showing {0} of {1} players" msgstr "{0} von {1} Spielern angezeigt" @@ -2434,7 +2434,7 @@ msgstr "Song-Segment darf höchstens 15 Sekunden lang sein" msgid "Song start time is required" msgstr "Startzeit des Songs ist erforderlich" -#: src/features/players/components/player-stats-table.tsx:350 +#: src/features/players/components/player-stats-table.tsx:349 #: src/features/telemetry/components/shared/search-filter-bar.tsx:102 msgid "Sort:" msgstr "Sortieren:" @@ -2489,11 +2489,11 @@ msgstr "Tippen, um zu suchen …" msgid "Starts in" msgstr "Beginnt in" -#: src/features/players/components/player-stats-table.tsx:382 +#: src/features/players/components/player-stats-table.tsx:381 msgid "Stat abbreviations and MMR info" msgstr "Stat-Abkürzungen und MMR-Infos" -#: src/features/players/components/player-stats-table.tsx:389 +#: src/features/players/components/player-stats-table.tsx:388 msgid "Stat Abbreviations:" msgstr "Stat-Abkürzungen:" @@ -2520,7 +2520,7 @@ msgstr "Status" #: src/components/sheet/slide-panel/slide-panel.tsx:40 #: src/features/login/components/player-prompt/index.tsx:115 #: src/features/login/components/player-prompt/index.tsx:126 -#: src/features/predictions/components/prediction-editor.tsx:240 +#: src/features/predictions/components/prediction-editor.tsx:243 #: src/features/tournaments/components/edit-rules.tsx:39 msgid "Submit" msgstr "Absenden" @@ -2543,7 +2543,7 @@ msgstr "System" msgid "T" msgstr "T" -#: src/features/players/components/league-head-to-head.tsx:92 +#: src/features/players/components/league-head-to-head.tsx:97 msgid "Tap an opponent below to compare" msgstr "Tippe unten auf einen Gegner zum Vergleichen" @@ -2810,7 +2810,7 @@ msgstr "Bevorstehend" msgid "Update Match" msgstr "Match aktualisieren" -#: src/features/players/components/profile/header.tsx:89 +#: src/features/players/components/profile/header.tsx:92 msgid "Update Name" msgstr "Namen aktualisieren" @@ -2853,8 +2853,8 @@ msgstr "Turnierbaum ansehen" msgid "View Groups" msgstr "Gruppen ansehen" -#: src/features/bracket/components/match-dock.tsx:182 -#: src/features/matches/components/match-card.tsx:91 +#: src/features/bracket/components/match-dock.tsx:187 +#: src/features/matches/components/match-card.tsx:94 msgid "View head-to-head" msgstr "Direktvergleich ansehen" @@ -2935,7 +2935,7 @@ msgstr "Finale der Gewinnerrunde" #: src/components/stats-overview.tsx:103 #: src/components/stats-overview.tsx:136 -#: src/features/players/components/player-stats-table.tsx:366 +#: src/features/players/components/player-stats-table.tsx:365 msgid "Wins" msgstr "Siege" diff --git a/src/locales/en/messages.po b/src/locales/en/messages.po index c823fa8..6e438fc 100644 --- a/src/locales/en/messages.po +++ b/src/locales/en/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/features/matches/components/match-card.tsx:80 +#: src/features/matches/components/match-card.tsx:83 msgid " (Losers)" msgstr " (Losers)" @@ -228,7 +228,7 @@ msgstr "{namesList} and 1 other" msgid "{size}-team knockout" msgstr "{size}-team knockout" -#: src/features/players/components/player-stats-table.tsx:446 +#: src/features/players/components/player-stats-table.tsx:445 msgid "* Confidence penalty applied for players with <15 matches" msgstr "* Confidence penalty applied for players with <15 matches" @@ -241,7 +241,7 @@ msgstr "* If necessary" msgid "* PICKS shows correct picks / total picks made" msgstr "* PICKS shows correct picks / total picks made" -#: src/features/players/components/player-stats-table.tsx:449 +#: src/features/players/components/player-stats-table.tsx:448 msgid "** Not an official rating" msgstr "** Not an official rating" @@ -254,19 +254,19 @@ msgstr "&" msgid "#{0}" msgstr "#{0}" -#: src/features/players/components/player-stats-table.tsx:416 +#: src/features/players/components/player-stats-table.tsx:415 msgid "• <0>AC: Average Cups Per Match" msgstr "• <0>AC: Average Cups Per Match" -#: src/features/players/components/player-stats-table.tsx:419 +#: src/features/players/components/player-stats-table.tsx:418 msgid "• <0>ACA: Average Cups Against" msgstr "• <0>ACA: Average Cups Against" -#: src/features/players/components/player-stats-table.tsx:413 +#: src/features/players/components/player-stats-table.tsx:412 msgid "• <0>ALM: Average Loss Margin" msgstr "• <0>ALM: Average Loss Margin" -#: src/features/players/components/player-stats-table.tsx:410 +#: src/features/players/components/player-stats-table.tsx:409 msgid "• <0>AWM: Average Win Margin" msgstr "• <0>AWM: Average Win Margin" @@ -274,15 +274,15 @@ msgstr "• <0>AWM: Average Win Margin" msgid "• <0>Bracket reset: only picked if your bracket triggers it — worth double the Final" msgstr "• <0>Bracket reset: only picked if your bracket triggers it — worth double the Final" -#: src/features/players/components/player-stats-table.tsx:425 +#: src/features/players/components/player-stats-table.tsx:424 msgid "• <0>CA: Cups Against" msgstr "• <0>CA: Cups Against" -#: src/features/players/components/player-stats-table.tsx:422 +#: src/features/players/components/player-stats-table.tsx:421 msgid "• <0>CF: Cups For" msgstr "• <0>CF: Cups For" -#: src/features/players/components/player-stats-table.tsx:404 +#: src/features/players/components/player-stats-table.tsx:403 msgid "• <0>L: Losses" msgstr "• <0>L: Losses" @@ -290,23 +290,23 @@ msgstr "• <0>L: Losses" msgid "• <0>Losers bracket: 5, 10, 20, 40…" msgstr "• <0>Losers bracket: 5, 10, 20, 40…" -#: src/features/players/components/player-stats-table.tsx:392 +#: src/features/players/components/player-stats-table.tsx:391 msgid "• <0>M: Matches" msgstr "• <0>M: Matches" -#: src/features/players/components/player-stats-table.tsx:398 +#: src/features/players/components/player-stats-table.tsx:397 msgid "• <0>MMR: Matchmaking Rating" msgstr "• <0>MMR: Matchmaking Rating" -#: src/features/players/components/player-stats-table.tsx:395 +#: src/features/players/components/player-stats-table.tsx:394 msgid "• <0>T: Tournaments" msgstr "• <0>T: Tournaments" -#: src/features/players/components/player-stats-table.tsx:401 +#: src/features/players/components/player-stats-table.tsx:400 msgid "• <0>W: Wins" msgstr "• <0>W: Wins" -#: src/features/players/components/player-stats-table.tsx:407 +#: src/features/players/components/player-stats-table.tsx:406 msgid "• <0>W%: Win Percentage" msgstr "• <0>W%: Win Percentage" @@ -314,11 +314,11 @@ msgstr "• <0>W%: Win Percentage" msgid "• <0>Winners bracket: 10, 20, 40, 80…" msgstr "• <0>Winners bracket: 10, 20, 40, 80…" -#: src/features/players/components/player-stats-table.tsx:437 +#: src/features/players/components/player-stats-table.tsx:436 msgid "• Average Cups/Match (25%)" msgstr "• Average Cups/Match (25%)" -#: src/features/players/components/player-stats-table.tsx:440 +#: src/features/players/components/player-stats-table.tsx:439 msgid "• Average Win Margin (15%)" msgstr "• Average Win Margin (15%)" @@ -326,11 +326,11 @@ msgstr "• Average Win Margin (15%)" msgid "• Each correct pick earns points, doubling every round" msgstr "• Each correct pick earns points, doubling every round" -#: src/features/players/components/player-stats-table.tsx:443 +#: src/features/players/components/player-stats-table.tsx:442 msgid "• Match Volume Bonus (10%)" msgstr "• Match Volume Bonus (10%)" -#: src/features/players/components/player-stats-table.tsx:434 +#: src/features/players/components/player-stats-table.tsx:433 msgid "• Win Rate (50%)" msgstr "• Win Rate (50%)" @@ -720,7 +720,7 @@ msgstr "Choose a player" msgid "Claymation" msgstr "Claymation" -#: src/features/players/components/league-head-to-head.tsx:102 +#: src/features/players/components/league-head-to-head.tsx:107 msgid "Clear selected player" msgstr "Clear selected player" @@ -1335,11 +1335,11 @@ msgstr "Have you played before?" #: src/app/routes/_authed/stats.tsx:56 #: src/features/bracket/components/match-dock.tsx:174 -#: src/features/bracket/components/match-dock.tsx:219 -#: src/features/matches/components/match-card.tsx:86 -#: src/features/matches/components/match-card.tsx:230 -#: src/features/players/components/league-head-to-head.tsx:193 -#: src/features/players/components/profile/header.tsx:94 +#: src/features/bracket/components/match-dock.tsx:224 +#: src/features/matches/components/match-card.tsx:89 +#: src/features/matches/components/match-card.tsx:233 +#: src/features/players/components/league-head-to-head.tsx:198 +#: src/features/players/components/profile/header.tsx:97 msgid "Head to Head" msgstr "Head to Head" @@ -1611,7 +1611,7 @@ msgstr "Match History ({totalMatches})" msgid "Match started!" msgstr "Match started!" -#: src/features/players/components/player-stats-table.tsx:376 +#: src/features/players/components/player-stats-table.tsx:375 #: src/features/players/components/profile/index.tsx:87 #: src/features/players/components/profile/skeleton.tsx:70 #: src/features/teams/components/team-profile/index.tsx:44 @@ -1630,11 +1630,11 @@ msgstr "Matches for regionals are unordered" msgid "Matches Played" msgstr "Matches Played" -#: src/features/predictions/components/prediction-editor.tsx:249 +#: src/features/predictions/components/prediction-editor.tsx:252 msgid "Matchup" msgstr "Matchup" -#: src/features/predictions/components/prediction-editor.tsx:226 +#: src/features/predictions/components/prediction-editor.tsx:229 msgid "Matchup details" msgstr "Matchup details" @@ -1642,7 +1642,7 @@ msgstr "Matchup details" msgid "MAU" msgstr "MAU" -#: src/features/players/components/league-head-to-head.tsx:123 +#: src/features/players/components/league-head-to-head.tsx:128 msgid "Me" msgstr "Me" @@ -1651,11 +1651,11 @@ msgid "Migrate Badge Progress" msgstr "Migrate Badge Progress" #: src/features/players/components/player-stats-table.tsx:131 -#: src/features/players/components/player-stats-table.tsx:356 +#: src/features/players/components/player-stats-table.tsx:355 msgid "MMR" msgstr "MMR" -#: src/features/players/components/player-stats-table.tsx:431 +#: src/features/players/components/player-stats-table.tsx:430 msgid "MMR Calculation:" msgstr "MMR Calculation:" @@ -1775,7 +1775,7 @@ msgstr "No matches scheduled" msgid "No player activity found" msgstr "No player activity found" -#: src/features/players/components/league-head-to-head.tsx:151 +#: src/features/players/components/league-head-to-head.tsx:156 msgid "No players available" msgstr "No players available" @@ -1784,8 +1784,8 @@ msgstr "No players available" msgid "No players enrolled yet" msgstr "No players enrolled yet" -#: src/features/players/components/league-head-to-head.tsx:151 -#: src/features/players/components/player-stats-table.tsx:486 +#: src/features/players/components/league-head-to-head.tsx:156 +#: src/features/players/components/player-stats-table.tsx:485 msgid "No players found matching \"{search}\"" msgstr "No players found matching \"{search}\"" @@ -1818,7 +1818,7 @@ msgstr "No song selected" msgid "No state captured" msgstr "No state captured" -#: src/features/players/components/player-stats-table.tsx:319 +#: src/features/players/components/player-stats-table.tsx:318 msgid "No Stats Available" msgstr "No Stats Available" @@ -2182,7 +2182,7 @@ msgid "rofl" msgstr "rofl" #. placeholder {0}: match.round + 1 -#: src/features/matches/components/match-card.tsx:79 +#: src/features/matches/components/match-card.tsx:82 msgid "Round {0}" msgstr "Round {0}" @@ -2245,8 +2245,8 @@ msgstr "Search for songs..." msgid "Search for teams to enroll..." msgstr "Search for teams to enroll..." -#: src/features/players/components/league-head-to-head.tsx:132 -#: src/features/players/components/player-stats-table.tsx:332 +#: src/features/players/components/league-head-to-head.tsx:137 +#: src/features/players/components/player-stats-table.tsx:331 msgid "Search players" msgstr "Search players" @@ -2283,7 +2283,7 @@ msgstr "Select a badge" msgid "Select a device..." msgstr "Select a device..." -#: src/features/players/components/league-head-to-head.tsx:112 +#: src/features/players/components/league-head-to-head.tsx:117 msgid "Select a player" msgstr "Select a player" @@ -2382,7 +2382,7 @@ msgstr "Show details" #. placeholder {0}: filteredAndSortedStats.length #. placeholder {1}: playerStats.length -#: src/features/players/components/player-stats-table.tsx:329 +#: src/features/players/components/player-stats-table.tsx:328 msgid "Showing {0} of {1} players" msgstr "Showing {0} of {1} players" @@ -2434,7 +2434,7 @@ msgstr "Song segment must be no more than 15 seconds" msgid "Song start time is required" msgstr "Song start time is required" -#: src/features/players/components/player-stats-table.tsx:350 +#: src/features/players/components/player-stats-table.tsx:349 #: src/features/telemetry/components/shared/search-filter-bar.tsx:102 msgid "Sort:" msgstr "Sort:" @@ -2489,11 +2489,11 @@ msgstr "Start typing to search..." msgid "Starts in" msgstr "Starts in" -#: src/features/players/components/player-stats-table.tsx:382 +#: src/features/players/components/player-stats-table.tsx:381 msgid "Stat abbreviations and MMR info" msgstr "Stat abbreviations and MMR info" -#: src/features/players/components/player-stats-table.tsx:389 +#: src/features/players/components/player-stats-table.tsx:388 msgid "Stat Abbreviations:" msgstr "Stat Abbreviations:" @@ -2520,7 +2520,7 @@ msgstr "Status" #: src/components/sheet/slide-panel/slide-panel.tsx:40 #: src/features/login/components/player-prompt/index.tsx:115 #: src/features/login/components/player-prompt/index.tsx:126 -#: src/features/predictions/components/prediction-editor.tsx:240 +#: src/features/predictions/components/prediction-editor.tsx:243 #: src/features/tournaments/components/edit-rules.tsx:39 msgid "Submit" msgstr "Submit" @@ -2543,7 +2543,7 @@ msgstr "System" msgid "T" msgstr "T" -#: src/features/players/components/league-head-to-head.tsx:92 +#: src/features/players/components/league-head-to-head.tsx:97 msgid "Tap an opponent below to compare" msgstr "Tap an opponent below to compare" @@ -2810,7 +2810,7 @@ msgstr "Upcoming" msgid "Update Match" msgstr "Update Match" -#: src/features/players/components/profile/header.tsx:89 +#: src/features/players/components/profile/header.tsx:92 msgid "Update Name" msgstr "Update Name" @@ -2853,8 +2853,8 @@ msgstr "View Bracket" msgid "View Groups" msgstr "View Groups" -#: src/features/bracket/components/match-dock.tsx:182 -#: src/features/matches/components/match-card.tsx:91 +#: src/features/bracket/components/match-dock.tsx:187 +#: src/features/matches/components/match-card.tsx:94 msgid "View head-to-head" msgstr "View head-to-head" @@ -2935,7 +2935,7 @@ msgstr "Winners Bracket Final" #: src/components/stats-overview.tsx:103 #: src/components/stats-overview.tsx:136 -#: src/features/players/components/player-stats-table.tsx:366 +#: src/features/players/components/player-stats-table.tsx:365 msgid "Wins" msgstr "Wins" diff --git a/src/locales/es/messages.po b/src/locales/es/messages.po index a01fa9d..13b1649 100644 --- a/src/locales/es/messages.po +++ b/src/locales/es/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/features/matches/components/match-card.tsx:80 +#: src/features/matches/components/match-card.tsx:83 msgid " (Losers)" msgstr " (Perdedores)" @@ -228,7 +228,7 @@ msgstr "{namesList} y 1 más" msgid "{size}-team knockout" msgstr "Eliminación directa de {size} equipos" -#: src/features/players/components/player-stats-table.tsx:446 +#: src/features/players/components/player-stats-table.tsx:445 msgid "* Confidence penalty applied for players with <15 matches" msgstr "* Se aplica una penalización de confianza a jugadores con menos de 15 partidos" @@ -241,7 +241,7 @@ msgstr "* Si es necesario" msgid "* PICKS shows correct picks / total picks made" msgstr "* PICKS muestra aciertos / total de pronósticos realizados" -#: src/features/players/components/player-stats-table.tsx:449 +#: src/features/players/components/player-stats-table.tsx:448 msgid "** Not an official rating" msgstr "** No es una calificación oficial" @@ -254,19 +254,19 @@ msgstr "&" msgid "#{0}" msgstr "#{0}" -#: src/features/players/components/player-stats-table.tsx:416 +#: src/features/players/components/player-stats-table.tsx:415 msgid "• <0>AC: Average Cups Per Match" msgstr "• <0>AC: Promedio de Vasos por Partido" -#: src/features/players/components/player-stats-table.tsx:419 +#: src/features/players/components/player-stats-table.tsx:418 msgid "• <0>ACA: Average Cups Against" msgstr "• <0>ACA: Promedio de Vasos en Contra" -#: src/features/players/components/player-stats-table.tsx:413 +#: src/features/players/components/player-stats-table.tsx:412 msgid "• <0>ALM: Average Loss Margin" msgstr "• <0>ALM: Margen Promedio de Derrota" -#: src/features/players/components/player-stats-table.tsx:410 +#: src/features/players/components/player-stats-table.tsx:409 msgid "• <0>AWM: Average Win Margin" msgstr "• <0>AWM: Margen Promedio de Victoria" @@ -274,15 +274,15 @@ msgstr "• <0>AWM: Margen Promedio de Victoria" msgid "• <0>Bracket reset: only picked if your bracket triggers it — worth double the Final" msgstr "• <0>Reinicio de bracket: solo se selecciona si tu bracket lo activa — vale el doble de la Final" -#: src/features/players/components/player-stats-table.tsx:425 +#: src/features/players/components/player-stats-table.tsx:424 msgid "• <0>CA: Cups Against" msgstr "• <0>VC: Vasos en Contra" -#: src/features/players/components/player-stats-table.tsx:422 +#: src/features/players/components/player-stats-table.tsx:421 msgid "• <0>CF: Cups For" msgstr "• <0>VF: Vasos a Favor" -#: src/features/players/components/player-stats-table.tsx:404 +#: src/features/players/components/player-stats-table.tsx:403 msgid "• <0>L: Losses" msgstr "• <0>D: Derrotas" @@ -290,23 +290,23 @@ msgstr "• <0>D: Derrotas" msgid "• <0>Losers bracket: 5, 10, 20, 40…" msgstr "• <0>Bracket de perdedores: 5, 10, 20, 40…" -#: src/features/players/components/player-stats-table.tsx:392 +#: src/features/players/components/player-stats-table.tsx:391 msgid "• <0>M: Matches" msgstr "• <0>J: Partidos" -#: src/features/players/components/player-stats-table.tsx:398 +#: src/features/players/components/player-stats-table.tsx:397 msgid "• <0>MMR: Matchmaking Rating" msgstr "• <0>MMR: Calificación de Emparejamiento" -#: src/features/players/components/player-stats-table.tsx:395 +#: src/features/players/components/player-stats-table.tsx:394 msgid "• <0>T: Tournaments" msgstr "• <0>T: Torneos" -#: src/features/players/components/player-stats-table.tsx:401 +#: src/features/players/components/player-stats-table.tsx:400 msgid "• <0>W: Wins" msgstr "• <0>V: Victorias" -#: src/features/players/components/player-stats-table.tsx:407 +#: src/features/players/components/player-stats-table.tsx:406 msgid "• <0>W%: Win Percentage" msgstr "• <0>V%: Porcentaje de Victorias" @@ -314,11 +314,11 @@ msgstr "• <0>V%: Porcentaje de Victorias" msgid "• <0>Winners bracket: 10, 20, 40, 80…" msgstr "• <0>Bracket de ganadores: 10, 20, 40, 80…" -#: src/features/players/components/player-stats-table.tsx:437 +#: src/features/players/components/player-stats-table.tsx:436 msgid "• Average Cups/Match (25%)" msgstr "• Promedio de Vasos/Partido (25%)" -#: src/features/players/components/player-stats-table.tsx:440 +#: src/features/players/components/player-stats-table.tsx:439 msgid "• Average Win Margin (15%)" msgstr "• Margen Promedio de Victoria (15%)" @@ -326,11 +326,11 @@ msgstr "• Margen Promedio de Victoria (15%)" msgid "• Each correct pick earns points, doubling every round" msgstr "• Cada acierto suma puntos, y se duplican cada ronda" -#: src/features/players/components/player-stats-table.tsx:443 +#: src/features/players/components/player-stats-table.tsx:442 msgid "• Match Volume Bonus (10%)" msgstr "• Bono por Volumen de Partidos (10%)" -#: src/features/players/components/player-stats-table.tsx:434 +#: src/features/players/components/player-stats-table.tsx:433 msgid "• Win Rate (50%)" msgstr "• Porcentaje de Victorias (50%)" @@ -720,7 +720,7 @@ msgstr "Elige un jugador" msgid "Claymation" msgstr "Plastilina" -#: src/features/players/components/league-head-to-head.tsx:102 +#: src/features/players/components/league-head-to-head.tsx:107 msgid "Clear selected player" msgstr "Quitar jugador seleccionado" @@ -1335,11 +1335,11 @@ msgstr "¿Ya has jugado antes?" #: src/app/routes/_authed/stats.tsx:56 #: src/features/bracket/components/match-dock.tsx:174 -#: src/features/bracket/components/match-dock.tsx:219 -#: src/features/matches/components/match-card.tsx:86 -#: src/features/matches/components/match-card.tsx:230 -#: src/features/players/components/league-head-to-head.tsx:193 -#: src/features/players/components/profile/header.tsx:94 +#: src/features/bracket/components/match-dock.tsx:224 +#: src/features/matches/components/match-card.tsx:89 +#: src/features/matches/components/match-card.tsx:233 +#: src/features/players/components/league-head-to-head.tsx:198 +#: src/features/players/components/profile/header.tsx:97 msgid "Head to Head" msgstr "Cara a cara" @@ -1611,7 +1611,7 @@ msgstr "Historial de partidos ({totalMatches})" msgid "Match started!" msgstr "¡Empezó el partido!" -#: src/features/players/components/player-stats-table.tsx:376 +#: src/features/players/components/player-stats-table.tsx:375 #: src/features/players/components/profile/index.tsx:87 #: src/features/players/components/profile/skeleton.tsx:70 #: src/features/teams/components/team-profile/index.tsx:44 @@ -1630,11 +1630,11 @@ msgstr "Los partidos de regionales no tienen un orden específico" msgid "Matches Played" msgstr "Partidos jugados" -#: src/features/predictions/components/prediction-editor.tsx:249 +#: src/features/predictions/components/prediction-editor.tsx:252 msgid "Matchup" msgstr "Enfrentamiento" -#: src/features/predictions/components/prediction-editor.tsx:226 +#: src/features/predictions/components/prediction-editor.tsx:229 msgid "Matchup details" msgstr "Detalles del enfrentamiento" @@ -1642,7 +1642,7 @@ msgstr "Detalles del enfrentamiento" msgid "MAU" msgstr "MAU" -#: src/features/players/components/league-head-to-head.tsx:123 +#: src/features/players/components/league-head-to-head.tsx:128 msgid "Me" msgstr "Yo" @@ -1651,11 +1651,11 @@ msgid "Migrate Badge Progress" msgstr "Migrar progreso de insignias" #: src/features/players/components/player-stats-table.tsx:131 -#: src/features/players/components/player-stats-table.tsx:356 +#: src/features/players/components/player-stats-table.tsx:355 msgid "MMR" msgstr "MMR" -#: src/features/players/components/player-stats-table.tsx:431 +#: src/features/players/components/player-stats-table.tsx:430 msgid "MMR Calculation:" msgstr "Cálculo de MMR:" @@ -1775,7 +1775,7 @@ msgstr "No hay partidos programados" msgid "No player activity found" msgstr "No se encontró actividad de jugadores" -#: src/features/players/components/league-head-to-head.tsx:151 +#: src/features/players/components/league-head-to-head.tsx:156 msgid "No players available" msgstr "No hay jugadores disponibles" @@ -1784,8 +1784,8 @@ msgstr "No hay jugadores disponibles" msgid "No players enrolled yet" msgstr "Aún no hay jugadores inscritos" -#: src/features/players/components/league-head-to-head.tsx:151 -#: src/features/players/components/player-stats-table.tsx:486 +#: src/features/players/components/league-head-to-head.tsx:156 +#: src/features/players/components/player-stats-table.tsx:485 msgid "No players found matching \"{search}\"" msgstr "No se encontraron jugadores que coincidan con \"{search}\"" @@ -1818,7 +1818,7 @@ msgstr "No hay canción seleccionada" msgid "No state captured" msgstr "No se capturó ningún estado" -#: src/features/players/components/player-stats-table.tsx:319 +#: src/features/players/components/player-stats-table.tsx:318 msgid "No Stats Available" msgstr "No hay estadísticas disponibles" @@ -2182,7 +2182,7 @@ msgid "rofl" msgstr "carcajada" #. placeholder {0}: match.round + 1 -#: src/features/matches/components/match-card.tsx:79 +#: src/features/matches/components/match-card.tsx:82 msgid "Round {0}" msgstr "Ronda {0}" @@ -2245,8 +2245,8 @@ msgstr "Buscar canciones..." msgid "Search for teams to enroll..." msgstr "Buscar equipos para inscribir..." -#: src/features/players/components/league-head-to-head.tsx:132 -#: src/features/players/components/player-stats-table.tsx:332 +#: src/features/players/components/league-head-to-head.tsx:137 +#: src/features/players/components/player-stats-table.tsx:331 msgid "Search players" msgstr "Buscar jugadores" @@ -2283,7 +2283,7 @@ msgstr "Selecciona una insignia" msgid "Select a device..." msgstr "Selecciona un dispositivo..." -#: src/features/players/components/league-head-to-head.tsx:112 +#: src/features/players/components/league-head-to-head.tsx:117 msgid "Select a player" msgstr "Selecciona un jugador" @@ -2382,7 +2382,7 @@ msgstr "Mostrar detalles" #. placeholder {0}: filteredAndSortedStats.length #. placeholder {1}: playerStats.length -#: src/features/players/components/player-stats-table.tsx:329 +#: src/features/players/components/player-stats-table.tsx:328 msgid "Showing {0} of {1} players" msgstr "Mostrando {0} de {1} jugadores" @@ -2434,7 +2434,7 @@ 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/players/components/player-stats-table.tsx:350 +#: src/features/players/components/player-stats-table.tsx:349 #: src/features/telemetry/components/shared/search-filter-bar.tsx:102 msgid "Sort:" msgstr "Ordenar:" @@ -2489,11 +2489,11 @@ msgstr "Empieza a escribir para buscar..." msgid "Starts in" msgstr "Comienza en" -#: src/features/players/components/player-stats-table.tsx:382 +#: src/features/players/components/player-stats-table.tsx:381 msgid "Stat abbreviations and MMR info" msgstr "Abreviaturas de estadísticas e información de MMR" -#: src/features/players/components/player-stats-table.tsx:389 +#: src/features/players/components/player-stats-table.tsx:388 msgid "Stat Abbreviations:" msgstr "Abreviaturas de estadísticas:" @@ -2520,7 +2520,7 @@ msgstr "Estado" #: src/components/sheet/slide-panel/slide-panel.tsx:40 #: src/features/login/components/player-prompt/index.tsx:115 #: src/features/login/components/player-prompt/index.tsx:126 -#: src/features/predictions/components/prediction-editor.tsx:240 +#: src/features/predictions/components/prediction-editor.tsx:243 #: src/features/tournaments/components/edit-rules.tsx:39 msgid "Submit" msgstr "Enviar" @@ -2543,7 +2543,7 @@ msgstr "Sistema" msgid "T" msgstr "T" -#: src/features/players/components/league-head-to-head.tsx:92 +#: src/features/players/components/league-head-to-head.tsx:97 msgid "Tap an opponent below to compare" msgstr "Toca un oponente abajo para comparar" @@ -2810,7 +2810,7 @@ msgstr "Próximos" msgid "Update Match" msgstr "Actualizar partido" -#: src/features/players/components/profile/header.tsx:89 +#: src/features/players/components/profile/header.tsx:92 msgid "Update Name" msgstr "Actualizar nombre" @@ -2853,8 +2853,8 @@ msgstr "Ver bracket" msgid "View Groups" msgstr "Ver grupos" -#: src/features/bracket/components/match-dock.tsx:182 -#: src/features/matches/components/match-card.tsx:91 +#: src/features/bracket/components/match-dock.tsx:187 +#: src/features/matches/components/match-card.tsx:94 msgid "View head-to-head" msgstr "Ver cara a cara" @@ -2935,7 +2935,7 @@ msgstr "Final del bracket de ganadores" #: src/components/stats-overview.tsx:103 #: src/components/stats-overview.tsx:136 -#: src/features/players/components/player-stats-table.tsx:366 +#: src/features/players/components/player-stats-table.tsx:365 msgid "Wins" msgstr "Victorias" diff --git a/src/locales/ja/messages.po b/src/locales/ja/messages.po index 7d0c3ea..0c02a3c 100644 --- a/src/locales/ja/messages.po +++ b/src/locales/ja/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/features/matches/components/match-card.tsx:80 +#: src/features/matches/components/match-card.tsx:83 msgid " (Losers)" msgstr " (敗者側)" @@ -228,7 +228,7 @@ msgstr "{namesList}他1名" msgid "{size}-team knockout" msgstr "{size}チームノックアウト" -#: src/features/players/components/player-stats-table.tsx:446 +#: src/features/players/components/player-stats-table.tsx:445 msgid "* Confidence penalty applied for players with <15 matches" msgstr "※試合数が15未満のプレイヤーには信頼度ペナルティが適用されます" @@ -241,7 +241,7 @@ msgstr "※必要な場合" msgid "* PICKS shows correct picks / total picks made" msgstr "※PICKSは正解数/予想総数を表示" -#: src/features/players/components/player-stats-table.tsx:449 +#: src/features/players/components/player-stats-table.tsx:448 msgid "** Not an official rating" msgstr "※※公式レーティングではありません" @@ -254,19 +254,19 @@ msgstr "&" msgid "#{0}" msgstr "#{0}" -#: src/features/players/components/player-stats-table.tsx:416 +#: src/features/players/components/player-stats-table.tsx:415 msgid "• <0>AC: Average Cups Per Match" msgstr "• <0>AC:平均獲得カップ数(1試合あたり)" -#: src/features/players/components/player-stats-table.tsx:419 +#: src/features/players/components/player-stats-table.tsx:418 msgid "• <0>ACA: Average Cups Against" msgstr "• <0>ACA:平均失カップ数" -#: src/features/players/components/player-stats-table.tsx:413 +#: src/features/players/components/player-stats-table.tsx:412 msgid "• <0>ALM: Average Loss Margin" msgstr "• <0>ALM:平均敗差" -#: src/features/players/components/player-stats-table.tsx:410 +#: src/features/players/components/player-stats-table.tsx:409 msgid "• <0>AWM: Average Win Margin" msgstr "• <0>AWM:平均勝差" @@ -274,15 +274,15 @@ msgstr "• <0>AWM:平均勝差" msgid "• <0>Bracket reset: only picked if your bracket triggers it — worth double the Final" msgstr "• <0>ブラケットリセット:自分のブラケットで発生した場合のみ選択可能 — ファイナルの2倍の得点" -#: src/features/players/components/player-stats-table.tsx:425 +#: src/features/players/components/player-stats-table.tsx:424 msgid "• <0>CA: Cups Against" msgstr "• <0>CA:失カップ数" -#: src/features/players/components/player-stats-table.tsx:422 +#: src/features/players/components/player-stats-table.tsx:421 msgid "• <0>CF: Cups For" msgstr "• <0>CF:獲得カップ数" -#: src/features/players/components/player-stats-table.tsx:404 +#: src/features/players/components/player-stats-table.tsx:403 msgid "• <0>L: Losses" msgstr "• <0>L:敗数" @@ -290,23 +290,23 @@ msgstr "• <0>L:敗数" msgid "• <0>Losers bracket: 5, 10, 20, 40…" msgstr "• <0>敗者ブラケット:5、10、20、40…" -#: src/features/players/components/player-stats-table.tsx:392 +#: src/features/players/components/player-stats-table.tsx:391 msgid "• <0>M: Matches" msgstr "• <0>M:試合数" -#: src/features/players/components/player-stats-table.tsx:398 +#: src/features/players/components/player-stats-table.tsx:397 msgid "• <0>MMR: Matchmaking Rating" msgstr "• <0>MMR:マッチメイキングレーティング" -#: src/features/players/components/player-stats-table.tsx:395 +#: src/features/players/components/player-stats-table.tsx:394 msgid "• <0>T: Tournaments" msgstr "• <0>T:トーナメント数" -#: src/features/players/components/player-stats-table.tsx:401 +#: src/features/players/components/player-stats-table.tsx:400 msgid "• <0>W: Wins" msgstr "• <0>W:勝数" -#: src/features/players/components/player-stats-table.tsx:407 +#: src/features/players/components/player-stats-table.tsx:406 msgid "• <0>W%: Win Percentage" msgstr "• <0>W%:勝率" @@ -314,11 +314,11 @@ msgstr "• <0>W%:勝率" msgid "• <0>Winners bracket: 10, 20, 40, 80…" msgstr "• <0>勝者ブラケット:10、20、40、80…" -#: src/features/players/components/player-stats-table.tsx:437 +#: src/features/players/components/player-stats-table.tsx:436 msgid "• Average Cups/Match (25%)" msgstr "• 平均獲得カップ数/試合(25%)" -#: src/features/players/components/player-stats-table.tsx:440 +#: src/features/players/components/player-stats-table.tsx:439 msgid "• Average Win Margin (15%)" msgstr "• 平均勝差(15%)" @@ -326,11 +326,11 @@ msgstr "• 平均勝差(15%)" msgid "• Each correct pick earns points, doubling every round" msgstr "• 予想が的中するたびにポイント獲得、ラウンドごとに倍増" -#: src/features/players/components/player-stats-table.tsx:443 +#: src/features/players/components/player-stats-table.tsx:442 msgid "• Match Volume Bonus (10%)" msgstr "• 試合数ボーナス(10%)" -#: src/features/players/components/player-stats-table.tsx:434 +#: src/features/players/components/player-stats-table.tsx:433 msgid "• Win Rate (50%)" msgstr "• 勝率(50%)" @@ -720,7 +720,7 @@ msgstr "プレイヤーを選択" msgid "Claymation" msgstr "クレイ" -#: src/features/players/components/league-head-to-head.tsx:102 +#: src/features/players/components/league-head-to-head.tsx:107 msgid "Clear selected player" msgstr "選択したプレイヤーを解除" @@ -1335,11 +1335,11 @@ msgstr "参加したことはありますか?" #: src/app/routes/_authed/stats.tsx:56 #: src/features/bracket/components/match-dock.tsx:174 -#: src/features/bracket/components/match-dock.tsx:219 -#: src/features/matches/components/match-card.tsx:86 -#: src/features/matches/components/match-card.tsx:230 -#: src/features/players/components/league-head-to-head.tsx:193 -#: src/features/players/components/profile/header.tsx:94 +#: src/features/bracket/components/match-dock.tsx:224 +#: src/features/matches/components/match-card.tsx:89 +#: src/features/matches/components/match-card.tsx:233 +#: src/features/players/components/league-head-to-head.tsx:198 +#: src/features/players/components/profile/header.tsx:97 msgid "Head to Head" msgstr "対戦成績" @@ -1611,7 +1611,7 @@ msgstr "対戦履歴({totalMatches})" msgid "Match started!" msgstr "試合開始!" -#: src/features/players/components/player-stats-table.tsx:376 +#: src/features/players/components/player-stats-table.tsx:375 #: src/features/players/components/profile/index.tsx:87 #: src/features/players/components/profile/skeleton.tsx:70 #: src/features/teams/components/team-profile/index.tsx:44 @@ -1630,11 +1630,11 @@ msgstr "地区予選の試合は順不同です" msgid "Matches Played" msgstr "試合数" -#: src/features/predictions/components/prediction-editor.tsx:249 +#: src/features/predictions/components/prediction-editor.tsx:252 msgid "Matchup" msgstr "対戦カード" -#: src/features/predictions/components/prediction-editor.tsx:226 +#: src/features/predictions/components/prediction-editor.tsx:229 msgid "Matchup details" msgstr "対戦カードの詳細" @@ -1642,7 +1642,7 @@ msgstr "対戦カードの詳細" msgid "MAU" msgstr "MAU" -#: src/features/players/components/league-head-to-head.tsx:123 +#: src/features/players/components/league-head-to-head.tsx:128 msgid "Me" msgstr "自分" @@ -1651,11 +1651,11 @@ msgid "Migrate Badge Progress" msgstr "バッジ進捗を移行" #: src/features/players/components/player-stats-table.tsx:131 -#: src/features/players/components/player-stats-table.tsx:356 +#: src/features/players/components/player-stats-table.tsx:355 msgid "MMR" msgstr "MMR" -#: src/features/players/components/player-stats-table.tsx:431 +#: src/features/players/components/player-stats-table.tsx:430 msgid "MMR Calculation:" msgstr "MMR計算:" @@ -1775,7 +1775,7 @@ msgstr "予定されている試合はありません" msgid "No player activity found" msgstr "プレイヤーのアクティビティが見つかりません" -#: src/features/players/components/league-head-to-head.tsx:151 +#: src/features/players/components/league-head-to-head.tsx:156 msgid "No players available" msgstr "利用可能なプレイヤーがいません" @@ -1784,8 +1784,8 @@ msgstr "利用可能なプレイヤーがいません" msgid "No players enrolled yet" msgstr "まだプレイヤーが登録されていません" -#: src/features/players/components/league-head-to-head.tsx:151 -#: src/features/players/components/player-stats-table.tsx:486 +#: src/features/players/components/league-head-to-head.tsx:156 +#: src/features/players/components/player-stats-table.tsx:485 msgid "No players found matching \"{search}\"" msgstr "「{search}」に一致するプレイヤーが見つかりません" @@ -1818,7 +1818,7 @@ msgstr "曲が選択されていません" msgid "No state captured" msgstr "キャプチャされた状態がありません" -#: src/features/players/components/player-stats-table.tsx:319 +#: src/features/players/components/player-stats-table.tsx:318 msgid "No Stats Available" msgstr "利用可能な統計がありません" @@ -2182,7 +2182,7 @@ msgid "rofl" msgstr "大笑い" #. placeholder {0}: match.round + 1 -#: src/features/matches/components/match-card.tsx:79 +#: src/features/matches/components/match-card.tsx:82 msgid "Round {0}" msgstr "ラウンド{0}" @@ -2245,8 +2245,8 @@ msgstr "曲を検索..." msgid "Search for teams to enroll..." msgstr "登録するチームを検索..." -#: src/features/players/components/league-head-to-head.tsx:132 -#: src/features/players/components/player-stats-table.tsx:332 +#: src/features/players/components/league-head-to-head.tsx:137 +#: src/features/players/components/player-stats-table.tsx:331 msgid "Search players" msgstr "プレイヤーを検索" @@ -2283,7 +2283,7 @@ msgstr "バッジを選択" msgid "Select a device..." msgstr "デバイスを選択..." -#: src/features/players/components/league-head-to-head.tsx:112 +#: src/features/players/components/league-head-to-head.tsx:117 msgid "Select a player" msgstr "プレイヤーを選択" @@ -2382,7 +2382,7 @@ msgstr "詳細を表示" #. placeholder {0}: filteredAndSortedStats.length #. placeholder {1}: playerStats.length -#: src/features/players/components/player-stats-table.tsx:329 +#: src/features/players/components/player-stats-table.tsx:328 msgid "Showing {0} of {1} players" msgstr "{1}人中{0}人のプレイヤーを表示" @@ -2434,7 +2434,7 @@ msgstr "曲のセグメントは15秒以内にしてください" msgid "Song start time is required" msgstr "曲の開始時間を入力してください" -#: src/features/players/components/player-stats-table.tsx:350 +#: src/features/players/components/player-stats-table.tsx:349 #: src/features/telemetry/components/shared/search-filter-bar.tsx:102 msgid "Sort:" msgstr "並び替え:" @@ -2489,11 +2489,11 @@ msgstr "入力して検索..." msgid "Starts in" msgstr "開始まで" -#: src/features/players/components/player-stats-table.tsx:382 +#: src/features/players/components/player-stats-table.tsx:381 msgid "Stat abbreviations and MMR info" msgstr "スタッツ略語とMMR情報" -#: src/features/players/components/player-stats-table.tsx:389 +#: src/features/players/components/player-stats-table.tsx:388 msgid "Stat Abbreviations:" msgstr "スタッツ略語:" @@ -2520,7 +2520,7 @@ msgstr "ステータス" #: src/components/sheet/slide-panel/slide-panel.tsx:40 #: src/features/login/components/player-prompt/index.tsx:115 #: src/features/login/components/player-prompt/index.tsx:126 -#: src/features/predictions/components/prediction-editor.tsx:240 +#: src/features/predictions/components/prediction-editor.tsx:243 #: src/features/tournaments/components/edit-rules.tsx:39 msgid "Submit" msgstr "送信" @@ -2543,7 +2543,7 @@ msgstr "システム" msgid "T" msgstr "T" -#: src/features/players/components/league-head-to-head.tsx:92 +#: src/features/players/components/league-head-to-head.tsx:97 msgid "Tap an opponent below to compare" msgstr "下の対戦相手をタップして比較" @@ -2810,7 +2810,7 @@ msgstr "開催予定" msgid "Update Match" msgstr "試合を更新" -#: src/features/players/components/profile/header.tsx:89 +#: src/features/players/components/profile/header.tsx:92 msgid "Update Name" msgstr "名前を更新" @@ -2853,8 +2853,8 @@ msgstr "ブラケットを見る" msgid "View Groups" msgstr "グループを見る" -#: src/features/bracket/components/match-dock.tsx:182 -#: src/features/matches/components/match-card.tsx:91 +#: src/features/bracket/components/match-dock.tsx:187 +#: src/features/matches/components/match-card.tsx:94 msgid "View head-to-head" msgstr "対戦成績を見る" @@ -2935,7 +2935,7 @@ msgstr "勝者ブラケット決勝" #: src/components/stats-overview.tsx:103 #: src/components/stats-overview.tsx:136 -#: src/features/players/components/player-stats-table.tsx:366 +#: src/features/players/components/player-stats-table.tsx:365 msgid "Wins" msgstr "勝利数"