Development #24

Merged
kyle merged 35 commits from development into main 2026-08-28 10:40:10 -05:00
12 changed files with 222 additions and 238 deletions
Showing only changes of commit fd0489a22f - Show all commits
+9 -9
View File
@@ -4,11 +4,11 @@ import { Trans } from "@lingui/react/macro";
import { msg } from "@lingui/core/macro";
const TAB_ROUTES = {
usage: "/admin/telemetry/usage",
players: "/admin/telemetry/players",
functions: "/admin/telemetry/functions",
events: "/admin/telemetry/events",
errors: "/admin/telemetry/errors",
players: "/admin/telemetry/players",
usage: "/admin/telemetry/usage",
} as const;
type TabValue = keyof typeof TAB_ROUTES;
@@ -29,7 +29,7 @@ function TelemetryLayout() {
const activeTab =
(Object.keys(TAB_ROUTES) as TabValue[]).find((tab) =>
pathname.endsWith(`/${tab}`)
) ?? "functions";
) ?? "usage";
return (
<Tabs
@@ -41,6 +41,12 @@ function TelemetryLayout() {
}}
>
<Tabs.List mb="md" style={{ flexWrap: "nowrap", overflowX: "auto", overflowY: "hidden" }}>
<Tabs.Tab value="usage">
<Trans>Usage</Trans>
</Tabs.Tab>
<Tabs.Tab value="players">
<Trans>Players</Trans>
</Tabs.Tab>
<Tabs.Tab value="functions">
<Trans>Functions</Trans>
</Tabs.Tab>
@@ -50,12 +56,6 @@ function TelemetryLayout() {
<Tabs.Tab value="errors">
<Trans>Errors</Trans>
</Tabs.Tab>
<Tabs.Tab value="players">
<Trans>Players</Trans>
</Tabs.Tab>
<Tabs.Tab value="usage">
<Trans>Usage</Trans>
</Tabs.Tab>
</Tabs.List>
<Outlet />
@@ -2,6 +2,6 @@ import { createFileRoute, redirect } from "@tanstack/react-router";
export const Route = createFileRoute("/_authed/admin/telemetry/")({
beforeLoad: () => {
throw redirect({ to: "/admin/telemetry/functions" });
throw redirect({ to: "/admin/telemetry/usage" });
},
});
@@ -54,7 +54,7 @@ export const ToolsList = () => {
<ListLink
label={t`Telemetry`}
Icon={PulseIcon}
to="/admin/telemetry/functions"
to="/admin/telemetry/usage"
/>
<ListLink
label={t`Award Badges`}
@@ -1,9 +1,15 @@
import { Text } from "@mantine/core";
import { Group, Text } from "@mantine/core";
import { niceExtent, pointsToPath } from "./chart-path";
const VIEW_WIDTH = 240;
const PAD = 3;
export interface SparklineScale {
start?: string;
end?: string;
formatValue?: (value: number) => string;
}
interface SparklineProps {
data: number[];
series2?: number[];
@@ -11,6 +17,7 @@ interface SparklineProps {
showArea?: boolean;
label?: string;
color?: string;
scale?: SparklineScale;
}
export const Sparkline = ({
@@ -20,6 +27,7 @@ export const Sparkline = ({
showArea = false,
label,
color = "var(--mantine-color-anchor)",
scale,
}: SparklineProps) => {
if (data.length === 0) {
return (
@@ -38,7 +46,11 @@ export const Sparkline = ({
? `${path} L${VIEW_WIDTH - PAD},${height - PAD} L${PAD},${height - PAD} Z`
: null;
return (
const allValues = series2?.length ? [...data, ...series2] : data;
const max = Math.max(...allValues);
const formatValue = scale?.formatValue ?? ((value: number) => value.toLocaleString());
const svg = (
<svg
viewBox={`0 0 ${VIEW_WIDTH} ${height}`}
preserveAspectRatio="none"
@@ -72,6 +84,25 @@ export const Sparkline = ({
)}
</svg>
);
if (!scale) return svg;
return (
<div>
{svg}
<Group justify="space-between" gap="xs" mt={2}>
<Text size="xs" c="dimmed">
{scale.start}
</Text>
<Text size="xs" c="dimmed" style={{ fontVariantNumeric: "tabular-nums" }}>
↑{formatValue(max)}
</Text>
<Text size="xs" c="dimmed">
{scale.end}
</Text>
</Group>
</div>
);
};
export default Sparkline;
@@ -1,21 +1,32 @@
import { ReactNode } from "react";
import { Box, Group, Stack, Text, UnstyledButton } from "@mantine/core";
import Sparkline from "./sparkline";
import Sparkline, { SparklineScale } from "./sparkline";
interface StatTileProps {
label: ReactNode;
value: ReactNode;
valueColor?: string;
delta?: number;
spark?: number[];
sparkScale?: SparklineScale;
caption?: ReactNode;
onClick?: () => void;
}
export const StatTile = ({ label, value, delta, spark, caption, onClick }: StatTileProps) => {
export const StatTile = ({
label,
value,
valueColor,
delta,
spark,
sparkScale,
caption,
onClick,
}: StatTileProps) => {
const content = (
<Stack gap={2}>
<Group gap="xs" align="baseline" wrap="nowrap">
<Text fz="xl" fw={700} lh={1.2}>
<Text fz="xl" fw={700} lh={1.2} c={valueColor}>
{value}
</Text>
{delta !== undefined && delta !== 0 && (
@@ -29,7 +40,9 @@ export const StatTile = ({ label, value, delta, spark, caption, onClick }: StatT
{label}
</Text>
{caption && <Box>{caption}</Box>}
{spark && spark.length > 0 && <Sparkline data={spark} height={28} />}
{spark && spark.length > 0 && (
<Sparkline data={spark} height={28} scale={sparkScale} />
)}
</Stack>
);
@@ -1,9 +1,7 @@
import { Suspense, useMemo, useState } from "react";
import { useLingui } from "@lingui/react/macro";
import { Container, Divider, Group, Stack, Switch } from "@mantine/core";
import { ChecksIcon } from "@phosphor-icons/react";
import { Trans, useLingui } from "@lingui/react/macro";
import { Container, Divider, Group, Stack, Switch, Text } from "@mantine/core";
import { ListSkeleton } from "@/components/skeletons";
import EmptyState from "@/components/empty-state";
import { useClientErrorGroups } from "../../queries";
import { lastNDays } from "../../range";
import { ErrorGroupRow } from "./error-group-row";
@@ -17,16 +15,13 @@ const ErrorGroupList = ({
to: string;
includeResolved: boolean;
}) => {
const { t } = useLingui();
const { data: groups } = useClientErrorGroups({ from, to, includeResolved });
if (groups.length === 0) {
return (
<EmptyState
icon={<ChecksIcon size={32} />}
title={t`No unresolved errors`}
description={t`Nothing has broken in the last 30 days. Keep it up.`}
/>
<Text size="sm" c="dimmed" px="md" py="xl" ta="center">
<Trans>No unresolved errors</Trans>
</Text>
);
}
@@ -1,7 +1,6 @@
import { useState } from "react";
import { Trans, useLingui } from "@lingui/react/macro";
import {
Badge,
Box,
Button,
Code,
@@ -42,9 +41,14 @@ export const ErrorGroupRow = ({ group }: { group: ClientErrorGroup }) => {
>
<Stack gap={4}>
<Group gap="xs" wrap="nowrap">
<Badge color={group.resolved ? "gray" : "red"} variant="light" size="sm">
{group.count.toLocaleString()}
</Badge>
<Text
size="sm"
fw={700}
c={group.resolved ? "dimmed" : "red"}
style={{ flexShrink: 0, fontVariantNumeric: "tabular-nums" }}
>
{group.count.toLocaleString()}×
</Text>
<Text size="sm" fw={600} lineClamp={2} style={{ minWidth: 0 }}>
{group.sample.message}
</Text>
@@ -85,7 +89,7 @@ export const ErrorGroupRow = ({ group }: { group: ClientErrorGroup }) => {
<Group justify="flex-end">
<Button
size="xs"
variant="light"
variant="subtle"
color={group.resolved ? "yellow" : "green"}
loading={resolveMutation.isPending}
onClick={() =>
@@ -1,7 +1,6 @@
import { Suspense, useMemo, useState } from "react";
import { Trans, useLingui } from "@lingui/react/macro";
import {
Badge,
Divider,
Group,
SegmentedControl,
@@ -45,25 +44,18 @@ const vitalRating = (name: VitalName, value: number): "good" | "ok" | "poor" =>
return "ok";
};
const VitalBadge = ({ name, value }: { name: VitalName; value: number }) => {
const vitalColor = (name: VitalName, value: number): string | undefined => {
const rating = vitalRating(name, value);
const color = rating === "good" ? "green" : rating === "ok" ? "yellow" : "red";
return (
<Badge color={color} variant="light" size="sm">
{rating === "good" ? (
<Trans>Good</Trans>
) : rating === "ok" ? (
<Trans>Needs improvement</Trans>
) : (
<Trans>Poor</Trans>
)}
</Badge>
);
if (rating === "good") return undefined;
return rating === "ok" ? "yellow.8" : "red";
};
const formatVital = (name: VitalName, value: number) =>
name === "CLS" ? value.toFixed(2) : `${Math.round(value)}ms`;
const dayLabel = (i18n: { date: (d: Date, opts?: Intl.DateTimeFormatOptions) => string }, day: string) =>
i18n.date(new Date(`${day}T12:00:00Z`), { month: "short", day: "numeric" });
const topItems = (totals: Map<string, number>, onClick?: (dim: string) => void) =>
[...totals.entries()]
.sort((a, b) => b[1] - a[1])
@@ -75,6 +67,7 @@ const topItems = (totals: Map<string, number>, onClick?: (dim: string) => void)
}));
const FnDurationDetail = ({ fn, from, to }: { fn: string; from: string; to: string }) => {
const { i18n } = useLingui();
const { data: rows } = useRollupRange({
metrics: ["server_fn.duration.p50", "server_fn.duration.p95"],
from,
@@ -87,7 +80,17 @@ const FnDurationDetail = ({ fn, from, to }: { fn: string; from: string; to: stri
return (
<Stack gap="xs">
<Sparkline data={p50} series2={p95} height={64} showArea />
<Sparkline
data={p50}
series2={p95}
height={64}
showArea
scale={{
start: dayLabel(i18n, from),
end: dayLabel(i18n, to),
formatValue: (value) => `${Math.round(value)}ms`,
}}
/>
<Group gap="md">
<Group gap={6}>
<svg width={18} height={8} aria-hidden>
@@ -119,7 +122,7 @@ const FnDurationDetail = ({ fn, from, to }: { fn: string; from: string; to: stri
};
const UsageSections = ({ from, to }: { from: string; to: string }) => {
const { t } = useLingui();
const { t, i18n } = useLingui();
const [selectedFn, setSelectedFn] = useState<string | null>(null);
const { isOpen: fnDetailOpened, open: openFnDetail, close: closeFnDetail } = useSheet();
@@ -159,6 +162,7 @@ const UsageSections = ({ from, to }: { from: string; to: string }) => {
label={<Trans>Daily active players</Trans>}
value={(dauSeries[dauSeries.length - 1] ?? 0).toLocaleString()}
spark={dauSeries}
sparkScale={{ start: dayLabel(i18n, from), end: dayLabel(i18n, to) }}
/>
<SimpleGrid cols={3} spacing="sm">
<StatTile
@@ -200,9 +204,10 @@ const UsageSections = ({ from, to }: { from: string; to: string }) => {
<Trans>Errors</Trans>
</Title>
<StatTile
label={<Trans>Client errors per day</Trans>}
label={<Trans>Client errors</Trans>}
value={errorSeries.reduce((sum, value) => sum + value, 0).toLocaleString()}
spark={errorSeries}
sparkScale={{ start: dayLabel(i18n, from), end: dayLabel(i18n, to) }}
/>
</Stack>
@@ -218,7 +223,7 @@ const UsageSections = ({ from, to }: { from: string; to: string }) => {
key={name}
label={name}
value={value !== undefined ? formatVital(name, value) : "—"}
caption={value !== undefined ? <VitalBadge name={name} value={value} /> : undefined}
valueColor={value !== undefined ? vitalColor(name, value) : undefined}
/>
))}
</SimpleGrid>
+31 -47
View File
@@ -355,7 +355,7 @@ msgstr "2. Frühere Abgabe"
msgid "2nd place"
msgstr "2. Platz"
#: src/features/telemetry/components/usage-screen.tsx:258
#: src/features/telemetry/components/usage-screen.tsx:263
msgid "30d"
msgstr "30 T"
@@ -371,7 +371,7 @@ msgstr "3. Platz"
msgid "5s"
msgstr "5 s"
#: src/features/telemetry/components/usage-screen.tsx:257
#: src/features/telemetry/components/usage-screen.tsx:262
msgid "7d"
msgstr "7 T"
@@ -716,9 +716,9 @@ msgstr "Ausgewählten Spieler entfernen"
msgid "Client error spike"
msgstr "Anstieg von Client-Fehlern"
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "Client-Fehler pro Tag"
#: src/features/telemetry/components/usage-screen.tsx:207
msgid "Client errors"
msgstr "Client-Fehler"
#: src/components/sheet/modal.tsx:35
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
@@ -875,7 +875,7 @@ msgstr "Becher erzielt"
msgid "Custom Hex Code"
msgstr "Benutzerdefinierter Hex-Code"
#: src/features/telemetry/components/usage-screen.tsx:159
#: src/features/telemetry/components/usage-screen.tsx:162
msgid "Daily active players"
msgstr "Täglich aktive Spieler"
@@ -934,7 +934,7 @@ msgstr "Nachfolgende Matches wurden zurückgesetzt, da sich durch die Korrektur
msgid "Duration"
msgstr "Dauer"
#: src/features/telemetry/components/usage-screen.tsx:235
#: src/features/telemetry/components/usage-screen.tsx:240
msgid "Duration p50 / p95"
msgstr "Dauer p50 / p95"
@@ -996,7 +996,7 @@ msgstr "Enddatum (optional)"
msgid "End Match"
msgstr "Match beenden"
#: src/features/telemetry/components/usage-screen.tsx:156
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Engagement"
msgstr "Engagement"
@@ -1080,11 +1080,11 @@ msgstr "Gib deinen Namen ein"
msgid "Enter your phone number"
msgstr "Gib deine Telefonnummer ein"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:29
#: src/features/telemetry/components/error-browser/error-group-row.tsx:28
msgid "Error group reopened"
msgstr "Fehlergruppe wieder geöffnet"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:29
#: src/features/telemetry/components/error-browser/error-group-row.tsx:28
msgid "Error group resolved"
msgstr "Fehlergruppe behoben"
@@ -1096,8 +1096,8 @@ msgstr "Fehlermeldung"
msgid "Error: {errorMessage}"
msgstr "Fehler: {errorMessage}"
#: src/app/routes/_authed/admin/telemetry.tsx:51
#: src/features/telemetry/components/usage-screen.tsx:200
#: src/app/routes/_authed/admin/telemetry.tsx:57
#: src/features/telemetry/components/usage-screen.tsx:204
msgid "Errors"
msgstr "Fehler"
@@ -1109,7 +1109,7 @@ msgstr "Ereignisdetails"
msgid "Event name"
msgstr "Ereignisname"
#: src/app/routes/_authed/admin/telemetry.tsx:48
#: src/app/routes/_authed/admin/telemetry.tsx:54
msgid "Events"
msgstr "Ereignisse"
@@ -1238,7 +1238,7 @@ msgstr "Free-Agent-Anmeldung"
msgid "Free Agents"
msgstr "Free Agents"
#: src/features/telemetry/components/usage-screen.tsx:228
#: src/features/telemetry/components/usage-screen.tsx:233
msgid "Function"
msgstr "Funktion"
@@ -1246,7 +1246,7 @@ msgstr "Funktion"
msgid "Function Name"
msgstr "Funktionsname"
#: src/app/routes/_authed/admin/telemetry.tsx:45
#: src/app/routes/_authed/admin/telemetry.tsx:51
msgid "Functions"
msgstr "Funktionen"
@@ -1264,10 +1264,6 @@ msgstr "Zurück"
msgid "Go Back"
msgstr "Zurück"
#: src/features/telemetry/components/usage-screen.tsx:54
msgid "Good"
msgstr "Gut"
#: src/themes/seventies/manifest.ts:6
msgid "Groovy"
msgstr "Groovy"
@@ -1375,7 +1371,7 @@ msgstr "Wenn du zum ersten Mal dabei bist, wähle <0>Neuer Spieler</0>, 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
#: src/features/telemetry/components/error-browser/error-browser.tsx:51
msgid "Include resolved"
msgstr "Behobene einschließen"
@@ -1552,7 +1548,7 @@ msgstr "Turniere verwalten"
msgid "margin"
msgstr "Differenz"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:98
#: src/features/telemetry/components/error-browser/error-group-row.tsx:102
msgid "Mark resolved"
msgstr "Als behoben markieren"
@@ -1620,7 +1616,7 @@ msgstr "Matchup"
msgid "Matchup details"
msgstr "Matchup-Details"
#: src/features/telemetry/components/usage-screen.tsx:169
#: src/features/telemetry/components/usage-screen.tsx:173
msgid "MAU"
msgstr "MAU"
@@ -1666,10 +1662,6 @@ 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 "Verbesserungswürdig"
#: src/features/reactions/components/emoji-picker.tsx:23
msgid "nerd"
msgstr "Nerd"
@@ -1830,7 +1822,7 @@ msgstr "Keine Turniere gefunden"
msgid "No Tournaments Yet"
msgstr "Noch keine Turniere"
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
#: src/features/telemetry/components/error-browser/error-browser.tsx:23
msgid "No unresolved errors"
msgstr "Keine offenen Fehler"
@@ -1846,10 +1838,6 @@ 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 "In den letzten 30 Tagen ist nichts kaputtgegangen. Weiter so!"
#: src/features/settings/components/notifications-section.tsx:18
#: src/features/settings/components/notifications-section.tsx:59
msgid "Notifications"
@@ -1941,15 +1929,15 @@ msgstr "Übersicht"
msgid "owo"
msgstr "owo"
#: src/features/telemetry/components/usage-screen.tsx:97
#: src/features/telemetry/components/usage-screen.tsx:100
msgid "p50"
msgstr "p50"
#: src/features/telemetry/components/usage-screen.tsx:113
#: src/features/telemetry/components/usage-screen.tsx:116
msgid "p95"
msgstr "p95"
#: src/features/telemetry/components/usage-screen.tsx:176
#: src/features/telemetry/components/usage-screen.tsx:180
msgid "Page views by route"
msgstr "Seitenaufrufe nach Route"
@@ -2036,7 +2024,7 @@ msgstr "Spieler erfolgreich entfernt"
msgid "Player Stats"
msgstr "Spielerstatistiken"
#: src/app/routes/_authed/admin/telemetry.tsx:54
#: src/app/routes/_authed/admin/telemetry.tsx:48
#: src/features/teams/components/team-profile/index.tsx:29
msgid "Players"
msgstr "Spieler"
@@ -2050,10 +2038,6 @@ msgstr "Spieler sind erforderlich"
msgid "Playing on {0}"
msgstr "Wird auf {0} abgespielt"
#: src/features/telemetry/components/usage-screen.tsx:58
msgid "Poor"
msgstr "Schlecht"
#: src/features/tournaments/components/group-stage-view.tsx:314
msgid "Populate Knockout Bracket"
msgstr "K.-o.-Runde befüllen"
@@ -2137,7 +2121,7 @@ msgstr "Regional"
msgid "Regional Tournament"
msgstr "Regionalturnier"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:98
#: src/features/telemetry/components/error-browser/error-group-row.tsx:102
msgid "Reopen"
msgstr "Wieder öffnen"
@@ -2154,7 +2138,7 @@ msgstr "Ergebnis melden"
msgid "Request failed"
msgstr "Anfrage fehlgeschlagen"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:63
#: src/features/telemetry/components/error-browser/error-group-row.tsx:67
msgid "Resolved"
msgstr "Behoben"
@@ -2359,7 +2343,7 @@ msgstr "Serie steht unentschieden"
msgid "Server function failing"
msgstr "Serverfunktion schlägt fehl"
#: src/features/telemetry/components/usage-screen.tsx:186
#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Server functions"
msgstr "Serverfunktionen"
@@ -2371,7 +2355,7 @@ msgstr "serverFn-Name"
msgid "Session"
msgstr "Sitzung"
#: src/features/telemetry/components/usage-screen.tsx:172
#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Sessions"
msgstr "Sitzungen"
@@ -2703,7 +2687,7 @@ 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:190
#: src/features/telemetry/components/usage-screen.tsx:194
msgid "Top functions by call count"
msgstr "Top-Funktionen nach Aufrufanzahl"
@@ -2820,7 +2804,7 @@ msgstr "Team aktualisieren"
msgid "Update Tournament"
msgstr "Turnier aktualisieren"
#: src/app/routes/_authed/admin/telemetry.tsx:57
#: src/app/routes/_authed/admin/telemetry.tsx:45
msgid "Usage"
msgstr "Nutzung"
@@ -2867,7 +2851,7 @@ msgstr "Tipps ansehen"
msgid "Viewport"
msgstr "Viewport"
#: src/features/telemetry/components/usage-screen.tsx:213
#: src/features/telemetry/components/usage-screen.tsx:218
msgid "Vitals"
msgstr "Vitals"
@@ -2906,7 +2890,7 @@ msgstr "Walkout-Segment ({segmentDuration}s)"
msgid "Walkout Song"
msgstr "Walkout-Song"
#: src/features/telemetry/components/usage-screen.tsx:165
#: src/features/telemetry/components/usage-screen.tsx:169
msgid "WAU"
msgstr "WAU"
+31 -47
View File
@@ -355,7 +355,7 @@ msgstr "2. Earlier submission"
msgid "2nd place"
msgstr "2nd place"
#: src/features/telemetry/components/usage-screen.tsx:258
#: src/features/telemetry/components/usage-screen.tsx:263
msgid "30d"
msgstr "30d"
@@ -371,7 +371,7 @@ msgstr "3rd place"
msgid "5s"
msgstr "5s"
#: src/features/telemetry/components/usage-screen.tsx:257
#: src/features/telemetry/components/usage-screen.tsx:262
msgid "7d"
msgstr "7d"
@@ -716,9 +716,9 @@ msgstr "Clear selected player"
msgid "Client error spike"
msgstr "Client error spike"
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "Client errors per day"
#: src/features/telemetry/components/usage-screen.tsx:207
msgid "Client errors"
msgstr "Client errors"
#: src/components/sheet/modal.tsx:35
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
@@ -875,7 +875,7 @@ msgstr "Cups Made"
msgid "Custom Hex Code"
msgstr "Custom Hex Code"
#: src/features/telemetry/components/usage-screen.tsx:159
#: src/features/telemetry/components/usage-screen.tsx:162
msgid "Daily active players"
msgstr "Daily active players"
@@ -934,7 +934,7 @@ msgstr "Downstream matches were reset because the correction changed who advance
msgid "Duration"
msgstr "Duration"
#: src/features/telemetry/components/usage-screen.tsx:235
#: src/features/telemetry/components/usage-screen.tsx:240
msgid "Duration p50 / p95"
msgstr "Duration p50 / p95"
@@ -996,7 +996,7 @@ msgstr "End Date (Optional)"
msgid "End Match"
msgstr "End Match"
#: src/features/telemetry/components/usage-screen.tsx:156
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Engagement"
msgstr "Engagement"
@@ -1080,11 +1080,11 @@ msgstr "Enter your name"
msgid "Enter your phone number"
msgstr "Enter your phone number"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:29
#: src/features/telemetry/components/error-browser/error-group-row.tsx:28
msgid "Error group reopened"
msgstr "Error group reopened"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:29
#: src/features/telemetry/components/error-browser/error-group-row.tsx:28
msgid "Error group resolved"
msgstr "Error group resolved"
@@ -1096,8 +1096,8 @@ msgstr "Error Message"
msgid "Error: {errorMessage}"
msgstr "Error: {errorMessage}"
#: src/app/routes/_authed/admin/telemetry.tsx:51
#: src/features/telemetry/components/usage-screen.tsx:200
#: src/app/routes/_authed/admin/telemetry.tsx:57
#: src/features/telemetry/components/usage-screen.tsx:204
msgid "Errors"
msgstr "Errors"
@@ -1109,7 +1109,7 @@ msgstr "Event Details"
msgid "Event name"
msgstr "Event name"
#: src/app/routes/_authed/admin/telemetry.tsx:48
#: src/app/routes/_authed/admin/telemetry.tsx:54
msgid "Events"
msgstr "Events"
@@ -1238,7 +1238,7 @@ msgstr "Free Agent Enrollment"
msgid "Free Agents"
msgstr "Free Agents"
#: src/features/telemetry/components/usage-screen.tsx:228
#: src/features/telemetry/components/usage-screen.tsx:233
msgid "Function"
msgstr "Function"
@@ -1246,7 +1246,7 @@ msgstr "Function"
msgid "Function Name"
msgstr "Function Name"
#: src/app/routes/_authed/admin/telemetry.tsx:45
#: src/app/routes/_authed/admin/telemetry.tsx:51
msgid "Functions"
msgstr "Functions"
@@ -1264,10 +1264,6 @@ msgstr "Go back"
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"
@@ -1375,7 +1371,7 @@ msgstr "If this is your first time participating, please select <0>New Player</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 "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."
#: src/features/telemetry/components/error-browser/error-browser.tsx:56
#: src/features/telemetry/components/error-browser/error-browser.tsx:51
msgid "Include resolved"
msgstr "Include resolved"
@@ -1552,7 +1548,7 @@ msgstr "Manage Tournaments"
msgid "margin"
msgstr "margin"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:98
#: src/features/telemetry/components/error-browser/error-group-row.tsx:102
msgid "Mark resolved"
msgstr "Mark resolved"
@@ -1620,7 +1616,7 @@ msgstr "Matchup"
msgid "Matchup details"
msgstr "Matchup details"
#: src/features/telemetry/components/usage-screen.tsx:169
#: src/features/telemetry/components/usage-screen.tsx:173
msgid "MAU"
msgstr "MAU"
@@ -1666,10 +1662,6 @@ msgstr "Need at least 2 players to create teams"
msgid "Need at least 4 teams to create a group stage format. Current team count: {0}"
msgstr "Need at least 4 teams to create a group stage format. Current team count: {0}"
#: src/features/telemetry/components/usage-screen.tsx:56
msgid "Needs improvement"
msgstr "Needs improvement"
#: src/features/reactions/components/emoji-picker.tsx:23
msgid "nerd"
msgstr "nerd"
@@ -1830,7 +1822,7 @@ msgstr "No tournaments found"
msgid "No Tournaments Yet"
msgstr "No Tournaments Yet"
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
#: src/features/telemetry/components/error-browser/error-browser.tsx:23
msgid "No unresolved errors"
msgstr "No unresolved errors"
@@ -1846,10 +1838,6 @@ msgstr "Not right"
msgid "Not right — enter our score"
msgstr "Not right — enter our score"
#: src/features/telemetry/components/error-browser/error-browser.tsx:28
msgid "Nothing has broken in the last 30 days. Keep it up."
msgstr "Nothing has broken in the last 30 days. Keep it up."
#: src/features/settings/components/notifications-section.tsx:18
#: src/features/settings/components/notifications-section.tsx:59
msgid "Notifications"
@@ -1941,15 +1929,15 @@ msgstr "Overview"
msgid "owo"
msgstr "owo"
#: src/features/telemetry/components/usage-screen.tsx:97
#: src/features/telemetry/components/usage-screen.tsx:100
msgid "p50"
msgstr "p50"
#: src/features/telemetry/components/usage-screen.tsx:113
#: src/features/telemetry/components/usage-screen.tsx:116
msgid "p95"
msgstr "p95"
#: src/features/telemetry/components/usage-screen.tsx:176
#: src/features/telemetry/components/usage-screen.tsx:180
msgid "Page views by route"
msgstr "Page views by route"
@@ -2036,7 +2024,7 @@ msgstr "Player removed successfully"
msgid "Player Stats"
msgstr "Player Stats"
#: src/app/routes/_authed/admin/telemetry.tsx:54
#: src/app/routes/_authed/admin/telemetry.tsx:48
#: src/features/teams/components/team-profile/index.tsx:29
msgid "Players"
msgstr "Players"
@@ -2050,10 +2038,6 @@ msgstr "Players are required"
msgid "Playing on {0}"
msgstr "Playing on {0}"
#: src/features/telemetry/components/usage-screen.tsx:58
msgid "Poor"
msgstr "Poor"
#: src/features/tournaments/components/group-stage-view.tsx:314
msgid "Populate Knockout Bracket"
msgstr "Populate Knockout Bracket"
@@ -2137,7 +2121,7 @@ msgstr "Regional"
msgid "Regional Tournament"
msgstr "Regional Tournament"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:98
#: src/features/telemetry/components/error-browser/error-group-row.tsx:102
msgid "Reopen"
msgstr "Reopen"
@@ -2154,7 +2138,7 @@ msgstr "Report Score"
msgid "Request failed"
msgstr "Request failed"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:63
#: src/features/telemetry/components/error-browser/error-group-row.tsx:67
msgid "Resolved"
msgstr "Resolved"
@@ -2359,7 +2343,7 @@ msgstr "Series is tied"
msgid "Server function failing"
msgstr "Server function failing"
#: src/features/telemetry/components/usage-screen.tsx:186
#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Server functions"
msgstr "Server functions"
@@ -2371,7 +2355,7 @@ msgstr "serverFn name"
msgid "Session"
msgstr "Session"
#: src/features/telemetry/components/usage-screen.tsx:172
#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Sessions"
msgstr "Sessions"
@@ -2703,7 +2687,7 @@ 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:190
#: src/features/telemetry/components/usage-screen.tsx:194
msgid "Top functions by call count"
msgstr "Top functions by call count"
@@ -2820,7 +2804,7 @@ msgstr "Update Team"
msgid "Update Tournament"
msgstr "Update Tournament"
#: src/app/routes/_authed/admin/telemetry.tsx:57
#: src/app/routes/_authed/admin/telemetry.tsx:45
msgid "Usage"
msgstr "Usage"
@@ -2867,7 +2851,7 @@ msgstr "View Predictions"
msgid "Viewport"
msgstr "Viewport"
#: src/features/telemetry/components/usage-screen.tsx:213
#: src/features/telemetry/components/usage-screen.tsx:218
msgid "Vitals"
msgstr "Vitals"
@@ -2906,7 +2890,7 @@ msgstr "Walkout Segment ({segmentDuration}s)"
msgid "Walkout Song"
msgstr "Walkout Song"
#: src/features/telemetry/components/usage-screen.tsx:165
#: src/features/telemetry/components/usage-screen.tsx:169
msgid "WAU"
msgstr "WAU"
+31 -47
View File
@@ -355,7 +355,7 @@ msgstr "2. Envío más temprano"
msgid "2nd place"
msgstr "2do lugar"
#: src/features/telemetry/components/usage-screen.tsx:258
#: src/features/telemetry/components/usage-screen.tsx:263
msgid "30d"
msgstr "30d"
@@ -371,7 +371,7 @@ msgstr "3er lugar"
msgid "5s"
msgstr "5s"
#: src/features/telemetry/components/usage-screen.tsx:257
#: src/features/telemetry/components/usage-screen.tsx:262
msgid "7d"
msgstr "7d"
@@ -716,9 +716,9 @@ msgstr "Quitar jugador seleccionado"
msgid "Client error spike"
msgstr "Aumento de errores de cliente"
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "Errores de cliente por día"
#: src/features/telemetry/components/usage-screen.tsx:207
msgid "Client errors"
msgstr "Errores de cliente"
#: src/components/sheet/modal.tsx:35
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
@@ -875,7 +875,7 @@ msgstr "Vasos anotados"
msgid "Custom Hex Code"
msgstr "Código hex personalizado"
#: src/features/telemetry/components/usage-screen.tsx:159
#: src/features/telemetry/components/usage-screen.tsx:162
msgid "Daily active players"
msgstr "Jugadores activos diarios"
@@ -934,7 +934,7 @@ msgstr "Los partidos posteriores se reiniciaron porque la corrección cambió qu
msgid "Duration"
msgstr "Duración"
#: src/features/telemetry/components/usage-screen.tsx:235
#: src/features/telemetry/components/usage-screen.tsx:240
msgid "Duration p50 / p95"
msgstr "Duración p50 / p95"
@@ -996,7 +996,7 @@ msgstr "Fecha de fin (opcional)"
msgid "End Match"
msgstr "Terminar partido"
#: src/features/telemetry/components/usage-screen.tsx:156
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Engagement"
msgstr "Interacción"
@@ -1080,11 +1080,11 @@ msgstr "Ingresa tu nombre"
msgid "Enter your phone number"
msgstr "Ingresa tu número de teléfono"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:29
#: src/features/telemetry/components/error-browser/error-group-row.tsx:28
msgid "Error group reopened"
msgstr "Grupo de errores reabierto"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:29
#: src/features/telemetry/components/error-browser/error-group-row.tsx:28
msgid "Error group resolved"
msgstr "Grupo de errores resuelto"
@@ -1096,8 +1096,8 @@ msgstr "Mensaje de error"
msgid "Error: {errorMessage}"
msgstr "Error: {errorMessage}"
#: src/app/routes/_authed/admin/telemetry.tsx:51
#: src/features/telemetry/components/usage-screen.tsx:200
#: src/app/routes/_authed/admin/telemetry.tsx:57
#: src/features/telemetry/components/usage-screen.tsx:204
msgid "Errors"
msgstr "Errores"
@@ -1109,7 +1109,7 @@ msgstr "Detalles del evento"
msgid "Event name"
msgstr "Nombre del evento"
#: src/app/routes/_authed/admin/telemetry.tsx:48
#: src/app/routes/_authed/admin/telemetry.tsx:54
msgid "Events"
msgstr "Eventos"
@@ -1238,7 +1238,7 @@ msgstr "Inscripción de agente libre"
msgid "Free Agents"
msgstr "Agentes libres"
#: src/features/telemetry/components/usage-screen.tsx:228
#: src/features/telemetry/components/usage-screen.tsx:233
msgid "Function"
msgstr "Función"
@@ -1246,7 +1246,7 @@ msgstr "Función"
msgid "Function Name"
msgstr "Nombre de la función"
#: src/app/routes/_authed/admin/telemetry.tsx:45
#: src/app/routes/_authed/admin/telemetry.tsx:51
msgid "Functions"
msgstr "Funciones"
@@ -1264,10 +1264,6 @@ msgstr "Regresar"
msgid "Go Back"
msgstr "Regresar"
#: src/features/telemetry/components/usage-screen.tsx:54
msgid "Good"
msgstr "Bueno"
#: src/themes/seventies/manifest.ts:6
msgid "Groovy"
msgstr "Setentero"
@@ -1375,7 +1371,7 @@ msgstr "Si es tu primera vez participando, selecciona <0>Nuevo jugador</0>; 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
#: src/features/telemetry/components/error-browser/error-browser.tsx:51
msgid "Include resolved"
msgstr "Incluir resueltos"
@@ -1552,7 +1548,7 @@ msgstr "Administrar torneos"
msgid "margin"
msgstr "margen"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:98
#: src/features/telemetry/components/error-browser/error-group-row.tsx:102
msgid "Mark resolved"
msgstr "Marcar como resuelto"
@@ -1620,7 +1616,7 @@ msgstr "Enfrentamiento"
msgid "Matchup details"
msgstr "Detalles del enfrentamiento"
#: src/features/telemetry/components/usage-screen.tsx:169
#: src/features/telemetry/components/usage-screen.tsx:173
msgid "MAU"
msgstr "MAU"
@@ -1666,10 +1662,6 @@ 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 "Necesita mejorar"
#: src/features/reactions/components/emoji-picker.tsx:23
msgid "nerd"
msgstr "nerd"
@@ -1830,7 +1822,7 @@ msgstr "No se encontraron torneos"
msgid "No Tournaments Yet"
msgstr "Aún no hay torneos"
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
#: src/features/telemetry/components/error-browser/error-browser.tsx:23
msgid "No unresolved errors"
msgstr "No hay errores sin resolver"
@@ -1846,10 +1838,6 @@ 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 "Nada se ha roto en los últimos 30 días. Sigue así."
#: src/features/settings/components/notifications-section.tsx:18
#: src/features/settings/components/notifications-section.tsx:59
msgid "Notifications"
@@ -1941,15 +1929,15 @@ msgstr "Resumen"
msgid "owo"
msgstr "owo"
#: src/features/telemetry/components/usage-screen.tsx:97
#: src/features/telemetry/components/usage-screen.tsx:100
msgid "p50"
msgstr "p50"
#: src/features/telemetry/components/usage-screen.tsx:113
#: src/features/telemetry/components/usage-screen.tsx:116
msgid "p95"
msgstr "p95"
#: src/features/telemetry/components/usage-screen.tsx:176
#: src/features/telemetry/components/usage-screen.tsx:180
msgid "Page views by route"
msgstr "Vistas de página por ruta"
@@ -2036,7 +2024,7 @@ msgstr "Jugador eliminado con éxito"
msgid "Player Stats"
msgstr "Estadísticas de jugador"
#: src/app/routes/_authed/admin/telemetry.tsx:54
#: src/app/routes/_authed/admin/telemetry.tsx:48
#: src/features/teams/components/team-profile/index.tsx:29
msgid "Players"
msgstr "Jugadores"
@@ -2050,10 +2038,6 @@ msgstr "Los jugadores son obligatorios"
msgid "Playing on {0}"
msgstr "Reproduciendo en {0}"
#: src/features/telemetry/components/usage-screen.tsx:58
msgid "Poor"
msgstr "Deficiente"
#: src/features/tournaments/components/group-stage-view.tsx:314
msgid "Populate Knockout Bracket"
msgstr "Llenar el bracket eliminatorio"
@@ -2137,7 +2121,7 @@ msgstr "Regional"
msgid "Regional Tournament"
msgstr "Torneo regional"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:98
#: src/features/telemetry/components/error-browser/error-group-row.tsx:102
msgid "Reopen"
msgstr "Reabrir"
@@ -2154,7 +2138,7 @@ msgstr "Reportar marcador"
msgid "Request failed"
msgstr "Falló la solicitud"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:63
#: src/features/telemetry/components/error-browser/error-group-row.tsx:67
msgid "Resolved"
msgstr "Resuelto"
@@ -2359,7 +2343,7 @@ msgstr "La serie está empatada"
msgid "Server function failing"
msgstr "Función del servidor fallando"
#: src/features/telemetry/components/usage-screen.tsx:186
#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Server functions"
msgstr "Funciones del servidor"
@@ -2371,7 +2355,7 @@ msgstr "nombre de serverFn"
msgid "Session"
msgstr "Sesión"
#: src/features/telemetry/components/usage-screen.tsx:172
#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Sessions"
msgstr "Sesiones"
@@ -2703,7 +2687,7 @@ 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:190
#: src/features/telemetry/components/usage-screen.tsx:194
msgid "Top functions by call count"
msgstr "Funciones principales por cantidad de llamadas"
@@ -2820,7 +2804,7 @@ msgstr "Actualizar equipo"
msgid "Update Tournament"
msgstr "Actualizar torneo"
#: src/app/routes/_authed/admin/telemetry.tsx:57
#: src/app/routes/_authed/admin/telemetry.tsx:45
msgid "Usage"
msgstr "Uso"
@@ -2867,7 +2851,7 @@ msgstr "Ver predicciones"
msgid "Viewport"
msgstr "Viewport"
#: src/features/telemetry/components/usage-screen.tsx:213
#: src/features/telemetry/components/usage-screen.tsx:218
msgid "Vitals"
msgstr "Vitales"
@@ -2906,7 +2890,7 @@ msgstr "Segmento de entrada ({segmentDuration}s)"
msgid "Walkout Song"
msgstr "Canción de entrada"
#: src/features/telemetry/components/usage-screen.tsx:165
#: src/features/telemetry/components/usage-screen.tsx:169
msgid "WAU"
msgstr "WAU"
+31 -47
View File
@@ -355,7 +355,7 @@ msgstr "2. 早い提出"
msgid "2nd place"
msgstr "2位"
#: src/features/telemetry/components/usage-screen.tsx:258
#: src/features/telemetry/components/usage-screen.tsx:263
msgid "30d"
msgstr "30日"
@@ -371,7 +371,7 @@ msgstr "3位"
msgid "5s"
msgstr "5秒"
#: src/features/telemetry/components/usage-screen.tsx:257
#: src/features/telemetry/components/usage-screen.tsx:262
msgid "7d"
msgstr "7日"
@@ -716,9 +716,9 @@ msgstr "選択したプレイヤーを解除"
msgid "Client error spike"
msgstr "クライアントエラー急増"
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "1日あたりのクライアントエラー数"
#: src/features/telemetry/components/usage-screen.tsx:207
msgid "Client errors"
msgstr "クライアントエラー"
#: src/components/sheet/modal.tsx:35
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
@@ -875,7 +875,7 @@ msgstr "決めたカップ"
msgid "Custom Hex Code"
msgstr "カスタムHEXコード"
#: src/features/telemetry/components/usage-screen.tsx:159
#: src/features/telemetry/components/usage-screen.tsx:162
msgid "Daily active players"
msgstr "デイリーアクティブプレイヤー数"
@@ -934,7 +934,7 @@ msgstr "修正により勝ち上がりの相手が変わったため、以降の
msgid "Duration"
msgstr "所要時間"
#: src/features/telemetry/components/usage-screen.tsx:235
#: src/features/telemetry/components/usage-screen.tsx:240
msgid "Duration p50 / p95"
msgstr "所要時間 p50 / p95"
@@ -996,7 +996,7 @@ msgstr "終了日(任意)"
msgid "End Match"
msgstr "試合を終了"
#: src/features/telemetry/components/usage-screen.tsx:156
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Engagement"
msgstr "エンゲージメント"
@@ -1080,11 +1080,11 @@ msgstr "名前を入力"
msgid "Enter your phone number"
msgstr "電話番号を入力"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:29
#: src/features/telemetry/components/error-browser/error-group-row.tsx:28
msgid "Error group reopened"
msgstr "エラーグループを再オープンしました"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:29
#: src/features/telemetry/components/error-browser/error-group-row.tsx:28
msgid "Error group resolved"
msgstr "エラーグループを解決済みにしました"
@@ -1096,8 +1096,8 @@ msgstr "エラーメッセージ"
msgid "Error: {errorMessage}"
msgstr "エラー: {errorMessage}"
#: src/app/routes/_authed/admin/telemetry.tsx:51
#: src/features/telemetry/components/usage-screen.tsx:200
#: src/app/routes/_authed/admin/telemetry.tsx:57
#: src/features/telemetry/components/usage-screen.tsx:204
msgid "Errors"
msgstr "エラー"
@@ -1109,7 +1109,7 @@ msgstr "イベント詳細"
msgid "Event name"
msgstr "イベント名"
#: src/app/routes/_authed/admin/telemetry.tsx:48
#: src/app/routes/_authed/admin/telemetry.tsx:54
msgid "Events"
msgstr "イベント"
@@ -1238,7 +1238,7 @@ msgstr "フリーエージェント登録"
msgid "Free Agents"
msgstr "フリーエージェント"
#: src/features/telemetry/components/usage-screen.tsx:228
#: src/features/telemetry/components/usage-screen.tsx:233
msgid "Function"
msgstr "関数"
@@ -1246,7 +1246,7 @@ msgstr "関数"
msgid "Function Name"
msgstr "関数名"
#: src/app/routes/_authed/admin/telemetry.tsx:45
#: src/app/routes/_authed/admin/telemetry.tsx:51
msgid "Functions"
msgstr "関数"
@@ -1264,10 +1264,6 @@ msgstr "戻る"
msgid "Go Back"
msgstr "戻る"
#: src/features/telemetry/components/usage-screen.tsx:54
msgid "Good"
msgstr "良好"
#: src/themes/seventies/manifest.ts:6
msgid "Groovy"
msgstr "グルーヴィー"
@@ -1375,7 +1371,7 @@ msgstr "初めて参加する場合は<0>新しいプレイヤー</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
#: src/features/telemetry/components/error-browser/error-browser.tsx:51
msgid "Include resolved"
msgstr "解決済みを含める"
@@ -1552,7 +1548,7 @@ msgstr "トーナメント管理"
msgid "margin"
msgstr "得点差"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:98
#: src/features/telemetry/components/error-browser/error-group-row.tsx:102
msgid "Mark resolved"
msgstr "解決済みにする"
@@ -1620,7 +1616,7 @@ msgstr "対戦カード"
msgid "Matchup details"
msgstr "対戦カードの詳細"
#: src/features/telemetry/components/usage-screen.tsx:169
#: src/features/telemetry/components/usage-screen.tsx:173
msgid "MAU"
msgstr "MAU"
@@ -1666,10 +1662,6 @@ 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 "オタク"
@@ -1830,7 +1822,7 @@ msgstr "トーナメントが見つかりません"
msgid "No Tournaments Yet"
msgstr "トーナメントはまだありません"
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
#: src/features/telemetry/components/error-browser/error-browser.tsx:23
msgid "No unresolved errors"
msgstr "未解決のエラーはありません"
@@ -1846,10 +1838,6 @@ 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 "過去30日間、何も壊れていません。この調子です。"
#: src/features/settings/components/notifications-section.tsx:18
#: src/features/settings/components/notifications-section.tsx:59
msgid "Notifications"
@@ -1941,15 +1929,15 @@ msgstr "概要"
msgid "owo"
msgstr "owo"
#: src/features/telemetry/components/usage-screen.tsx:97
#: src/features/telemetry/components/usage-screen.tsx:100
msgid "p50"
msgstr "p50"
#: src/features/telemetry/components/usage-screen.tsx:113
#: src/features/telemetry/components/usage-screen.tsx:116
msgid "p95"
msgstr "p95"
#: src/features/telemetry/components/usage-screen.tsx:176
#: src/features/telemetry/components/usage-screen.tsx:180
msgid "Page views by route"
msgstr "ルート別ページビュー数"
@@ -2036,7 +2024,7 @@ msgstr "プレイヤーを削除しました"
msgid "Player Stats"
msgstr "プレイヤースタッツ"
#: src/app/routes/_authed/admin/telemetry.tsx:54
#: src/app/routes/_authed/admin/telemetry.tsx:48
#: src/features/teams/components/team-profile/index.tsx:29
msgid "Players"
msgstr "プレイヤー"
@@ -2050,10 +2038,6 @@ msgstr "プレイヤーの選択が必要です"
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 "ノックアウトブラケットを作成"
@@ -2137,7 +2121,7 @@ msgstr "地域"
msgid "Regional Tournament"
msgstr "地域トーナメント"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:98
#: src/features/telemetry/components/error-browser/error-group-row.tsx:102
msgid "Reopen"
msgstr "再オープン"
@@ -2154,7 +2138,7 @@ msgstr "スコアを報告"
msgid "Request failed"
msgstr "リクエストに失敗しました"
#: src/features/telemetry/components/error-browser/error-group-row.tsx:63
#: src/features/telemetry/components/error-browser/error-group-row.tsx:67
msgid "Resolved"
msgstr "解決済み"
@@ -2359,7 +2343,7 @@ msgstr "シリーズはタイです"
msgid "Server function failing"
msgstr "サーバー関数が失敗しています"
#: src/features/telemetry/components/usage-screen.tsx:186
#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Server functions"
msgstr "サーバー関数"
@@ -2371,7 +2355,7 @@ msgstr "serverFn名"
msgid "Session"
msgstr "セッション"
#: src/features/telemetry/components/usage-screen.tsx:172
#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Sessions"
msgstr "セッション数"
@@ -2703,7 +2687,7 @@ msgstr "各グループの上位{0, plural, one {#チーム} other {#チーム}}
msgid "Top {n} advance"
msgstr "上位{n}チームが勝ち上がり"
#: src/features/telemetry/components/usage-screen.tsx:190
#: src/features/telemetry/components/usage-screen.tsx:194
msgid "Top functions by call count"
msgstr "呼び出し数の多い関数"
@@ -2820,7 +2804,7 @@ msgstr "チームを更新"
msgid "Update Tournament"
msgstr "トーナメントを更新"
#: src/app/routes/_authed/admin/telemetry.tsx:57
#: src/app/routes/_authed/admin/telemetry.tsx:45
msgid "Usage"
msgstr "利用状況"
@@ -2867,7 +2851,7 @@ msgstr "予想を見る"
msgid "Viewport"
msgstr "ビューポート"
#: src/features/telemetry/components/usage-screen.tsx:213
#: src/features/telemetry/components/usage-screen.tsx:218
msgid "Vitals"
msgstr "バイタル"
@@ -2906,7 +2890,7 @@ msgstr "ウォークアウト区間({segmentDuration}秒)"
msgid "Walkout Song"
msgstr "ウォークアウトソング"
#: src/features/telemetry/components/usage-screen.tsx:165
#: src/features/telemetry/components/usage-screen.tsx:169
msgid "WAU"
msgstr "WAU"