Development #24
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user